UpdateOrderTimer.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. package com.ydtech.modules.order.timer;
  2. import com.xxl.job.core.handler.annotation.XxlJob;
  3. import com.ydtech.modules.admin.utils.SliceUpDateUtil;
  4. import com.ydtech.modules.order.service.InsOrderPayDateRecordService;
  5. import com.ydtech.utils.DateUtil;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.scheduling.annotation.Async;
  9. import org.springframework.scheduling.annotation.EnableAsync;
  10. import org.springframework.scheduling.annotation.Scheduled;
  11. import org.springframework.stereotype.Component;
  12. import java.text.SimpleDateFormat;
  13. import java.util.Date;
  14. /**
  15. * @version
  16. * @author: hxl
  17. * @Date: 2024/10/22 10:45
  18. * @Description: 定时订单的缴费时间和签单时间
  19. */
  20. @Slf4j
  21. @Component
  22. @EnableAsync
  23. public class UpdateOrderTimer {
  24. @Autowired
  25. private InsOrderPayDateRecordService insOrderPayDateRecordService;
  26. /**
  27. * @version
  28. * @author: hxl
  29. * @Date: 2024/12/27 17:26
  30. * @Description: 每10分钟执行下更新订单时间
  31. */
  32. // @Async
  33. // @Scheduled(cron = "0 0/30 * * * ?")
  34. @XxlJob("updateOrderDateMinite")
  35. public void updateOrderDateMinite() {
  36. String benginDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 00:00:00";
  37. String endDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 23:59:59";
  38. updateOrderDate(benginDate,endDate);
  39. }
  40. /**
  41. * @version
  42. * @author: hxl
  43. * @Date: 2024/10/22 10:47
  44. * @Description:
  45. * 中午一点
  46. * 凌晨一点
  47. */
  48. @Async
  49. @Scheduled(cron = "0 0 13 * * ?")
  50. public void updateOrderDateNoon() {
  51. //更新前一周的数据
  52. String benginDate = SliceUpDateUtil.getBeforeDay(new Date(), 1) + " 00:00:00";
  53. String endDate = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 23:59:59";
  54. updateOrderDate(benginDate,endDate);
  55. }
  56. @Async
  57. @Scheduled(cron = "0 0 1 * * ?")
  58. public void updateOrderDateBeforeDawn() {
  59. String benginDate = SliceUpDateUtil.getBeforeDay(new Date(), 1) + " 00:00:00";
  60. String endDate = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 23:59:59";
  61. updateOrderDate(benginDate,endDate);
  62. }
  63. private void updateOrderDate(String benginDate,String endDate) {
  64. log.info("定时更新订单的签单时间和缴费日期,启动时间:{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
  65. //中午1点到凌晨1点
  66. // String benginDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 00:00:00";
  67. // String endDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 23:59:59";
  68. try {
  69. insOrderPayDateRecordService.batchOrderDate(benginDate,endDate);
  70. log.info("定时更新订单的签单时间和缴费日期成功");
  71. } catch (Exception e) {
  72. e.printStackTrace();
  73. log.error("定时更新订单的签单时间和缴费日期失败:{}", e.getMessage());
  74. }
  75. }
  76. /**
  77. * @version
  78. * @author: hxl
  79. * @Date: 2024/12/30 9:59
  80. * @Description: 自动更新结算表中签单日期为空的数据
  81. */
  82. // @Async
  83. // @Scheduled(cron = "0 0/30 * * * ?")
  84. @XxlJob("updateOrderPlyDateMinite")
  85. public void updateOrderPlyDateMinite() {
  86. String benginDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 00:00:00";
  87. String endDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 23:59:59";
  88. updatePlyDate(benginDate,endDate);
  89. }
  90. /**
  91. * @version
  92. * @author: hxl
  93. * @Date: 2024/12/30 9:59
  94. * @Description: 晚上一点执行上周数据
  95. */
  96. @Async
  97. @Scheduled(cron = "0 0 1 * * ?")
  98. public void updateOrderPlyDateBeforeDawn() {
  99. String benginDate = SliceUpDateUtil.getBeforeDay(new Date(), 1) + " 00:00:00";
  100. String endDate = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 23:59:59";
  101. updatePlyDate(benginDate,endDate);
  102. }
  103. /**
  104. * @version
  105. * @author: hxl
  106. * @Date: 2024/12/30 9:59
  107. * @Description: 中午一点更新上周数据
  108. */
  109. @Async
  110. @Scheduled(cron = "0 0 13 * * ?")
  111. public void updateOrderPlyDateNoon() {
  112. String benginDate = SliceUpDateUtil.getBeforeDay(new Date(), 1) + " 00:00:00";
  113. String endDate = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 23:59:59";
  114. updatePlyDate(benginDate,endDate);
  115. }
  116. private void updatePlyDate(String benginDate,String endDate) {
  117. try {
  118. insOrderPayDateRecordService.batchOrderPlyOrderDate(benginDate,endDate);
  119. log.info("定时更新结算表的签单时间和缴费日期成功"+new Date().toString());
  120. } catch (Exception e) {
  121. e.printStackTrace();
  122. log.error("定时更新结算表的签单时间和缴费日期失败:{}", e.getMessage());
  123. }
  124. }
  125. }