Ver código fonte

回传策略的 bug

wcc 1 ano atrás
pai
commit
d2f7f6667a
13 arquivos alterados com 61 adições e 3 exclusões
  1. 2 0
      game-back/game-back-base/src/main/java/com/zanxiang/game/back/base/pojo/dto/TtOrderRpcDTO.java
  2. 3 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/dto/GameOceanengineOrderLogDTO.java
  3. 3 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/dto/GameTencentMiniGameOrderDTO.java
  4. 3 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/dto/GameTencentOrderDTO.java
  5. 2 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/entity/GameOceanengineOrderLog.java
  6. 6 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/vo/GameOceanengineOrderLogVO.java
  7. 3 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/vo/GameTencentMiniGameOrderVO.java
  8. 3 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/vo/GameTencentOrderVO.java
  9. 1 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/rpc/impl/TtMiniGameBackRpcImpl.java
  10. 5 1
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameOceanengineOrderLogServiceImpl.java
  11. 4 1
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentMiniGameOrderServiceImpl.java
  12. 4 1
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentOrderServiceImpl.java
  13. 22 0
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/utils/OrderUtil.java

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

@@ -54,6 +54,8 @@ public class TtOrderRpcDTO implements Serializable {
      * 支付状态,0 : 预下单, 1 : 待支付,2 : 支付成功,-1 : 已取消
      */
     private Integer orderStatus;
+
+    private LocalDateTime regTime;
     /**
      * 下单时间
      */

+ 3 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/dto/GameOceanengineOrderLogDTO.java

@@ -42,4 +42,7 @@ public class GameOceanengineOrderLogDTO extends BaseListDTO<GameOceanengineOrder
 
     @ApiModelProperty("回传状态")
     private Integer backStatus;
+
+    @ApiModelProperty("充值到支付的间隔时间(分)")
+    private Long regPayIntervalTime;
 }

+ 3 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/dto/GameTencentMiniGameOrderDTO.java

@@ -68,4 +68,7 @@ public class GameTencentMiniGameOrderDTO extends BaseListDTO<GameTencentMiniGame
      */
     @ApiModelProperty("支付状态,0 : 预下单, 1 : 待支付,2 : 支付成功,-1 : 已取消")
     private Integer orderStatus;
+
+    @ApiModelProperty("充值到支付的间隔时间(分)")
+    private Long regPayIntervalTime;
 }

+ 3 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/dto/GameTencentOrderDTO.java

@@ -74,4 +74,7 @@ public class GameTencentOrderDTO extends BaseListDTO<GameTencentOrder> {
      */
     @ApiModelProperty("数据源ID")
     private Long userActionSetId;
+
+    @ApiModelProperty("充值到支付的间隔时间(分)")
+    private Long regPayIntervalTime;
 }

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

@@ -80,6 +80,8 @@ public class GameOceanengineOrderLog implements Serializable {
      * 支付时间
      */
     private LocalDateTime payTime;
+
+    private LocalDateTime regTime;
     /**
      * 回传状态
      */

+ 6 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/vo/GameOceanengineOrderLogVO.java

@@ -61,6 +61,12 @@ public class GameOceanengineOrderLogVO {
     @ApiModelProperty("支付时间")
     private LocalDateTime payTime;
 
+    @ApiModelProperty("注册时间")
+    private LocalDateTime regTime;
+
     @ApiModelProperty("回传状态 -1:回传失败;0:未回传;1:回传")
     private Integer backStatus;
+
+    @ApiModelProperty("注册到付费的间隔时间")
+    private String regPayIntervalTime;
 }

+ 3 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/vo/GameTencentMiniGameOrderVO.java

@@ -106,4 +106,7 @@ public class GameTencentMiniGameOrderVO {
 
     @ApiModelProperty("创建时间")
     private LocalDateTime createTime;
+
+    @ApiModelProperty("注册到付费的间隔时间")
+    private String regPayIntervalTime;
 }

+ 3 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/pojo/vo/GameTencentOrderVO.java

@@ -122,4 +122,7 @@ public class GameTencentOrderVO {
      */
     @ApiModelProperty("回传日志")
     private String backLog;
+
+    @ApiModelProperty("注册到付费的间隔时间")
+    private String regPayIntervalTime;
 }

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

@@ -61,6 +61,7 @@ public class TtMiniGameBackRpcImpl implements ITtMiniGameBackRpc {
                 .accountReportToken(dto.getAccountReport().getReportToken())
                 .accountReportUrl(dto.getAccountReport().getReportUrl())
                 .agentKey(dto.getAgentKey())
+                .regTime(dto.getRegTime())
                 .orderNo(dto.getOrderId())
                 .amount(dto.getRechargeMoney())
                 .orderStatus(dto.getOrderStatus())

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

@@ -18,6 +18,7 @@ import com.zanxiang.game.back.serve.service.IGameOceanengineBackLogService;
 import com.zanxiang.game.back.serve.service.IGameOceanengineOrderLogService;
 import com.zanxiang.game.back.serve.service.IGameOceanengineUserLogService;
 import com.zanxiang.game.back.serve.utils.BackPolicyUtil;
+import com.zanxiang.game.back.serve.utils.OrderUtil;
 import com.zanxiang.game.module.base.ServerInfo;
 import com.zanxiang.game.module.base.pojo.vo.AgentRpcVO;
 import com.zanxiang.game.module.base.rpc.IAgentRpc;
@@ -115,6 +116,7 @@ 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())
                 .orderByDesc(GameOceanengineOrderLog::getCreateTime)
         );
         IPage<GameOceanengineOrderLogVO> result = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
