refactor(system): 重构路由树结构生成逻辑- 注释掉旧的 treeAll 方法调用逻辑- 新增 treeAll2 方法实现路由树结构构建
- 实现父子路由递归查找与组装 - 增加路径为空项过滤功能 - 调整元数据解析方式以适配新结构dev
parent
feeccd3d3d
commit
5f060b5898
|
|
@ -428,8 +428,8 @@ public class RoleController extends BaseController {
|
|||
Role role = roleService.getRoleById(pd.getString("ROLE_ID")); //根据角色ID获取角色对象
|
||||
String roleRights = role.getRIGHTS(); //取出本角色菜单权限
|
||||
pd.put("ROUTE_ID", "0");
|
||||
pd.put("removePath", "1");
|
||||
List<PageData> routeList = routeService.treeAll(pd);
|
||||
// pd.put("removePath", "1");
|
||||
List<PageData> routeList = routeService.treeAll2(pd);
|
||||
routeList = this.readRoute(routeList,roleRights);
|
||||
result.put("routeList", routeList);
|
||||
result.put("result", errInfo);
|
||||
|
|
|
|||
|
|
@ -83,4 +83,5 @@ public interface RouteService {
|
|||
*/
|
||||
List<Route> listAllMenuJur(String MENU_ID) throws Exception;
|
||||
|
||||
List<PageData> treeAll2(PageData pd) throws Exception;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -143,6 +143,75 @@ public class RouteServiceImpl implements RouteService {
|
|||
}
|
||||
|
||||
|
||||
// @Override
|
||||
// public List<PageData> treeAll(PageData pd) throws Exception {
|
||||
// List<PageData> list = new ArrayList<PageData>();
|
||||
// List<PageData> routeList = routeMapper.listAll(pd);
|
||||
// Map<String, PageData> map = new HashMap<String, PageData>();
|
||||
// for (PageData r : routeList) {
|
||||
// r.put("meta", JSONObject.parse(r.getString("meta")));
|
||||
// map.put(r.getString("ROUTE_ID"), r);
|
||||
// }
|
||||
//
|
||||
// Iterator<Map.Entry<String, PageData>> it = map.entrySet().iterator();
|
||||
// while (it.hasNext()) {
|
||||
// Map.Entry<String, PageData> entry = it.next();
|
||||
// PageData root = entry.getValue();
|
||||
// if ("0".equals(root.getString("PARENT_ID"))) {
|
||||
// root.put("PARENT_NAME", "(无)");
|
||||
// list.add(entry.getValue());
|
||||
// it.remove();//使用迭代器的remove()方法删除元素
|
||||
// }
|
||||
// }
|
||||
// TreeAppendChildren(map, list);
|
||||
// return list;
|
||||
// }
|
||||
|
||||
@Override
|
||||
public List<PageData> treeAll2(PageData router) {
|
||||
|
||||
List<PageData> routeList = routeMapper.listAll(router);
|
||||
List<PageData> routeListRoute = new ArrayList<>();
|
||||
if ("1".equals(router.getString("removePath"))) {
|
||||
routeList.removeIf((item) -> Tools.isEmpty(item.getString("path")));
|
||||
//去掉path为空的项
|
||||
}
|
||||
// 一级路由
|
||||
for (PageData route : routeList) {
|
||||
if ("0".equals(route.getString("PARENT_ID"))) {
|
||||
route.put("meta", JSONObject.parse(route.getString("meta")));
|
||||
JSONObject meta = JSONObject.parseObject(route.getString("meta"));
|
||||
route.put("PARENT_NAME", meta.getString("title"));
|
||||
routeListRoute.add(route);
|
||||
}
|
||||
}
|
||||
//一级路由增加子路由
|
||||
for (PageData routeMenu : routeListRoute) {
|
||||
List<PageData> childList = TreeChildren(routeMenu.getString("ROUTE_ID"), routeList);
|
||||
routeMenu.put("children", childList);
|
||||
}
|
||||
|
||||
return routeListRoute;
|
||||
}
|
||||
|
||||
private List<PageData> TreeChildren(String parentId, List<PageData> routeList) {
|
||||
List<PageData> childList = new ArrayList<>();
|
||||
for (PageData route : routeList) {
|
||||
//遍历所有节点,与上级传过来的父节点id比较
|
||||
if (parentId.equals(route.getString("PARENT_ID"))) {
|
||||
JSONObject meta = JSONObject.parseObject(route.getString("meta"));
|
||||
route.put("PARENT_NAME", meta.getString("title"));
|
||||
route.put("meta", JSONObject.parse(route.getString("meta")));
|
||||
childList.add(route);
|
||||
}
|
||||
}
|
||||
//递归
|
||||
for (PageData route : childList) {
|
||||
route.put("children", TreeChildren(route.getString("ROUTE_ID"), routeList));
|
||||
}
|
||||
return childList;
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public List<PageData> treeAll(PageData pd) throws Exception {
|
||||
// List<PageData> list = new ArrayList<PageData>();
|
||||
|
|
|
|||
Loading…
Reference in New Issue