代码查询优化,纯后台

master
Saisai Liu 2024-04-13 09:11:22 +08:00
parent b8901b21ba
commit 4941fe0cd0
4 changed files with 96 additions and 208 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;
/** /**
@ -108,162 +110,7 @@ public class SysMenu extends BaseEntity {
*/ */
private List<SysMenu> children = new ArrayList<SysMenu>(); private List<SysMenu> children = new ArrayList<SysMenu>();
public Long getMenuId () {
return menuId;
}
public void setMenuId (Long menuId) {
this.menuId = menuId;
}
@NotBlank(message = "菜单名称不能为空")
@Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符")
public String getMenuName () {
return menuName;
}
public void setMenuName (String menuName) {
this.menuName = menuName;
}
public String getParentName () {
return parentName;
}
public void setParentName (String parentName) {
this.parentName = parentName;
}
public Long getParentId () {
return parentId;
}
public void setParentId (Long parentId) {
this.parentId = parentId;
}
@NotNull(message = "显示顺序不能为空")
public Integer getOrderNum () {
return orderNum;
}
public void setOrderNum (Integer orderNum) {
this.orderNum = orderNum;
}
@Size(min = 0, max = 200, message = "路由地址不能超过200个字符")
public String getPath () {
return path;
}
public void setPath (String path) {
this.path = path;
}
@Size(min = 0, max = 200, message = "组件路径不能超过255个字符")
public String getComponent () {
return component;
}
public void setComponent (String component) {
this.component = component;
}
public String getQuery () {
return query;
}
public void setQuery (String query) {
this.query = query;
}
public String getIsFrame () {
return isFrame;
}
public void setIsFrame (String isFrame) {
this.isFrame = isFrame;
}
public String getIsCache () {
return isCache;
}
public void setIsCache (String isCache) {
this.isCache = isCache;
}
@NotBlank(message = "菜单类型不能为空")
public String getMenuType () {
return menuType;
}
public void setMenuType (String menuType) {
this.menuType = menuType;
}
public String getVisible () {
return visible;
}
public void setVisible (String visible) {
this.visible = visible;
}
public String getStatus () {
return status;
}
public void setStatus (String status) {
this.status = status;
}
@Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符")
public String getPerms () {
return perms;
}
public void setPerms (String perms) {
this.perms = perms;
}
public String getIcon () {
return icon;
}
public void setIcon (String icon) {
this.icon = icon;
}
public List<SysMenu> getChildren () {
return children;
}
public void setChildren (List<SysMenu> children) {
this.children = children;
}
@Override
public String toString () {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("menuId", getMenuId())
.append("menuName", getMenuName())
.append("parentId", getParentId())
.append("orderNum", getOrderNum())
.append("path", getPath())
.append("component", getComponent())
.append("isFrame", getIsFrame())
.append("IsCache", getIsCache())
.append("menuType", getMenuType())
.append("visible", getVisible())
.append("status ", getStatus())
.append("perms", getPerms())
.append("icon", getIcon())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
} }

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.system.domain.SysMenu; import com.muyu.system.domain.SysMenu;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List; import java.util.List;
/** /**
@ -90,6 +91,15 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
*/ */
public SysMenu selectMenuById (Long menuId); public SysMenu selectMenuById (Long menuId);
/**
* ID
*
* @param parentId ID
*
* @return
*/
List<SysMenu> selectMenuByParentId(Long parentId);
/** /**
* *
* *
@ -135,4 +145,6 @@ 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);
} }

View File

@ -1,5 +1,6 @@
package com.muyu.system.service.impl; package com.muyu.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.constant.Constants; import com.muyu.common.core.constant.Constants;
import com.muyu.common.core.constant.UserConstants; import com.muyu.common.core.constant.UserConstants;
@ -43,7 +44,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* *
* @param userId ID * @param userId ID
*
* @return * @return
*/ */
@Override @Override
@ -55,11 +55,11 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* *
* @param menu * @param menu
*
* @return * @return
*/ */
@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,14 +68,57 @@ 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);
}
}
// for (SysMenu sysMenu : sysMenus1) {
// sysMenus.addAll(treeMenu(sysMenu));
// }
return sysMenus1;
}
/**
*
*
* @param sysMenu
* @return
*/
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
* *
* @param userId ID * @param userId ID
*
* @return * @return
*/ */
@Override @Override
@ -94,7 +137,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* ID * ID
* *
* @param roleId ID * @param roleId ID
*
* @return * @return
*/ */
@Override @Override
@ -113,7 +155,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* ID * ID
* *
* @param userId * @param userId
*
* @return * @return
*/ */
@Override @Override
@ -131,7 +172,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* ID * ID
* *
* @param roleId ID * @param roleId ID
*
* @return * @return
*/ */
@Override @Override
@ -144,7 +184,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* *
* @param menus * @param menus
*
* @return * @return
*/ */
@Override @Override
@ -196,7 +235,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* *
* @param menus * @param menus
*
* @return * @return
*/ */
@Override @Override
@ -221,7 +259,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* *
* @param menus * @param menus
*
* @return * @return
*/ */
@Override @Override
@ -234,7 +271,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* ID * ID
* *
* @param menuId ID * @param menuId ID
*
* @return * @return
*/ */
@Override @Override
@ -246,7 +282,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* *
* @param menuId ID * @param menuId ID
*
* @return * @return
*/ */
@Override @Override
@ -259,7 +294,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* 使 * 使
* *
* @param menuId ID * @param menuId ID
*
* @return * @return
*/ */
@Override @Override
@ -272,7 +306,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* *
* @param menu * @param menu
*
* @return * @return
*/ */
@Override @Override
@ -284,7 +317,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* *
* @param menu * @param menu
*
* @return * @return
*/ */
@Override @Override
@ -296,7 +328,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* *
* @param menuId ID * @param menuId ID
*
* @return * @return
*/ */
@Override @Override
@ -308,7 +339,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* *
* @param menu * @param menu
*
* @return * @return
*/ */
@Override @Override
@ -325,7 +355,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* *
* @param menu * @param menu
*
* @return * @return
*/ */
public String getRouteName(SysMenu menu) { public String getRouteName(SysMenu menu) {
@ -341,7 +370,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* *
* @param menu * @param menu
*
* @return * @return
*/ */
public String getRouterPath(SysMenu menu) { public String getRouterPath(SysMenu menu) {
@ -366,7 +394,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* *
* @param menu * @param menu
*
* @return * @return
*/ */
public String getComponent(SysMenu menu) { public String getComponent(SysMenu menu) {
@ -385,7 +412,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* *
* @param menu * @param menu
*
* @return * @return
*/ */
public boolean isMenuFrame(SysMenu menu) { public boolean isMenuFrame(SysMenu menu) {
@ -397,7 +423,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* *
* @param menu * @param menu
*
* @return * @return
*/ */
public boolean isInnerLink(SysMenu menu) { public boolean isInnerLink(SysMenu menu) {
@ -408,7 +433,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* parent_view * parent_view
* *
* @param menu * @param menu
*
* @return * @return
*/ */
public boolean isParentView(SysMenu menu) { public boolean isParentView(SysMenu menu) {
@ -420,7 +444,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* *
* @param list * @param list
* @param parentId ID * @param parentId ID
*
* @return String * @return String
*/ */
public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) { public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) {

View File

@ -7,7 +7,6 @@
<resultMap type="com.muyu.system.domain.SysMenu" id="SysMenuResult"> <resultMap type="com.muyu.system.domain.SysMenu" id="SysMenuResult">
<id property="menuId" column="menu_id"/> <id property="menuId" column="menu_id"/>
<result property="menuName" column="menu_name"/> <result property="menuName" column="menu_name"/>
<result property="parentName" column="parent_name"/>
<result property="parentId" column="parent_id"/> <result property="parentId" column="parent_id"/>
<result property="orderNum" column="order_num"/> <result property="orderNum" column="order_num"/>
<result property="path" column="path"/> <result property="path" column="path"/>
@ -175,6 +174,13 @@
where menu_id = #{menuId} where menu_id = #{menuId}
</select> </select>
<select id="selectMenuByParentId" parameterType="Long" resultMap="SysMenuResult">
<include refid="selectMenuVo"/>
where parent_id = #{parentId}
</select>
<select id="hasChildByMenuId" resultType="Integer"> <select id="hasChildByMenuId" resultType="Integer">
select count(1) select count(1)
from sys_menu from sys_menu