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;
}
相关推荐
wdfk_prog几秒前
[Linux]学习笔记系列 -- [fs]open
linux·笔记·学习
wdfk_prog2 分钟前
[Linux]学习笔记系列 -- [fs]nsfs
linux·笔记·学习
Knight_AL2 分钟前
阿里《Java 开发手册》下的对象构建与赋值规范实践
java·开发语言
步步为营DotNet15 分钟前
深入理解.NET 中的IHostedService:后台任务管理的基石
java·网络·.net
独自破碎E39 分钟前
Leetcode862和至少为K的最短子数组
java·开发语言
To Be Clean Coder42 分钟前
【Spring源码】getBean源码实战(二)
java·后端·spring
天才程序YUAN1 小时前
Windows自动修改系统环境变量(PATH)中所有 D 盘路径的脚本
运维·windows
washingtin1 小时前
Get “https://registry-1.docker.io/v2/“: context deadline exceeded
java·开发语言
一路往蓝-Anbo1 小时前
C语言从句柄到对象 (七) —— 给对象加把锁:RTOS 环境下的并发安全
java·c语言·开发语言·stm32·单片机·嵌入式硬件·算法
利刃大大1 小时前
【SpringBoot】validation参数校验 && JWT鉴权实现 && 加密/加盐
java·spring boot·jwt·加密