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