Browse Source

1.控制台人员数通过渠道代理过滤

wuhp 1 year ago
parent
commit
bfd099da7c

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

@@ -806,20 +806,20 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
             List<SysDeptTreeVo> resultDeptList = this.getFiveLevelDeptKzt(byUserId,managementSource);
             kztUserDeptTreeDto.setDeptList(resultDeptList);
             if (!userId.contains("M")) {
-              List<SysUser>  resultList =this.getUserTreeHx(byUserId);
+              List<SysUser>  resultList =this.getUserTreeHx(byUserId,managementSource);
                 kztUserDeptTreeDto.setUserList(resultList);
             }
 
         return kztUserDeptTreeDto;
     }
 
-    private List<SysUser> getUserTreeHx(SysUser sysUser) {
+    private List<SysUser> getUserTreeHx(SysUser sysUser,String managementSource) {
         //获取领导字段不为空的人的ID
         QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
         queryWrapper.isNotNull("leader_id");
 
         HashMap<String, Object> params = new HashMap<>();
-
+        params.put("managementSource",managementSource);
         List<SysUser> users = sysUserMapper.selectByParams(params);
 
         for (SysUser user : users) {
@@ -837,7 +837,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
             topUsers.add(sysUser);
         }
         // 递归构建用户树结构
-        buildUserTree(topUsers, users);
+        buildUserTree(topUsers, users,managementSource);
         return topUsers;
     }
 
@@ -957,14 +957,14 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
         }
     }
 
-    private void buildUserTree(List<SysUser> topUsers, List<SysUser> users) {
+    private void buildUserTree(List<SysUser> topUsers, List<SysUser> users, String managementSource) {
         for (SysUser user : topUsers) {
             List<SysUser> children = new ArrayList<>();
             for (SysUser childUser : users) {
                 if (user.getId().equals(childUser.getLeaderId())) {
                     children.add(childUser);
                     // 递归查找下一级
-                    buildUserTree(children, users);
+                    buildUserTree(children, users,managementSource);
                 }
             }
             user.setChildren(children);

+ 29 - 0
src/main/resources/mapper/modules/admin/SysUserMapper.xml

@@ -1961,6 +1961,35 @@
              <if test="leaderId !=null and  leaderId !=''">
                and  su.leader_id =#{leaderId}
              </if>
+            and (
+            WITH RECURSIVE user_subtree AS (
+            SELECT su1.id,
+            su1.leader_id,
+            0 AS level,
+            sd1.management_source
+            FROM sys_user su1
+            left join  sys_dept  sd1  on sd1.id = su1.dept_id
+            where
+            su1.id = su.id
+            UNION ALL
+            SELECT su1.id,
+            su1.leader_id,
+            ust.level + 1,
+            sd1.management_source
+            FROM sys_user su1
+            INNER JOIN
+            user_subtree ust ON su1.leader_id = ust.id
+            LEFT JOIN sys_dept sd1 ON sd1.id = su1.dept_id
+            )
+            SELECT count(0)
+            FROM user_subtree
+            where
+            <if test="managementSource != null  and  managementSource != ''">
+                management_source = #{managementSource}
+            </if>
+            ORDER BY level,
+            id
+            ) >0
         </where>
     </select>