/**
* @author: lwm
* @created: 2021/4/22 13:51
* @desc:获取版本树
*/
public List<ReleasePlan> getVersionTree(String projectId) {
//先获取该project下的所有数据
List<ReleasePlan> rps = findByProjectId(projectId);
List<ReleasePlan> collect = rps.stream().filter(e -> e.getParentId().equals(0L)).map(e -> {
e.setChildren(getChildrens(e, rps));
return e;
}).collect(Collectors.toList());
return collect;
}
/**
* 递归查询子节点
* @param root
* @param
* @return
*/
private List<ReleasePlan> getChildrens(ReleasePlan root, List<ReleasePlan> list) {
List<ReleasePlan> childrenList = list.stream().filter(e -> Objects.equals(e.getParentId(), root.getId())).map(
e -> {
e.setChildren(getChildrens(e, list));
return e;
}
).collect(Collectors.toList());
return childrenList;
}
递归构建版本树数据结构
这段代码展示了如何根据项目的ID获取其版本树。首先,通过查找项目ID获取所有ReleasePlan对象,然后使用Java 8的Stream API过滤出父级ID为0的根节点,并递归地为每个根节点获取其子节点,构建出树形结构。
1765

被折叠的 条评论
为什么被折叠?



