@Override
public List<SvCatalog> treeSvCatalog(String id) {
// 从数据库获取所有,减少数据库压力
List<SvCatalog> svCatalogs = catalogMapper.selectList(new QueryWrapper<>());
//定义新的list存储查询到的数据
List<SvCatalog> catalogList = new ArrayList<>();
for (int i = 0; i < svCatalogs.size(); i++) {
if(svCatalogs.get(i).getId().equals(id)){
catalogList.add(svCatalogs.get(i));
}
}
// 子目录查询递归
getChilde(catalogList);
return catalogList;
}
/**
* 递归查找子菜单
*/
private List<SvCatalog> getChilde(List<SvCatalog> catalogList){
if(catalogList.size()<=0){
return null;
}
catalogList.forEach(a->{
// 根据父目录id获取子目录
List<SvCatalog> childList = catalogMapper.selectList(new QueryWrapper<SvCatalog>().eq("pid", a.getId()));
if(childList.size()>0){
// 如果存在存到集合
a.setChildren(childList);
// 继续递归调用
getChilde(a.getChildren());
}
});
return catalogList;
}