Browse Source

feat : 用户登录接口提交

bilingfeng 2 years ago
parent
commit
d38e5cde0b
20 changed files with 463 additions and 94 deletions
  1. 7 2
      game-module/game-common/src/main/java/com/zanxiang/common/enums/HttpStatusEnum.java
  2. 12 0
      game-module/game-sdk/pom.xml
  3. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/config/MybatisPlusConfig.java
  4. 19 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/config/RestTemplateConfig.java
  5. 99 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/dto/UserDTO.java
  6. 3 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/dto/UserTokenDTO.java
  7. 7 2
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/entity/User.java
  8. 39 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/enums/AccountStatusEnum.java
  9. 30 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/enums/CmfSaltEnum.java
  10. 4 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/LoginPasswordParam.java
  11. 30 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/SmsSendParam.java
  12. 0 80
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/vo/ResultVO.java
  13. 9 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/vo/UserLoginVO.java
  14. 20 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/IUserService.java
  15. 9 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/IUserTokenService.java
  16. 34 0
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/SmsServiceImpl.java
  17. 86 3
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserServiceImpl.java
  18. 42 5
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserTokenServiceImpl.java
  19. 1 1
      game-module/game-sdk/src/main/java/com/zanxiang/sdk/utils/RedisUtils.java
  20. 11 0
      game-module/game-sdk/src/main/resources/bootstrap.yml

+ 7 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/enums/UserStatusEnum.java → game-module/game-common/src/main/java/com/zanxiang/common/enums/HttpStatusEnum.java

@@ -1,4 +1,4 @@
-package com.zanxiang.sdk.domain.enums;
+package com.zanxiang.common.enums;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -10,7 +10,12 @@ import lombok.Getter;
  */
 @Getter
 @AllArgsConstructor
