Przeglądaj źródła

订单生成与取消更新宽表

xufeng 2 lat temu
rodzic
commit
49b3b848fd

+ 11 - 4
game-module/game-sdk/src/main/java/com/zanxiang/sdk/common/listener/OrderPaySuccessListener.java

@@ -1,5 +1,6 @@
 package com.zanxiang.sdk.common.listener;
 
+import com.zanxiang.common.enums.OrderStateEnum;
 import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.sdk.domain.dto.PlatformOrderDTO;
 import com.zanxiang.sdk.service.PerformOrderService;
@@ -36,18 +37,24 @@ public class OrderPaySuccessListener {
     @EventListener
     @Async
     public void onApplicationEvent(OrderPaySuccessEvent event) {
-        System.out.println("OrderPaySuccessListener success!");
-        System.out.println(event.getOrderId());
         if (StringUtils.isEmpty(event.getOrderId())) {
             logger.error("缺少订单ID");
             return;
         }
-        logger.info("订单:{} 支付成功履约监听逻辑开始 ------start---------", event.getOrderId());
+        logger.info("订单:{} 支付成功履约监听逻辑 ------start---------", event.getOrderId());
         PlatformOrderDTO orderInfo = platformOrderService.info(event.getOrderId());
         if (Objects.isNull(orderInfo)) {
             logger.error("订单:{} 获取详情失败", event.getOrderId());
             return;
         }
+        //--------非成功支付状态,仅操作宽表信息----------------
+        if (!orderInfo.getStatus().equals(OrderStateEnum.SUCCESS.getCode())) {
+            //生成宽表数据
+            performOrderService.createOrderComplete(orderInfo);
+            logger.info("订单:{} 支付成功履约监听逻辑 ------end---------", event.getOrderId());
+        }
+        //--------成功支付操作----------------
+
         //检查是否为首充(账号首充)
         Boolean isFirstRecharge = performOrderService.checkIsFirstRecharge(orderInfo);
         //cp推送
@@ -59,6 +66,6 @@ public class OrderPaySuccessListener {
         //商户号额度统计更新
         performOrderService.payMerchantTotal(orderInfo);
 
-        logger.info("订单:{} 支付成功履约监听逻辑开始 ------end---------", event.getOrderId());
+        logger.info("订单:{} 支付成功履约监听逻辑 ------end---------", event.getOrderId());
     }
 }

+ 4 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PerformOrderServiceImpl.java

@@ -184,7 +184,10 @@ public class PerformOrderServiceImpl implements PerformOrderService {
     public Boolean checkIsFirstRecharge(PlatformOrderDTO orderInfo) {
         logger.info("订单:{} 检查更新用户是否为首充 ----------start---------", orderInfo.getId());
         try {
-            Order one = platformOrderService.getOne(new QueryWrapper<Order>().lambda().eq(Order::getUserId, orderInfo.getUserId()).ne(Order::getId, orderInfo.getId()).last("limit 1"));
+            Order one = platformOrderService.getOne(new QueryWrapper<Order>().lambda()
+                    .eq(Order::getUserId, orderInfo.getUserId())
+                    .eq(Order::getStatus, OrderStateEnum.SUCCESS.getCode())
+                    .ne(Order::getId, orderInfo.getId()).last("limit 1"));
             if (Objects.isNull(one)) {
                 Order order = new Order();
                 order.setId(order.getId());

+ 6 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/PlatformOrderServiceImpl.java

@@ -51,6 +51,8 @@ public class PlatformOrderServiceImpl extends ServiceImpl<OrderMapper, Order> im
             this.checkParam(platformOrderBO, "create");
             Order data = BeanUtils.copy(platformOrderBO, Order.class);
             if (save(data)) {
+                OrderPaySuccessEvent orderPaySuccessEvent = new OrderPaySuccessEvent(this, data.getId());
+                applicationContext.publishEvent(orderPaySuccessEvent);
                 return data.getId();
             }
         } catch (Exception e) {
@@ -98,7 +100,10 @@ public class PlatformOrderServiceImpl extends ServiceImpl<OrderMapper, Order> im
             order.setAdminNote(StringUtils.isEmpty(platformOrderBO.getAdminNote()) ? null : platformOrderBO.getAdminNote());
             order.setRemark(StringUtils.isEmpty(platformOrderBO.getRemark()) ? null : platformOrderBO.getRemark());
             logger.info("订单取消提交数据 data:{}", order);
-            return updateById(order);
+            boolean result = updateById(order);
+            OrderPaySuccessEvent orderPaySuccessEvent = new OrderPaySuccessEvent(this, platformOrderBO.getId());
+            applicationContext.publishEvent(orderPaySuccessEvent);
+            return result;
         } catch (Exception e) {
             logger.error("订单取消失败 platformOrderBO:{}, error:{}", platformOrderBO, e);
             return false;