!555 优化用户ID查询角色列表

Merge pull request !555 from AprilWind/dev
This commit is contained in:
疯狂的狮子Li 2024-06-27 07:38:36 +00:00 committed by Gitee
commit 3681150010
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -37,6 +37,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* 角色 业务层处理 * 角色 业务层处理
@ -104,12 +105,11 @@ public class SysRoleServiceImpl implements ISysRoleService {
public List<SysRoleVo> selectRolesAuthByUserId(Long userId) { public List<SysRoleVo> selectRolesAuthByUserId(Long userId) {
List<SysRoleVo> userRoles = baseMapper.selectRolePermissionByUserId(userId); List<SysRoleVo> userRoles = baseMapper.selectRolePermissionByUserId(userId);
List<SysRoleVo> roles = selectRoleAll(); List<SysRoleVo> roles = selectRoleAll();
// 使用HashSet提高查找效率
Set<Long> userRoleIds = userRoles.stream().map(SysRoleVo::getRoleId).collect(Collectors.toSet());
for (SysRoleVo role : roles) { for (SysRoleVo role : roles) {
for (SysRoleVo userRole : userRoles) { if (userRoleIds.contains(role.getRoleId())) {
if (role.getRoleId().longValue() == userRole.getRoleId().longValue()) {
role.setFlag(true); role.setFlag(true);
break;
}
} }
} }
return roles; return roles;