后台优化查询
parent
ca9cf08aad
commit
6193495f8e
|
@ -36,6 +36,8 @@ public class SysMenu extends BaseEntity {
|
|||
/**
|
||||
* 菜单名称
|
||||
*/
|
||||
@NotBlank(message = "菜单名称不能为空")
|
||||
@Size(min = 0,max = 50,message = "菜单名称长度不能超过50个字符")
|
||||
private String menuName;
|
||||
|
||||
/**
|
||||
|
|
|
@ -90,6 +90,19 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
|
|||
*/
|
||||
public SysMenu selectMenuById (Long menuId);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @Description 根据菜单ID查询信息
|
||||
* @Date 2024/4/20 父级菜单ID
|
||||
* @param parentId
|
||||
* @return java.util.List<com.muyu.system.domain.SysMenu>
|
||||
**/
|
||||
List<SysMenu> selectMenuByParentId(Long parentId);
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 是否存在菜单子节点
|
||||
*
|
||||
|
|
|
@ -60,6 +60,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
*/
|
||||
@Override
|
||||
public List<SysMenu> selectMenuList (SysMenu menu, Long userId) {
|
||||
int size = menuMapper.selectMenuList(new SysMenu()).size();
|
||||
List<SysMenu> menuList = null;
|
||||
// 管理员显示所有菜单信息
|
||||
if (SysUser.isAdmin(userId)) {
|
||||
|
@ -68,9 +69,46 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
menu.getParams().put("userId", userId);
|
||||
menuList = menuMapper.selectMenuListByUserId(menu);
|
||||
}
|
||||
if (menuList.size() != size){
|
||||
List<SysMenu> sysMenuList = new ArrayList<>();
|
||||
menuList.forEach(menuObj ->{
|
||||
//查子级
|
||||
sysMenuList.addAll(treeMenu(menuObj));
|
||||
//差父级
|
||||
if (menuObj.getParentId() != 0){
|
||||
sysMenuList.addAll(superMenu(menuObj));
|
||||
}
|
||||
});
|
||||
menuList.addAll(sysMenuList);
|
||||
menuList = menuList.stream().distinct().toList();
|
||||
}
|
||||
return menuList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public List<SysMenu> treeMenu(SysMenu menus){
|
||||
List<SysMenu> sysMenus1 = new ArrayList<>();
|
||||
List<SysMenu> sysMenus = menuMapper.selectMenuByParentId(menus.getMenuId());
|
||||
sysMenus1.addAll(sysMenus);
|
||||
if (sysMenus.size()>0){
|
||||
for (SysMenu sysMenu : sysMenus) {
|
||||
treeMenu(sysMenu);
|
||||
}
|
||||
}
|
||||
return sysMenus1;
|
||||
}
|
||||
|
||||
public List<SysMenu> superMenu(SysMenu sysMenu){
|
||||
List<SysMenu> sysMenus = new ArrayList<>();
|
||||
SysMenu sysMenuParent = menuMapper.selectMenuById(sysMenu.getParentId());
|
||||
sysMenus.add(sysMenuParent);
|
||||
if (sysMenuParent.getParentId() != 0){
|
||||
sysMenus.addAll(superMenu(sysMenuParent));
|
||||
}
|
||||
return sysMenus;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据用户ID查询权限
|
||||
*
|
||||
|
|
|
@ -185,6 +185,10 @@
|
|||
<include refid="selectMenuVo"/>
|
||||
where menu_name=#{menuName} and parent_id = #{parentId} limit 1
|
||||
</select>
|
||||
<select id="selectMenuByParentId" resultType="com.muyu.system.domain.SysMenu">
|
||||
<include refid="selectMenuVo"/>
|
||||
where parent_id = #{parentId}
|
||||
</select>
|
||||
|
||||
<update id="updateMenu" parameterType="com.muyu.system.domain.SysMenu">
|
||||
update sys_menu
|
||||
|
|
Loading…
Reference in New Issue