Explorar el Código

重置密码修复

黄远 hace 5 años
padre
commit
9b8dec95ba

+ 16 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/controller/LoginController.java

@@ -73,6 +73,22 @@ public class LoginController {
         return restResponse;
     }
 
+    /**
+     * @param userRequest mobile 用户手机号
+     * @return
+     * @description app 卫星登录绑定用户手机号
+     * @date 2020/5/7 10:43 上午
+     */
+    @PostMapping("/appBindMobile")
+    public RestResponse appBindMobile(HttpServletRequest request, @RequestBody UserRequest userRequest) {
+        RestResponse restResponse = judgeAuthCode(userRequest, WxConstants.APP_LOGIN);
+        if (restResponse == null) {
+            //校验通过,用户绑定手机号
+            return loginService.appBindMobile(request, userRequest);
+        }
+        return restResponse;
+    }
+
     /**
      * @param
      * @return

+ 8 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/ILoginService.java

@@ -81,4 +81,12 @@ public interface ILoginService {
      * @date 2020/4/27 2:39 下午
      */
     RestResponse bindMobile(HttpServletRequest request, UserRequest userRequest);
+
+    /**
+     * @param userRequest mobile 用户手机号
+     * @return
+     * @description app 卫星登录绑定用户手机号
+     * @date 2020/5/7 10:43 上午
+     */
+    RestResponse appBindMobile(HttpServletRequest request, UserRequest userRequest);
 }

+ 32 - 6
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/LoginService.java

@@ -207,7 +207,7 @@ public class LoginService implements ILoginService {
     @Override
     public RestResponse wxLogin(HttpServletRequest request, UserRequest userRequest) {
         //通过授权码获取用户openId
-        String openId = userRequest.getAuthCode();
+        String openId = userRequest.getWeChatOpenId();
         UserAccount userAccount = userAccountService.getOne(new QueryWrapper<UserAccount>()
                 .eq("wechat_open_id", openId)
         );
@@ -225,7 +225,7 @@ public class LoginService implements ILoginService {
     @Override
     public RestResponse appletLogin(HttpServletRequest request, UserRequest userRequest) {
         //通过授权码获取用户openId
-        String openId = userRequest.getAuthCode();
+        String openId = userRequest.getWeChatOpenId();
         UserAccount userAccount = userAccountService.getOne(new QueryWrapper<UserAccount>()
                 .eq("applet_open_id", openId)
         );
@@ -243,10 +243,8 @@ public class LoginService implements ILoginService {
 
     @Override
     public RestResponse bindMobile(HttpServletRequest request, UserRequest userRequest) {
-        if (StringUtils.isBlank(userRequest.getMobile())) {
-            return RestResponse.fail(ApiConstants.RESULT_ERROR, "手机号为空无法绑定");
-        }
-        RestResponse restResponse = verifySmsCode(userRequest.getMobile(), userRequest.getInputSmsCode());
+        //校验手机号和短信验证码
+        RestResponse restResponse = checkMobileAndSmsCode(userRequest);
         if (restResponse != null) {
             return restResponse;
         }
@@ -264,6 +262,32 @@ public class LoginService implements ILoginService {
         return RestResponse.success(userResponse, ApiConstants.RESULT_SUCCESS, "绑定成功");
     }
 
+    @Override
+    public RestResponse appBindMobile(HttpServletRequest request, UserRequest userRequest) {
+        //校验手机号和短信验证码
+        RestResponse restResponse = checkMobileAndSmsCode(userRequest);
+        if (restResponse != null) {
+            return restResponse;
+        }
+        UserAccount userAccount = userAccountService.getByMobile(userRequest.getMobile());
+        if (userAccount == null) {
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "当前手机号尚未注册,请先注册再绑定");
+        }
+        //通过授权码获取用户openId
+        String openId = userRequest.getWeChatOpenId();
+        userAccount.setWechatOpenId(openId);
+        userAccountService.save(userAccount);
+        UserResponse userResponse = initLoginInfo(request, userRequest);
+        return RestResponse.success(userResponse, ApiConstants.RESULT_SUCCESS, "绑定手机号成功");
+    }
+
+    private RestResponse checkMobileAndSmsCode(UserRequest userRequest) {
+        if (StringUtils.isBlank(userRequest.getMobile())) {
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "手机号为空无法绑定");
+        }
+        return verifySmsCode(userRequest.getMobile(), userRequest.getInputSmsCode());
+    }
+
     @Override
     public RestResponse verifySmsCode(String mobile, String inputSmsCode) {
         Object smsCode = redisTemplate.opsForValue().get(mobile + AliConstants.SmsConstants.SMS_CODE_FIELD);
@@ -459,6 +483,8 @@ public class LoginService implements ILoginService {
         setUserInfoToSession(request, userResponse);
         //添加登录记录
         userLoginService.saveLoginInfo(request, userAccount.getUserId());
+        //更新用户信息
+        userAccountService.save(userAccount);
     }
 
     /**