java通过用户id寻找下级

复制代码
private List<Long> getJuniorDeptIds(R<List<SysUser>> userList, List<Long> xiajiId) {
    List<Long> userIds = new ArrayList<>();
    // 创建一个临时列表,用于存储当前层级的下级部门id
    List<Long> currentLevelDeptIds = new ArrayList<>(xiajiId);
    // 直到没有下级部门为止
    while (!currentLevelDeptIds.isEmpty()) {
        List<Long> nextLevelDeptIds = new ArrayList<>();
        // 遍历当前层级的下级部门id
        for (Long deptId : currentLevelDeptIds) {
            for (SysUser datum : userList.getData()) {
                if (Objects.equals(datum.getDeptId(), deptId)) {
                    userIds.add(datum.getUserId());
                    // 将当前部门的所有下级部门id添加到下一层级列表中
                    nextLevelDeptIds.add(datum.getUserId());
                }
            }
        }
        // 更新当前层级的下级部门id为下一层级的部门id
        currentLevelDeptIds = nextLevelDeptIds;
    }
    return userIds;
}
相关推荐
实心儿儿1 分钟前
Linux —— 进程间通信 - 命名管道
linux·运维·服务器
fanzhonghong4 分钟前
javaWeb开发之Maven高级
java·开发语言·spring boot·spring cloud·私服
xu_ws7 分钟前
spring通过三级缓存解决循环依赖
java·spring·缓存·循环依赖
funnycoffee1238 分钟前
Cisco Firewpower 4100 9300 FXOS change management ip address
linux·数据库·tcp/ip
Chase_______8 分钟前
Java 基础语言 ③:流程控制与数组——从条件分支到数组遍历,一篇通关
java·数据库·python
Han_han91911 分钟前
List系列集合:
数据结构·windows·list
luck_bor14 分钟前
Lambda表达式 算法异常
java·开发语言
码上小翔哥16 分钟前
Jackson 配置深度解析
java·后端
qq_25183645718 分钟前
基于java 私厨美食共享平台系统设计与实现(有源码)
java·开发语言·美食
呉師傅21 分钟前
统信UOS如何安装本地打印机驱动以及URL查找网络打印机并安装驱动方法
运维·服务器·网络·windows·电脑