浏览代码

Merge remote-tracking branch 'origin/package' into package

shishaosong 1 年之前
父节点
当前提交
6f84a2e587
共有 15 个文件被更改,包括 93 次插入8 次删除
  1. 4 0
      game-back/game-back-base/src/main/java/com/zanxiang/game/back/base/pojo/dto/TencentOrderDTO.java
  2. 4 0
      game-back/game-back-base/src/main/java/com/zanxiang/game/back/base/pojo/dto/TtOrderRpcDTO.java
  3. 7 1
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/dto/GameOceanengineOrderLogDTO.java
  4. 7 1
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/dto/GameTencentMiniGameOrderDTO.java
  5. 7 1
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/dto/GameTencentOrderDTO.java
  6. 4 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/entity/GameOceanengineOrderLog.java
  7. 4 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/entity/GameTencentMiniGameOrder.java
  8. 4 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/entity/GameTencentOrder.java
  9. 2 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/rpc/impl/TencentMiniGameBackRpcImpl.java
  10. 2 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/rpc/impl/TencentUserActionBackRpcImpl.java
  11. 2 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/rpc/impl/TtMiniGameBackRpcImpl.java
  12. 3 1
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameOceanengineOrderLogServiceImpl.java
  13. 3 2
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentMiniGameOrderServiceImpl.java
  14. 5 2
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentOrderServiceImpl.java
  15. 35 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/utils/BackPolicyUtil.java

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

@@ -87,4 +87,8 @@ public class TencentOrderDTO implements Serializable {
      * 小游戏回传的时候要
      */
     private String clickId;
+
+    private Long roleId;
+
+    private String roleName;
 }

+ 4 - 0
game-back/game-back-base/src/main/java/com/zanxiang/game/back/base/pojo/dto/TtOrderRpcDTO.java

@@ -64,4 +64,8 @@ public class TtOrderRpcDTO implements Serializable {
      * 支付时间
      */
     private LocalDateTime payTime;
+
+    private Long roleId;
+
+    private String roleName;
 }

+ 7 - 1
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/dto/GameOceanengineOrderLogDTO.java

@@ -44,5 +44,11 @@ public class GameOceanengineOrderLogDTO extends BaseListDTO<GameOceanengineOrder
     private Integer backStatus;
 
     @ApiModelProperty("充值到支付的间隔时间(分)")
-    private Long regPayIntervalTime;
+    private Long regPayIntervalTimeMin;
+
+    @ApiModelProperty("充值到支付的间隔时间(分)")
+    private Long regPayIntervalTimeMax;
+
+    @ApiModelProperty("角色名称")
+    private String roleName;
 }

+ 7 - 1
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/dto/GameTencentMiniGameOrderDTO.java

@@ -70,5 +70,11 @@ public class GameTencentMiniGameOrderDTO extends BaseListDTO<GameTencentMiniGame
     private Integer orderStatus;
 
     @ApiModelProperty("充值到支付的间隔时间(分)")
-    private Long regPayIntervalTime;
+    private Long regPayIntervalTimeMin;
+
+    @ApiModelProperty("充值到支付的间隔时间(分)")
+    private Long regPayIntervalTimeMax;
+
+    @ApiModelProperty("角色名称")
+    private String roleName;
 }

+ 7 - 1
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/dto/GameTencentOrderDTO.java

@@ -76,5 +76,11 @@ public class GameTencentOrderDTO extends BaseListDTO<GameTencentOrder> {
     private Long userActionSetId;
 
     @ApiModelProperty("充值到支付的间隔时间(分)")
-    private Long regPayIntervalTime;
+    private Long regPayIntervalTimeMin;
+
+    @ApiModelProperty("充值到支付的间隔时间(分)")
+    private Long regPayIntervalTimeMax;
+
+    @ApiModelProperty("角色名称")
+    private String roleName;
 }

+ 4 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/entity/GameOceanengineOrderLog.java

@@ -87,4 +87,8 @@ public class GameOceanengineOrderLog implements Serializable {
      */
     private Integer backStatus;
 
+    private Long roleId;
+
+    private String roleName;
+
 }

+ 4 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/entity/GameTencentMiniGameOrder.java

@@ -100,4 +100,8 @@ public class GameTencentMiniGameOrder implements Serializable {
     private Integer backStatus;
 
     private LocalDateTime createTime;
+
+    private Long roleId;
+
+    private String roleName;
 }

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

@@ -112,4 +112,8 @@ public class GameTencentOrder implements Serializable {
      * 回传日志
      */
     private String backLog;
+
+    private Long roleId;
+
+    private String roleName;
 }

+ 2 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/rpc/impl/TencentMiniGameBackRpcImpl.java

