diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java index 1a298a7..3740c78 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java @@ -2,6 +2,7 @@ package com.muyu.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.muyu.system.domain.SysMenu; +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -21,6 +22,9 @@ public interface SysMenuMapper extends BaseMapper { */ public List selectMenuList (SysMenu menu); + public List selectSysMenuList (@Param("longs") List longs); + public List selectSysChdMenuList (@Param("longs") List longs); + /** * 根据用户所有权限 * @@ -135,6 +139,4 @@ public interface SysMenuMapper extends BaseMapper { * @return 结果 */ public SysMenu checkMenuNameUnique (@Param("menuName") String menuName, @Param("parentId") Long parentId); - - List selectSysMenuList(List longs); } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java index 39ad3e6..8ccf74f 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java @@ -61,9 +61,24 @@ public class SysMenuServiceImpl extends ServiceImpl imp return null; } List sysMenus = menuMapper.selectSysMenuList(longs); - List sysMenus1 = selectSysMenuList(sysMenus); - if (sysMenus1 != null){ - sysMenus.addAll(sysMenus1); + if (sysMenus != null){ + sysMenus.addAll(sysMenus); + } + return sysMenus; + } + + public List selectSysChdMenuList(List menuList){ + List longs = menuList.stream() + .map(menu -> menu.getMenuId()) + .toList(); + List sysMenus = menuMapper.selectSysChdMenuList(longs); + if (sysMenus!=null && sysMenus.size()!=0){ + List sysMenus1 = selectSysMenuList(sysMenus); + if (sysMenus1 != null){ + sysMenus.addAll(sysMenus1); + } + }else{ + return null; } return sysMenus; } @@ -80,10 +95,20 @@ public class SysMenuServiceImpl extends ServiceImpl imp // 管理员显示所有菜单信息 if (SysUser.isAdmin(userId)) { menuList = menuMapper.selectMenuList(menu); + ListsysMenus=selectSysMenuList(menuList); + if (sysMenus!=null && sysMenus.size()!=0){ + menuList.addAll(sysMenus); + } + List sysMenus1 = selectSysChdMenuList(menuMapper.selectMenuList(menu)); if (sysMenus1 == null) { + menuList.addAll(sysMenus1); + } } else { menu.getParams().put("userId", userId); menuList = menuMapper.selectMenuListByUserId(menu); } + menuList = menuList.stream() + .distinct() + .toList(); return menuList; } diff --git a/muyu-modules/muyu-system/src/main/resources/mapper/system/SysMenuMapper.xml b/muyu-modules/muyu-system/src/main/resources/mapper/system/SysMenuMapper.xml index 8344a6b..cf02188 100644 --- a/muyu-modules/muyu-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/muyu-modules/muyu-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -185,7 +185,28 @@ where menu_name=#{menuName} and parent_id = #{parentId} limit 1 - + + update sys_menu