public List<LinkedHashMap<String, Object>> queryTree() {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("pid",0);
List<LinkedHashMap<String, Object>> linkedHashMaps = TypeMapper
.queryType(paramMap);
if(linkedHashMaps != null && linkedHashMaps.size()>0){
for(LinkedHashMap<String, Object> map : linkedHashMaps){
Long pid = (Long)map.get("id");
List<LinkedHashMap<String, Object>> linkedHashMaps1 = recursiveTree(pid);
map.put("child",linkedHashMaps1);
}
}
return linkedHashMaps;
}
public List<LinkedHashMap<String, Object>> recursiveTree(Long pid) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("pid",pid);
List<LinkedHashMap<String, Object>> treeNodes = TypeMapper
.queryType(paramMap);
for (LinkedHashMap<String, Object> node:treeNodes) {
List<LinkedHashMap<String, Object>> treeNodes1 = recursiveTree( (Long)node.get("id"));
if (!treeNodes1.isEmpty()) {
node.put("child",treeNodes1);
}
}
return treeNodes;
}
public void deleteType(Long[] id) {
deleteTree(id);
TypeMapper.deleteType(id);
}
/**
* delete all the descendants nodes.
* @param pid
*/
public void deleteTree(Long[] pid) {
Long id =null;
if(pid != null && pid.length>0){
for(int i=0; i<pid.length;i++){
id=pid[i];
deleteRecursiveTree(id);
}
}
}
public void deleteRecursiveTree(Long id){
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("pid",id);
List<LinkedHashMap<String, Object>> treeNodes = TypeMapper
.queryType(paramMap);
if(treeNodes != null && treeNodes.size()>0){
for( LinkedHashMap<String, Object> node : treeNodes){
Long id1 = (Long)node.get("id");
typeMapper.deleteTypeById(id1);
deleteRecursiveTree(id1);
}
}
}
java recursive tree.
最新推荐文章于 2024-03-30 21:58:19 发布