若依后台 优化菜单查询
parent
171b885a2a
commit
2f5edc5abe
|
@ -135,4 +135,8 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public SysMenu checkMenuNameUnique (@Param("menuName") String menuName, @Param("parentId") Long parentId);
|
public SysMenu checkMenuNameUnique (@Param("menuName") String menuName, @Param("parentId") Long parentId);
|
||||||
|
|
||||||
|
public List<SysMenu> selectSysMenuList(@Param("longList") List<Long> longList);
|
||||||
|
|
||||||
|
List<SysMenu> selectSysChildrenList(@Param("longList") List<Long> longList);
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,39 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||||
return selectMenuList(new SysMenu(), userId);
|
return selectMenuList(new SysMenu(), userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<SysMenu> selectMenuList (List<SysMenu> sysMenuList) {
|
||||||
|
List<Long> longList = sysMenuList.stream()
|
||||||
|
.map(SysMenu::getParentId)
|
||||||
|
.filter(parentId -> parentId != 0)
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
if(longList.isEmpty()){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
List<SysMenu> sysMenus = menuMapper.selectSysMenuList(longList);
|
||||||
|
List<SysMenu> sysMenus1 = selectMenuList(sysMenus);
|
||||||
|
if(sysMenus1 != null){
|
||||||
|
sysMenus.addAll(sysMenus1);
|
||||||
|
}
|
||||||
|
return sysMenus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<SysMenu> selectSysChildrenList (List<SysMenu> sysMenuList) {
|
||||||
|
List<Long> longList = sysMenuList.stream()
|
||||||
|
.map(SysMenu::getMenuId)
|
||||||
|
.toList();
|
||||||
|
List<SysMenu> sysMenus = menuMapper.selectSysChildrenList(longList);
|
||||||
|
if(sysMenus != null && !sysMenus.isEmpty()){
|
||||||
|
List<SysMenu> sysMenus1 = selectMenuList(sysMenus);
|
||||||
|
if(sysMenus1 != null){
|
||||||
|
sysMenus.addAll(sysMenus1);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return sysMenus;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询系统菜单列表
|
* 查询系统菜单列表
|
||||||
*
|
*
|
||||||
|
@ -61,13 +94,24 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||||
@Override
|
@Override
|
||||||
public List<SysMenu> selectMenuList (SysMenu menu, Long userId) {
|
public List<SysMenu> selectMenuList (SysMenu menu, Long userId) {
|
||||||
List<SysMenu> menuList = null;
|
List<SysMenu> menuList = null;
|
||||||
// 管理员显示所有菜单信息
|
// 管理员显示所有信息
|
||||||
if (SysUser.isAdmin(userId)) {
|
if(SysUser.isAdmin(userId)){
|
||||||
menuList = menuMapper.selectMenuList(menu);
|
menuList = menuMapper.selectMenuList(menu);
|
||||||
} else {
|
List<SysMenu> sysMenus = selectMenuList(menuList);
|
||||||
menu.getParams().put("userId", userId);
|
if(sysMenus != null && !sysMenus.isEmpty()){
|
||||||
|
menuList.addAll(sysMenus);
|
||||||
|
}
|
||||||
|
List<SysMenu> sysMenus1 = selectSysChildrenList(menuMapper.selectMenuList(menu));
|
||||||
|
if(sysMenus1 != null && !sysMenus1.isEmpty()){
|
||||||
|
menuList.addAll(sysMenus1);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
menu.getParams().put("userId",userId);
|
||||||
menuList = menuMapper.selectMenuListByUserId(menu);
|
menuList = menuMapper.selectMenuListByUserId(menu);
|
||||||
}
|
}
|
||||||
|
menuList = menuList.stream()
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
return menuList;
|
return menuList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -185,6 +185,26 @@
|
||||||
<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="selectSysMenuList" resultType="com.muyu.system.domain.SysMenu">
|
||||||
|
<include refid="selectMenuVo"></include>
|
||||||
|
<where>
|
||||||
|
menu_id in (
|
||||||
|
<foreach collection="longList" item="id" separator=",">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
)
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
<select id="selectSysChildrenList" resultType="com.muyu.system.domain.SysMenu">
|
||||||
|
<include refid="selectMenuVo"></include>
|
||||||
|
<where>
|
||||||
|
parent_id in (
|
||||||
|
<foreach collection="longList" item="id" separator=",">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
)
|
||||||
|
</where>
|
||||||
|
</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
|
||||||
|
|
Loading…
Reference in New Issue