mirror of
https://github.com/dromara/RuoYi-Vue-Plus.git
synced 2025-09-20 02:06:38 +08:00
update 优化 菜单权限查询
This commit is contained in:
parent
d79b48ea99
commit
90fef1bb17
@ -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, "")
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user