Lambda实现组织树

lambda实现组织机构树

@Override
public Map<String, Object> orgList() {
    Map<String,Object> map = new HashMap<>();
    //2、从redis中获取所有组织机构信息 也可通过sql查询所有菜单
    List<CacheOrgDto> cacheOrgDtoList = cache.queryAllCacheOrgFromRedis();
    //将从缓存获取的组织机构信息赋值到自己的机构list中
    List<ZhzsOrgDto> newList = cacheOrgDtoList.stream().map(e -> {
        ZhzsOrgDto t = new ZhzsOrgDto();
        BeanUtils.copyProperties(e, t);
        return t;
    }).collect(Collectors.toList());
    //获取登录人组织机构信息
    String orgId = "340100000000";//合肥市公安局
    List<ZhzsOrgDto> children = newList.stream().filter(t -> t.getParentId().equals(orgId))
            .map((menu) -> {
                menu.setChildren(this.getChildren(menu,newList));
                return menu;
            }).collect(Collectors.toList());
    ZhzsOrgDto zhzsOrgDto = newList.stream().filter(p -> p.getId().equals(orgId)).findAny().orElse(null);
    zhzsOrgDto.setChildren(children);
    map.put("data",zhzsOrgDto);
    map.put("code",200);
    return map;
}

private List<ZhzsOrgDto> getChildren(ZhzsOrgDto root,List<ZhzsOrgDto> all){
    List<ZhzsOrgDto> childrenList = all.stream().filter(p -> p.getParentId().equals(root.getId()))
            .map(g -> {
                //递归找子菜单
                g.setChildren(getChildren(g,all));
                return g;
            }).collect(Collectors.toList());
    return childrenList;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值