Explorar el Código

fix : 新增IP解析任务队列

bilingfeng hace 3 meses
padre
commit
4a13bc530e

+ 5 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/constant/RedisKeyConstant.java

@@ -56,4 +56,9 @@ public class RedisKeyConstant {
      * 游戏礼包码线程锁缓存key
      */
     public static final String GAME_GIFT_PACK_LOCK = RedisKeyConstant.REDIS_PREFIX + "game_gift_pack_lock_";
+
+    /**
+     * ip解析任务队列
+     */
+    public static final String IP_DATA_ASSAY_QUEUE = "game_sdk_ip_data_assay_queue_";
 }

+ 5 - 0
game-module/game-module-mybatis/src/main/java/com/zanxiang/game/module/mybatis/entity/User.java

@@ -206,6 +206,11 @@ public class User implements Serializable {
      */
     private LocalDateTime mobileBindTime;
 
+    /**
+     * ip解析数据
+     */
+    private String ipData;
+
     /**
      * 获取用户显示手机号
      *

+ 5 - 0
game-module/game-module-mybatis/src/main/java/com/zanxiang/game/module/mybatis/entity/UserLoginLog.java

@@ -73,4 +73,9 @@ public class UserLoginLog implements Serializable {
      * 创建时间
      */
     private LocalDateTime createTime;
+
+    /**
+     * ip解析数据
+     */
+    private String ipData;
 }

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

@@ -25,7 +25,7 @@ public class SDKApplication {
 
     public static void main(String[] args) {
         SpringApplication.run(SDKApplication.class, args);
-        System.out.println("赞象SDK服务启动成功 <充值回调CP新增重试机制, 手机号绑定新增时间判定03> ( ´・・)ノ(._.`) \n" +
+        System.out.println("赞象SDK服务启动成功 <新增IP解析任务队列> ( ´・・)ノ(._.`) \n" +
                 " ___________ _   __\n" +
                 "/  ___|  _  \\ | / /\n" +
                 "\\ `--.| | | | |/ / \n" +

+ 5 - 0
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/constant/RedisKeyConstant.java

@@ -91,4 +91,9 @@ public class RedisKeyConstant {
      * 完成新手引导回传去重锁
      */
     public static final String CALL_BACK_TUTORIAL_FINISH_LOCK = RedisKeyConstant.REDIS_PREFIX + "call_back_tutorial_finish_lock_";
+
+    /**
+     * ip解析任务队列
+     */
+    public static final String IP_DATA_ASSAY_QUEUE = "game_sdk_ip_data_assay_queue_";
 }

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

@@ -40,9 +40,8 @@ public class CallBackController {
     @GetMapping("/ad/sdk/config")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Map.class)})
     public ResultVO<Map<String, Object>> getAdSdkConfig(UserData userData) {
-        log.error("媒体初始化配置请求 userData : {}", JsonUtil.toString(userData));
         Map<String, Object> adSdkConfigMap = gameService.getAdSdkConfig(userData);
-        log.error("媒体初始化配置返回, map : {}", JsonUtil.toString(adSdkConfigMap));
+        log.error("媒体初始化配置返回, map : {}, userId : {}", JsonUtil.toString(adSdkConfigMap), userData.getUserId());
         return ResultVO.ok(adSdkConfigMap);
     }
 
@@ -51,10 +50,10 @@ public class CallBackController {
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Map.class)})
     public ResultVO<Map<String, Object>> callBackJudge(@Validated @RequestBody CallBackControlParam param,
                                                        @ValidLogin UserData userData) {
-        log.error("事件回传判断请求, param : {},  userData : {}", JsonUtil.toString(param), JsonUtil.toString(userData));
+        log.error("事件回传判断请求, param : {},  userId : {}", JsonUtil.toString(param), userData.getUserId());
         Map<String, Object> resultMap = backLogMediaSdkService.callBackJudge(param, userData);
-        log.error("事件回传判断结果, param : {},  userData : {}, resultMap : {}", JsonUtil.toString(param),
-                JsonUtil.toString(userData), JsonUtil.toString(resultMap));
+        log.error("事件回传判断结果, param : {},  userId : {}, resultMap : {}", JsonUtil.toString(param),
+                userData.getUserId(), JsonUtil.toString(resultMap));
         return ResultVO.ok(resultMap);
     }
 
