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 天前
网络编程—应用层HTTP协议
linux·运维·开发语言·前端·网络·网络协议·http
Mr__Miss1 天前
Java泛型完全指南:从入门到精通
java·开发语言·python
ShineWinsu1 天前
对于Linux:UDPsocket编程基础的解析
linux·运维·网络协议·udp·ip·端口号·进程间通信
jinyishu_1 天前
模拟实现 C++ 栈和队列——从适配器模式看懂 STL 容器之美
java·c++·适配器模式
hehelm1 天前
AI大模型接入SDK—通用模块设计
linux·开发语言·c++
前端工作日常1 天前
我学习到的Java类和对象区别
java·后端
前端工作日常1 天前
我学习到的Java类完整结构
java·后端
什巳1 天前
JAVA练习309- 二叉树的层序遍历
java·数据结构·算法·leetcode
宠友信息1 天前
消息序号如何保证即时通讯源码聊天记录稳定加载
java·spring boot·redis·python·mysql·uni-app
圣光SG1 天前
Java Web入门基础知识笔记
java·前端·笔记