@Override public List<ShopAdminDepartmentTreeDTO> getDepTree() { LambdaQueryWrapper<ShopAdminDepartment> lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(ShopAdminDepartment::getIsDelete, BaseEnum.DELETE_NO.getCode()); List<ShopAdminDepartment> departmentList = this.list(lambdaQueryWrapper); List<ShopAdminDepartmentTreeDTO> collect = departmentList.stream().map(v -> CglibUtil.copy(v, ShopAdminDepartmentTreeDTO.class)).collect(Collectors.toList()); //找出级别最高的节点(数字越小级别越高) List<ShopAdminDepartmentTreeDTO> rootList = collect.stream().filter(v -> "0".equals(v.getParentId())).collect(Collectors.toList()); Map<Long, ShopAdminDepartmentTreeDTO> permissionTreeDTOMap = collect.stream().collect(Collectors.toMap(ShopAdminDepartmentTreeDTO::getId, v -> v,(k,v)->k)); collect.forEach(v -> { if (permissionTreeDTOMap.containsValue(v.getParentId())) { List<ShopAdminDepartmentTreeDTO> children = permissionTreeDTOMap.get(v.getParentId()).getChildren(); children.add(v); } }); return rootList; }
stream流 树形结构(不用递归)
于 2023-06-16 23:19:18 首次发布