-public enum UserStatusEnum {
+public enum HttpStatusEnum {
+
+    /**
+     * 成功
+     */
+    SUCCESS(200, "成功"),
 
     /**
      * 未知错误

+ 12 - 0
game-module/game-sdk/pom.xml

@@ -25,5 +25,17 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.zanxiangnet.module</groupId>
+            <artifactId>zx-sms</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
+        </dependency>
+        <!-- 解决validated不生效的依赖问题 -->
+        <dependency>
+            <groupId>org.hibernate.validator</groupId>
+            <artifactId>hibernate-validator</artifactId>
+            <version>6.0.17.Final</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 </project>

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

@@ -28,7 +28,7 @@ import java.sql.SQLException;
  */
 @Configuration
 @EnableTransactionManagement
-@MapperScan("com.zanxiangnet.manage.mapper")
+@MapperScan("com.zanxiang.sdk.mapper")
 public class MybatisPlusConfig {
 
     /**

+ 19 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/config/RestTemplateConfig.java

@@ -0,0 +1,19 @@
+package com.zanxiang.sdk.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * @author : lingfeng
+ * @time : 2021-08-18
+ * @description : redis配置
+ */
+@Configuration
+public class RestTemplateConfig {
+
+    @Bean
+    public RestTemplate restTemplate() {
+        return new RestTemplate();
+    }
+}

+ 99 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/dto/UserDTO.java

@@ -0,0 +1,99 @@
+package com.zanxiang.sdk.domain.dto;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-09
+ * @description : 用户信息
+ */
+@Data
+public class UserDTO {
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 所属渠道ID
+     */
+    private Long agentId;
+
+    /**
+     * 用户名
+     */
+    private String username;
+
+    /**
+     * 昵称
+     */
+    private String nickname;
+
+    /**
+     * 注册手机号
+     */
+    private String regMobile;
+
+    /**
+     * 注册邮箱
+     */
+    private String regEmail;
+
+    /**
+     * 密码
+     */
+    private String password;
+
+    /**
+     * 绑定邮箱
+     */
+    private String email;
+
+    /**
+     * 绑定手机号码
+     */
+    private String mobile;
+
+    /**
+     * 设备来源 mobile,android,iphone,ipad,web,pc,mac,wxapp
+     */
+    private String fromDevice;
+
+    /**
+     * 设备ID android 为imei ios 为idfa
+     */
+    private String deviceId;
+
+    /**
+     * 设备类型
+     */
+    private String deviceType;
+
+    /**
+     * -1 为冻结状态, 1 为试玩状态 2为正常状态
+     */
+    private Integer status;
+
+    /**
+     * 头像
+     */
+    private String avatar;
+
+    /**
+     * 渠道
+     */
+    private Long channel;
+
+    /**
+     * 注册时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更改时间
+     */
+    private LocalDateTime updateTime;
+}

+ 3 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/dto/UserTokenDTO.java

@@ -1,5 +1,7 @@
 package com.zanxiang.sdk.domain.dto;
 
+import lombok.Data;
+
 import java.time.LocalDateTime;
 
 /**
@@ -7,6 +9,7 @@ import java.time.LocalDateTime;
  * @time : 2022-06-08
  * @description : 用户token信息
  */
+@Data
 public class UserTokenDTO {
 
     /**

+ 7 - 2
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/entity/User.java

@@ -79,9 +79,14 @@ public class User {
     private String deviceId;
 
     /**
-     * 1 为试玩状态 2为正常状态,3为冻结状态
+     * 设备类型
      */
-    private Boolean status;
+    private String deviceType;
+
+    /**
+     * -1 为冻结状态, 1 为试玩状态 2为正常状态
+     */
+    private Integer status;
 
     /**
      * 头像

+ 39 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/enums/AccountStatusEnum.java

@@ -0,0 +1,39 @@
+package com.zanxiang.sdk.domain.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-09
+ * @description : 账号状态枚举
+ */
+@Getter
+@AllArgsConstructor
+public enum AccountStatusEnum {
+
+    /**
+     * 密码加密盐值
+     */
+    TRY_PLAY_STATUS(1, "试玩状态"),
+
+    /**
+     * 正常状态
+     */
+    NORMAL_STATUS(2, "正常状态"),
+
+    /**
+     * 冻结状态
+     */
+    FROZEN_STATUS(-1, "冻结状态");
+
+    /**
+     * 盐值
+     */
+    private Integer status;
+
+    /**
+     * 描述
+     */
+    private String describe;
+}

+ 30 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/enums/CmfSaltEnum.java

@@ -0,0 +1,30 @@
+package com.zanxiang.sdk.domain.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-09
+ * @description : cmf加密盐值
+ */
+@Getter
+@AllArgsConstructor
+public enum CmfSaltEnum {
+
+    /**
+     * 密码加密盐值
+     */
+    CMF_PASSWORD("ZX_PASSWORD_SALT", "密码加密盐值");
+
+    /**
+     * 盐值
+     */
+    private String salt;
+
+    /**
+     * 描述
+     */
+    private String describe;
+
+}

+ 4 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/LoginPasswordParam.java

@@ -4,6 +4,8 @@ import com.fasterxml.jackson.annotation.JsonAlias;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import javax.validation.constraints.NotBlank;
+
 /**
  * @author : lingfeng
  * @time : 2022-06-07
@@ -17,11 +19,13 @@ public class LoginPasswordParam extends CommonParam {
      * 用户名
      */
     @JsonAlias("mem-username")
+    @NotBlank(message = "登陆用户名字不可为空")
     private String username;
 
     /**
      * 密码
      */
+    @NotBlank(message = "登陆密码不可为空")
     @JsonAlias("mem-password")
     private String password;
 }

+ 30 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/SmsSendParam.java

@@ -0,0 +1,30 @@
+package com.zanxiang.sdk.domain.params;
+
+import com.fasterxml.jackson.annotation.JsonAlias;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-09
+ * @description : 发送短信参数
+ */
+@Data
+public class SmsSendParam {
+
+    /**
+     * 验证码类型
+     */
+    @JsonAlias("sms-type")
+    @NotNull(message = "验证码类型不可为空")
+    private Integer type;
+
+    /**
+     * 手机号码
+     */
+    @JsonAlias("sms-mobile")
+    @NotBlank(message = "手机号码不可为空")
+    private String mobile;
+}

+ 0 - 80
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/vo/ResultVO.java

@@ -1,80 +0,0 @@
-package com.zanxiang.sdk.domain.vo;
-
-import com.zanxiang.sdk.domain.enums.UserStatusEnum;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
-
-/**
- * 响应信息主体
- *
- * @author ruoyi
- */
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-@Builder
-public class ResultVO<T> implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 成功code
-     */
-    public static final Integer CODE_SUCCESS = 200;
-
-    /**
-     * 成功msg
-     */
-    public static final String CODE_SUCCESS_MSG = "成功";
-
-    /**
-     * 错误码
-     */
-    private Integer code;
-
-    /**
-     * 错误消息
-     */
-    private String msg;
-
-    /**
-     * 返回数据
-     */
-    private T data;
-
-    /**
-     * 构造方法
-     *
-     * @param code : 错误码
-     * @param msg  : 错误消息
-     */
-    private ResultVO(int code, String msg) {
-        this(code, msg, null);
-    }
-
-    /**
-     * 错误信息构造
-     *
-     * @param userStatusEnum : 错误枚举
-     * @param <T>            : 泛型
-     * @return : 返回
-     */
-    public static <T> ResultVO<T> fail(UserStatusEnum userStatusEnum) {
-        return new ResultVO<>(userStatusEnum.getCode(), userStatusEnum.getMsg());
-    }
-
-    /**
-     * 成功返回数据
-     *
-     * @param data : 数据
-     * @param <T>  : 泛型
-     * @return : 返回
-     */
-    public static <T> ResultVO<T> ok(T data) {
-        return new ResultVO<>(CODE_SUCCESS, "成功", data);
-    }
-}

+ 9 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/vo/UserLoginVO.java

@@ -14,4 +14,13 @@ public class UserLoginVO {
      * 登录授权的token
      */
     private String token;
+
+    /**
+     * 构造方法
+     *
+     * @param token : 用户token
+     */
+    public UserLoginVO(String token) {
+        this.token = token;
+    }
 }

+ 20 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/IUserService.java

@@ -1,7 +1,11 @@
 package com.zanxiang.sdk.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.sdk.domain.dto.UserDTO;
 import com.zanxiang.sdk.domain.entity.User;
+import com.zanxiang.sdk.domain.params.LoginPasswordParam;
+import com.zanxiang.sdk.domain.vo.UserLoginVO;
 
 /**
  * @author : lingfeng
@@ -9,4 +13,20 @@ import com.zanxiang.sdk.domain.entity.User;
  * @description : 用户信息
  */
 public interface IUserService extends IService<User> {
+
+    /**
+     * 用户名密码登录
+     *
+     * @param userLoginParam : 登录参数
+     * @return : 返回登录token
+     */
+    ResultVo<UserLoginVO> loginPassword(LoginPasswordParam userLoginParam);
+
+    /**
+     * 检查用户手机号是否存在
+     *
+     * @param mobile : 用户手机号
+     * @return : 返回用户信息
+     */
+    UserDTO getUserInfoByMobile(String mobile);
 }

+ 9 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/IUserTokenService.java

@@ -11,6 +11,15 @@ import com.zanxiang.sdk.domain.entity.UserToken;
  */
 public interface IUserTokenService extends IService<UserToken> {
 
+    /**
+     * 通过token设备获取token详情
+     *
+     * @param token      : 用户token
+     * @param deviceType : 设备类型
+     * @return : 返回用户token详情
+     */
+    UserTokenDTO getTokenInfoByTokenDevice(String token, String deviceType);
+
     /**
      * 通过用户设备获取token详情
      *

+ 34 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/SmsServiceImpl.java

@@ -0,0 +1,34 @@
+package com.zanxiang.sdk.service.Impl;
+
+import com.zanxiang.sdk.domain.enums.SmsTypeEnum;
+import com.zanxiang.sdk.domain.params.SmsSendParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.Objects;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-06-09
+ * @description : 手机短信逻辑
+ */
+@Slf4j
+@Service
+public class SmsServiceImpl {
+
+    /**
+     * 发送短信验证码
+     *
+     * @param smsSendParam : 获取短信验证码参数
+     */
+    public void smsSend(SmsSendParam smsSendParam) {
+        //类型
+        Integer type = smsSendParam.getType();
+        //手机号码
+        String mobile = smsSendParam.getMobile();
+        //找回密码获取
+        if (Objects.equals(type, SmsTypeEnum.SMS_FIND_PWD.getType())){
+
+        }
+    }
+}

+ 86 - 3
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserServiceImpl.java

@@ -1,14 +1,31 @@
 package com.zanxiang.sdk.service.Impl;
 
+import com.alibaba.nacos.common.utils.MD5Utils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.common.domain.ResultVo;
+import com.zanxiang.common.enums.HttpStatusEnum;
+import com.zanxiang.common.exception.BaseException;
+import com.zanxiang.common.utils.StringUtils;
+import com.zanxiang.common.utils.bean.BeanUtils;
+import com.zanxiang.sdk.domain.dto.UserDTO;
 import com.zanxiang.sdk.domain.entity.User;
+import com.zanxiang.sdk.domain.enums.AccountStatusEnum;
+import com.zanxiang.sdk.domain.enums.CmfSaltEnum;
+import com.zanxiang.sdk.domain.params.LoginMobileParam;
 import com.zanxiang.sdk.domain.params.LoginPasswordParam;
 import com.zanxiang.sdk.domain.vo.UserLoginVO;
 import com.zanxiang.sdk.mapper.UserMapper;
 import com.zanxiang.sdk.service.IUserService;
+import com.zanxiang.sdk.service.IUserTokenService;
+import com.zanxiangnet.module.sms.service.impl.AliSmsService;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.security.NoSuchAlgorithmException;
+import java.util.Objects;
+
 /**
  * @author : lingfeng
  * @time : 2022-06-07
@@ -18,21 +35,87 @@ import org.springframework.stereotype.Service;
 @Service
 public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
 
+    @Autowired
+    private AliSmsService aliSmsService;
+
+    @Autowired
+    private IUserTokenService userTokenService;
+
     /**
      * 用户名密码登录
      *
      * @param userLoginParam : 登录参数
      * @return : 返回登录token
      */
-    public UserLoginVO loginPassword(LoginPasswordParam userLoginParam) {
-        return null;
+    @Override
+    public ResultVo<UserLoginVO> loginPassword(LoginPasswordParam userLoginParam) {
+        //用户名
+        String username = userLoginParam.getUsername();
+        //密码
+        String password = userLoginParam.getPassword();
+        //用户信息
+        User user;
+        //验证用户名是否为手机号
+        if (StringUtils.checkPhone(username)) {
+            user = super.getOne(new LambdaQueryWrapper<User>().eq(User::getMobile, username));
+        } else {
+            user = super.getOne(new LambdaQueryWrapper<User>().eq(User::getUsername, username));
+        }
+        //用户信息不存在
+        if (user == null) {
+            return new ResultVo<>(HttpStatusEnum.USERNAME_OR_PASSWORD_ERR);
+        }
+        //判断账号是否停用
+        if (Objects.equals(AccountStatusEnum.FROZEN_STATUS.getStatus(), user.getStatus())) {
+            return new ResultVo<>(HttpStatusEnum.ACCOUNT_HALT);
+        }
+        //验证密码
+        if (!Objects.equals(this.cmfPassword(password), user.getPassword())) {
+            return new ResultVo<>(HttpStatusEnum.USERNAME_OR_PASSWORD_ERR);
+        }
+        //验证通过, 获取token
+        String userToken = userTokenService.getUserToken(user.getId(), user.getDeviceType());
+        //构造返回
+        return new ResultVo<>(new UserLoginVO(userToken));
     }
 
+
     /**
      * 手机号登录
+     *
+     * @param loginMobileParam : 手机号登录参数
+     * @return : 返回登录信息
      */
-    public UserLoginVO loginMobile(LoginPasswordParam userLoginParam) {
+    public ResultVo<UserLoginVO> loginMobile(LoginMobileParam loginMobileParam) {
         return null;
     }
 
+    /**
+     * 密码cfm加密
+     *
+     * @param password : 密码
+     * @return : 返回加密完的密码
+     */
+    private String cmfPassword(String password) {
+        String passwordSalt = password + CmfSaltEnum.CMF_PASSWORD.getSalt();
+        try {
+            return "###" + MD5Utils.md5Hex(MD5Utils.md5Hex(passwordSalt.getBytes()).getBytes());
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+            throw new BaseException("密码加密异常");
+        }
+    }
+
+    /**
+     * 检查用户手机号是否存在
+     *
+     * @param mobile : 用户手机号
+     * @return : 返回用户信息
+     */
+    @Override
+    public UserDTO getUserInfoByMobile(String mobile) {
+        User user = super.getOne(new LambdaQueryWrapper<User>().eq(User::getMobile, mobile));
+        return BeanUtils.copy(user, UserDTO.class);
+    }
+
 }

+ 42 - 5
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserTokenServiceImpl.java

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.common.enums.ExpireTimeEnum;
 import com.zanxiang.common.exception.BaseException;
-import com.zanxiang.common.redis.utils.RedisUtils;
+import com.zanxiang.sdk.utils.RedisUtils;
 import com.zanxiang.common.text.UUID;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.sdk.constant.RedisKeyConstant;
@@ -33,6 +33,37 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
     @Autowired
     private RedisUtils<UserToken> redisUtils;
 
+    /**
+     * 通过token设备获取token详情
+     *
+     * @param token      : 用户token
+     * @param deviceType : 设备类型
+     * @return : 返回用户token详情
+     */
+    @Override
+    public UserTokenDTO getTokenInfoByTokenDevice(String token, String deviceType) {
+        //查询缓存信息
+        String tokenInfoKey = this.getTokenInfoKey(token, deviceType);
+        UserToken userToken = redisUtils.getCache(tokenInfoKey);
+        if (userToken != null) {
+            return BeanUtils.copy(userToken, UserTokenDTO.class);
+        }
+        //缓存不存在, 查询数据库
+        userToken = super.getOne(new LambdaQueryWrapper<UserToken>()
+                .eq(UserToken::getToken, token)
+                .eq(UserToken::getDeviceType, deviceType));
+        if (userToken == null) {
+            return null;
+        }
+        //设置token详情缓存
+        redisUtils.setCache(tokenInfoKey, userToken, ExpireTimeEnum.ONE_DAY.getTime());
+        //设置用户缓存
+        String userTokenKey = this.getUserTokenKey(userToken.getUserId(), deviceType);
+        redisUtils.setCache(userTokenKey, userToken, ExpireTimeEnum.ONE_DAY.getTime());
+        //返回数据
+        return BeanUtils.copy(userToken, UserTokenDTO.class);
+    }
+
     /**
      * 通过用户设备获取token详情
      *
@@ -43,8 +74,8 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
     @Override
     public UserTokenDTO getTokenInfoByUserDevice(Long userId, String deviceType) {
         //查询缓存信息
-        String key = this.getUserTokenKey(userId, deviceType);
-        UserToken userToken = redisUtils.getCache(key);
+        String userTokenKey = this.getUserTokenKey(userId, deviceType);
+        UserToken userToken = redisUtils.getCache(userTokenKey);
         if (userToken != null) {
             return BeanUtils.copy(userToken, UserTokenDTO.class);
         }
@@ -55,6 +86,12 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
         if (userToken == null) {
             return null;
         }
+        //设置token详情缓存
+        String tokenInfoKey = this.getTokenInfoKey(userToken.getToken(), deviceType);
+        redisUtils.setCache(tokenInfoKey, userToken, ExpireTimeEnum.ONE_DAY.getTime());
+        //设置用户缓存
+        redisUtils.setCache(userTokenKey, userToken, ExpireTimeEnum.ONE_DAY.getTime());
+        //返回数据
         return BeanUtils.copy(userToken, UserTokenDTO.class);
     }
 
@@ -84,10 +121,10 @@ public class UserTokenServiceImpl extends ServiceImpl<UserTokenMapper, UserToken
         }
         //设置用户缓存
         String userTokenKey = this.getUserTokenKey(userId, deviceType);
-        redisUtils.setCache(userTokenKey, userToken, ExpireTimeEnum.ONE_WEEK.getTime());
+        redisUtils.setCache(userTokenKey, userToken, ExpireTimeEnum.ONE_DAY.getTime());
         //设置token详情缓存
         String tokenInfoKey = this.getTokenInfoKey(token, deviceType);
-        redisUtils.setCache(tokenInfoKey, userToken, ExpireTimeEnum.ONE_WEEK.getTime());
+        redisUtils.setCache(tokenInfoKey, userToken, ExpireTimeEnum.ONE_DAY.getTime());
         //返回token
         return token;
     }

+ 1 - 1
game-module/game-common-redis/src/main/java/com/zanxiang/common/redis/utils/RedisUtils.java → game-module/game-sdk/src/main/java/com/zanxiang/sdk/utils/RedisUtils.java

@@ -1,4 +1,4 @@
-package com.zanxiang.common.redis.utils;
+package com.zanxiang.sdk.utils;
 
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;

+ 11 - 0
game-module/game-sdk/src/main/resources/bootstrap.yml

@@ -31,6 +31,11 @@ spring:
         shared-dataids: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
         max-retry: 10
 
+  #redis数据库配置
+  redis:
+    host: 118.178.187.109
+    port: 6379
+    password: zx$2020ddd
   #数据库配置
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
@@ -38,6 +43,12 @@ spring:
     username: root
     password: zxdev3306
 
+ali-sms:
+  accessKeyId: LTAI4G5ZxxRe4SFBua4KmMdC
+  accessKeySecret: mPPmaPVDxfMfmtrM3vsDJHTmud9SZn
+  defaultSignName:
+  defaultVerifyCodeTemplate: SMS_232080189
+
 logging:
   level:
     root: warn