|
@@ -2,8 +2,6 @@ package cn.com.ty.lift.system.user.service.impl;
|
|
|
|
|
|
import cn.com.ty.lift.common.aliservice.constants.AliConstants;
|
|
|
import cn.com.ty.lift.common.constants.ApiConstants;
|
|
|
-import cn.com.ty.lift.common.constants.WebSocketConstants;
|
|
|
-import cn.com.ty.lift.common.model.TimeyUser;
|
|
|
import cn.com.ty.lift.common.utils.ProjectUtils;
|
|
|
import cn.com.ty.lift.system.settings.dao.entity.MaintenanceCompany;
|
|
|
import cn.com.ty.lift.system.settings.service.IMaintenanceCompanyService;
|
|
@@ -184,8 +182,7 @@ public class LoginService implements ILoginService {
|
|
|
String newPassword = PasswordUtils.generatePassword(userRequest.getPassword(), salt);
|
|
|
userAccount.setPassword(newPassword);
|
|
|
userAccountService.updateById(userAccount);
|
|
|
- redisTemplate.delete(userRequest.getToken());
|
|
|
- this.blankingUserInfoIntoRedis(userRequest.getMobile(), userRequest.getToken(),session);
|
|
|
+ this.blankingUserInfoIntoRedis(userRequest.getMobile(), userRequest.getToken(), session);
|
|
|
return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "重置密码成功");
|
|
|
}
|
|
|
|
|
@@ -210,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)
|
|
|
);
|
|
@@ -228,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)
|
|
|
);
|
|
@@ -246,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;
|
|
|
}
|
|
@@ -267,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);
|
|
@@ -284,7 +305,9 @@ public class LoginService implements ILoginService {
|
|
|
public void blankingUserInfoIntoRedis(String mobile, String token, HttpSession session) {
|
|
|
String mobileUserInfo = mobile + ApiConstants.UserConstants.USER_INFO_MOBILE;
|
|
|
sessionRepository.deleteById(session.getId());
|
|
|
- redisTemplate.delete(token);
|
|
|
+ if (StringUtils.isNotBlank(token)) {
|
|
|
+ redisTemplate.delete(token);
|
|
|
+ }
|
|
|
redisTemplate.delete(mobileUserInfo + ApiConstants.ACCESS_TYPE_PC);
|
|
|
redisTemplate.delete(mobileUserInfo + ApiConstants.ACCESS_TYPE_APP);
|
|
|
redisTemplate.delete(mobileUserInfo + ApiConstants.ACCESS_TYPE_PUBLIC);
|
|
@@ -301,11 +324,6 @@ public class LoginService implements ILoginService {
|
|
|
HttpSession session = request.getSession();
|
|
|
//获取用户信息
|
|
|
UserResponse userResponse = userService.getLoginUserInfo(userRequest.getUserId());
|
|
|
- //将消息推送信息放入session中
|
|
|
- TimeyUser timeyUser = new TimeyUser();
|
|
|
- timeyUser.setUserId(userResponse.getUserId());
|
|
|
- timeyUser.setUserName(userResponse.getName());
|
|
|
- session.setAttribute(WebSocketConstants.CURRENT_TIMEY_USER, timeyUser);
|
|
|
//将当前用户id放入session中
|
|
|
session.setAttribute(ApiConstants.CURRENT_USER_ID, userResponse.getUserId());
|
|
|
//将当前公司id放入session中
|
|
@@ -465,6 +483,8 @@ public class LoginService implements ILoginService {
|
|
|
setUserInfoToSession(request, userResponse);
|
|
|
//添加登录记录
|
|
|
userLoginService.saveLoginInfo(request, userAccount.getUserId());
|
|
|
+ //更新用户信息
|
|
|
+ userAccountService.save(userAccount);
|
|
|
}
|
|
|
|
|
|
/**
|