@@ -45,6 +45,8 @@ public class TencentMiniGameBackRpcImpl implements ITencentMiniGameBackRpc {
                 .backStatus(BackStatusEnum.NO.getBackStatus())
                 .backPolicyId(dto.getBackPolicyId())
                 .clickId(dto.getClickId())
+                .roleId(dto.getRoleId())
+                .roleName(dto.getRoleName())
                 .build();
         gameTencentMiniGameOrderService.save(orderLog);
         return ResultVO.ok(gameTencentMiniGameOrderService.orderBack(orderLog, false));

+ 2 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/rpc/impl/TencentUserActionBackRpcImpl.java

@@ -48,6 +48,8 @@ public class TencentUserActionBackRpcImpl implements ITencentUserActionBackRpc {
                 .isBack(BackStatusEnum.NO.getBackStatus())
                 .backPolicyId(dto.getBackPolicyId())
                 .userActionSetId(dto.getUserActionSetId())
+                .roleId(dto.getRoleId())
+                .roleName(dto.getRoleName())
                 .build();
         gameTencentOrderService.save(gameTencentOrder);
         return ResultVO.ok(gameTencentOrderService.orderBack(gameTencentOrder, false));

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

@@ -68,6 +68,8 @@ public class TtMiniGameBackRpcImpl implements ITtMiniGameBackRpc {
                 .createTime(dto.getCreateTime())
                 .payTime(dto.getPayTime())
                 .backStatus(BackStatusEnum.NO.getBackStatus())
+                .roleId(dto.getRoleId())
+                .roleName(dto.getRoleName())
                 .build();
         gameOceanengineOrderLogService.save(orderLog);
         return ResultVO.ok(gameOceanengineOrderLogService.callback(orderLog, false));

+ 3 - 1
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameOceanengineOrderLogServiceImpl.java

@@ -116,7 +116,9 @@ public class GameOceanengineOrderLogServiceImpl extends ServiceImpl<GameOceaneng
                 .eq(StringUtils.isNotBlank(dto.getOrderNo()), GameOceanengineOrderLog::getOrderNo, dto.getOrderNo())
                 .eq(null != dto.getBackStatus(), GameOceanengineOrderLog::getBackStatus, dto.getBackStatus())
                 .eq(null != dto.getOrderStatus(), GameOceanengineOrderLog::getOrderStatus, dto.getOrderStatus())
-                .apply(dto.getRegPayIntervalTime() != null && dto.getRegPayIntervalTime() > 0, "if(pay_time is not null, TIMESTAMPDIFF(minute, register_time, pay_time), null) > {0}", dto.getRegPayIntervalTime())
+                .like(StringUtils.isNotBlank(dto.getRoleName()), GameOceanengineOrderLog::getRoleName, dto.getRoleName())
+                .apply(dto.getRegPayIntervalTimeMin() != null, "if(pay_time is not null, TIMESTAMPDIFF(minute, reg_time, pay_time), null) >= {0}", dto.getRegPayIntervalTimeMin())
+                .apply(dto.getRegPayIntervalTimeMax() != null, "if(pay_time is not null, TIMESTAMPDIFF(minute, reg_time, pay_time), null) <= {0}", dto.getRegPayIntervalTimeMax())
                 .orderByDesc(GameOceanengineOrderLog::getCreateTime)
         );
         IPage<GameOceanengineOrderLogVO> result = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());

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

@@ -13,10 +13,8 @@ import com.zanxiang.game.back.base.pojo.enums.OrderStatusEnum;
 import com.zanxiang.game.back.serve.dao.mapper.GameTencentMiniGameOrderMapper;
 import com.zanxiang.game.back.serve.pojo.dto.GameTencentMiniGameOrderDTO;
 import com.zanxiang.game.back.serve.pojo.entity.GameBackPolicy;
-import com.zanxiang.game.back.serve.pojo.entity.GameOceanengineOrderLog;
 import com.zanxiang.game.back.serve.pojo.entity.GameTencentMiniGameOrder;
 import com.zanxiang.game.back.serve.pojo.enums.BackStatusEnum;
-import com.zanxiang.game.back.serve.pojo.vo.GameOceanengineOrderLogVO;
 import com.zanxiang.game.back.serve.pojo.vo.GameTencentMiniGameOrderVO;
 import com.zanxiang.game.back.serve.service.IGameBackPolicyService;
 import com.zanxiang.game.back.serve.service.IGameTencentMiniGameBackLogService;
@@ -124,6 +122,9 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
                 .eq(StringUtils.isNotBlank(dto.getOrderId()), GameTencentMiniGameOrder::getOrderId, dto.getOrderId())
                 .eq(null != dto.getBackStatus(), GameTencentMiniGameOrder::getBackStatus, dto.getBackStatus())
                 .eq(null != dto.getOrderStatus(), GameTencentMiniGameOrder::getOrderStatus, dto.getOrderStatus())
+                .like(StringUtils.isNotBlank(dto.getRoleName()), GameTencentMiniGameOrder::getRoleName, dto.getRoleName())
+                .apply(dto.getRegPayIntervalTimeMin() != null, "if(pay_time is not null, TIMESTAMPDIFF(minute, register_time, pay_time), null) >= {0}", dto.getRegPayIntervalTimeMin())
+                .apply(dto.getRegPayIntervalTimeMax() != null, "if(pay_time is not null, TIMESTAMPDIFF(minute, register_time, pay_time), null) <= {0}", dto.getRegPayIntervalTimeMax())
                 .orderByDesc(GameTencentMiniGameOrder::getCreateTime)
         );
         IPage<GameTencentMiniGameOrderVO> result = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());

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

