Explorar el Código

Merge branch 'wanghaicheng' of lift-manager/lift-server into develop

wanghaicheng hace 5 años
padre
commit
0bb39428d6

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

@@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -269,8 +270,8 @@ public class LoginController {
      */
     @PostMapping("/resetPassword")
     @ResponseBody
-    public RestResponse resetPassword(@RequestBody UserRequest userRequest) {
-        return loginService.resetPassword(userRequest);
+    public RestResponse resetPassword(@RequestBody UserRequest userRequest, HttpSession session) {
+        return loginService.resetPassword(userRequest, session);
     }
 
     /**

+ 3 - 2
lift-system-service/src/main/java/cn/com/ty/lift/system/user/controller/UserController.java

@@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpSession;
 
 /**
  * @author huangyuan
@@ -85,8 +86,8 @@ public class UserController {
      * @date 2020-01-04 16:30
      */
     @PostMapping("/changeMobile")
-    public RestResponse changeMobile(@RequestBody ChangeMobileRequest changeMobileRequest) {
-        return userService.changeMobile(changeMobileRequest);
+    public RestResponse changeMobile(@RequestBody ChangeMobileRequest changeMobileRequest, HttpSession session) {
+        return userService.changeMobile(changeMobileRequest, session);
     }
 
     /**

+ 3 - 2
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/ILoginService.java

@@ -4,6 +4,7 @@ import cn.com.ty.lift.system.user.dao.entity.model.UserRequest;
 import cn.com.xwy.boot.web.dto.RestResponse;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
 
 public interface ILoginService {
 
@@ -30,7 +31,7 @@ public interface ILoginService {
      * @description 重置密码
      * @date 2019-12-10
      */
-    RestResponse resetPassword(UserRequest userRequest);
+    RestResponse resetPassword(UserRequest userRequest, HttpSession session);
 
     /**
      * @param
@@ -63,7 +64,7 @@ public interface ILoginService {
      * @description 在redis中置空用户信息
      * @date 2020/4/22 6:46 下午
      */
-    void blankingUserInfoIntoRedis(String mobile, String token);
+    void blankingUserInfoIntoRedis(String mobile, String token, HttpSession session);
 
     /**
      * @param request 请求数据

+ 2 - 1
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/IUserService.java

@@ -6,6 +6,7 @@ import cn.com.ty.lift.system.user.dao.entity.model.UserRequest;
 import cn.com.ty.lift.system.user.dao.entity.model.UserResponse;
 import cn.com.xwy.boot.web.dto.RestResponse;
 
+import javax.servlet.http.HttpSession;
 import java.util.List;
 import java.util.Map;
 
@@ -93,7 +94,7 @@ public interface IUserService {
      * @description 更换手机号
      * @date 2020-01-04 10:31
      */
-    RestResponse changeMobile(ChangeMobileRequest changeMobileRequest);
+    RestResponse changeMobile(ChangeMobileRequest changeMobileRequest, HttpSession session);
 
     /**
      * @param userRequest 用户id

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

@@ -20,6 +20,7 @@ import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.session.data.redis.RedisOperationsSessionRepository;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
@@ -38,6 +39,8 @@ import java.util.concurrent.TimeUnit;
  */
 @Service
 public class LoginService implements ILoginService {
+    @Resource
+    private RedisOperationsSessionRepository sessionRepository;
 
     @Resource
     private IUserService userService;
@@ -165,7 +168,7 @@ public class LoginService implements ILoginService {
     }
 
     @Override
-    public RestResponse resetPassword(UserRequest userRequest) {
+    public RestResponse resetPassword(UserRequest userRequest, HttpSession session) {
         RestResponse verifyResult = verifySmsCode(userRequest.getMobile(), userRequest.getInputSmsCode());
         //如果结果不为空说明校验未通过
         if (verifyResult != null) {
@@ -182,7 +185,7 @@ public class LoginService implements ILoginService {
         userAccount.setPassword(newPassword);
         userAccountService.updateById(userAccount);
         redisTemplate.delete(userRequest.getToken());
-        this.blankingUserInfoIntoRedis(userRequest.getMobile(), userRequest.getToken());
+        this.blankingUserInfoIntoRedis(userRequest.getMobile(), userRequest.getToken(),session);
         return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "重置密码成功");
     }
 
@@ -278,8 +281,9 @@ public class LoginService implements ILoginService {
     }
 
     @Override
-    public void blankingUserInfoIntoRedis(String mobile, String token) {
+    public void blankingUserInfoIntoRedis(String mobile, String token, HttpSession session) {
         String mobileUserInfo = mobile + ApiConstants.UserConstants.USER_INFO_MOBILE;
+        sessionRepository.deleteById(session.getId());
         redisTemplate.delete(token);
         redisTemplate.delete(mobileUserInfo + ApiConstants.ACCESS_TYPE_PC);
         redisTemplate.delete(mobileUserInfo + ApiConstants.ACCESS_TYPE_APP);

+ 3 - 2
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/UserService.java

@@ -19,6 +19,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpSession;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -305,7 +306,7 @@ public class UserService implements IUserService {
 
     @Override
     @Transactional
-    public RestResponse changeMobile(ChangeMobileRequest changeMobileRequest) {
+    public RestResponse changeMobile(ChangeMobileRequest changeMobileRequest, HttpSession session) {
         //非空校验
         if (StringUtils.isBlank(changeMobileRequest.getOldMobile())) {
             return RestResponse.fail(ApiConstants.RESULT_ERROR, "旧手机号为空");
@@ -336,7 +337,7 @@ public class UserService implements IUserService {
         userAccountService.updateById(oldUserAccount);
         userInfoService.updateById(userInfo);
         //将用户在系统中登出,用户更换手机号后需要重新登录
-        loginService.blankingUserInfoIntoRedis(changeMobileRequest.getOldMobile(), changeMobileRequest.getToken());
+        loginService.blankingUserInfoIntoRedis(changeMobileRequest.getOldMobile(), changeMobileRequest.getToken(), session);
         return RestResponse.success(ApiConstants.RESULT_SUCCESS, "更换手机号成功");
     }