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.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<TradingHourMapper, TradingHour> 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<StockSetting>().eq("stock_code",stockCode));
|
StockTimeSetting stockTimeSetting = stockTimeSettingMapper.selectOne(new QueryWrapper<StockTimeSetting>().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;
|
}
|
}
|