diff --git a/src/main/java/cn/chjyj/szwh/job/OrderJob.java b/src/main/java/cn/chjyj/szwh/job/OrderJob.java new file mode 100644 index 0000000..5eef397 --- /dev/null +++ b/src/main/java/cn/chjyj/szwh/job/OrderJob.java @@ -0,0 +1,31 @@ +package cn.chjyj.szwh.job; + +import cn.chjyj.szwh.service.OrderTaskService; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.quartz.QuartzJobBean; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Calendar; + +/** + * 关闭超时订单脚本 + */ +public class OrderJob extends QuartzJobBean { + private static Log log = LogFactory.getLog(SzwhRevocationGoodsJob.class); + @Autowired + private OrderTaskService orderTaskService; + @Override + protected void executeInternal(JobExecutionContext context) throws JobExecutionException { + Calendar cal = Calendar.getInstance(); + LocalDateTime localDateTime = LocalDateTime.now(); + String nowstr = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + log.info("关闭超时(30min未付款)订单:"+nowstr); + // + orderTaskService.closeOrderTimeout(); + } +} diff --git a/src/main/java/cn/chjyj/szwh/task/TaskInit.java b/src/main/java/cn/chjyj/szwh/task/TaskInit.java index 2e7d2d5..acb56ee 100644 --- a/src/main/java/cn/chjyj/szwh/task/TaskInit.java +++ b/src/main/java/cn/chjyj/szwh/task/TaskInit.java @@ -1,5 +1,6 @@ package cn.chjyj.szwh.task; +import cn.chjyj.szwh.job.OrderJob; import cn.chjyj.szwh.job.SzwhJob; import cn.chjyj.szwh.job.SzwhRevocationGoodsJob; import org.quartz.*; @@ -51,5 +52,17 @@ public class TaskInit implements ApplicationRunner { .startNow() .build(); scheduler.scheduleJob(revojob,revoTrigger); + // 关闭超时订单 1min一次 + JobDetail odTimeoutJob=JobBuilder.newJob(OrderJob.class) + .withIdentity(sid+"03") + .storeDurably() + .build(); + Trigger odTimeoutTrigger = TriggerBuilder.newTrigger() + .forJob(odTimeoutJob) + .withIdentity(sid+"02Trigger") + .withSchedule(CronScheduleBuilder.cronSchedule("0 */1 * * * ? *")) + .startNow() + .build(); + scheduler.scheduleJob(odTimeoutJob,odTimeoutTrigger); } }