|
@@ -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);
|
|
|
}
|
|
|
|
|
|
/**
|