@@ -63,7 +62,7 @@ public class CallBackController {
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
     public ResultVO<Boolean> addMediaSdkBackLog(@Validated @RequestBody BackLogMediaSdkParam param,
                                                 @ValidLogin UserData userData) {
-        log.error("媒体sdk执行回传日志提交, param : {},  userData : {}", JsonUtil.toString(param), JsonUtil.toString(userData));
+        log.error("媒体sdk执行回传日志提交, param : {},  userId : {}", JsonUtil.toString(param), userData.getUserId());
         return ResultVO.ok(backLogMediaSdkService.addMediaSdkBackLog(param, userData));
     }
 }

+ 6 - 0
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/LoginServiceImpl.java

@@ -21,6 +21,7 @@ import com.zanxiang.game.module.sdk.pojo.param.UserData;
 import com.zanxiang.game.module.sdk.pojo.vo.UserLoginVO;
 import com.zanxiang.game.module.sdk.service.*;
 import com.zanxiang.game.module.sdk.service.api.WxApiService;
+import com.zanxiang.game.module.sdk.util.RedisUtil;
 import com.zanxiang.game.module.sdk.util.RegexUtil;
 import com.zanxiang.game.module.sdk.util.RegisterUtil;
 import com.zanxiang.module.redis.service.IDistributedLockComponent;
@@ -51,6 +52,9 @@ import java.util.concurrent.TimeUnit;
 @Service
 public class LoginServiceImpl implements IRegisterLoginService {
 
+    @Autowired
+    private RedisUtil<String> redisUtil;
+
     @Autowired
     private IUserTokenService userTokenService;
 
@@ -327,6 +331,8 @@ public class LoginServiceImpl implements IRegisterLoginService {
         }
         //注册信息埋点数据发送到卡夫卡
         kafkaService.eventTrack(KafkaEventTrackEnum.KAFKA_EVENT_TRACK_REG, JsonUtil.toString(user));
+        //发送到IP解析任务队列
+        redisUtil.addToSet(RedisKeyConstant.IP_DATA_ASSAY_QUEUE, "REG:" + user.getId());
         //返回用户信息
         return user;
     }

+ 20 - 5
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/UserLoginLogServiceImpl.java

@@ -3,9 +3,12 @@ package com.zanxiang.game.module.sdk.service.impl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.game.module.mybatis.entity.UserLoginLog;
 import com.zanxiang.game.module.mybatis.mapper.UserLoginLogMapper;
+import com.zanxiang.game.module.sdk.constant.RedisKeyConstant;
 import com.zanxiang.game.module.sdk.pojo.param.UserData;
 import com.zanxiang.game.module.sdk.service.IUserLoginLogService;
+import com.zanxiang.game.module.sdk.util.RedisUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
@@ -19,10 +22,12 @@ import java.time.LocalDateTime;
 @Service
 public class UserLoginLogServiceImpl extends ServiceImpl<UserLoginLogMapper, UserLoginLog> implements IUserLoginLogService {
 
+    @Autowired
+    private RedisUtil<String> redisUtil;
+
     @Override
     public Boolean createRoleLoginLog(UserData userData, String roleId, String roleName, Integer type) {
-        //创建对象
-        return super.save(UserLoginLog.builder()
+        UserLoginLog loginLog = UserLoginLog.builder()
                 .userId(userData.getUserId())
                 .gameId(userData.getGameId())
                 .roleId(roleId)
@@ -32,12 +37,17 @@ public class UserLoginLogServiceImpl extends ServiceImpl<UserLoginLogMapper, Use
                 .deviceType(userData.getDeviceType())
                 .type(type)
                 .createTime(LocalDateTime.now())
-                .build());
+                .build();
+        boolean result = super.save(loginLog);
+        if (result) {
+            redisUtil.addToSet(RedisKeyConstant.IP_DATA_ASSAY_QUEUE, "LOGIN:" + loginLog.getId());
+        }
+        return result;
     }
 
     @Override
     public Boolean createUserLoginLog(UserData userData, Integer type) {
-        return super.save(UserLoginLog.builder()
+        UserLoginLog loginLog = UserLoginLog.builder()
                 .userId(userData.getUserId())
                 .gameId(userData.getGameId())
                 .os(userData.getDeviceSystem())
@@ -45,6 +55,11 @@ public class UserLoginLogServiceImpl extends ServiceImpl<UserLoginLogMapper, Use
                 .deviceType(userData.getDeviceType())
                 .type(type)
                 .createTime(LocalDateTime.now())
-                .build());
+                .build();
+        boolean result = super.save(loginLog);
+        if (result) {
+            redisUtil.addToSet(RedisKeyConstant.IP_DATA_ASSAY_QUEUE, "LOGIN:" + loginLog.getId());
+        }
+        return result;
     }
 }