以children这种方式的实体类来遍历子父级的树形结构。
//问题分类下拉表@Overridepublic List<DA> selectDA(Long deptId,Long userId) {//根据deptId获取当前parentId --- 第一步就是:获取根节点。DA current = sysDropDownListMapper.selectDA(deptId);//以下是可以拿到子部门内容DA root;//如果parentId为0,说明是根目录了。不是0就查找它的上级作为目录。if (current.getParentId()!=0){root = sysDropDownListMapper.selectDA(current.getParentId());}else {root = current;}//因为不需要返回parentId,所以返回同级就可以了。DA item = getItem(root);List<DA> list = item.getChildren();return list;}/*** 采用递归方式来获取树*/private DA getItem(DA parentItem){//查询所有parentId为该数据的data --- 第二步:就是循环遍历parentId为该数据的 data。List<DA> items = sysDropDownListMapper.selectDAByParentId(parentItem.getDeptId());if (items!=null){parentItem.setChildren(items);for (DA item : items) {getItem(item);}}return parentItem;}
对应实体类:
通过children这种方式来给前端显示子父级关系。
package com.ruoyi.system.domain;import java.util.List;public class DA {Long deptId;String deptName;Long parentId;List<DA> children;public Long getParentId() {return parentId;}public void setParentId(Long parentId) {this.parentId = parentId;}public Long getDeptId() {return deptId;}public void setDeptId(Long deptId) {this.deptId = deptId;}public String getDeptName() {return deptName;}public void setDeptName(String deptName) {this.deptName = deptName;}public List<DA> getChildren() {return children;}public void setChildren(List<DA> children) {this.children = children;}}