Explorar o código

Merge branch 'develop' of http://132.232.206.88:3000/lift-manager/lift-server into feature-wcz

wcz %!s(int64=5) %!d(string=hai) anos
pai
achega
c5687b2e5b

+ 0 - 5
lift-common/src/main/java/cn.com.ty.lift.common/constants/ApiConstants.java

@@ -139,11 +139,6 @@ public class ApiConstants {
          */
         int NOT_EXPERT = 0;
 
-        /**
-         * 用户信息字段
-         */
-        String USER_INFO_FIELD = "userInfo";
-
         /**
          * 验证码手机号
          */

+ 1 - 1
lift-system-service/src/main/java/cn/com/ty/lift/system/settings/service/impl/MaintenanceCompanyServiceImpl.java

@@ -75,7 +75,7 @@ public class MaintenanceCompanyServiceImpl extends ServiceImpl<MaintenanceCompan
     @Transactional
     public RestResponse createTeam(MaintenanceCompanyRequest maintenanceCompanyRequest) {
         MaintenanceCompany maintenanceCompany = new MaintenanceCompany();
-        //当前登录用户id
+        //当前登录用户id
         Long userId = maintenanceCompanyRequest.getUserId();
         //设置申请团队信息
         maintenanceCompany.setName(maintenanceCompanyRequest.getCompanyName());

+ 1 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/dao/entity/model/ChangeMobileRequest.java

@@ -12,4 +12,5 @@ public class ChangeMobileRequest {
     private String oldMobile;//原来手机号
     private String newMobile;//新手机号
     private String newMobileSmsCode;//新手机号验证码
+    private String token;//用户授权令牌
 }

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

@@ -136,7 +136,9 @@ public class LoginService implements ILoginService {
         userAccount.setPassword(newPassword);
         userAccountService.updateById(userAccount);
         //用户修改密码后,需要重新登录,将redis中的用户信息置空
-        redisTemplate.opsForValue().set(userAccount.getMobile() + ApiConstants.UserConstants.USER_INFO_FIELD, null);
+        String mobileUserInfo = (String) redisTemplate.opsForValue().get(userRequest.getToken());
+        redisTemplate.opsForValue().set(userRequest.getToken(), null);
+        redisTemplate.opsForValue().set(mobileUserInfo, null);
         return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "重置密码成功");
     }
 
@@ -196,13 +198,17 @@ public class LoginService implements ILoginService {
     private UserResponse initLoginInfo(HttpServletRequest request, Long userId) {
         //获取用户信息
         UserResponse userResponse = userService.getLoginUserInfo(userId);
-        //将用户登录的手机号放入session中
-        request.getSession().setAttribute(ApiConstants.UserConstants.USER_INFO_MOBILE, userResponse.getMobile());
+        //将用户手机号放入session中
+        request.getSession().setAttribute(ApiConstants.CURRENT_USER_ID, userResponse.getUserId());
         //封装登录用户信息
         Map<String, Object> currentUserInfoMap = getUserInfoMap(userResponse);
-        //将手机号对应的用户信息放入redis中,设置过期时间为30分钟
-        redisTemplate.opsForValue().set(userResponse.getMobile() + ApiConstants.UserConstants.USER_INFO_FIELD,
-                JSONUtil.toJsonPrettyStr(currentUserInfoMap), 30L, TimeUnit.MINUTES);
+        String mobileUserInfo = userResponse.getMobile()
+                + ApiConstants.UserConstants.USER_INFO_MOBILE;
+        //将token对应用户手机号放入redis中,设置过期时间为30分钟
+        redisTemplate.opsForValue().set(userResponse.getToken(), mobileUserInfo, 30L, TimeUnit.MINUTES);
+        //将用户手机号对应的用户信息放入redis中, 过期时间为30分钟
+        redisTemplate.opsForValue().set(mobileUserInfo, JSONUtil.toJsonPrettyStr(currentUserInfoMap),
+                30L, TimeUnit.MINUTES);
         return userResponse;
     }
 
@@ -230,8 +236,13 @@ public class LoginService implements ILoginService {
         Map<String, Object> currentUserInfoMap = new HashMap<>();
         //当前用户id
         currentUserInfoMap.put(ApiConstants.CURRENT_USER_ID, userResponse.getUserId());
+        //如果用户类型为空,设置用户类型为普通类型
+        int userType = 3;
+        if (userResponse.getType() != null) {
+            userType = userResponse.getType();
+        }
         //当前用户信息
-        currentUserInfoMap.put(ApiConstants.CURRENT_USER_TYPE, userResponse.getType());
+        currentUserInfoMap.put(ApiConstants.CURRENT_USER_TYPE, userType);
         //当前公司id
         MaintenanceCompany maintenanceCompany = userResponse.getMaintenanceCompany();
         if (maintenanceCompany != null) {

+ 5 - 8
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/MenuService.java

@@ -53,9 +53,9 @@ public class MenuService extends ServiceImpl<MenuMapper, Menu> implements IMenuS
     public String menuToUrl(List<Menu> menuList) {
         //将菜单转化为菜单树
         List<Menu> menuTree = TreeUtil.listToTree(menuList, ApiConstants.MENU_PARENT_ATTR, ApiConstants.ROOT_MENU_PARENT_ID, "id");
-        StringBuilder sb = new StringBuilder();
         //递归组合菜单路径
-        menuTreeToUrl(menuTree, sb, "");
+        StringBuilder sb = new StringBuilder();
+        menuTreeToUrl(menuTree,  sb);
         return sb.toString();
     }
 
@@ -133,22 +133,19 @@ public class MenuService extends ServiceImpl<MenuMapper, Menu> implements IMenuS
 
     /**
      * @param menuTree 菜单树,
-     * @param sb       路径StringBuilder对象
-     * @param url      请求路径
      * @return
      * @description 菜单树转化为路径字符串
      * @date 2019/11/27 10:03 AM
      */
-    private void menuTreeToUrl(List<Menu> menuTree, StringBuilder sb, String url) {
+    private void menuTreeToUrl(List<Menu> menuTree, StringBuilder sb) {
         if (menuTree != null && menuTree.size() > 0) {
             for (Menu menu : menuTree) {
                 if (StringUtils.isNotBlank(menu.getUrl())) {
-                    url = url + menu.getUrl();
+                    sb.append(menu.getUrl());
                 }
-                menuTreeToUrl(menu.getChildren(), sb, url);
+                menuTreeToUrl(menu.getChildren(), sb);
             }
         }
-        sb.append(url + ",");
     }
 
     /**

+ 25 - 5
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/MtCompanyUserService.java

@@ -78,7 +78,7 @@ public class MtCompanyUserService extends ServiceImpl<MtCompanyUserMapper, MtCom
             userRole.setRoleId(roleId);
             userRole.setUserId(userId);
             boolean saveUserRoleFlag = userRoleService.save(userRole);
-            if(!saveUserRoleFlag){
+            if (!saveUserRoleFlag) {
                 //事务强制回滚
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return RestResponse.fail(ApiConstants.RESULT_ERROR, "保存角色信息失败");
@@ -111,6 +111,14 @@ public class MtCompanyUserService extends ServiceImpl<MtCompanyUserMapper, MtCom
         );
         //获取角色关联的用户信息
         List<Long> userIdList = ProjectUtils.getAttrList(userRoleList, "userId", null);
+        if(userIdList.size() > 0){
+            List<MtCompanyUser> mtCompanyUserList = this.list(new QueryWrapper<MtCompanyUser>()
+                    .in(userIdList != null && userIdList.size() > 0, "user_id", userIdList)
+                    .eq("mt_company_id", mtCompanyUserRequest.getCompanyId())
+                    .eq("status", ApiConstants.ApplicationConstants.APPLY_PASS)
+            );
+            userIdList = ProjectUtils.getAttrList(mtCompanyUserList, "userId", null);
+        }
         Map<Long, Role> userIdToRole = roleService.getUserIdToRoleByUserIdsAndCompanyId(userIdList, mtCompanyUserRequest.getCompanyId());
         //获取用户信息集合
         if (userIdList != null && userIdList.size() > 0) {
@@ -125,7 +133,7 @@ public class MtCompanyUserService extends ServiceImpl<MtCompanyUserMapper, MtCom
                     //用户id->角色
                     Role role = userIdToRole.get(userId);
                     //设置角色编码
-                    if(role !=  null){
+                    if (role != null) {
                         userResponse.setRoleCode(role.getCode());
                     }
                     if (userInfo != null) {
@@ -151,8 +159,20 @@ public class MtCompanyUserService extends ServiceImpl<MtCompanyUserMapper, MtCom
         }
         //设置用户为踢出团队状态
         mtCompanyUser.setStatus(ApiConstants.ApplicationConstants.APPLY_FAIL);
-        this.updateById(mtCompanyUser);
-        return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "踢出用户成功");
+        //将用户原来关联的角色信息删除掉
+        boolean deleteUserRoleFlag = userRoleService.remove(new QueryWrapper<UserRole>()
+                .eq("user_id", mtCompanyUser.getUserId())
+                .eq("company_id", mtCompanyUser.getMtCompanyId())
+        );
+        if (deleteUserRoleFlag) {
+            if (this.updateById(mtCompanyUser)) {
+                return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "踢出用户成功");
+            } else {
+                //如果删除不成功,强制事务回滚
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            }
+        }
+        return RestResponse.fail(ApiConstants.RESULT_ERROR, "踢出用户失败");
     }
 
     @Override
@@ -292,7 +312,7 @@ public class MtCompanyUserService extends ServiceImpl<MtCompanyUserMapper, MtCom
                 .eq("delete_flag", ApiConstants.DELETE_NO)
         );
         //获取用户信息
-        List<Long> userIdList = ProjectUtils.getAttrList(mtCompanyUserList,"userId", null);
+        List<Long> userIdList = ProjectUtils.getAttrList(mtCompanyUserList, "userId", null);
         Map<Long, UserResponse> userIdToUserResponse = userService.getUserResponseByUserIdList(userIdList);
         return RestResponse.success(userIdToUserResponse.values(), ApiConstants.RESULT_SUCCESS, "获取急修工成功");
     }

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

@@ -319,7 +319,9 @@ public class UserService implements IUserService {
         userAccountService.updateById(oldUserAccount);
         userInfoService.updateById(userInfo);
         //将用户在系统中登出,用户更换手机号后需要重新登录
-        redisTemplate.opsForValue().set(changeMobileRequest.getOldMobile() + ApiConstants.UserConstants.USER_INFO_FIELD, null);
+        String mobileUserInfo = (String) redisTemplate.opsForValue().get(changeMobileRequest.getToken());
+        redisTemplate.opsForValue().set(changeMobileRequest.getToken(), null);
+        redisTemplate.opsForValue().set(mobileUserInfo, null);
         return RestResponse.success(ApiConstants.RESULT_SUCCESS, "更换手机号成功");
     }
 

+ 1 - 1
lift-system-service/src/main/resources/application.yml

@@ -14,7 +14,7 @@ spring:
   application:
     name: lift-system-service
   profiles:
-    active: dev
+    active: local
 
 #自动添加createTime、isDelete 等字段
 xwy: