Explorar o código

修改内容:回传订单添加字段

shishaosong %!s(int64=2) %!d(string=hai) anos
pai
achega
fb64140c1e

+ 8 - 0
game-back/game-back-base/src/main/java/com/zanxiang/game/back/base/tencent/pojo/dto/TencentOrderDTO.java

@@ -64,5 +64,13 @@ public class TencentOrderDTO implements Serializable {
      */
     private String wechatAppId;
 
+    /**
+     * 支付状态,0 : 预下单, 1 : 待支付,2 : 支付成功,-1 : 已取消
+     */
+    private Integer orderStatus;
 
+    /**
+     * 支付时间
+     */
+    private LocalDateTime payTime;
 }

+ 8 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/entity/GameTencentOrder.java

@@ -81,5 +81,13 @@ public class GameTencentOrder implements Serializable {
      */
     private Integer isBack;
 
+    /**
+     * 支付状态,0 : 预下单, 1 : 待支付,2 : 支付成功,-1 : 已取消
+     */
+    private Integer orderStatus;
 
+    /**
+     * 支付时间
+     */
+    private LocalDateTime payTime;
 }

+ 23 - 4
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameBackPolicyServiceImpl.java

@@ -62,13 +62,20 @@ public class GameBackPolicyServiceImpl extends ServiceImpl<GameBackPolicyMapper,
     private IUserActionSetRpc userActionSetRpc;
     @DubboReference(providedBy = ErpServer.SERVER_DUBBO_NAME)
     private ISysUserRpc sysUserRpc;
+    /**
+     * 支付状态,0 : 预下单, 1 : 待支付,2 : 支付成功,-1 : 已取消
+     */
+    private static final Integer COMPLETE_ORDER = 0;
+    private static final Integer PURCHASE = 2;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean tencentOrderBack(TencentOrderDTO dto) {
         GameTencentOrder gameTencentOrder = gameTencentOrderService.getOne(new LambdaQueryWrapper<GameTencentOrder>()
                 .eq(GameTencentOrder::getWechatAppId, dto.getWechatAppId())
-                .eq(GameTencentOrder::getOrderId, dto.getOrderId()));
+                .eq(GameTencentOrder::getOrderId, dto.getOrderId())
+                .eq(GameTencentOrder::getOrderStatus,dto.getOrderStatus()));
+
         //订单保存
         if (null == gameTencentOrder){
             gameTencentOrder = GameTencentOrder.builder()
@@ -80,15 +87,27 @@ public class GameBackPolicyServiceImpl extends ServiceImpl<GameBackPolicyMapper,
                     .registerTime(dto.getRegisterTime())
                     .wechatAppId(dto.getWechatAppId())
                     .wechatOpenid(dto.getWechatOpenid())
+                    .orderStatus(dto.getOrderStatus())
+                    .payTime(dto.getPayTime())
                     .isBack(0)
                     .build();
             gameTencentOrderService.save(gameTencentOrder);
         }
+        if (!dto.getOrderStatus().equals(COMPLETE_ORDER) && !dto.getOrderStatus().equals(PURCHASE)) {
+            return true;
+        }
+
+        String actionType;
+        if (dto.getOrderStatus().equals(PURCHASE)){
+            actionType = ActionTypeEnum.PURCHASE.getActionType();
+        }else {
+            actionType = ActionTypeEnum.COMPLETE_ORDER.getActionType();
+        }
         DataReportOfAppIdRpcDTO dataReportOfAppIdRpcDTO = DataReportOfAppIdRpcDTO.builder()
                 .appId(dto.getWechatAppId())
                 .action(UserActionRpcDTO.builder()
                         .actionTime(dto.getRechargeTime())
-                        .actionType(ActionTypeEnum.PURCHASE.getActionType())
+                        .actionType(actionType)
                         .userId(UserActionRpcDTO.UserIdRpcDTO.builder()
                                 .wechatAppId(dto.getWechatAppId())
                                 .wechatOpenid(dto.getWechatOpenid())
@@ -99,9 +118,9 @@ public class GameBackPolicyServiceImpl extends ServiceImpl<GameBackPolicyMapper,
         GameTencentBackLog gameTencentBackLog = GameTencentBackLog.builder()
                 .gameId(dto.getGameId())
                 .adAccountId(dto.getAdAccountId())
-                .actionTime(dto.getRechargeTime())
+                .actionTime(dto.getOrderStatus().equals(PURCHASE) ? dto.getPayTime() : dto.getRechargeTime())
                 .createTime(LocalDateTime.now())
-                .actionType(ActionTypeEnum.PURCHASE.getActionType())
+                .actionType(actionType)
                 .orderId(dto.getOrderId())
                 .wechatAppId(dto.getWechatAppId())
                 .wechatOpenid(dto.getWechatOpenid())

+ 1 - 1
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/utils/BackPolicyUtil.java

@@ -26,6 +26,6 @@ public class BackPolicyUtil {
         // 生成一个0到1之间的随机数
         double randomValue = random.nextDouble();
         // 如果随机数小于成功概率,则返回true,否则返回false
-        return successProbability.compareTo(BigDecimal.valueOf(randomValue)) > 0;
+        return successProbability.compareTo(BigDecimal.valueOf(randomValue)) >= 0;
     }
 }