update 优化 菜单权限查询

This commit is contained in:
疯狂的狮子Li 2025-07-14 10:58:12 +08:00
parent d79b48ea99
commit 90fef1bb17
2 changed files with 14 additions and 22 deletions

View File

@ -6,7 +6,9 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.system.domain.SysMenu; import org.dromara.system.domain.SysMenu;
import org.dromara.system.domain.vo.SysMenuVo; import org.dromara.system.domain.vo.SysMenuVo;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* 菜单表 数据层 * 菜单表 数据层
@ -75,12 +77,14 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenu, SysMenuVo> {
* @param userId 用户ID * @param userId 用户ID
* @return 权限列表 * @return 权限列表
*/ */
default List<String> selectMenuPermsByUserId(Long userId) { default Set<String> selectMenuPermsByUserId(Long userId) {
return this.selectObjs( return new HashSet<>(this.selectObjs(
new LambdaQueryWrapper<SysMenu>() new LambdaQueryWrapper<SysMenu>()
.select(SysMenu::getPerms) .select(SysMenu::getPerms)
.inSql(SysMenu::getMenuId, this.buildMenuByUserSql(userId)) .inSql(SysMenu::getMenuId, this.buildMenuByUserSql(userId))
); .isNotNull(SysMenu::getPerms)
.ne(SysMenu::getPerms, "")
));
} }
/** /**
@ -89,12 +93,14 @@ public interface SysMenuMapper extends BaseMapperPlus<SysMenu, SysMenuVo> {
* @param roleId 角色ID * @param roleId 角色ID
* @return 权限列表 * @return 权限列表
*/ */
default List<String> selectMenuPermsByRoleId(Long roleId) { default Set<String> selectMenuPermsByRoleId(Long roleId) {
return this.selectObjs( return new HashSet<>(this.selectObjs(
new LambdaQueryWrapper<SysMenu>() new LambdaQueryWrapper<SysMenu>()
.select(SysMenu::getPerms) .select(SysMenu::getPerms)
.inSql(SysMenu::getMenuId, this.buildMenuByRoleSql(roleId)) .inSql(SysMenu::getMenuId, this.buildMenuByRoleSql(roleId))
); .isNotNull(SysMenu::getPerms)
.ne(SysMenu::getPerms, "")
));
} }
/** /**

View File

@ -90,14 +90,7 @@ public class SysMenuServiceImpl implements ISysMenuService {
*/ */
@Override @Override
public Set<String> selectMenuPermsByUserId(Long userId) { public Set<String> selectMenuPermsByUserId(Long userId) {
List<String> perms = baseMapper.selectMenuPermsByUserId(userId); return baseMapper.selectMenuPermsByUserId(userId);
Set<String> permsSet = new HashSet<>();
for (String perm : perms) {
if (StringUtils.isNotEmpty(perm)) {
permsSet.addAll(StringUtils.splitList(perm.trim()));
}
}
return permsSet;
} }
/** /**
@ -108,14 +101,7 @@ public class SysMenuServiceImpl implements ISysMenuService {
*/ */
@Override @Override
public Set<String> selectMenuPermsByRoleId(Long roleId) { public Set<String> selectMenuPermsByRoleId(Long roleId) {
List<String> perms = baseMapper.selectMenuPermsByRoleId(roleId); return baseMapper.selectMenuPermsByRoleId(roleId);
Set<String> permsSet = new HashSet<>();
for (String perm : perms) {
if (StringUtils.isNotEmpty(perm)) {
permsSet.addAll(StringUtils.splitList(perm.trim()));
}
}
return permsSet;
} }
/** /**