stream树菜单递归

 @Override
    public List<RegulationTypeTreeVo> getAllDicRegulationType(String parentcode) {
        List<DicRegulationType> typeList = baseMapper.selectList(new QueryWrapper<DicRegulationType>()
                .eq("BSTOP", "0 ")
                .eq("BLAST", "0")
                .orderByAsc("REGULATIONTYPECODE"));
        List<RegulationTypeTreeVo> reTypeTreeVoList = typeList.stream().map(m -> {
            RegulationTypeTreeVo regulationTypeTreeVo = new RegulationTypeTreeVo();
            regulationTypeTreeVo.setValue(m.getRegulationtypecode());
            regulationTypeTreeVo.setLabel(m.getRegulationtypename());
            regulationTypeTreeVo.setParentcode(m.getParentcode());
            return regulationTypeTreeVo;
        }).collect(Collectors.toList());
        List<RegulationTypeTreeVo> collect = reTypeTreeVoList.stream().filter(e ->
                StringUtils.isEmpty(e.getParentcode())   //查询父类
        ).map((menu) -> {
            menu.setChildren(getChildrens(menu, reTypeTreeVoList)); //查询子类菜单
            return menu;
        }).collect(Collectors.toList());
        return collect;
    }

    //递归查找所有菜单的子类菜单
    private List<RegulationTypeTreeVo> getChildrens(RegulationTypeTreeVo type,List<RegulationTypeTreeVo> all){
        List<RegulationTypeTreeVo> children = all.stream().filter(e ->
            StringUtils.equals(e.getParentcode(), type.getValue())
        ).map(m -> {
            //1、递归找到子菜单
            m.setChildren(getChildrens(m, all));
            return m;
        }).collect(Collectors.toList());
        return children;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值