1. 数据表结构
| 数据库名称 | 表名 TREE(帮助文档业务树) | |||||||
|---|---|---|---|---|---|---|---|---|
| 项次 | 主键 | 字段名称 | 数据属性 | 字段别名(英文) Column Heading |
数据值范围 | 字段说明 Text |
||
| 类型 | 长度 | 小数 | ||||||
| 1 | 公司别ID | VARCHAR | 50 | compid | 公司别ID | |||
| 2 | Y | 节点ID | VARCHAR | 50 | nodeId | 节点ID | ||
| 3 | 上级节点 | VARCHAR | 50 | nodeDir | 上级节点ID | |||
| 4 | 节点名称 | VARCHAR | 50 | nodeName | 节点名称 | |||
| 5 | 节点类型 | VARCHAR | 50 | nodeType | 节点类型 | |||
| 6 | 节点描述 | VARCHAR | 50 | nodeExplain | 节点描述 | |||
| 7 | 信息代码 | VARCHAR | 50 | uriCode | 信息代码 | |||
| 8 | 路径地址 | VARCHAR | 50 | url | 路径地址 | |||
| 9 | 父节点下排序 | VARCHAR | 50 | nextNodeId | 父节点下排序节点,最后节点为“0”,下一个节点指向节点ID | |||
| 10 | 新增日期 | VARCHAR | 50 | createDate | 新增日期 | |||
| 11 | 新增时间 | VARCHAR | 50 | createTime | 新增时间 | |||
| 12 | 修改日期 | VARCHAR | 50 | updateDate | 修改日期 | |||
| 13 | 修改时间 | VARCHAR | 50 | updateTime | 修改时间 |
2. 数据结构处理方案
先只查询点击的节点ID,查询节点下的子节点,再进行对子节点进行排序
2.1 排序逻辑代码
/*** @param treeVOList 节点列表* @param nodeDir 父节点ID* @return List 返回排序后的父节点下的子节点*/private List<TreeVO> getChildren(List<TreeVO> treeVOList, String nodeDir) {List<TreeVO> treeVOListChildren = new ArrayList();// 创建迭代器进行数据的循环Iterator it = treeVOList.iterator();// 创建一个Map容器进装值Map<String, TreeVO> entityMap = new HashMap<>();// 循环列表while (it.hasNext()) {TreeVO treeVO = (TreeVO) it.next();// 判断该节点是否是父节点下的子节点if (treeVO.getNodeDir().equals(nodeDir)) {// 进行添加节点数据到集合中entityMap.put(treeVO.getNextNodeId(), treeVO);}}TreeVO treeVO = null;for (int i = 0; i < entityMap.size(); i++) {// 查找最后节点if (i == 0) {// 拿到最后节点的数据内容treeVO = entityMap.get("0");} else {// 根据上一个节点的下一个节点拿到当前节点treeVO = entityMap.get(treeVO.getNodeId());}// 提交数据到列表中treeVOListChildren.add(treeVO);}// 倒序Collections.reverse(treeVOListChildren);return treeVOListChildren;}
