diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java index 1af2872e7..11a62ebcc 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java @@ -6,7 +6,9 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.system.domain.SysMenu; import org.dromara.system.domain.vo.SysMenuVo; +import java.util.HashSet; import java.util.List; +import java.util.Set; /** * 菜单表 数据层 @@ -75,12 +77,14 @@ public interface SysMenuMapper extends BaseMapperPlus { * @param userId 用户ID * @return 权限列表 */ - default List selectMenuPermsByUserId(Long userId) { - return this.selectObjs( + default Set selectMenuPermsByUserId(Long userId) { + return new HashSet<>(this.selectObjs( new LambdaQueryWrapper() .select(SysMenu::getPerms) .inSql(SysMenu::getMenuId, this.buildMenuByUserSql(userId)) - ); + .isNotNull(SysMenu::getPerms) + .ne(SysMenu::getPerms, "") + )); } /** @@ -89,12 +93,14 @@ public interface SysMenuMapper extends BaseMapperPlus { * @param roleId 角色ID * @return 权限列表 */ - default List selectMenuPermsByRoleId(Long roleId) { - return this.selectObjs( + default Set selectMenuPermsByRoleId(Long roleId) { + return new HashSet<>(this.selectObjs( new LambdaQueryWrapper() .select(SysMenu::getPerms) .inSql(SysMenu::getMenuId, this.buildMenuByRoleSql(roleId)) - ); + .isNotNull(SysMenu::getPerms) + .ne(SysMenu::getPerms, "") + )); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java index 43bf505bf..efe9029f8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java @@ -90,14 +90,7 @@ public class SysMenuServiceImpl implements ISysMenuService { */ @Override public Set selectMenuPermsByUserId(Long userId) { - List perms = baseMapper.selectMenuPermsByUserId(userId); - Set permsSet = new HashSet<>(); - for (String perm : perms) { - if (StringUtils.isNotEmpty(perm)) { - permsSet.addAll(StringUtils.splitList(perm.trim())); - } - } - return permsSet; + return baseMapper.selectMenuPermsByUserId(userId); } /** @@ -108,14 +101,7 @@ public class SysMenuServiceImpl implements ISysMenuService { */ @Override public Set selectMenuPermsByRoleId(Long roleId) { - List perms = baseMapper.selectMenuPermsByRoleId(roleId); - Set permsSet = new HashSet<>(); - for (String perm : perms) { - if (StringUtils.isNotEmpty(perm)) { - permsSet.addAll(StringUtils.splitList(perm.trim())); - } - } - return permsSet; + return baseMapper.selectMenuPermsByRoleId(roleId); } /**