搜索菜单优化(指定)

dev
Shen jia feng 2024-04-12 21:30:15 +08:00
parent 47571b1f06
commit d5d07a6388
4 changed files with 139 additions and 52 deletions

View File

@ -1,5 +1,6 @@
package com.muyu.system.controller;
import com.muyu.common.core.constant.CacheConstants;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.core.utils.poi.ExcelUtil;
@ -7,6 +8,7 @@ import com.muyu.common.core.web.controller.BaseController;
import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.common.log.annotation.Log;
import com.muyu.common.log.enums.BusinessType;
import com.muyu.common.redis.service.RedisService;
import com.muyu.common.security.annotation.InnerAuth;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.common.security.utils.SecurityUtils;
@ -243,9 +245,13 @@ public class SysUserController extends BaseController {
userService.checkUserDataScope(user.getUserId());
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
user.setUpdateBy(SecurityUtils.getUsername());
// redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY + user.getUserId());
return toAjax(userService.resetPwd(user));
}
/**
*
*/

View File

@ -21,6 +21,19 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
*/
public List<SysMenu> selectMenuList (SysMenu menu);
/**
*
* @return
*/
public List<SysMenu> selectSysMenList(@Param("longs") List<Long> longs);
/**
*
* @param longs
* @return
*/
public List<SysMenu> selectSysChdMenuList(@Param("longs") List<Long> longs);
/**
*
*

View File

@ -43,7 +43,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*
*
* @param userId ID
*
* @return
*/
@Override
@ -51,11 +50,60 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
return selectMenuList(new SysMenu(), userId);
}
/**
*
*
* @param menuList
* @return
*/
public List<SysMenu> selectSysMenList(List<SysMenu> menuList) {
// 获取父级ID 返回 流 id去重
List<Long> longs = menuList.stream()
.map(SysMenu::getParentId)
.filter(parentId -> parentId != 0)
.distinct()
.toList();
// 没有找到直接返回null
if (longs.size() == 0) {
return null;
}
// 递归调用自身
List<SysMenu> sysMenus = menuMapper.selectSysMenList(longs);
// 自己调自己
List<SysMenu> sysMenus1 = selectSysMenList(sysMenus);
if (sysMenus1 != null) {
sysMenus.addAll(sysMenus1);
}
return sysMenus;
}
public List<SysMenu> selectSysChdMenuList(List<SysMenu> menuList) {
// stream流 获取id
List<Long> longs = menuList.stream()
.map(SysMenu::getMenuId)
.toList();
// 跟进parentId 值查询数据库终结对应的子菜单信息
List<SysMenu> sysMenus = menuMapper.selectSysChdMenuList(longs);
if (sysMenus != null && sysMenus.size() != 0) {
// 如果有 调用selectSysMenList 继续递归查询 子菜单
List<SysMenu> sysMenus1 = selectSysChdMenuList(sysMenus);
if (sysMenus1 != null) {
// 不为空 添加原始数据
sysMenus.addAll(sysMenus1);
}
} else {
// 没有查到任何条件的信息
return null;
}
return sysMenus;
}
/**
*
*
* @param menu
*
* @return
*/
@Override
@ -64,10 +112,27 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
// 管理员显示所有菜单信息
if (SysUser.isAdmin(userId)) {
menuList = menuMapper.selectMenuList(menu);
// 调用秭归
List<SysMenu> sysMenus1 = selectSysMenList(menuList);
if (sysMenus1 != null && sysMenus1.size() != 0) {
menuList.addAll(sysMenus1);
}
List<SysMenu> sysMenus = selectSysChdMenuList(menuMapper.selectMenuList(menu));
// --------------
if (sysMenus != null && sysMenus.size() != 0) {
menuList.addAll(sysMenus);
}
} else {
menu.getParams().put("userId", userId);
menuList = menuMapper.selectMenuListByUserId(menu);
}
// -----
menuList = menuList.stream()
.distinct()
.toList();
return menuList;
}
@ -75,7 +140,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* ID
*
* @param userId ID
*
* @return
*/
@Override
@ -94,7 +158,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* ID
*
* @param roleId ID
*
* @return
*/
@Override
@ -113,7 +176,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* ID
*
* @param userId
*
* @return
*/
@Override
@ -131,7 +193,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* ID
*
* @param roleId ID
*
* @return
*/
@Override
@ -144,7 +205,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*
*
* @param menus
*
* @return
*/
@Override
@ -196,7 +256,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*
*
* @param menus
*
* @return
*/
@Override
@ -221,7 +280,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*
*
* @param menus
*
* @return
*/
@Override
@ -234,7 +292,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* ID
*
* @param menuId ID
*
* @return
*/
@Override
@ -246,7 +303,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*
*
* @param menuId ID
*
* @return
*/
@Override
@ -259,7 +315,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* 使
*
* @param menuId ID
*
* @return
*/
@Override
@ -272,7 +327,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*
*
* @param menu
*
* @return
*/
@Override
@ -284,7 +338,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*
*
* @param menu
*
* @return
*/
@Override
@ -296,7 +349,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*
*
* @param menuId ID
*
* @return
*/
@Override
@ -308,7 +360,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*
*
* @param menu
*
* @return
*/
@Override
@ -325,7 +376,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*
*
* @param menu
*
* @return
*/
public String getRouteName(SysMenu menu) {
@ -341,7 +391,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*
*
* @param menu
*
* @return
*/
public String getRouterPath(SysMenu menu) {
@ -366,7 +415,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*
*
* @param menu
*
* @return
*/
public String getComponent(SysMenu menu) {
@ -385,7 +433,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*
*
* @param menu
*
* @return
*/
public boolean isMenuFrame(SysMenu menu) {
@ -397,7 +444,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*
*
* @param menu
*
* @return
*/
public boolean isInnerLink(SysMenu menu) {
@ -408,7 +454,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* parent_view
*
* @param menu
*
* @return
*/
public boolean isParentView(SysMenu menu) {
@ -420,7 +465,6 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
*
* @param list
* @param parentId ID
*
* @return String
*/
public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) {

View File

@ -186,6 +186,30 @@
where menu_name=#{menuName} and parent_id = #{parentId} limit 1
</select>
<select id="selectSysMenList" resultType="com.muyu.system.domain.SysMenu">
<include refid="selectMenuVo"/>
<where>
menu_id in(
<foreach collection="longs" separator="," item="id">
#{id}
</foreach>
)
</where>
order by parent_id,order_num
</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 sys_menu
<set>