瀏覽代碼

feat : 游戏对接App修改

bilingfeng 2 年之前
父節點
當前提交
a7361c4dac

+ 3 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/controller/UserController.java

@@ -48,6 +48,9 @@ public class UserController {
         return userService.updatePassword(updatePasswordParam, userData);
     }
 
+
+    //------------------------- 11111 -------------------------
+
     @ApiOperation(value = "用户获取信息详情")
     @PostMapping("/get/user/detail")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = UserLoginVO.class)})

+ 37 - 0
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/BindPhoneParam.java

@@ -0,0 +1,37 @@
+package com.zanxiang.sdk.domain.params;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-09-26
+ * @description : 绑定手机号参数
+ */
+@Data
+public class BindPhoneParam {
+
+    /**
+     * 验证码类型
+     */
+    @ApiModelProperty(notes = "验证码类型")
+    @NotNull(message = "验证码类型不可为空")
+    private Integer type;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(notes = "手机号")
+    @NotBlank(message = "手机号不可为空")
+    private String mobile;
+
+    /**
+     * 验证码
+     */
+    @ApiModelProperty(notes = "验证码")
+    @NotBlank(message = "验证码不可为空")
+    private String code;
+}

+ 31 - 13
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/GameUserRoleUpdateParam.java

@@ -2,9 +2,9 @@ package com.zanxiang.sdk.domain.params;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
 
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
@@ -15,24 +15,48 @@ import java.time.LocalDateTime;
  * @time : 2022-07-21
  */
 @Data
