| | |
| | | package com.nq.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.nq.dao.StockMapper; |
| | | import com.nq.dao.StockSettingMapper; |
| | | import com.nq.dao.StockTimeSettingMapper; |
| | | import com.nq.dao.TradingHourMapper; |
| | | import com.nq.enums.EStockType; |
| | | import com.nq.pojo.Stock; |
| | | import com.nq.pojo.StockSetting; |
| | | import com.nq.pojo.StockTimeSetting; |
| | | import com.nq.pojo.TradingHour; |
| | | import com.nq.service.TradingHourService; |
| | | import com.nq.service.ITradingHourService; |
| | | import com.nq.utils.timeutil.TimeUtil; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.DayOfWeek; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalTime; |
| | | import java.time.ZoneId; |
| | | |
| | | /** |
| | | * @program: dabao |
| | |
| | | * @create: 2024-03-31 13:18 |
| | | **/ |
| | | @Service |
| | | public class TradingHourServiceImpl extends ServiceImpl<TradingHourMapper, TradingHour> implements TradingHourService { |
| | | public class TradingHourServiceImpl extends ServiceImpl<TradingHourMapper, TradingHour> implements ITradingHourService { |
| | | |
| | | |
| | | |
| | | |
| | | @Resource |
| | | StockTimeSettingMapper stockTimeSettingMapper; |
| | | |
| | | @Resource |
| | | StockMapper stockMapper; |
| | | |
| | | |
| | | @Resource |
| | | StockSettingMapper stockSettingMapper; |
| | | |
| | | /** |
| | | * 判断股票代码是否在可交易时间段 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Boolean timeCheck(String stockCode) { |
| | | StockSetting stockSetting = stockSettingMapper.selectOne(new QueryWrapper<StockSetting>().eq("stock_code",stockCode)); |
| | | Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("stock_code",stockCode)); |
| | | StockTimeSetting stockTimeSetting = stockTimeSettingMapper.selectOne(new QueryWrapper<StockTimeSetting>().eq("accets_type",stock.getStockType())); |
| | | if(stockSetting!= null){ |
| | | // 说明进入盘前交易或者盘后交易时间 |
| | | if(TimeUtil.isTradingHour(stockSetting.getStartTime(),stockSetting.getEndTime())){ |
| | | return true; |
| | | } |
| | | } |
| | | if(stockTimeSetting == null){ |
| | | return false; |
| | | } |
| | | if(!stockTimeSetting.getWeekDay().contains(String.valueOf(LocalDate.now().getDayOfWeek().getValue()))){ |
| | | return false; |
| | | } |
| | | |
| | | return TimeUtil.isTradingHour(stockTimeSetting.getAmStartTime(),stockTimeSetting.getAmEndTime(),stockTimeSetting.getPmStartTime(),stockTimeSetting.getPmEndTime()); |
| | | } |
| | | |
| | | /** |
| | | * 判断股票代码是否在可交易时间段 |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Boolean weekDayeCheck(String stockCode) { |
| | | |
| | | Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("stock_code",stockCode)); |
| | | StockTimeSetting stockTimeSetting = stockTimeSettingMapper.selectOne(new QueryWrapper<StockTimeSetting>().eq("accets_type",stock.getStockType())); |
| | | if(stockTimeSetting.getAccetsType().equals(EStockType.US.getCode())){ |
| | | ZoneId usEastern = ZoneId.of("America/New_York"); |
| | | LocalDate date = LocalDate.now(usEastern); |
| | | return stockTimeSetting.getWeekDay().indexOf(String.valueOf(date.getDayOfWeek().getValue())) >= 0; |
| | | } |
| | | return stockTimeSetting.getWeekDay().indexOf(String.valueOf(LocalDate.now().getDayOfWeek().getValue())) >= 0; |
| | | } |
| | | |
| | | @Override |
| | | public Boolean timeCheck() { |
| | | //TODO 加入时间判断逻辑 |
| | | return true; |
| | | } |
| | | } |