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