Forráskód Böngészése

feat : 补充用户信息相关字段

bilingfeng 2 éve
szülő
commit
6efe2c7107

+ 12 - 5
game-module/game-sdk/src/main/java/com/zanxiang/sdk/adapter/ArgumentAdapter.java

@@ -51,12 +51,19 @@ public class ArgumentAdapter implements HandlerMethodArgumentResolver {
         if (b && StringUtils.isEmpty(token)) {
             throw new CustomException(HttpStatusEnum.USER_NO_LOGIN);
         }
-        //请求头处理
-        String os = request.getHeader("os");
+        //设备类型
         Integer deviceType = Integer.valueOf(request.getHeader("deviceType"));
-        Long gameId = Long.valueOf(request.getHeader("gameId"));
-        String ip = IpUtils.getRealIp(request);
-        UserData data = UserData.builder().gameId(gameId).deviceType(deviceType).deviceSystem(os).ip(ip).build();
+        //构造用户信息
+        UserData data = UserData.builder()
+                .gameId(Long.valueOf(request.getHeader("gameId")))
+                .ip(IpUtils.getRealIp(request))
+                .deviceType(deviceType)
+                .deviceSystem(request.getHeader("os"))
+                .mac(request.getHeader("mac"))
+                .imei(request.getHeader("imei"))
+                .androidId(request.getHeader("androidId"))
+                .channel(request.getHeader("channel"))
+                .build();
         //不需要登录, token不存在
         if (StringUtils.isEmpty(token)) {
             return data;

+ 27 - 7
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/UserData.java

@@ -25,6 +25,16 @@ public class UserData implements Serializable {
      */
     private Long userId;
 
+    /**
+     * 游戏id
+     */
+    private Long gameId;
+
+    /**
+     * 客户端ip
+     */
+    private String ip;
+
     /**
      * token
      */
@@ -35,11 +45,6 @@ public class UserData implements Serializable {
      */
     private Long expireTime;
 
-    /**
-     * 游戏id
-     */
-    private Long gameId;
-
     /**
      * 客户端类型, 1:安卓app, 2: 苹果iosApp, 3: h5网页, 4 : 小程序(小游戏)
      */
@@ -51,7 +56,22 @@ public class UserData implements Serializable {
     private String deviceSystem;
 
     /**
-     * 客户端ip
+     * 用户设备mac地址
      */
-    private String ip;
+    private String mac;
+
+    /**
+     * 设备唯一编号IMEI
+     */
+    private String imei;
+
+    /**
+     * 安卓id, (仅安卓设备才有值)
+     */
+    private String androidId;
+
+    /**
+     * 用户渠道唯一标识
+     */
+    private String channel;
 }

+ 19 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/ChannelService.java

@@ -0,0 +1,19 @@
+package com.zanxiang.sdk.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zanxiang.mybatis.entity.Channel;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-10-09
+ * @description : 渠道相关接口
+ */
+public interface ChannelService extends IService<Channel> {
+
+    /**
+     * 根据渠道标识获取渠道id
+     *
+     * @return : 获取渠道id
+     */
+    Long getByChannelSign(String channelSign);
+}

+ 37 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/ChannelServiceImpl.java

@@ -0,0 +1,37 @@
+package com.zanxiang.sdk.service.Impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.mybatis.entity.Channel;
+import com.zanxiang.mybatis.mapper.ChannelMapper;
+import com.zanxiang.sdk.service.ChannelService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.logging.log4j.util.Strings;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-30
+ * @description : 渠道
+ */
+@Slf4j
+@Service
+public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> implements ChannelService {
+
+    /**
+     * 根据渠道标识获取渠道id
+     *
+     * @return : 获取渠道id
+     */
+    @Override
+    public Long getByChannelSign(String channelSign) {
+        if (Strings.isBlank(channelSign)) {
+            return 0L;
+        }
+        Channel channel = this.getOne(new LambdaQueryWrapper<Channel>().eq(Channel::getChannelSign, channelSign));
+        if (channel == null) {
+            return 0L;
+        }
+        return channel.getId();
+    }
+}

+ 13 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/LoginServiceImpl.java

@@ -73,6 +73,9 @@ public class LoginServiceImpl implements RegisterLoginService {
     @Autowired
     private WordCheckService wordCheckService;
 
+    @Autowired
+    private ChannelService channelService;
+
     /**
      * QQ开发者应用id
      */
@@ -125,6 +128,7 @@ public class LoginServiceImpl implements RegisterLoginService {
             }
             //创建用户信息
             user = User.builder()
+                    .agentId(channelService.getByChannelSign(userData.getChannel()))
                     .gameId(gameId)
                     .username(username)
                     .password(RegisterUtil.cmfPassword(password))
@@ -133,6 +137,10 @@ public class LoginServiceImpl implements RegisterLoginService {
                     .authentication(0)
                     .createTime(LocalDateTime.now())
                     .updateTime(LocalDateTime.now())
+                    .deviceSystem(userData.getDeviceSystem())
+                    .mac(userData.getMac())
+                    .imei(userData.getImei())
+                    .androidId(userData.getAndroidId())
                     .build();
             userService.save(user);
         }
@@ -177,6 +185,7 @@ public class LoginServiceImpl implements RegisterLoginService {
         //用户信息不存在, 直接注册
         if (user == null) {
             user = User.builder()
+                    .agentId(channelService.getByChannelSign(userData.getChannel()))
                     .gameId(gameId)
                     .mobile(mobile)
                     .deviceType(deviceType)
@@ -184,6 +193,10 @@ public class LoginServiceImpl implements RegisterLoginService {
                     .authentication(0)
                     .createTime(LocalDateTime.now())
                     .updateTime(LocalDateTime.now())
+                    .deviceSystem(userData.getDeviceSystem())
+                    .mac(userData.getMac())
+                    .imei(userData.getImei())
+                    .androidId(userData.getAndroidId())
                     .build();
             userService.save(user);
         } else {