Преглед изворни кода

Merge branch 'package' of GameCenter/game-center into dev

zhimo пре 4 месеци
родитељ
комит
43d51bb4c2

+ 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服务启动成功 <解决测试账号回传的问题01> ( ´・・)ノ(._.`) \n" +
+        System.out.println("赞象SDK服务启动成功 <腾讯媒体sdk回传调试BUG修改> ( ´・・)ノ(._.`) \n" +
                 " ___________ _   __\n" +
                 "/  ___|  _  \\ | / /\n" +
                 "\\ `--.| | | | |/ / \n" +

+ 20 - 10
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/GameBackLogMediaSdkServiceImpl.java

@@ -172,6 +172,17 @@ public class GameBackLogMediaSdkServiceImpl extends ServiceImpl<GameBackLogMedia
         ) <= 0) {
             return false;
         }
+        //判断沉默唤起回传, 新手引导回传, 是否已经执行, 不重复执行
+        if (Objects.equals(param.getCallBackTypeEnum(), CallBackTypeEnum.CALL_BACK_RE_ACTIVE)
+                || Objects.equals(param.getCallBackTypeEnum(), CallBackTypeEnum.CALL_BACK_TUTORIAL_FINISH)) {
+            if (super.count(new LambdaQueryWrapper<GameBackLogMediaSdk>()
+                    .eq(GameBackLogMediaSdk::getGameId, user.getGameId())
+                    .eq(GameBackLogMediaSdk::getUserId, user.getId())
+                    .eq(GameBackLogMediaSdk::getCallBackParam, param.getCallBackTypeEnum().getValue())
+            ) > 0) {
+                return false;
+            }
+        }
         //测试账号, 回传默认全量回传, 不做判断
         resultMap.put("callBack", Boolean.TRUE);
         resultMap.put("backMsg", "测试账号, 回传默认全量回传, 不做判断");
@@ -268,10 +279,10 @@ public class GameBackLogMediaSdkServiceImpl extends ServiceImpl<GameBackLogMedia
         ) > 0) {
             return Tuple2.with(Boolean.FALSE, "当前用户注册已回传, 不重复执行");
         }
-        //创角回传判断
+        //创角回传去重和前置判断
         if (Objects.equals(callBackTypeEnum, CallBackTypeEnum.CALL_BACK_ACTIVATE)
                 || Objects.equals(callBackTypeEnum, CallBackTypeEnum.CALL_BACK_CREATE_ROLE)) {
-            //创角是否已回传
+            //创角是否已回传, 已回传则不重复执行
             if (super.count(new LambdaQueryWrapper<GameBackLogMediaSdk>()
                     .eq(GameBackLogMediaSdk::getGameId, gameId)
                     .eq(GameBackLogMediaSdk::getUserId, userId)
@@ -280,12 +291,12 @@ public class GameBackLogMediaSdkServiceImpl extends ServiceImpl<GameBackLogMedia
             ) > 0) {
                 return Tuple2.with(Boolean.FALSE, "当前角色创角已回传, 不重复执行");
             }
-            //腾讯小游戏的创角回传, 可以判断前置注册回传时候已执行
+            //腾讯小游戏的创角回传, 可以判断前置注册回传是否已执行, 未执行无法回传
             if (Objects.equals(callBackTypeEnum, CallBackTypeEnum.CALL_BACK_CREATE_ROLE)
                     && super.count(new LambdaQueryWrapper<GameBackLogMediaSdk>()
                     .eq(GameBackLogMediaSdk::getGameId, gameId)
                     .eq(GameBackLogMediaSdk::getUserId, userId)
-                    .eq(GameBackLogMediaSdk::getCallBackParam, callBackTypeEnum.getValue())
+                    .eq(GameBackLogMediaSdk::getCallBackParam, CallBackTypeEnum.CALL_BACK_REGISTER.getValue())
             ) <= 0) {
                 return Tuple2.with(Boolean.FALSE, "当前用户注册未回传, 无法执行创角回传");
             }
@@ -299,7 +310,7 @@ public class GameBackLogMediaSdkServiceImpl extends ServiceImpl<GameBackLogMedia
                 .eq(GameBackLogMediaSdk::getGameId, gameId)
                 .eq(GameBackLogMediaSdk::getUserId, userId)
                 .eq(GameBackLogMediaSdk::getRoleId, roleId)
-                .eq(GameBackLogMediaSdk::getCallBackParam, CallBackTypeEnum.CALL_BACK_RE_ACTIVE)
+                .eq(GameBackLogMediaSdk::getCallBackParam, CallBackTypeEnum.CALL_BACK_RE_ACTIVE.getValue())
                 .ge(GameBackLogMediaSdk::getCreateTime, LocalDateTime.of(LocalDate.now(), LocalTime.MIN))
         ) > 0) {
             return Tuple3.with(Boolean.FALSE, null, "今日已执行沉默唤起回传, 不重复执行");
@@ -326,17 +337,16 @@ public class GameBackLogMediaSdkServiceImpl extends ServiceImpl<GameBackLogMedia
                 .eq(GameBackLogMediaSdk::getGameId, gameId)
                 .eq(GameBackLogMediaSdk::getUserId, userId)
                 .eq(GameBackLogMediaSdk::getRoleId, roleId)
-                .and(qw -> qw.eq(GameBackLogMediaSdk::getCallBackParam, CallBackTypeEnum.CALL_BACK_CREATE_ROLE)
-                        .or().eq(GameBackLogMediaSdk::getCallBackParam, CallBackTypeEnum.CALL_BACK_ACTIVATE))
+                .and(qw -> qw.eq(GameBackLogMediaSdk::getCallBackParam, CallBackTypeEnum.CALL_BACK_CREATE_ROLE.getValue())
+                        .or().eq(GameBackLogMediaSdk::getCallBackParam, CallBackTypeEnum.CALL_BACK_ACTIVATE.getValue()))
         ) <= 0) {
             return Tuple2.with(Boolean.FALSE, "创角回传未执行, 无法执行新手引导回传");
         }
-        //判断角色是否已经执行过新手引导回传
+        //判断用户是否已经执行过新手引导回传, 新手引导回传以用户为回传单位, 不以角色为回传单位
         if (super.count(new LambdaQueryWrapper<GameBackLogMediaSdk>()
                 .eq(GameBackLogMediaSdk::getGameId, gameId)
                 .eq(GameBackLogMediaSdk::getUserId, userId)
-                .eq(GameBackLogMediaSdk::getRoleId, roleId)
-                .eq(GameBackLogMediaSdk::getCallBackParam, CallBackTypeEnum.CALL_BACK_TUTORIAL_FINISH)
+                .eq(GameBackLogMediaSdk::getCallBackParam, CallBackTypeEnum.CALL_BACK_TUTORIAL_FINISH.getValue())
         ) > 0) {
             return Tuple2.with(Boolean.FALSE, "角色已执行新手引导回传, 不重复执行");
         }