其它

java 复制代码
    /**
     * 获取部门列表,支持模糊查询
     */
    public List<SysDeptVo> getDeptList(String deptName) {
        QueryWrapper<SysDeptEntity> wrapper = new QueryWrapper<>();
        wrapper.like(!StrUtil.isEmpty(deptName), "name", deptName);

        List<SysDeptEntity> list = sysDeptMapper.selectList(wrapper);

        List<SysDeptVo> voList = list.stream().map(entity -> {
            SysDeptVo vo = new SysDeptVo();
            BeanUtils.copyProperties(entity, vo);
            vo.setChildren(new ArrayList<>()); // 初始化子部门列表
            return vo;
        }).collect(Collectors.toList());


        Map<String, SysDeptVo> deptMap = voList.stream().collect(Collectors.toMap(SysDeptVo::getDeptId, vo -> vo));

        for (SysDeptVo vo : voList) {
            String parentId = vo.getParentId();
            SysDeptVo parentDept = deptMap.get(parentId);
            if (parentDept != null) {
                parentDept.getChildren().add(vo); // 将当前部门添加到父级部门的子部门列表中
            }
        }

        return voList.stream().filter(s -> {
            SysDeptVo sysDeptVo = deptMap.get(s.getParentId());
            return Objects.isNull(sysDeptVo);   // 筛选出没有父级部门的部门, 即:顶级部门
        }).collect(Collectors.toList());

    }
相关推荐
寻月隐君10 分钟前
Rust + Protobuf:从零打造高效键值存储项目
后端·rust·github
radient17 分钟前
Java/Go双修 - Go哈希表map原理
后端
陈随易20 分钟前
Gitea v1.24.0发布,自建github神器
前端·后端·程序员
前端付豪22 分钟前
汇丰银行技术架构揭秘:全球交易稳定背后的“微服务+容灾+零信任安全体系”
前端·后端·架构
于顾而言27 分钟前
【Map Or Rewrite】Nginx基于会话转发的一些实践
后端
程序员爱钓鱼28 分钟前
Go语言并发模型与模式:Fan-out / Fan-in 模式
后端·go
魔镜魔镜_谁是世界上最漂亮的小仙女29 分钟前
java-maven依赖管理
java·后端·全栈
木雷坞29 分钟前
容器服务Containerd登录
后端
于顾而言30 分钟前
单机模拟MongoDB测试集群与Go应用集成
后端
程序员马晓博1 小时前
深入聊聊Qwen3的混合推理:全球唯三,开源唯一
前端·后端