/**
* 微信 获取项目地点 按级别分级
*
*@paramrequest
*@return
*/
@Transactional
@ResponseBody
@ApiOperation(value = "获取项目地点按级别分级", notes = "我的项目中获取项目地点按级别分级")
@RequestMapping(value = "/getProAddressLevel", method = RequestMethod.GET)
publicReturnVO getProAddressLevel(HttpServletRequest request) throwsException {
PageHelper.orderBy("p_id,orders");
List<Map<String, Object>> allList = areaMapper.getAllAreasBylevel();
List<Map<String, Object>> list = newArrayList<>();//返回结果
Map<String, List<Map<String, Object>>> map = newHashMap<>();//以pid为key 存放子节点
for(inti = 0; i < allList.size(); i++) {
Map<String, Object> m = allList.get(i);
String pId = (String) m.get("p_id");
if("0".equals(pId)) {
// Map<String, Object> firstTree = new HashMap<>();
// firstTree.put("name", m.get("name"));
// firstTree.put("id", m.get("id"));
// firstTree.put("pId", m.get("p_id"));
// list.add(firstTree);
list.add(m);
} else{
if(map.get(pId) != null) {
map.get(pId).add(m);
} else{
List<Map<String, Object>> ldepartment = newArrayList<>();
ldepartment.add(m);
map.put(pId, ldepartment);
}
}
}
allList.clear();
allList = null;
for(Map<String, Object> m : list) {//通过1级目录无限去寻找子节点
getTreeNode(m, map);
}
return newReturnVO(ReturnVO.CODE_SUCCESS, ReturnVO.MSG_SUCCESS, list);
}
/**
*@Description: 寻找子节点
*/
private voidgetTreeNode(Map<String, Object> pm, Map<String, List<Map<String, Object>>> cm) {
String id = (String) pm.get("id");
if(cm.get(id) != null) {//存在子节点
List<Map<String, Object>> lm = cm.get(id);
List<Map<String, Object>> list = newArrayList<>();
for(Map m : lm) {
Map<String, Object> cTree = newHashMap<>();
cTree.put("name", m.get("name"));
cTree.put("id", m.get("id"));
cTree.put("pId", m.get("pId"));
list.add(cTree);
getTreeNode(cTree, cm);
}
pm.put("subNotes", list);
}
}