| | |
| | | classifyAuths = classifyAuthMapper.selectList( |
| | | Wrappers.<ClassifyAuth>query() |
| | | .lambda().eq(ClassifyAuth::getClassifyId, classifyOidList.get(i)) |
| | | .eq(ClassifyAuth::getAuthType,authType) |
| | | .in(ClassifyAuth::getRoleId, roleIds) |
| | | ); |
| | | if(!classifyAuths.isEmpty()){ |
| | |
| | | } |
| | | } |
| | | } |
| | | //出现了错误数据,同一个角色和同一个分类id存在多条授权记录 |
| | | //出现了多条数据 |
| | | if(classifyAuths.size()>1){ |
| | | // 校验是否存在错误数据,同一个角色和同一个分类id存在多条授权记录 |
| | | List<ClassifyAuth> finalClassifyAuths = classifyAuths; |
| | | boolean hasDuplicate = classifyAuths.stream() |
| | | .anyMatch(auth1 -> finalClassifyAuths.stream() |
| | | .filter(auth2 -> auth1 != auth2) |
| | | .anyMatch(auth2 -> auth1.getRoleId().equals(auth2.getRoleId()) && auth1.getClassifyId().equals(auth2.getClassifyId()))); |
| | | if (hasDuplicate) { |
| | | throw new ServiceException("角色和分类配置存在多条记录,请联系管理人员清理错误配置!"); |
| | | } |
| | | } |
| | | // 是否为超管 |
| | | Boolean isAdmin = VciBaseUtil.checkAdminTenant(); |
| | |
| | | List<String> ids = new ArrayList<>(); |
| | | // 如果不是超管用户 |
| | | if(!isAdmin){ |
| | | ids.addAll(Arrays.asList(classifyAuths.get(0).getButtonIds().split(","))); |
| | | String concatenatedButtonIds = classifyAuths.stream() |
| | | .map(ClassifyAuth::getButtonIds) // 获取每个classifyAuths对象的buttonIds |
| | | .collect(Collectors.joining(",")); // 用逗号分隔拼接成一个字符串 |
| | | ids.addAll(Arrays.asList(concatenatedButtonIds.split(","))); |
| | | } |
| | | return this.getMenuListByCode(ids,btmType,roleIds); |
| | | } |