package com.ydtech.modules.order.timer; import com.xxl.job.core.handler.annotation.XxlJob; import com.ydtech.modules.admin.utils.SliceUpDateUtil; import com.ydtech.modules.order.service.InsOrderPayDateRecordService; import com.ydtech.utils.DateUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.Date; /** * @version * @author: hxl * @Date: 2024/10/22 10:45 * @Description: 定时订单的缴费时间和签单时间 */ @Slf4j @Component @EnableAsync public class UpdateOrderTimer { @Autowired private InsOrderPayDateRecordService insOrderPayDateRecordService; /** * @version * @author: hxl * @Date: 2024/12/27 17:26 * @Description: 每10分钟执行下更新订单时间 */ // @Async // @Scheduled(cron = "0 0/30 * * * ?") @XxlJob("updateOrderDateMinite") public void updateOrderDateMinite() { String benginDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 00:00:00"; String endDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 23:59:59"; updateOrderDate(benginDate,endDate); } /** * @version * @author: hxl * @Date: 2024/10/22 10:47 * @Description: * 中午一点 * 凌晨一点 */ @Async @Scheduled(cron = "0 0 13 * * ?") public void updateOrderDateNoon() { //更新前一周的数据 String benginDate = SliceUpDateUtil.getBeforeDay(new Date(), 1) + " 00:00:00"; String endDate = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 23:59:59"; updateOrderDate(benginDate,endDate); } @Async @Scheduled(cron = "0 0 1 * * ?") public void updateOrderDateBeforeDawn() { String benginDate = SliceUpDateUtil.getBeforeDay(new Date(), 1) + " 00:00:00"; String endDate = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 23:59:59"; updateOrderDate(benginDate,endDate); } private void updateOrderDate(String benginDate,String endDate) { log.info("定时更新订单的签单时间和缴费日期,启动时间:{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); //中午1点到凌晨1点 // String benginDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 00:00:00"; // String endDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 23:59:59"; try { insOrderPayDateRecordService.batchOrderDate(benginDate,endDate); log.info("定时更新订单的签单时间和缴费日期成功"); } catch (Exception e) { e.printStackTrace(); log.error("定时更新订单的签单时间和缴费日期失败:{}", e.getMessage()); } } /** * @version * @author: hxl * @Date: 2024/12/30 9:59 * @Description: 自动更新结算表中签单日期为空的数据 */ // @Async // @Scheduled(cron = "0 0/30 * * * ?") @XxlJob("updateOrderPlyDateMinite") public void updateOrderPlyDateMinite() { String benginDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 00:00:00"; String endDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 23:59:59"; updatePlyDate(benginDate,endDate); } /** * @version * @author: hxl * @Date: 2024/12/30 9:59 * @Description: 晚上一点执行上周数据 */ @Async @Scheduled(cron = "0 0 1 * * ?") public void updateOrderPlyDateBeforeDawn() { String benginDate = SliceUpDateUtil.getBeforeDay(new Date(), 1) + " 00:00:00"; String endDate = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 23:59:59"; updatePlyDate(benginDate,endDate); } /** * @version * @author: hxl * @Date: 2024/12/30 9:59 * @Description: 中午一点更新上周数据 */ @Async @Scheduled(cron = "0 0 13 * * ?") public void updateOrderPlyDateNoon() { String benginDate = SliceUpDateUtil.getBeforeDay(new Date(), 1) + " 00:00:00"; String endDate = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 23:59:59"; updatePlyDate(benginDate,endDate); } private void updatePlyDate(String benginDate,String endDate) { try { insOrderPayDateRecordService.batchOrderPlyOrderDate(benginDate,endDate); log.info("定时更新结算表的签单时间和缴费日期成功"+new Date().toString()); } catch (Exception e) { e.printStackTrace(); log.error("定时更新结算表的签单时间和缴费日期失败:{}", e.getMessage()); } } }