@Test
public void test01() {
// 1.查询所有的课程信息
List<TeachplanNode> nodes = teachplanMapper.selectByCourseId(28L);
// 2.获取当前的父节点 可以少循环一次,减少时间复杂度
TeachplanNode node = nodes.get(0);
getTree(node, nodes);
String toJSONString = JSON.toJSONString(node);
System.out.println(toJSONString);
}
/**
*
* @param currentNode 父级数据
* @param nodes 集合数据
*/
private void getTree(TeachplanNode currentNode, List<TeachplanNode> nodes) {
//如果父级数据是空的
if (ObjectUtils.isEmpty(currentNode.getChildrenNodes())) {
currentNode.setChildrenNodes(new ArrayList<>());
}
for (TeachplanNode treeNode : nodes) {
//获取父节点的父id跟子节点的id是否相同
if (treeNode.getParentid().equals(currentNode.getId())){
//获取父节点的集合数据放到子节点里面
currentNode.getChildrenNodes().add(treeNode);
//判断父节点的级别是否为最低级,不是就继续遍历
if (!(treeNode.getGrade().equals(TeachPlanEnum.THIRD_LEVEL))) {
getTree(treeNode, nodes);
}
}
}
}
递归获取权限树
最新推荐文章于 2024-07-26 12:28:02 发布