Pārlūkot izejas kodu

feat(rabbitmq): 更新订单过期延迟消息配置及处理逻辑- 修改延迟消息发送的交换机和路由键为过期专用配置
-优化订单过期监听器中的日志描述和业务处理逻辑
- 增强空值判断,避免因订单信息不存在导致的异常- 调整定时任务执行策略,使用固定延迟代替 cron 表达式

wzq 6 dienas atpakaļ
vecāks
revīzija
844d6979a7

+ 2 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/quartz/job/TodayExpireOrderJobService.java

@@ -41,7 +41,8 @@ public class TodayExpireOrderJobService {
     /**
      * @Description 统计24小时内即将过期的订单,并发送过期订单延迟消息
      */
-    @Scheduled(cron = "0 24 9 * * ?")
+//    @Scheduled(cron = "0 09 10 * * ?")
+    @Scheduled(fixedDelay = 60000)
     @Transactional(rollbackFor = Exception.class)
     public void execute() {
         log.info("开始执行统计24小时内即将过期的订单,并发送过期订单延迟消息定时任务");

+ 2 - 2
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/rabbitmq/DelayedMessageService.java

@@ -22,8 +22,8 @@ public class DelayedMessageService {
         };
 
         rabbitTemplate.convertAndSend(
-                RabbitMQConfig.ORDER_DELAY_EXCHANGE,
-                RabbitMQConfig.ORDER_DELAY_ROUTING_KEY,
+                RabbitMQConfig.ORDER_EXPIRE_DELAY_EXCHANGE,
+                RabbitMQConfig.ORDER_EXPIRE_DELAY_ROUTING_KEY,
                 message,
                 processor
         );

+ 21 - 13
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/rabbitmq/OrderExpireDelayedMessageListener.java

@@ -40,7 +40,7 @@ public class OrderExpireDelayedMessageListener {
     public void handleMessage(Message message, Channel channel) throws IOException {
         try {
             String msg = new String(message.getBody());
-            log.info("收到延迟消息,订单ID,{}:", msg);
+            log.info("收到延迟消息,订单ID{}:", msg);
 
             // 业务逻辑处理
             orderExpireMessage(msg);
@@ -60,21 +60,29 @@ public class OrderExpireDelayedMessageListener {
 
         AppOrderProInfo appOrderProInfo = appOrderProInfoService.getById(proOrderInfoId);
 
-        if (Objects.equals(appOrderProInfo.getOrderStatus(), CommonConstant.ORDER_STATUS_1)) {
-            log.info("修改子订单:{},支付状态为已过期", appOrderProInfo.getId());
-            appOrderProInfo.setOrderStatus(CommonConstant.ORDER_STATUS_3);
-            appOrderProInfoService.updateById(appOrderProInfo);
+        if (appOrderProInfo == null) {
+            log.info("子订单不存在:{}", proOrderInfoId);
+            return;
         }
 
-        //执行业务代码
-        AppOrder appOrder = appOrderService.getById(appOrderProInfo.getOrderId());
-        List<AppOrderProInfo> appOrderProInfoList = appOrderProInfoService.list(Wrappers.<AppOrderProInfo>lambdaQuery().eq(AppOrderProInfo::getOrderId, appOrderProInfo.getOrderId()));
+        if (ObjectUtil.isNotEmpty(appOrderProInfo)){
+            if (Objects.equals(appOrderProInfo.getOrderStatus(), CommonConstant.ORDER_STATUS_1)) {
+                log.info("修改子订单:{},支付状态为已过期", appOrderProInfo.getId());
+                appOrderProInfo.setOrderStatus(CommonConstant.ORDER_STATUS_3);
+                appOrderProInfoService.updateById(appOrderProInfo);
+            }
 
-        if (appOrderProInfoList.stream().filter(orderProInfo -> Objects.equals(orderProInfo.getOrderStatus(),
-                CommonConstant.ORDER_STATUS_3)).count() == appOrderProInfoList.size()) {
-            log.info("修改订单:{},支付状态为已过期", appOrder.getOrderCode());
-            appOrder.setOrderStatus(CommonConstant.ORDER_STATUS_3);
-            appOrderService.updateById(appOrder);
+            //执行业务代码
+            AppOrder appOrder = appOrderService.getById(appOrderProInfo.getOrderId());
+            List<AppOrderProInfo> appOrderProInfoList = appOrderProInfoService.list(Wrappers.<AppOrderProInfo>lambdaQuery().eq(AppOrderProInfo::getOrderId, appOrderProInfo.getOrderId()));
+
+            if (appOrderProInfoList.stream().filter(orderProInfo -> Objects.equals(orderProInfo.getOrderStatus(),
+                    CommonConstant.ORDER_STATUS_3)).count() == appOrderProInfoList.size()) {
+                log.info("修改订单:{},支付状态为已过期", appOrder.getOrderCode());
+                appOrder.setOrderStatus(CommonConstant.ORDER_STATUS_3);
+                appOrderService.updateById(appOrder);
+            }
         }
+
     }
 }