Преглед на файлове

feat : 回传降档兼容

bilingfeng преди 9 месеца
родител
ревизия
acddde8275

+ 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服务启动成功 <解决切账号token锁的问题> ( ´・・)ノ(._.`) \n" +
+        System.out.println("赞象SDK服务启动成功 <回传判断兼容降档规则> ( ´・・)ノ(._.`) \n" +
                 " ___________ _   __\n" +
                 "/  ___|  _  \\ | / /\n" +
                 "\\ `--.| | | | |/ / \n" +

+ 52 - 38
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/CallBackServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.zanxiang.game.back.base.ServerInfo;
 import com.zanxiang.game.back.base.pojo.dto.*;
+import com.zanxiang.game.back.base.pojo.vo.OrderBackQueryRpcVO;
 import com.zanxiang.game.back.base.rpc.ITencentMiniGameBackRpc;
 import com.zanxiang.game.back.base.rpc.ITencentUserActionBackRpc;
 import com.zanxiang.game.back.base.rpc.ITtAppBackRpc;
@@ -79,9 +80,10 @@ public class CallBackServiceImpl implements ICallBackService {
     @Override
     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);
+        Map<String, Object> resultMap = new HashMap<>(7);
         resultMap.put("callBackTypeEnum", param.getCallBackTypeEnum().getValue());
         resultMap.put("userId", userData.getUserId());
+        resultMap.put("gameId", userData.getGameId());
         //事件类型枚举
         CallBackTypeEnum callBackTypeEnum = param.getCallBackTypeEnum();
         //线程锁
@@ -99,7 +101,7 @@ public class CallBackServiceImpl implements ICallBackService {
             return resultMap;
         }
         Game game = gameService.getById(userData.getGameId());
-        //判断游戏状态
+        //判断游戏状态, 对接上包过程中, 全量回传
         if (Objects.equals(game.getStatus(), 2)) {
             resultMap.put("callBack", Boolean.TRUE);
             if (Objects.equals(callBackTypeEnum, CallBackTypeEnum.CALL_BACK_PAY_ORDER)) {
@@ -116,52 +118,64 @@ public class CallBackServiceImpl implements ICallBackService {
             resultMap.put("callBack", Boolean.FALSE);
             return resultMap;
         }
+        //判断回传
         try {
-            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);
-            }
+            this.checkCallBack(user.getId(), agent, callBackTypeEnum, resultMap, param);
         } catch (Exception e) {
             log.error("事件回传判断, 出现异常, param : {},  userData : {}, e : {}", JsonUtil.toString(param),
                     JsonUtil.toString(userData), e.getMessage(), e);
             resultMap.put("callBack", Boolean.FALSE);
         }
         //返回结果
+        log.error("事件回传判断, param : {}, 返回结果 resultMap : {}", JsonUtil.toString(param), JsonUtil.toString(resultMap));
         return resultMap;
     }
 
+    private void checkCallBack(Long userId, Agent agent, CallBackTypeEnum callBackTypeEnum, Map<String, Object> resultMap,
+                               CallBackControlParam param) {
+        switch (callBackTypeEnum) {
+            case CALL_BACK_REGISTER:
+                // 注册
+                TtAppUserBackQueryRpcDTO userTransform = this.transform(userId, 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(userId, 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(userId, param.getOrderId(), agent);
+                OrderBackQueryRpcVO orderBackQueryRpcVO = ttAppBackRpc.orderBackQuery(orderTransform).getData();
+                resultMap.put("orderId", param.getOrderId());
+                resultMap.put("callBack", orderBackQueryRpcVO.getDoBack());
+                resultMap.put("backMsg", orderBackQueryRpcVO.getBackMsg());
+                if (Objects.equals(orderBackQueryRpcVO.getDoBack(), Boolean.TRUE)) {
+                    resultMap.put("amount", orderBackQueryRpcVO.getBackMoney());
+                }
+                break;
+            default:
+                // 处理未知类型
+                resultMap.put("callBack", Boolean.FALSE);
+        }
+    }
+
     @Override
     public void userCallBack(User user, Map<String, String> urlParamMap) {
         //判断游戏是否开启广告回传, 未开启, 不回传