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.pojo.Stock; import com.nq.pojo.StockSetting; import com.nq.pojo.StockTimeSetting; import com.nq.pojo.TradingHour; import com.nq.service.ITradingHourService; import com.nq.utils.timeutil.TimeUtil; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDate; /** * @program: dabao * @description: * @create: 2024-03-31 13:18 **/ @Service public class TradingHourServiceImpl extends ServiceImpl implements ITradingHourService { @Resource StockTimeSettingMapper stockTimeSettingMapper; @Resource StockMapper stockMapper; @Resource StockSettingMapper stockSettingMapper; /** * 判断股票代码是否在可交易时间段 * @return */ @Override public Boolean timeCheck(String stockCode) { StockSetting stockSetting = stockSettingMapper.selectOne(new QueryWrapper().eq("stock_code",stockCode)); Stock stock = stockMapper.selectOne(new QueryWrapper().eq("stock_code",stockCode)); StockTimeSetting stockTimeSetting = stockTimeSettingMapper.selectOne(new QueryWrapper().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()); } @Override public Boolean timeCheck() { return true; } }