Prechádzať zdrojové kódy

feat : 回传降档兼容

bilingfeng 9 mesiacov pred
rodič
commit
9f0913d320

+ 1 - 1
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/SDKApplication.java

@@ -23,7 +23,7 @@ public class SDKApplication {
 
     public static void main(String[] args) {
         SpringApplication.run(SDKApplication.class, args);
-        System.out.println("赞象SDK服务启动成功 <CP数据推送新增log日志记录> ( ´・・)ノ(._.`) \n" +
+        System.out.println("赞象SDK服务启动成功 <回传金额降档兼容> ( ´・・)ノ(._.`) \n" +
                 " ___________ _   __\n" +
                 "/  ___|  _  \\ | / /\n" +
                 "\\ `--.| | | | |/ / \n" +

+ 1 - 1
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/controller/CallBackController.java

@@ -44,7 +44,7 @@ public class CallBackController {
     @ApiOperation(value = "判断事件是否回传")
     @PostMapping("/call/judge")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
-    public ResultVO<Boolean> callBackJudge(@Validated @RequestBody CallBackControlParam param, @ValidLogin UserData userData) {
+    public ResultVO<Map<String, Object>> callBackJudge(@Validated @RequestBody CallBackControlParam param, @ValidLogin UserData userData) {
         return ResultVO.ok(callBackService.callBackJudge(param, userData));
     }
 }

+ 1 - 1
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/ICallBackService.java

@@ -22,7 +22,7 @@ public interface ICallBackService {
      * @param userData : 玩家信息
      * @return : 返回是否回传
      */
-    boolean callBackJudge(CallBackControlParam param, UserData userData);
+    Map<String, Object> callBackJudge(CallBackControlParam param, UserData userData);
 
     /**
      * 用户回传

+ 56 - 34
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/CallBackServiceImpl.java

@@ -26,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Objects;
 import java.util.concurrent.TimeUnit;
@@ -66,6 +67,9 @@ public class CallBackServiceImpl implements ICallBackService {
     @Autowired
     private IGameExtService gameExtService;
 
+    @Autowired
+    private IOrderService orderService;
+
     @Autowired
     private IGameBackLogService gameBackLogService;
 
@@ -73,15 +77,13 @@ public class CallBackServiceImpl implements ICallBackService {
     private IDistributedLockComponent distributedLockComponent;
 
     @Override
-    public boolean callBackJudge(CallBackControlParam param, UserData userData) {
+    public Map<String, Object> callBackJudge(CallBackControlParam param, UserData userData) {
         log.error("事件回传判断, param : {},  userData : {}", JsonUtil.toString(param), JsonUtil.toString(userData));
+        Map<String, Object> resultMap = new HashMap<>(5);
+        resultMap.put("callBackTypeEnum", param.getCallBackTypeEnum().getValue());
+        resultMap.put("userId", userData.getUserId());
         //事件类型枚举
         CallBackTypeEnum callBackTypeEnum = param.getCallBackTypeEnum();
-        //登录(老账号登录)
-        if (Objects.equals(callBackTypeEnum, CallBackTypeEnum.CALL_BACK_LOGIN_IN)) {
-            log.error("事件回传判断, 账号登录不回传, param : {},  userData : {}", JsonUtil.toString(param), JsonUtil.toString(userData));
-            return Boolean.FALSE;
-        }
         //线程锁
         String lockKey = RedisKeyConstant.CALL_BACK_JUDGE_LOCK + callBackTypeEnum.getValue() + "_" + userData.getUserId();
         if (Objects.equals(callBackTypeEnum, CallBackTypeEnum.CALL_BACK_ACTIVATE)) {
@@ -93,51 +95,71 @@ public class CallBackServiceImpl implements ICallBackService {
         //上锁
         if (!distributedLockComponent.doLock(lockKey, 0L, 1L, TimeUnit.MINUTES)) {
             log.error("重复请求触发线程锁, 直接返回false, lockKey : {}", lockKey);
-            return Boolean.FALSE;
+            resultMap.put("callBack", Boolean.FALSE);
+            return resultMap;
         }
         Game game = gameService.getById(userData.getGameId());
         //判断游戏状态
         if (Objects.equals(game.getStatus(), 2)) {
-            log.error("事件回传判断, 测试游戏接入中, 直接返回true, param : {},  userData : {}", JsonUtil.toString(param), JsonUtil.toString(userData));
-            return Boolean.TRUE;
+            resultMap.put("callBack", Boolean.TRUE);
+            if (Objects.equals(callBackTypeEnum, CallBackTypeEnum.CALL_BACK_PAY_ORDER)) {
+                PlatformOrderDTO platformOrderDTO = orderService.getByOrderId(param.getOrderId());
+                resultMap.put("amount", platformOrderDTO.getAmount());
+            }
+            return resultMap;
         }
         //查询玩家
         User user = userService.getById(userData.getUserId());
         //不存在渠道
         Agent agent = agentService.getById(user.getAgentId());
         if (agent == null) {
-            log.error("事件回传判断, 渠道信息不存在, 直接返回false, param : {},  userData : {}", JsonUtil.toString(param), JsonUtil.toString(userData));
-            return Boolean.FALSE;
+            resultMap.put("callBack", Boolean.FALSE);
+            return resultMap;
         }
         try {
-            //注册(新创建账号)
-            if (Objects.equals(callBackTypeEnum, CallBackTypeEnum.CALL_BACK_REGISTER)) {
-                TtAppUserBackQueryRpcDTO transform = this.transform(user.getId(), agent);
-                return ttAppBackRpc.userBackQuery(transform).getData();
-            }
-            //激活(创建角色)
-            if (Objects.equals(callBackTypeEnum, CallBackTypeEnum.CALL_BACK_ACTIVATE)) {
-                if (Strings.isBlank(param.getRoleId())) {
-                    log.error("事件回传判断, 角色Id参数不存在, param : {},  userData : {}", JsonUtil.toString(param), JsonUtil.toString(userData));
-                    return Boolean.FALSE;
-                }
-                TtAppRoleRegisterBackQueryRpcDTO transform = this.transform(user.getId(), agent, param.getRoleId());
-                return ttAppBackRpc.roleRegisterBackQuery(transform).getData();
-            }
-            //支付
-            if (Objects.equals(callBackTypeEnum, CallBackTypeEnum.CALL_BACK_PAY_ORDER)) {
-                if (Strings.isBlank(param.getOrderId())) {
-                    log.error("事件回传判断, 订单Id参数不存在, param : {},  userData : {}", JsonUtil.toString(param), JsonUtil.toString(userData));
-                    return Boolean.FALSE;
-                }
-                TtAppOrderBackQueryRpcDTO transform = this.transform(user.getId(), param.getOrderId(), agent);
-                return ttAppBackRpc.orderBackQuery(transform).getData();
+            switch (callBackTypeEnum) {
+                case CALL_BACK_REGISTER:
+                    // 注册(新创建账号)
+                    TtAppUserBackQueryRpcDTO userTransform = this.transform(user.getId(), agent);
+                    resultMap.put("callBack", ttAppBackRpc.userBackQuery(userTransform).getData());
+                    break;
+                case CALL_BACK_LOGIN_IN:
+                    // 登录(老账号登录)
+                    resultMap.put("callBack", Boolean.FALSE);
+                    break;
+                case CALL_BACK_ACTIVATE:
+                    // 激活(创建角色)
+                    if (Strings.isBlank(param.getRoleId())) {
+                        resultMap.put("callBack", Boolean.FALSE);
+                        resultMap.put("roleId", "unknown");
+                        break;
+                    }
+                    TtAppRoleRegisterBackQueryRpcDTO roleTransform = this.transform(user.getId(), agent, param.getRoleId());
+                    resultMap.put("roleId", param.getRoleId());
+                    resultMap.put("callBack", ttAppBackRpc.roleRegisterBackQuery(roleTransform).getData());
+                    break;
+                case CALL_BACK_PAY_ORDER:
+                    // 支付
+                    if (Strings.isBlank(param.getOrderId())) {
+                        resultMap.put("callBack", Boolean.FALSE);
+                        resultMap.put("orderId", "unknown");
+                        break;
+                    }
+                    TtAppOrderBackQueryRpcDTO orderTransform = this.transform(user.getId(), param.getOrderId(), agent);
+                    resultMap.put("orderId", param.getOrderId());
+                    resultMap.put("callBack", ttAppBackRpc.orderBackQuery(orderTransform).getData());
+                    break;
+                default:
+                    // 处理未知类型
+                    resultMap.put("callBack", Boolean.FALSE);
             }
         } catch (Exception e) {
             log.error("事件回传判断, 出现异常, param : {},  userData : {}, e : {}", JsonUtil.toString(param),
                     JsonUtil.toString(userData), e.getMessage(), e);
+            resultMap.put("callBack", Boolean.FALSE);
         }
-        return Boolean.FALSE;
+        //返回结果
+        return resultMap;
     }
 
     @Override

+ 0 - 2
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/CpPushDataServiceImpl.java

@@ -225,7 +225,6 @@ public class CpPushDataServiceImpl implements ICpPushDataService {
                     .eq(User::getOpenId, param.getOpenId())
                     .eq(User::getGameId, game.getId()));
             if (user == null) {
-                log.error("[活跃推送]玩家信息不存在, game : {}, param : {}", JsonUtil.toString(game), JsonUtil.toString(param));
                 throw new BaseException("[活跃推送]角色信息不存在");
             }
             //查询角色信息
@@ -237,7 +236,6 @@ public class CpPushDataServiceImpl implements ICpPushDataService {
                     .orderByDesc(GameUserRole::getCreateTime)
                     .last("limit 1"));
             if (gameUserRole == null) {
-                log.error("[活跃推送]角色信息不存在, game : {}, param : {}", JsonUtil.toString(game), JsonUtil.toString(param));
                 throw new BaseException("[活跃推送]角色信息不存在");
             }
             //角色活跃信息上报到卡夫卡