Pu Zhibing
2025-02-11 51b190f22aa8751bd9fbe5229ab5546facdef632
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/quartz/jobs/OrderTimeOutJob.java
@@ -8,15 +8,11 @@
import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
import com.stylefeng.guns.modular.system.dao.UserInfoMapper;
import com.stylefeng.guns.modular.system.model.Driver;
import com.stylefeng.guns.modular.system.model.User;
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.service.IDriverService;
import com.stylefeng.guns.modular.system.service.IUserService;
import com.stylefeng.guns.modular.system.util.PushUtil;
import com.stylefeng.guns.modular.system.util.TextToSpeechUtil;
import com.stylefeng.guns.modular.system.util.quartz.QuartzUtil;
import com.stylefeng.guns.modular.system.util.quartz.model.QuartzEnum;
import com.stylefeng.guns.modular.system.util.quartz.model.QuartzJob;
import lombok.extern.slf4j.Slf4j;
import org.quartz.*;
import org.springframework.stereotype.Component;
@@ -31,6 +27,7 @@
import java.util.Timer;
import java.util.TimerTask;
/**
 * 订单司机超时提醒任务
 * @author zhibing.pu
@@ -38,7 +35,7 @@
 */
@Slf4j
@Component
public class OrderTimeOutJob extends QuartzJob {
public class OrderTimeOutJob implements Job {
   
   @Resource
   private PushUtil pushUtil;
@@ -51,47 +48,14 @@
   @Resource
   private UserInfoMapper userInfoMapper;
   
   @Override
   public QuartzJob buildQuartzJob() {
      return buildQuartzJob(QuartzEnum.JOB_NAME.getValue());
   }
   @Override
   public QuartzJob buildQuartzJob(String name) {
      return buildQuartzJob(name, QuartzEnum.DEFAULT_GROUP.getValue());
   }
   @Override
   public QuartzJob buildQuartzJob(String name, String group) {
      return buildQuartzJob(name, QuartzEnum.DEFAULT_GROUP.getValue(), null);
   }
   @Override
   public QuartzJob buildQuartzJob(String name, String group, JobDataMap jobDataMap) {
      QuartzJob job = new OrderTimeOutJob();
      if(ToolUtil.isNotEmpty(name)){
         job.setName(name);
      }else{
         job.setName(QuartzEnum.JOB_NAME.getValue());
      }
      if(ToolUtil.isNotEmpty(group)){
         job.setGroup(group);
      }else{
         job.setGroup(QuartzEnum.DEFAULT_GROUP.getValue());
      }
      if(null != jobDataMap){
         job.setJobDataMap(jobDataMap);
      }
      return job;
   }
   @Resource
   private QuartzUtil quartzUtil;
   
   /**
    * 执行的业务逻辑
    * @param jobExecutionContext 定时任务上下文对象
    */
   @Override
   public void run(JobExecutionContext jobExecutionContext) {
      JobDetail jobDetail = jobExecutionContext.getJobDetail();
      JobDataMap jobDataMap = jobDetail.getJobDataMap();
@@ -151,7 +115,7 @@
         List<Integer> list = Arrays.asList(4, 5, 6, 7, 8, 9, 10, 11, 12);
         if(1 == timeOutType && list.contains(orderPrivateCar.getState())){
            JobKey key = jobExecutionContext.getJobDetail().getKey();
            boolean b = QuartzUtil.deleteQuartzTask(key);
            boolean b = quartzUtil.deleteQuartzTask(key);
            if(!b){
               log.error("定时任务关闭失败:" + key.toString());
            }
@@ -159,7 +123,7 @@
         }
         if(2 == timeOutType && (System.currentTimeMillis() >= timeOut || list.contains(orderPrivateCar.getState()))){
            JobKey key = jobExecutionContext.getJobDetail().getKey();
            boolean b = QuartzUtil.deleteQuartzTask(key);
            boolean b = quartzUtil.deleteQuartzTask(key);
            if(!b){
               log.error("定时任务关闭失败:" + key.toString());
            }
@@ -169,7 +133,7 @@
         //结束超时循环提醒定时
         if(3 == timeOutType && list.contains(orderPrivateCar.getState())){
            JobKey key = jobExecutionContext.getJobDetail().getKey();
            boolean b = QuartzUtil.deleteQuartzTask(key);
            boolean b = quartzUtil.deleteQuartzTask(key);
            if(!b){
               log.error("定时任务关闭失败:" + key.toString());
            }
@@ -183,7 +147,7 @@
         List<Integer> list = Arrays.asList(4, 5, 6, 7, 8, 9, 10, 11, 12, 13);
         if(1 == timeOutType && list.contains(orderLogistics.getState())){
            JobKey key = jobExecutionContext.getJobDetail().getKey();
            boolean b = QuartzUtil.deleteQuartzTask(key);
            boolean b = quartzUtil.deleteQuartzTask(key);
            if(!b){
               log.error("定时任务关闭失败:" + key.toString());
            }
@@ -192,7 +156,7 @@
         //结束超时循环提醒定时
         if(3 == timeOutType && list.contains(orderLogistics.getState())){
            JobKey key = jobExecutionContext.getJobDetail().getKey();
            boolean b = QuartzUtil.deleteQuartzTask(key);
            boolean b = quartzUtil.deleteQuartzTask(key);
            if(!b){
               log.error("定时任务关闭失败:" + key.toString());
            }
@@ -236,44 +200,12 @@
   }
   
   
   /**
    * 初始化任务对象
    * @return
    */
   public static QuartzJob init(){
      return new OrderTimeOutJob().buildQuartzJob();
   }
   /**
    * 初始化任务对象
    * @param name
    * @return
    */
   public static QuartzJob init(String name){
      return new OrderTimeOutJob().buildQuartzJob(name);
   @Override
   public void execute(JobExecutionContext jobExecutionContext){
      run(jobExecutionContext);
   }
   
   
   
   /**
    * 初始化任务对象
    * @param name
    * @param group
    * @return
    */
   public static QuartzJob init(String name, String group){
      return new OrderTimeOutJob().buildQuartzJob(name, group);
   }
   
   /**
    * 初始化任务对象
    * @param name
    * @param group
    * @return
    */
   public static QuartzJob init(String name, String group, JobDataMap jobDataMap){
      return new OrderTimeOutJob().buildQuartzJob(name, group, jobDataMap);
   }
}