package com.xc.utils.task.index; import com.xc.dao.StockMapper; import com.xc.pojo.IndexInfo; import com.xc.service.DbStockService; import com.xc.service.IUserPositionService; import com.xc.utils.DateTimeUtil; import com.xc.utils.stock.BuyAndSellUtils; import com.xc.utils.thread.ThreadUtil; import com.xc.vo.stock.StockListVO; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.math.BigDecimal; import java.util.Date; import java.util.List; @Component public class EntrustTask { private static final Logger log = LoggerFactory.getLogger(EntrustTask.class); // private static final String am_begin = "9:30"; // // private static final String am_end = "11:30"; // // private static final String pm_begin = "13:00"; // // private static final String pm_end = "23:00"; @Autowired IUserPositionService iUserPositionService; @Autowired private StockMapper stockMapper; @Autowired DbStockService dbStockService; // 星期一到星期五的每天9点到15点触发 每3分钟触发一次 @Scheduled(cron = "*/3 * * * * ?") public void toEntrust() { boolean am = true; boolean pm = true; // try { // // 开市时间要获取DB中的 // am = BuyAndSellUtils.isTransTime(am_begin, am_end); // pm = BuyAndSellUtils.isTransTime(pm_begin, pm_end); // } catch (Exception e) { // log.error("执行定时任务出错,e = {}", e); // } // log.info("当前 am = {} pm = {}", Boolean.valueOf(am), Boolean.valueOf(pm)); if (am || pm) { log.info("=====定时任务===计算委托==开始,当前时间 {} =====", DateTimeUtil.dateToStr(new Date())); doTask(); log.info("=====定时任务===计算委托==结束,当前时间 {} =====", DateTimeUtil.dateToStr(new Date())); } else { log.info("当前时间不为周一至周五,或者不在交易时间内,不执行(委托)定时任务"); } } private void doTask() { try { ThreadUtil.executeInThread(obj -> { iUserPositionService.fulfill(); }); } catch (Exception e) { // 数据库不存在 log.info("数据库不存在"); } } }