Browse Source

头条回传失败

wcc 1 year ago
parent
commit
70a58fa9c3

+ 2 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/entity/GameOceanengineUserLog.java

@@ -81,4 +81,6 @@ public class GameOceanengineUserLog implements Serializable {
      */
     private Integer backStatus;
 
+    private LocalDateTime createTime;
+
 }

+ 3 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/rpc/impl/TtMiniGameBackRpcImpl.java

@@ -14,6 +14,8 @@ import org.apache.dubbo.config.annotation.DubboService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDateTime;
+
 @Slf4j
 @DubboService
 public class TtMiniGameBackRpcImpl implements ITtMiniGameBackRpc {
@@ -40,6 +42,7 @@ public class TtMiniGameBackRpcImpl implements ITtMiniGameBackRpc {
                 .reqId(dto.getReqId())
                 .activeTime(dto.getActiveTime())
                 .backStatus(BackStatusEnum.NO.getBackStatus())
+                .createTime(LocalDateTime.now())
                 .build();
         gameOceanengineUserLogService.save(userLog);
         return ResultVO.ok(gameOceanengineUserLogService.callback(userLog, false));

+ 2 - 1
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameOceanengineUserLogServiceImpl.java

@@ -58,6 +58,7 @@ public class GameOceanengineUserLogServiceImpl extends ServiceImpl<GameOceanengi
                 .eq(null != dto.getBackStatus(), GameOceanengineUserLog::getBackStatus, dto.getBackStatus())
                 .eq(null != dto.getProjectId(), GameOceanengineUserLog::getProjectId, dto.getProjectId())
                 .eq(null != dto.getPromotionId(), GameOceanengineUserLog::getPromotionId, dto.getPromotionId())
+                .orderByDesc(GameOceanengineUserLog::getCreateTime)
         ).convert(item -> BeanUtil.copy(item, GameOceanengineUserLogVO.class));
     }
 
@@ -65,7 +66,7 @@ public class GameOceanengineUserLogServiceImpl extends ServiceImpl<GameOceanengi
     public boolean oceanengineUserReport(List<Long> ids) {
         baseMapper.selectBatchIds(ids).stream()
                 .filter(item -> !item.getBackStatus().equals(BackStatusEnum.SUCCESS.getBackStatus()))
-                .forEach(oceanengineUserLog -> callback(oceanengineUserLog,true));
+                .forEach(oceanengineUserLog -> callback(oceanengineUserLog, true));
         return true;
     }
 

+ 2 - 3
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentOrderServiceImpl.java

@@ -65,9 +65,8 @@ public class GameTencentOrderServiceImpl extends ServiceImpl<GameTencentOrderMap
         if (mustBack) {
             doBack = true;
         } else {
-            if (!Objects.equals(orderLog.getOrderStatus(), OrderStatusEnum.SUCCESS_PAY.getValue()) &&
-                    !Objects.equals(orderLog.getOrderStatus(), OrderStatusEnum.SUCCESS_PAY.getValue())) {
-                // 只要回传 下单、支付行为
+            if (!Objects.equals(orderLog.getOrderStatus(), OrderStatusEnum.SUCCESS_PAY.getValue())) {
+                // 只要回传 支付行为
                 return false;
             }
         }

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

@@ -3,8 +3,10 @@ package com.zanxiang.game.back.serve.utils;
 import com.github.sd4324530.jtuple.Tuple2;
 import com.github.sd4324530.jtuple.Tuples;
 import com.zanxiang.game.back.serve.pojo.entity.GameBackPolicy;
+import com.zanxiang.module.util.NumberUtil;
 import org.apache.commons.lang3.RandomUtils;
 
+import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.Objects;
 import java.util.function.Function;
@@ -73,6 +75,9 @@ public class BackPolicyUtil {
             String[] temp = backRate.split(":");
             int backCount = Integer.parseInt(temp[0]);
             int ignoreCount = Integer.parseInt(temp[1]);
+            if (backCount == 0) {
+                return false;
+            }
             if (ignoreCount == 0) {
                 return true;
             }
@@ -80,7 +85,7 @@ public class BackPolicyUtil {
             return isBackCount < backCount;
         } else if (Objects.equals(backType, GameBackPolicy.POLICY_TYPE_RANDOM_RATE)) {
             // 随机概率回传
-            return RandomUtils.nextInt(0, 100) <= Integer.parseInt(backRate);
+            return RandomUtils.nextInt(0, 100) <= NumberUtil.multiply100(new BigDecimal(backRate)).intValue();
         } else {
             throw new RuntimeException("回传策略[" + gameBackPolicy.getId() + "]配置错误,未知的回传类型:" + backType);
         }