From 5f060b58982913bcaf515b4659998e5981917d1f Mon Sep 17 00:00:00 2001 From: wangyan Date: Fri, 17 Oct 2025 16:31:41 +0800 Subject: [PATCH] =?UTF-8?q?refactor(system):=20=E9=87=8D=E6=9E=84=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E6=A0=91=E7=BB=93=E6=9E=84=E7=94=9F=E6=88=90=E9=80=BB?= =?UTF-8?q?=E8=BE=91-=20=E6=B3=A8=E9=87=8A=E6=8E=89=E6=97=A7=E7=9A=84=20tr?= =?UTF-8?q?eeAll=20=E6=96=B9=E6=B3=95=E8=B0=83=E7=94=A8=E9=80=BB=E8=BE=91-?= =?UTF-8?q?=20=E6=96=B0=E5=A2=9E=20treeAll2=20=E6=96=B9=E6=B3=95=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E8=B7=AF=E7=94=B1=E6=A0=91=E7=BB=93=E6=9E=84=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=20-=20=E5=AE=9E=E7=8E=B0=E7=88=B6=E5=AD=90=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E9=80=92=E5=BD=92=E6=9F=A5=E6=89=BE=E4=B8=8E=E7=BB=84?= =?UTF-8?q?=E8=A3=85=20-=20=E5=A2=9E=E5=8A=A0=E8=B7=AF=E5=BE=84=E4=B8=BA?= =?UTF-8?q?=E7=A9=BA=E9=A1=B9=E8=BF=87=E6=BB=A4=E5=8A=9F=E8=83=BD=20-=20?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=85=83=E6=95=B0=E6=8D=AE=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E4=BB=A5=E9=80=82=E9=85=8D=E6=96=B0=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/RoleController.java | 4 +- .../zcloud/service/system/RouteService.java | 1 + .../service/system/impl/RouteServiceImpl.java | 69 +++++++++++++++++++ 3 files changed, 72 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zcloud/controller/system/RoleController.java b/src/main/java/com/zcloud/controller/system/RoleController.java index 0f2c21a..38634b8 100644 --- a/src/main/java/com/zcloud/controller/system/RoleController.java +++ b/src/main/java/com/zcloud/controller/system/RoleController.java @@ -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 routeList = routeService.treeAll(pd); +// pd.put("removePath", "1"); + List routeList = routeService.treeAll2(pd); routeList = this.readRoute(routeList,roleRights); result.put("routeList", routeList); result.put("result", errInfo); diff --git a/src/main/java/com/zcloud/service/system/RouteService.java b/src/main/java/com/zcloud/service/system/RouteService.java index c4ded87..6ae03d0 100644 --- a/src/main/java/com/zcloud/service/system/RouteService.java +++ b/src/main/java/com/zcloud/service/system/RouteService.java @@ -83,4 +83,5 @@ public interface RouteService { */ List listAllMenuJur(String MENU_ID) throws Exception; + List treeAll2(PageData pd) throws Exception; } diff --git a/src/main/java/com/zcloud/service/system/impl/RouteServiceImpl.java b/src/main/java/com/zcloud/service/system/impl/RouteServiceImpl.java index 16777ee..1d1f39e 100644 --- a/src/main/java/com/zcloud/service/system/impl/RouteServiceImpl.java +++ b/src/main/java/com/zcloud/service/system/impl/RouteServiceImpl.java @@ -143,6 +143,75 @@ public class RouteServiceImpl implements RouteService { } +// @Override +// public List treeAll(PageData pd) throws Exception { +// List list = new ArrayList(); +// List routeList = routeMapper.listAll(pd); +// Map map = new HashMap(); +// for (PageData r : routeList) { +// r.put("meta", JSONObject.parse(r.getString("meta"))); +// map.put(r.getString("ROUTE_ID"), r); +// } +// +// Iterator> it = map.entrySet().iterator(); +// while (it.hasNext()) { +// Map.Entry 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 treeAll2(PageData router) { + + List routeList = routeMapper.listAll(router); + List 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 childList = TreeChildren(routeMenu.getString("ROUTE_ID"), routeList); + routeMenu.put("children", childList); + } + + return routeListRoute; + } + + private List TreeChildren(String parentId, List routeList) { + List 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 treeAll(PageData pd) throws Exception { // List list = new ArrayList();