Pārlūkot izejas kodu

用户 层级由计算得出

Reiskuchen 5 gadi atpakaļ
vecāks
revīzija
d29f5384be

+ 4 - 7
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserController.java

@@ -112,22 +112,20 @@ public class UserController {
      */
     @RequestMapping("/insertUser")
     public HttpRespMsg insertUser(String id, @RequestParam String name, @RequestParam String phone,
-                                  @RequestParam Integer role, Double cost, Integer departmentId, String departmentCascade) {
-        return userService.insertUser(id, name, phone, role, cost, departmentId, departmentCascade, request);
+                                  @RequestParam Integer role, Double cost, Integer departmentId) {
+        return userService.insertUser(id, name, phone, role, cost, departmentId, request);
     }
 
     /**
      * 使用文件导入用户信息
      * departmentId 部门id 不传则默认0
-     * departmentCascade 部门层叠关系字符串 不传则默认"0"
      * file Excel文件
      */
     @RequestMapping("/importUser")
-    public HttpRespMsg importUser(Integer departmentId, String departmentCascade, @RequestParam MultipartFile file) {
-        return userService.importUser(departmentId, departmentCascade, file, request);
+    public HttpRespMsg importUser(Integer departmentId, @RequestParam MultipartFile file) {
+        return userService.importUser(departmentId, file, request);
     }
 
-
     /**
      * 切换权限 负责人可以将本公司的管理员切换至普通员工或者反之
      * id 目标id
@@ -136,6 +134,5 @@ public class UserController {
     public HttpRespMsg switchPermission(@RequestParam String id) {
         return userService.switchPermission(id, request);
     }
-
 }
 

+ 2 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/UserService.java

@@ -31,10 +31,9 @@ public interface UserService extends IService<User> {
     HttpRespMsg insertCompany(String companyName, String name, String phone);
 
     HttpRespMsg insertUser(String id, String name, String phone, Integer role, Double cost, Integer departmentId,
-                           String departmentCascade, HttpServletRequest request);
-
-    HttpRespMsg importUser(Integer departmentId, String departmentCascade, MultipartFile multipartFile,
                            HttpServletRequest request);
 
+    HttpRespMsg importUser(Integer departmentId, MultipartFile multipartFile, HttpServletRequest request);
+
     HttpRespMsg switchPermission(String id, HttpServletRequest request);
 }

+ 25 - 5
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -297,7 +297,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     //新增或修改用户
     @Override
     public HttpRespMsg insertUser(String targetId, String name, String phone, Integer role, Double cost,
-                                  Integer departmentId, String departmentCascade, HttpServletRequest request) {
+                                  Integer departmentId, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         try {
             User creator = userMapper.selectById(request.getHeader("Token"));
@@ -329,7 +329,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                                     .setCompanyId(creator.getCompanyId())
                                     .setCost(costValue)
                                     .setDepartmentId(departmentId == null ? 0 : departmentId)
-                                    .setDepartmentCascade(departmentCascade);
+                                    .setDepartmentCascade(departmentId == null ?
+                                            convertDepartmentIdToCascade(0) :
+                                            convertDepartmentIdToCascade(departmentId));
                             if (userMapper.insert(user) == 0) {
                                 httpRespMsg.setError("操作失败");
                             }
@@ -344,7 +346,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                         .setRole(role)
                         .setCost(costValue)
                         .setDepartmentId(departmentId == null ? 0 : departmentId)
-                        .setDepartmentCascade(departmentCascade));
+                        .setDepartmentCascade(departmentId == null ?
+                                convertDepartmentIdToCascade(0) :
+                                convertDepartmentIdToCascade(departmentId)));
             }
         } catch (NullPointerException e) {
             httpRespMsg.setError("数据有误 验证失败");
@@ -353,9 +357,25 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         return httpRespMsg;
     }
 
+    //将部门id转换为部门层级
+    private String convertDepartmentIdToCascade(Integer id) {
+        StringBuilder cascade = new StringBuilder();
+        if (id == 0) {
+            cascade.append("0");
+        } else {
+            cascade.append(id);
+            id = departmentMapper.selectById(id).getSuperiorId();
+            while (id != null) {
+                cascade.append(",").append(id);
+                id = departmentMapper.selectById(id).getSuperiorId();
+            }
+        }
+        return cascade.toString();
+    }
+
     //导入用户
     @Override
-    public HttpRespMsg importUser(Integer departmentId, String departmentCascade, MultipartFile multipartFile,
+    public HttpRespMsg importUser(Integer departmentId, MultipartFile multipartFile,
                                   HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         //首先先搞到公司id
@@ -414,7 +434,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                         .setCompanyId(companyId)
                         .setCost(cost)
                         .setDepartmentId(departmentId)
-                        .setDepartmentCascade(departmentCascade));
+                        .setDepartmentCascade(convertDepartmentIdToCascade(departmentId)));
             }
             //最后删掉这个文件
 //            if (!file.delete()) {