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;
}
相关推荐
Rick199312 小时前
Java内存参数解析
java·开发语言·jvm
我是大猴子13 小时前
Spring代理类为何依赖注入失效?
java·后端·spring
勿忘,瞬间13 小时前
多线程之进阶修炼
java·开发语言
014-code13 小时前
线程池参数怎么配才不翻车
java
吴梓穆13 小时前
UE5 c++ 常用方法
java·c++·ue5
云栖梦泽13 小时前
Linux内核与驱动:9.Linux 驱动 API 封装
linux·c++
王夏奇13 小时前
python中的__all__ 具体用法
java·前端·python
明湖起风了13 小时前
mqtt消费堆积
java·jvm·windows
Free Tester14 小时前
如何判断 LeakCanary 报告的严重程度
java·jvm·算法
私人珍藏库14 小时前
[Windows] 【灵犀Claw生成】酷狗加密音乐批量转换工具 Xy Music Converter
windows·工具·软件·多功能