@@ -149,7 +151,9 @@ public class GameOceanengineOrderLogServiceImpl extends ServiceImpl<GameOceaneng
         if (log == null) {
             return null;
         }
-        return BeanUtil.copy(log, GameOceanengineOrderLogVO.class);
+        GameOceanengineOrderLogVO vo = BeanUtil.copy(log, GameOceanengineOrderLogVO.class);
+        vo.setRegPayIntervalTime(OrderUtil.regPayIntervalTime(log.getPayTime(), log.getRegTime()));
+        return vo;
     }
 
     @Override

+ 4 - 1
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentMiniGameOrderServiceImpl.java

@@ -22,6 +22,7 @@ import com.zanxiang.game.back.serve.service.IGameBackPolicyService;
 import com.zanxiang.game.back.serve.service.IGameTencentMiniGameBackLogService;
 import com.zanxiang.game.back.serve.service.IGameTencentMiniGameOrderService;
 import com.zanxiang.game.back.serve.utils.BackPolicyUtil;
+import com.zanxiang.game.back.serve.utils.OrderUtil;
 import com.zanxiang.game.module.base.ServerInfo;
 import com.zanxiang.game.module.base.pojo.vo.AgentRpcVO;
 import com.zanxiang.game.module.base.rpc.IAgentRpc;
@@ -165,6 +166,8 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
     }
 
     private GameTencentMiniGameOrderVO toVOSimple(GameTencentMiniGameOrder orderLog) {
-        return BeanUtil.copy(orderLog, GameTencentMiniGameOrderVO.class);
+        GameTencentMiniGameOrderVO vo = BeanUtil.copy(orderLog, GameTencentMiniGameOrderVO.class);
+        vo.setRegPayIntervalTime(OrderUtil.regPayIntervalTime(orderLog.getPayTime(), orderLog.getRegisterTime()));
+        return vo;
     }
 }

+ 4 - 1
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentOrderServiceImpl.java

@@ -26,6 +26,7 @@ import com.zanxiang.game.back.serve.service.IGameTencentBackLogService;
 import com.zanxiang.game.back.serve.service.IGameTencentOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.game.back.serve.utils.BackPolicyUtil;
+import com.zanxiang.game.back.serve.utils.OrderUtil;
 import com.zanxiang.game.module.base.ServerInfo;
 import com.zanxiang.game.module.base.pojo.vo.AgentRpcVO;
 import com.zanxiang.game.module.base.rpc.IAgentRpc;
@@ -165,7 +166,9 @@ public class GameTencentOrderServiceImpl extends ServiceImpl<GameTencentOrderMap
         if (log == null) {
             return null;
         }
-        return BeanUtil.copy(log, GameTencentOrderVO.class);
+        GameTencentOrderVO vo = BeanUtil.copy(log, GameTencentOrderVO.class);
+        vo.setRegPayIntervalTime(OrderUtil.regPayIntervalTime(log.getPayTime(), log.getRegisterTime()));
+        return vo;
     }
 
     @Override

+ 22 - 0
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/utils/OrderUtil.java

@@ -0,0 +1,22 @@
+package com.zanxiang.game.back.serve.utils;
+
+import com.zanxiang.module.util.DateUtil;
+
+import java.time.LocalDateTime;
+
+public class OrderUtil {
+
+    public static String regPayIntervalTime(LocalDateTime payTime, LocalDateTime regTime) {
+        if (payTime == null || regTime == null) {
+            return "--";
+        }
+        // 间隔分钟数
+        long intervalMinute = (DateUtil.localDateTimeToSecond(payTime) - DateUtil.localDateTimeToSecond(regTime)) / 60;
+        long hour = intervalMinute / 60;
+        if (intervalMinute % 60 > 0) {
+            return hour + "小时" + (intervalMinute % 60) + "分";
+        } else {
+            return hour + "小时";
+        }
+    }
+}