package com.stylefeng.guns.modular.system.util; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.service.IOrderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.HashSet; import java.util.Set; /** * 定时任务工具类 */ @Component public class TaskUtil { @Autowired private IDriverService driverService; @Autowired private IOrderService orderService; @Autowired private JGPushUtil jgPushUtil; public Set driverIds = new HashSet<>();//存储需要提醒司机预约单的司机id /** * 每隔一分钟去处理的定时任务 */ @Scheduled(fixedRate = 1000 * 60) public void taskMinute(){ try { //修改满足活动条件的数据(在线时长,订单量) driverService.taskMinute(); // 处理车载端断电后的自动下班 // driverService.taskOffWork(); // 处理结束订单后30分钟解绑小号功能 // orderService.taskMidAxbUnBindSend(); } catch (Exception e) { e.printStackTrace(); } } /** * 每隔一分钟去处理的定时任务 */ @Scheduled(fixedRate = 1000 * 60) public void taskMinute2(){ try { //处于预约单 orderService.reservationOrder(); } catch (Exception e) { e.printStackTrace(); } } /** * 每隔五分钟去处理的定时任务 */ @Scheduled(fixedRate = 1000 * 60 * 5) public void taskFiveMinute(){ try { //处理未支付订单发送短信通知 // orderService.taskSmsSend(); for (Integer id: driverIds){ // jgPushUtil.push(1, "您的预约订单出行时间就要到了,请尽快前往预约地点接乘客", "DRIVER" + id); } this.driverIds.clear(); } catch (Exception e) { e.printStackTrace(); } } /** * 每天的凌晨执行的任务 */ @Scheduled(cron = "0 0 0 * * *") public void taskDay(){ try { //生成当天的司机活动 driverService.addTodayActivity(); }catch (Exception e){ e.printStackTrace(); } } // // /** // * 每月第一天的1点执行的任务 // */ // @Scheduled(cron = "0 0 1 1 * *") // public void taskMonth(){ // try { // // }catch (Exception e){ // e.printStackTrace(); // } // } }