package com.stylefeng.guns.modular.system.util;
|
|
import com.stylefeng.guns.modular.system.service.IDriverService;
|
import com.stylefeng.guns.modular.system.service.IOrderService;
|
import com.stylefeng.guns.modular.system.service.ISettlementRecordService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.HashSet;
|
import java.util.Set;
|
import java.util.TimeZone;
|
|
|
/**
|
* 定时任务工具类
|
*/
|
@Component
|
public class TaskUtil {
|
|
@Autowired
|
private IDriverService driverService;
|
|
@Autowired
|
private IOrderService orderService;
|
|
@Autowired
|
private JGPushUtil jgPushUtil;
|
|
@Autowired
|
private ISettlementRecordService settlementRecordService;
|
|
public Set<Integer> driverIds = new HashSet<>();//存储需要提醒司机预约单的司机id
|
|
|
public static void main(String[] args) {
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MMM-dd");
|
System.err.println(sdf.format(new Date()));
|
}
|
|
|
/**
|
* 每隔一分钟去处理的定时任务
|
*/
|
@Scheduled(fixedRate = 1000 * 60)
|
public void taskMinute(){
|
try {
|
//修改满足活动条件的数据(在线时长,订单量)
|
driverService.taskMinute();
|
//处于预约单
|
orderService.reservationOrder();
|
// //处理车载端断电后的自动下班
|
// driverService.taskOffWork();
|
//处理结束订单后30分钟解绑小号功能
|
orderService.taskMidAxbUnBindSend();
|
} 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();
|
//处理所有司机待结算数据
|
settlementRecordService.taskSettlement();
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
}
|
|
|
//
|
// /**
|
// * 每月第一天的1点执行的任务
|
// */
|
// @Scheduled(cron = "0 0 1 1 * *")
|
// public void taskMonth(){
|
// try {
|
//
|
// }catch (Exception e){
|
// e.printStackTrace();
|
// }
|
// }
|
}
|