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获取角色对象
|
Role role = roleService.getRoleById(pd.getString("ROLE_ID")); //根据角色ID获取角色对象
|
||||||
String roleRights = role.getRIGHTS(); //取出本角色菜单权限
|
String roleRights = role.getRIGHTS(); //取出本角色菜单权限
|
||||||
pd.put("ROUTE_ID", "0");
|
pd.put("ROUTE_ID", "0");
|
||||||
pd.put("removePath", "1");
|
// pd.put("removePath", "1");
|
||||||
List<PageData> routeList = routeService.treeAll(pd);
|
List<PageData> routeList = routeService.treeAll2(pd);
|
||||||
routeList = this.readRoute(routeList,roleRights);
|
routeList = this.readRoute(routeList,roleRights);
|
||||||
result.put("routeList", routeList);
|
result.put("routeList", routeList);
|
||||||
result.put("result", errInfo);
|
result.put("result", errInfo);
|
||||||
|
|
|
||||||
|
|
@ -83,4 +83,5 @@ public interface RouteService {
|
||||||
*/
|
*/
|
||||||
List<Route> listAllMenuJur(String MENU_ID) throws Exception;
|
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
|
// @Override
|
||||||
// public List<PageData> treeAll(PageData pd) throws Exception {
|
// public List<PageData> treeAll(PageData pd) throws Exception {
|
||||||
// List<PageData> list = new ArrayList<PageData>();
|
// List<PageData> list = new ArrayList<PageData>();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue