集合转为树结构
单表,数据有层级,通过parentId关联
先需要获取层级树类型的数据,但不想多次查询,需要减少查询sql次数
1.单表查询所有有效数据
2.逻辑层处理成树结构
public List<CheckVo> fun(){List<CheckVo> result = new ArrayList<>();// 查询 所有有效的数据List<CheckPo> checkPoList = super.getBaseMapper().selectList(Wrappers.<CheckPo>lambdaQuery().eq(CheckPo::getStatus, StatusEnum.VALID.getValue()));List<CheckVo> checkVoList = CheckBeanConvertUtil.INSTANCE.getCheckVo(checkPoList);if(CollUtil.isNotEmpty(checkVoList)){result = checkVoList.stream().filter(item->item.getParentId()==null).map(item->{item.setChildren(getChildren(item,checkVoList));return item;}).collect(Collectors.toList());}return result;}// 递归方法private List<CheckVo> getChildren(CheckVo vo,List<CheckVo> checkVoList){return checkVoList.stream().filter(item->item.getParentId()!=null && item.getParentId().equals(vo.getId())).map(item->{item.setChildren(getChildren(item,checkVoList));return item;}).collect(Collectors.toList());}