-@EqualsAndHashCode(callSuper = true)
-public class GameUserRoleUpdateParam extends CommonParam {
+public class GameUserRoleUpdateParam {
 
-    @ApiModelProperty("游戏服务器id,默认为0")
-    private String serverId;
+    @ApiModelProperty("游戏id")
+    @NotNull(message = "游戏id不可为空")
+    private Long gameId;
 
-    @ApiModelProperty("所在服务器名称")
-    private String serverName;
+    @ApiModelProperty("上报类型")
+    @NotNull(message = "上报类型不可为空")
+    private Integer dataType;
 
     @ApiModelProperty("角色id")
+    @NotBlank(message = "角色id不可为空")
     private String roleId;
 
     @ApiModelProperty("角色名称")
+    @NotBlank(message = "角色名称不可为空")
     private String roleName;
 
     @ApiModelProperty("角色等级")
+    @NotNull(message = "角色等级不可为空")
     private Long roleLevel;
 
+    @ApiModelProperty("游戏服务器id")
+    @NotBlank(message = "游戏服务器id不可为空")
+    private String serverId;
+
+    @ApiModelProperty("所在服务器名称")
+    @NotBlank(message = "所在服务器名称不可为空")
+    private String serverName;
+
+    @ApiModelProperty("角色创建时间")
+    @NotNull(message = "角色创建时间不可为空")
+    private LocalDateTime roleCreateTime;
+
+    //---------------- 非必传参数 ----------------
+
+    @ApiModelProperty("游戏区服id")
+    private Long regionalId;
+
+    @ApiModelProperty("游戏区服名称")
+    private String regionalName;
+
     @ApiModelProperty("角色VIP")
     private Long roleVipLevel;
 
@@ -54,12 +78,6 @@ public class GameUserRoleUpdateParam extends CommonParam {
     @ApiModelProperty("扩展信息")
     private String ext;
 
-    @ApiModelProperty("游戏区服id")
-    private Long regionalId;
-
-    @ApiModelProperty("游戏区服名称")
-    private String regionalName;
-
     @ApiModelProperty("角色最后登录时间")
     private LocalDateTime lastLoginTime;
 }

+ 2 - 1
game-module/game-sdk/src/main/java/com/zanxiang/sdk/domain/params/LoginPasswordParam.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 
 /**
  * @author : lingfeng
@@ -35,7 +36,7 @@ public class LoginPasswordParam {
      * 类型 , 0 : 注册登录, 1 : 登录
      */
     @ApiModelProperty(notes = "类型 , 0 : 注册登录, 1 : 登录")
-    @NotBlank(message = "类型不可为空")
+    @NotNull(message = "类型不可为空")
     private Integer type;
 
     /**

+ 2 - 8
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/GameUserRoleImpl.java

@@ -5,8 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.common.enums.HttpStatusEnum;
 import com.zanxiang.common.exception.CustomException;
-import com.zanxiang.common.exception.ParamNullException;
-import com.zanxiang.common.utils.StringUtils;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.mybatis.entity.GameUser;
 import com.zanxiang.mybatis.entity.GameUserRole;
@@ -34,11 +32,7 @@ public class GameUserRoleImpl extends ServiceImpl<GameUserRoleMapper, GameUserRo
 
     @Override
     public Boolean updateUserGameRole(GameUserRoleUpdateParam param, UserData userData) {
-        //查询gameUserId
-        if (StringUtils.isEmpty(param.getGameId())) {
-            throw new ParamNullException("GameId");
-        }
-        Long gameId = Long.valueOf(param.getGameId());
+        Long gameId = param.getGameId();
         GameUser gameUserData = gameUserService.getOne(new LambdaQueryWrapper<GameUser>().eq(GameUser::getGameId, gameId).eq(GameUser::getUserId, userData.getUserId()).last("limit 1"));
         if (Objects.isNull(gameUserData)) {
             throw new CustomException(HttpStatusEnum.GAME_USER_UN_CREATE);
@@ -51,7 +45,7 @@ public class GameUserRoleImpl extends ServiceImpl<GameUserRoleMapper, GameUserRo
         GameUserRole gameUserRoleData = super.getOne(new LambdaQueryWrapper<GameUserRole>().setEntity(gameUserRoleWhere).last("limit 1"));
         GameUserRole roleData = BeanUtils.copy(param, GameUserRole.class);
         roleData.setOs(userData.getDeviceSystem());
-        
+
         if (Objects.isNull(gameUserRoleData)) {
             //新增
             roleData.setRoleId(param.getRoleId());

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

@@ -27,6 +27,7 @@ import org.apache.logging.log4j.util.Strings;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -91,6 +92,7 @@ public class LoginServiceImpl implements RegisterLoginService {
      * @return : 返回用户登录信息
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public ResultVO<UserLoginVO> loginPassword(LoginPasswordParam param, HttpServletRequest request) {
         String username = param.getUsername();
         String password = param.getPassword();
@@ -157,6 +159,7 @@ public class LoginServiceImpl implements RegisterLoginService {
      * @return : 返回登录信息
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public ResultVO<UserLoginVO> loginMobile(LoginMobileParam param, HttpServletRequest request) {
         Integer type = param.getType();
         String mobile = param.getMobile();

+ 42 - 10
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/Impl/UserServiceImpl.java

@@ -16,12 +16,10 @@ import com.zanxiang.mybatis.mapper.UserMapper;
 import com.zanxiang.sdk.common.util.RegisterUtil;
 import com.zanxiang.sdk.domain.dto.UserDTO;
 import com.zanxiang.sdk.domain.dto.UserTokenDTO;
-import com.zanxiang.sdk.domain.params.UpdatePasswordParam;
-import com.zanxiang.sdk.domain.params.UserCheckParam;
-import com.zanxiang.sdk.domain.params.UserData;
-import com.zanxiang.sdk.domain.params.UserDetailParam;
+import com.zanxiang.sdk.domain.params.*;
 import com.zanxiang.sdk.domain.vo.UserVO;
 import com.zanxiang.sdk.service.GameService;
+import com.zanxiang.sdk.service.SmsService;
 import com.zanxiang.sdk.service.UserService;
 import com.zanxiang.sdk.service.UserTokenService;
 import lombok.extern.slf4j.Slf4j;
@@ -50,18 +48,21 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     @Autowired
     private GameService gameService;
 
+    @Autowired
+    private SmsService smsService;
+
     /**
      * 用户重置密码
      *
-     * @param updatePasswordParam : 修改密码的参数
-     * @param userData            : userData
+     * @param param    : 修改密码的参数
+     * @param userData : userData
      * @return : 返回修改结果
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ResultVO<Boolean> updatePassword(UpdatePasswordParam updatePasswordParam, UserData userData) {
-        String oldPassword = updatePasswordParam.getOldPassword();
-        String newPassword = updatePasswordParam.getNewPassword();
+    public ResultVO<Boolean> updatePassword(UpdatePasswordParam param, UserData userData) {
+        String oldPassword = param.getOldPassword();
+        String newPassword = param.getNewPassword();
         //查询用户信息
         User user = super.getById(userData.getUserId());
         //旧密码校验
@@ -76,7 +77,38 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         //修改用户密码
         super.update(new LambdaUpdateWrapper<User>()
                 .set(User::getPassword, RegisterUtil.cmfPassword(newPassword))
-                .set(User::getUpdateTime, LocalDateTime.now()));
+                .set(User::getUpdateTime, LocalDateTime.now())
+                .eq(User::getId, user.getId())
+        );
+        //返回修改成功
+        return new ResultVO<>(HttpStatusEnum.SUCCESS, Boolean.TRUE);
+    }
+
+    /**
+     * 用户绑定手机
+     *
+     * @param param    : 绑定手机参数
+     * @param userData : userData
+     * @return : 返回修改结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public ResultVO<Boolean> bindPhone(BindPhoneParam param, UserData userData) {
+        String code = param.getCode();
+        String mobile = param.getMobile();
+        Integer type = param.getType();
+        //验证码校验
+        HttpStatusEnum httpStatusEnum = smsService.smsCheck(type, mobile, code);
+        //验证不通过, 返回
+        if (!Objects.equals(httpStatusEnum, HttpStatusEnum.SUCCESS)) {
+            return new ResultVO<>(httpStatusEnum);
+        }
+        //修改用户密码
+        super.update(new LambdaUpdateWrapper<User>()
+                .set(User::getMobile, mobile)
+                .set(User::getUpdateTime, LocalDateTime.now())
+                .eq(User::getId, userData.getUserId())
+        );
         //返回修改成功
         return new ResultVO<>(HttpStatusEnum.SUCCESS, Boolean.TRUE);
     }

+ 10 - 4
game-module/game-sdk/src/main/java/com/zanxiang/sdk/service/UserService.java

@@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.zanxiang.common.domain.ResultVO;
 import com.zanxiang.mybatis.entity.User;
 import com.zanxiang.sdk.domain.dto.UserDTO;
-import com.zanxiang.sdk.domain.params.UpdatePasswordParam;
-import com.zanxiang.sdk.domain.params.UserCheckParam;
-import com.zanxiang.sdk.domain.params.UserData;
-import com.zanxiang.sdk.domain.params.UserDetailParam;
+import com.zanxiang.sdk.domain.params.*;
 import com.zanxiang.sdk.domain.vo.UserVO;
 
 /**
@@ -26,6 +23,15 @@ public interface UserService extends IService<User> {
      */
     ResultVO<Boolean> updatePassword(UpdatePasswordParam updatePasswordParam, UserData userData);
 
+    /**
+     * 用户绑定手机
+     *
+     * @param param    : 绑定手机参数
+     * @param userData : userData
+     * @return : 返回修改结果
+     */
+    ResultVO<Boolean> bindPhone(BindPhoneParam param, UserData userData);
+
     /**
      * 获取用户信息
      *