@Service
public class CategoryServiceImpl implements CategoryService {
@Autowired
CategoryMapper categoryMapper;
@Override
public List<Category> getAllCategorys() {
return categoryMapper.getAllCategorys();
}
@Override
public List<Menu> getTreeMenus() {
List<Menu> treeNodes = categoryMapper.getAllMenus();
return RecursiveMenu(treeNodes);
}
private List<Menu> RecursiveMenu(List<Menu> treeNodes){
List<Menu> trees = new ArrayList<Menu>();
for (Menu treeNode : treeNodes) {
if (treeNode.getParentId().equals("0") || null==treeNode.getParentId() ) {
trees.add(findAddressChildren(treeNode,treeNodes));
}
}
return trees;
}
/**
* 递归查找地址子节点
* @param treeNodes
* @return
*/
public static Menu findAddressChildren(Menu treeNode,List<Menu> treeNodes) {
for (Menu it : treeNodes) {
if(treeNode.getId().equals(it.getParentId())) {
if (treeNode.getChildren() == null) {
treeNode.setChildren(new ArrayList<Menu>());
}
treeNode.getChildren().add(findAddressChildren(it,treeNodes));
}
}
return treeNode;
}
}