From 348141427d86fbe39041ffafbc5b26473722cd63 Mon Sep 17 00:00:00 2001 From: tangyh Date: Mon, 6 Jul 2026 01:24:29 +0000 Subject: [PATCH] =?UTF-8?q?!868=20fix:=20=E4=BF=AE=E5=A4=8D=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=9E=84=E5=BB=BA=E6=96=B9=E6=B3=95=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E7=A9=BA=E5=88=97=E8=A1=A8=E7=9A=84=E6=83=85=E5=86=B5=EF=BC=8C?= =?UTF-8?q?=E7=A1=AE=E4=BF=9D=E5=9C=A8=E6=97=A0=E8=8F=9C=E5=8D=95=E6=97=B6?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E7=A9=BA=E9=9B=86=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: 修复菜单构建方法返回空列表的情况,确保在无菜单时返回空集合 --- .../dromara/system/service/impl/SysMenuServiceImpl.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java index aa1b4c29b..a1d4d7c22 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java @@ -123,8 +123,11 @@ public class SysMenuServiceImpl implements ISysMenuService { } else { menus = menuMapper.selectMenuTreeByUserId(userId); } + if (CollUtil.isEmpty(menus)) { + return CollUtil.newArrayList(); + } - return TreeBuildUtils.build(menus, Constants.TOP_PARENT_ID, SysMenu::getParentId, (menu, nodeTreeMaps) -> { + List menuTree = TreeBuildUtils.build(menus, Constants.TOP_PARENT_ID, SysMenu::getParentId, (menu, nodeTreeMaps) -> { // 将当前节点的菜单ID用作父节点ID Long menuParentId = menu.getMenuId(); // 从动态规划表中取出子节点列表 @@ -134,6 +137,7 @@ public class SysMenuServiceImpl implements ISysMenuService { // 如果存在根节点指向尾节点的情况,则会出现环形依赖。但在菜单表中基本不会出现这种情况... menu.setChildren(childMenus); }); + return CollUtil.isEmpty(menuTree) ? CollUtil.newArrayList() : menuTree; } /** @@ -157,6 +161,9 @@ public class SysMenuServiceImpl implements ISysMenuService { */ @Override public List buildMenus(List menus) { + if (CollUtil.isEmpty(menus)) { + return CollUtil.newArrayList(); + } List routers = new LinkedList<>(); for (SysMenu menu : menus) { String name = menu.getRouteName() + menu.getMenuId();