diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index 92a3b2c..bc32f9d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -68,9 +68,31 @@ public class SysMenuServiceImpl extends ServiceImpl impl menu.getParams().put("userId", userId); menuList = menuMapper.selectMenuListByUserId(menu); } + if(menuList.size()==1){ + SysMenu sysMenu = menuList.get(0); + this.getMenuList(menuList,sysMenu); + List childList = this.getChildList(menuMapper.selectMenuList(null), sysMenu); + //找子节点 + menuList.addAll(childList); + } return menuList; } + /** + * 递归找祖结点 + * @param menuList 菜单集合 + * @param menu 底层菜单 + */ + public void getMenuList(List menuList,SysMenu menu){ + if(menu.getParentId().equals(0L)){ + return; + }else { + SysMenu sysMenu = this.selectMenuById(menu.getParentId()); + menuList.add(sysMenu); + getMenuList(menuList,sysMenu); + } + } + /** * 根据用户ID查询权限 *