@Override
public List<TreeVO> listResource() {
//一级目录父id为null
LambdaQueryWrapper<Resource> wrapper = Wrappers.<Resource>lambdaQuery()
.isNull(Resource::getParentId).orderByAsc(Resource::getSort);
List<Resource> resources = list(wrapper);
//资源需要转化
List<TreeVO> treeVOS = resources.stream().map(r->{
TreeVO treeVO=new TreeVO();
treeVO.setId(r.getResourceId());
treeVO.setTitle(r.getResourceName());
//二级目录特征:父id是上级的id
LambdaQueryWrapper<Resource> subwrapper = Wrappers.<Resource>lambdaQuery()
.eq(Resource::getParentId,r.getResourceId()).orderByAsc(Resource::getSort);
List<Resource> subResource = list(subwrapper);
//判断二级目录资源是否为空(其实可以写一个递归方法,这里因为数据库我就存了两层,所以没有封装)
if (CollectionUtils.isNotEmpty(subResource)){
List<TreeVO> children = subResource.stream().map(sub->{
TreeVO subTreeVO=new TreeVO();
subTreeVO.setId(sub.getResourceId());
subTreeVO.setTitle(sub.getResourceName());
return subTreeVO;
}).collect(Collectors.toList());
treeVO.setChildren(children);
}
return treeVO;
}).collect(Collectors.toList());
return treeVOS;
}