后台优化查询

master
YuanYh 2024-04-20 10:06:25 +08:00
parent ca9cf08aad
commit 6193495f8e
4 changed files with 57 additions and 0 deletions

View File

@ -36,6 +36,8 @@ public class SysMenu extends BaseEntity {
/** /**
* *
*/ */
@NotBlank(message = "菜单名称不能为空")
@Size(min = 0,max = 50,message = "菜单名称长度不能超过50个字符")
private String menuName; private String menuName;
/** /**

View File

@ -90,6 +90,19 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
*/ */
public SysMenu selectMenuById (Long menuId); 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);
/** /**
* *
* *

View File

@ -60,6 +60,7 @@ 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) {
int size = menuMapper.selectMenuList(new SysMenu()).size();
List<SysMenu> menuList = null; List<SysMenu> menuList = null;
// 管理员显示所有菜单信息 // 管理员显示所有菜单信息
if (SysUser.isAdmin(userId)) { if (SysUser.isAdmin(userId)) {
@ -68,9 +69,46 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
menu.getParams().put("userId", userId); menu.getParams().put("userId", userId);
menuList = menuMapper.selectMenuListByUserId(menu); 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; 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 * ID
* *

View File

@ -185,6 +185,10 @@
<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="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 id="updateMenu" parameterType="com.muyu.system.domain.SysMenu">
update sys_menu update sys_menu