Parcourir la source

系统树增加展示权限

haoyu il y a 2 ans
Parent
commit
20eadbb243

+ 7 - 8
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptServiceImpl.java

@@ -29,10 +29,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -72,7 +69,12 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
         lambdaQueryWrapper.eq(SysUserTreeShowLevel::getUserId, userId);
         SysUserTreeShowLevel treeShowLevel = sysUserTreeShowLevelService.getOne(lambdaQueryWrapper);
 
-        List<SysDept> treeByShowLevel;
+        List<SysDept> treeByShowLevel = new ArrayList<>();
+        //如果当前用户未配置树展示等级,则默认为查询全部
+        if (Objects.isNull(treeShowLevel)) {
+            treeShowLevel = new SysUserTreeShowLevel();
+            treeShowLevel.setShowLevel("all");
+        }
         // 如果指定的部门ID为空或特定值,则使用当前用户所在部门ID
         if (null == deptId || "".equals(deptId) || "undefined".equals(deptId)) {
             deptId = user.getDeptId();
@@ -89,9 +91,6 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
             case "subordinate":
                 treeByShowLevel = findTreeByShowLevel(deptId, managementSource, "subordinate");
                 break;
-            default:
-                treeByShowLevel = findTreeByShowLevel("9", managementSource, "all");
-                break;
         }
         return treeByShowLevel;
     }

+ 10 - 9
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -738,6 +738,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         lambdaQueryWrapper.eq(SysUserTreeShowLevel::getUserId, userId);
         SysUserTreeShowLevel treeShowLevel = sysUserTreeShowLevelService.getOne(lambdaQueryWrapper);
 
+        //如果当前用户未配置树展示等级,则默认为查询全部
+        if (Objects.isNull(treeShowLevel)) {
+            treeShowLevel = new SysUserTreeShowLevel();
+            treeShowLevel.setShowLevel("all");
+        }
         //获取领导字段不为空的人的ID
         List<SysUser> users = lambdaQuery().isNotNull(SysUser::getLeaderId).list();
 
@@ -764,7 +769,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 buildUserTree(topUsers, users);
                 break;
             case "same": // 只展示当前用户
-                topUsers.add(user);
+                for (String ids : topUserId) {
+                    if (ids.equals(userId)) {
+                        topUsers.add(user);
+                    }
+                }
                 break;
             case "subordinate": // 只展示当前用户及下属
                 for (String ids : topUserId) {
@@ -775,14 +784,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                     }
                 }
                 break;
-            default:// 默认展示所有级别的用户,与"all"情况处理相同
-                list2 = lambdaQuery().in(SysUser::getId, topUserId).list();
-                for (SysUser sysUser : list2) {
-                    if (Objects.isNull(sysUser.getLeaderId())) {
-                        topUsers.add(sysUser);
-                    }
-                }
-                break;
         }
         return topUsers;
     }