菜单优化

master
yuanjunzhe 2024-04-12 21:03:41 +08:00
parent 3c0f032769
commit 73255242fa
3 changed files with 43 additions and 5 deletions

View File

@ -22,7 +22,8 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
public List<SysMenu> selectMenuList (SysMenu menu); public List<SysMenu> selectMenuList (SysMenu menu);
public List<SysMenu> selectSyeMenuList(@Param("longs") List<Long> longs); public List<SysMenu> selectSysMenuList(@Param("longs") List<Long> longs);
public List<SysMenu> selectSysChdMenuList(@Param("longs") List<Long> longs);
/** /**
* *

View File

@ -62,7 +62,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
if (longs.size()==0){ if (longs.size()==0){
return null; return null;
} }
List<SysMenu> sysMenus = menuMapper.selectSyeMenuList(longs); List<SysMenu> sysMenus = menuMapper.selectSysMenuList(longs);
List<SysMenu> sysMenus1 = selectSysMenuList(sysMenus); List<SysMenu> sysMenus1 = selectSysMenuList(sysMenus);
if (sysMenus1 !=null){ if (sysMenus1 !=null){
@ -72,6 +72,23 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
} }
public List<SysMenu> selectSysChaMenuList(List<SysMenu> menuList){
List<Long> longs = menuList.stream()
.map(menu -> menu.getMenuId())
.toList();
List<SysMenu> sysMenus = menuMapper.selectSysChdMenuList(longs);
if (sysMenus != null && sysMenus.size() !=0){
List<SysMenu> sysMenus1 = selectSysMenuList(sysMenus);
if (sysMenus1 !=null){
sysMenus.addAll(sysMenus1);
}
}else {
return null;
}
return sysMenus;
}
/** /**
* *
* *
@ -85,14 +102,23 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
// 管理员显示所有菜单信息 // 管理员显示所有菜单信息
if (SysUser.isAdmin(userId)) { if (SysUser.isAdmin(userId)) {
menuList = menuMapper.selectMenuList(menu); menuList = menuMapper.selectMenuList(menu);
menuList.addAll(selectSysMenuList(menuList)); List<SysMenu> sysMenus = selectSysMenuList(menuList);
if (sysMenus !=null && sysMenus.size() !=0){
menuList.addAll(sysMenus);
}
List<SysMenu> sysMenus1 = selectSysChaMenuList(menuMapper.selectMenuList(menu));
if (sysMenus1 !=null && sysMenus1.size() !=0){
menuList.addAll(sysMenus1);
}
} else { } else {
menu.getParams().put("userId", userId); menu.getParams().put("userId", userId);
menuList = menuMapper.selectMenuListByUserId(menu); menuList = menuMapper.selectMenuListByUserId(menu);
} }
menuList.stream() menuList=menuList.stream()
.distinct() .distinct()
.toList(); .toList();
System.out.println(menuList.stream().toList());
return menuList; return menuList;
} }

View File

@ -185,7 +185,7 @@
<include refid="selectMenuVo"/> <include refid="selectMenuVo"/>
where menu_name=#{menuName} and parent_id = #{parentId} limit 1 where menu_name=#{menuName} and parent_id = #{parentId} limit 1
</select> </select>
<select id="selectSyeMenuList" resultType="com.muyu.system.domain.SysMenu"> <select id="selectSysMenuList" resultType="com.muyu.system.domain.SysMenu">
<include refid="selectMenuVo"/> <include refid="selectMenuVo"/>
<where> <where>
@ -199,6 +199,17 @@
</where> </where>
order by parent_id,order_num order by parent_id,order_num
</select> </select>
<select id="selectSysChdMenuList" resultType="com.muyu.system.domain.SysMenu">
<include refid="selectMenuVo"/>
<where>
parent_id in (
<foreach collection="longs" separator="," item="id">
#{id}
</foreach>
)
</where>
order by parent_id,order_num
</select>
<update id="updateMenu" parameterType="com.muyu.system.domain.SysMenu"> <update id="updateMenu" parameterType="com.muyu.system.domain.SysMenu">
update sys_menu update sys_menu