@@ -92,10 +92,10 @@ public class GameTencentOrderServiceImpl extends ServiceImpl<GameTencentOrderMap
                 doBack = BackPolicyUtil.backOrder(orderLog.getOrderId(), gameBackPolicy, orderLog.getRechargeMoney(),
                         () -> getOne(new LambdaQueryWrapper<GameTencentOrder>()
                                 .eq(GameTencentOrder::getGameId, orderLog.getGameId())
-                                .eq(GameTencentOrder::getWechatAppId, orderLog.getWechatAppId())
                                 .eq(GameTencentOrder::getAdAccountId, orderLog.getAdAccountId())
-                                .eq(GameTencentOrder::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
+                                .eq(GameTencentOrder::getWechatAppId, orderLog.getWechatAppId())
                                 .eq(GameTencentOrder::getWechatOpenid, orderLog.getWechatOpenid())
+                                .eq(GameTencentOrder::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
                                 .last("limit 1")
                         ) == null, backUnit -> Long.valueOf(list(new LambdaQueryWrapper<GameTencentOrder>()
                                         .eq(GameTencentOrder::getGameId, orderLog.getGameId())
@@ -133,6 +133,9 @@ public class GameTencentOrderServiceImpl extends ServiceImpl<GameTencentOrderMap
                 .eq(StringUtils.isNotBlank(dto.getOrderId()), GameTencentOrder::getOrderId, dto.getOrderId())
                 .eq(null != dto.getIsBack(), GameTencentOrder::getIsBack, dto.getIsBack())
                 .eq(null != dto.getOrderStatus(), GameTencentOrder::getOrderStatus, dto.getOrderStatus())
+                .like(StringUtils.isNotBlank(dto.getRoleName()), GameTencentOrder::getRoleName, dto.getRoleName())
+                .apply(dto.getRegPayIntervalTimeMin() != null, "if(pay_time is not null, TIMESTAMPDIFF(minute, register_time, pay_time), null) >= {0}", dto.getRegPayIntervalTimeMin())
+                .apply(dto.getRegPayIntervalTimeMax() != null, "if(pay_time is not null, TIMESTAMPDIFF(minute, register_time, pay_time), null) <= {0}", dto.getRegPayIntervalTimeMax())
                 .orderByDesc(GameTencentOrder::getCreateTime)
         );
         IPage<GameTencentOrderVO> result = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());

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

@@ -3,6 +3,7 @@ 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.JsonUtil;
 import com.zanxiang.module.util.NumberUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.RandomUtils;
@@ -20,6 +21,37 @@ public class BackPolicyUtil {
         Arrays.sort(RECHARGE_LEVEL);
     }
 
+    public static void main(String[] args) {
+        GameBackPolicy backPolicy = GameBackPolicy.builder()
+                .id(8L)
+                .backPolicyName("只传首充")
+                .firstMinMoney(3000L)
+                .firstMinMoneyType(0)
+                .firstMinMoneyRate("1:0")
+                .firstMaxMoney(19800L)
+                .firstMaxMoneyType(0)
+                .firstMaxMoneyRate("1:0")
+                .firstOtherMoneyType(0)
+                .firstOtherMoneyRate("1:0")
+                .rechargeMinMoney(3000L)
+                .rechargeMinMoneyType(1)
+                .rechargeMinMoneyRate("0")
+                .rechargeMaxMoney(19800L)
+                .rechargeMaxMoneyType(1)
+                .rechargeMaxMoneyRate("0")
+                .rechargeOtherMoneyType(1)
+                .rechargeOtherMoneyRate("0")
+                .levelDown(0)
+                .build();
+        String orderId = "2023072623022469103393434";
+        long money = 800;
+        System.out.println(backOrder(orderId, backPolicy, money, () -> {
+            return true;
+        }, (count) -> {
+            return 0;
+        }));
+    }
+
     /**
      * 订单回传
      *
@@ -33,6 +65,7 @@ public class BackPolicyUtil {
             log.error("订单 id[{}]通过回传策略[null]判断后,是否回传:{}.", orderId, true);
             return true;
         }
+        log.error("----orderId: {}, backPolicy: {}, money: {}", orderId, JsonUtil.toString(gameBackPolicy), rechargeMoney);
         Integer firstType;
         String firstRate;
         Integer rechargeType;
@@ -66,9 +99,11 @@ public class BackPolicyUtil {
             backRate = firstRate;
         } else {
             if (firstOrder.isFirstOrder()) {
+                log.error("订单{}是首单", orderId);
                 backType = firstType;
                 backRate = firstRate;
             } else {
+                log.error("订单{}不是首单", orderId);
                 backType = rechargeType;
                 backRate = rechargeRate;
             }