public ApiResult getDeptTree(String pid) {
//根据id获取当前部门
List<Map<String, Object>> deptList = deptMapper.getDeptById(pid);
List<Map<String, Object>> deptReturn = deptList(deptList);
return new ApiResult().success(deptReturn);
}
public List<Map<String,Object>> deptList(List<Map<String,Object>> deptList){
List<Map<String,Object>> returnList = new ArrayList<>();
if(deptList!=null && deptList.size()>0){
for(Map<String,Object> map:deptList){
//构造返回结果map
map.put("children",getDeptChildList(map));
returnList.add(map);
}
}
return returnList;
}
public List<Map<String,Object>> getDeptChildList(Map<String,Object> dept){
List<Map<String,Object>> returnList = new ArrayList<>();
if(dept!=null ){
//第二层结果
List<Map<String, Object>> childDeptList = deptMapper.listDeptByPId(dept.get("id").toString(), "0");
if(childDeptList!=null && childDeptList.size()>0){
for(Map<String, Object> map : childDeptList){
map.put("child",getDeptChildList(map));
returnList.add(map);
}
}
}
return returnList;
}
上述代码缺少一个isParentId的判断,另外ArrayList需要换成LinkedList,否则无序
@Override
public ApiResult testSelectMenuList() {
List<CardMenu> menuList = menuMapper.testSelectMenuList();
CardMenu cardMenu = null;
// 找到父结构
for(CardMenu menu : menuList){
if(menu.getGuid().equals("c19cd8d1f3f0cb03ed0cfd9b92fe851b")){
cardMenu = menu;
}
}
this.addMenu(menuList ,cardMenu);
return new ApiResult().success(cardMenu);
}
public CardMenu addMenu(List<CardMenu> menuList , CardMenu cardMenu){
for(CardMenu menu : menuList){
if(menu.getpId().equals(cardMenu.getGuid())){
if(cardMenu.getMenuChildList() == null){
cardMenu.setMenuChildList(new ArrayList<CardMenu>());
}
cardMenu.getMenuChildList().add(addMenu(menuList, menu));
}
}
return cardMenu;
}