Browse Source

Merge branch 'dev/2024/0625/update-admin-Y' of Harper/feifan-backend-zx-admin into master

修改支付定时器
Yangzw 8 months ago
parent
commit
92567226d9

+ 24 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/mq/consumer/order/OrderConsumer.java

@@ -0,0 +1,24 @@
+package cn.newfeifan.mall.module.trade.mq.consumer.order;
+
+import cn.newfeifan.mall.module.trade.service.order.TradeOrderUpdateService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Component
+@Slf4j
+public class OrderConsumer {
+
+    @Resource
+    private TradeOrderUpdateService tradeOrderUpdateService;
+
+    @EventListener
+    @Async // Spring Event 默认在 Producer 发送的线程,通过 @Async 实现异步
+    public void onMessage(Long payOrderId) {
+        //修改订单状态,并计算权益
+        tradeOrderUpdateService.updateOrderPaid(payOrderId);
+    }
+}

+ 0 - 6
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderUpdateServiceImpl.java

@@ -1079,9 +1079,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
          */
         String grossProfitPerc = orderPercentageDO.getGrossProfitPerc();
 
-        Integer allTradeOrderTotalPrice = 0;//所有订单的总金额
-        Long allTradeOrderTotalFreezeAmount = 0L;//所有订单用户总的冻结积分
-
         /*
          * 购物本人自得 百分比
          */
@@ -1103,7 +1100,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
         for (TradeOrderDO tradeOrderDO : TradeOrderDOList) {
 
             Long tradeOrderId = tradeOrderDO.getId();
-            allTradeOrderTotalPrice += tradeOrderDO.getTotalPrice();
 
 //            System.out.println("#########updateOrderPaid####tradeOrderId:"+tradeOrderId);
 
@@ -1214,8 +1210,6 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
             log.warn("[TradeOrderUpdateServiceImpl.updateOrderPaid]$$$:[tradeOrderId({}),ancesterUserId({}),totalAncestorFreezeAmount({})]" + new Date(),
                     tradeOrderId, ancesterUserId, totalAncestorFreezeAmount);
 
-            allTradeOrderTotalFreezeAmount += totalFreezeAmount;//用户获得总的待确权冻结积分
-
             // 发送给微信消息给系统用户待发货消息
             sentWcChatMessage(order);
         }

+ 25 - 0
feifan-module-pay/feifan-module-pay-biz/src/main/java/cn/newfeifan/mall/module/pay/order/TradeOrderProducer.java

@@ -0,0 +1,25 @@
+package cn.newfeifan.mall.module.pay.order;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.ApplicationContext;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@Component
+public class TradeOrderProducer {
+    @Resource
+    private ApplicationContext applicationContext;
+
+
+    /**
+     * 发送订单消息
+     *
+     * @param payOrderId 支付订单id
+     */
+    public void sendTradeOrderMessage(Long payOrderId) {
+        applicationContext.publishEvent(payOrderId);
+    }
+
+}

+ 5 - 1
feifan-module-pay/feifan-module-pay-biz/src/main/java/cn/newfeifan/mall/module/pay/service/order/PayOrderServiceImpl.java

@@ -28,6 +28,7 @@ import cn.newfeifan.mall.module.pay.dal.redis.no.PayNoRedisDAO;
 import cn.newfeifan.mall.module.pay.enums.notify.PayNotifyTypeEnum;
 import cn.newfeifan.mall.module.pay.enums.order.PayOrderStatusEnum;
 import cn.newfeifan.mall.module.pay.framework.pay.config.PayProperties;
+import cn.newfeifan.mall.module.pay.order.TradeOrderProducer;
 import cn.newfeifan.mall.module.pay.service.app.PayAppService;
 import cn.newfeifan.mall.module.pay.service.channel.PayChannelService;
 import cn.newfeifan.mall.module.pay.service.notify.PayNotifyService;
@@ -76,6 +77,9 @@ public class PayOrderServiceImpl implements PayOrderService {
     @Resource
     private PayNotifyService notifyService;
 
+    @Resource
+    private TradeOrderProducer tradeOrderProducer;
+
     @Override
     public PayOrderDO getOrder(Long id) {
         return orderMapper.selectById(id);
@@ -361,7 +365,7 @@ public class PayOrderServiceImpl implements PayOrderService {
         }
 
         //如果确实是漏了订单未支付成功,那就补充回来
-
+        tradeOrderProducer.sendTradeOrderMessage(order.getId());
 
         log.info("[updateOrderExtensionSuccess][order({}) 更新为已支付]", order.getId());
         return false;