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;
}
相关推荐
jakeswang8 分钟前
【AI面经】大模型半夜发短信骂客户?Agent 工具调用失控,你如何设计防护机制?
java·后端
小杍随笔17 分钟前
【WordPress 核心表】
linux·运维·服务器
TEC_INO20 分钟前
Linux_55:RV1126的VENC模块讲解
linux·网络·人工智能
mounter62521 分钟前
比 veth 更强、为 eBPF 而生:深度解析 Linux netkit 虚拟网卡驱动
linux·ebpf·kernel·netkit
用户23678298016822 分钟前
Linux du 命令深度解析:从磁盘占用统计到目录空间分析
linux
码上小翔哥31 分钟前
Spring Boot Redis 缓存序列化踩坑记:GenericJackson2JsonRedisSerializer 的数组反序列化陷阱
java·redis
pq21731 分钟前
LambdaMetafactory(fastjson2使用的黑科技)
java
SamDeepThinking34 分钟前
你认为从0-1开发一个项目最难的地方是什么?
java·后端·架构
Devin~Y38 分钟前
大厂Java面试实战:Spring Boot/Cloud、Redis/Kafka、JVM调优与Spring AI RAG(内容社区UGC+AIGC客服场景)
java·jvm·spring boot·redis·spring cloud·kafka·mybatis
H Journey40 分钟前
网络编程:Linux下高性能TCP网络服务器(代码完整版)多线程版本
linux·服务器·网络