package com.nq.service.impl; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; 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; import java.util.Date; /** * @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, String stockType) { StockSetting stockSetting = stockSettingMapper.selectOne(new QueryWrapper().eq("stock_code",stockCode)); StockTimeSetting stockTimeSetting = stockTimeSettingMapper.selectOne(new QueryWrapper().eq("accets_type",stockType)); if(stockSetting!= null){ // 说明进入盘前交易或者盘后交易时间 Date newDate = new Date(); DateTime startTime = DateUtil.parseDateTime(stockSetting.getStartTime()); DateTime endTime = DateUtil.parseDateTime(stockSetting.getEndTime()); if(newDate.after(startTime) && newDate.before(endTime)){ 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; } }