feat:(hotfix/20240906) 修改菜单缓存逻辑
This commit is contained in:
parent
10045a5588
commit
602ac65618
@ -1002,13 +1002,16 @@ public class PermissionQueryServiceImpl implements PermissionQueryService {
|
||||
Set<Long> adminFeatureIds = resolveAdminRole(productFeatureSources, saasRole);
|
||||
Set<Long> notAuthFeatureIds = resolveNotAuthFeatureIds(productFeatureSources, authFreeFeatureIds);
|
||||
|
||||
List<RoleSaasFeatureResourceCacheService.SaasFeatureResourceDTO> roleFeatureResources = roleFeatureResourceMap.get(saasRole.getId()).stream()
|
||||
.filter(e -> StringUtils.isBlank(treePermissionReq.getTerminal())
|
||||
|| Objects.equals(e.getTerminal(), treePermissionReq.getTerminal()))
|
||||
.filter(e -> CollectionUtils.isEmpty(featureTypes) || featureTypes.contains(e.getFeatureType()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
Set<Long> normalFeatureIds = resolveNormalRole(productFeatureSources, saasRole, roleFeatureResources);
|
||||
List<RoleSaasFeatureResourceCacheService.SaasFeatureResourceDTO> roleFeatureResources = Optional.ofNullable(roleFeatureResourceMap.get(saasRole.getId()))
|
||||
.map(role -> role.stream()
|
||||
.filter(e -> StringUtils.isBlank(treePermissionReq.getTerminal())
|
||||
|| Objects.equals(e.getTerminal(), treePermissionReq.getTerminal()))
|
||||
.filter(e -> CollectionUtils.isEmpty(featureTypes) || featureTypes.contains(e.getFeatureType()))
|
||||
.collect(Collectors.toList()))
|
||||
.orElseGet(Lists::newArrayList);
|
||||
|
||||
Set<Long> normalFeatureIds = resolveNormalRole(productFeatureSources, saasRole, roleFeatureResources, roleFeatureResourceMap);
|
||||
|
||||
Set<Long> result = Sets.newHashSet();
|
||||
result.addAll(adminFeatureIds);
|
||||
@ -1038,8 +1041,13 @@ public class PermissionQueryServiceImpl implements PermissionQueryService {
|
||||
}
|
||||
|
||||
private Set<Long> resolveNormalRole(List<ProductSaasFeatureResourceCacheService.FeatureResourceDTO> workspaceProduct,
|
||||
SaasRoleUserV2DTO.SaasRole saasRole,
|
||||
List<RoleSaasFeatureResourceCacheService.SaasFeatureResourceDTO> roleFeatureResources) {
|
||||
SaasRoleUserV2DTO.SaasRole saasRole,
|
||||
List<RoleSaasFeatureResourceCacheService.SaasFeatureResourceDTO> roleFeatureResources,
|
||||
Map<Long, List<RoleSaasFeatureResourceCacheService.SaasFeatureResourceDTO>> roleFeatureResourceMap) {
|
||||
|
||||
if (RoleTypeEnum.isAdmin(saasRole.getRoleType())) {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
|
||||
if (CollectionUtils.isEmpty(roleFeatureResources)) {
|
||||
return Collections.emptySet();
|
||||
|
||||
@ -114,6 +114,10 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
|
||||
private final SaasFeatureDao saasFeatureDao;
|
||||
|
||||
private static final String TARGET_TYPE = "saasFeatureResourceId";
|
||||
/**
|
||||
* 分组这些菜单节点没有版本号,默认为0,方便权限过滤
|
||||
*/
|
||||
private static final int DEFAULT_VERSION = 0;
|
||||
|
||||
private LoadingCache<String, Optional<List<SaasFeatureResourceCache>>> featureResourceCache = CacheBuilder.newBuilder()
|
||||
.expireAfterWrite(1, TimeUnit.DAYS)
|
||||
@ -851,6 +855,7 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
|
||||
.builder()
|
||||
.featureId(e.getId())
|
||||
.notAuth(DelegatedType.notAuth(e.getDelegatedType()))
|
||||
.parentIds(e.splitPath())
|
||||
.build(), Collectors.toList())));
|
||||
|
||||
List<SaasFeatureResourceDTO> allFeatureResources = Lists.newArrayList();
|
||||
@ -872,6 +877,15 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
|
||||
.builder()
|
||||
.featureId(e.getId())
|
||||
.notAuth(SaasFeatureResource.AuthType.isAllRole(e.getAuthType()))
|
||||
.parentIds(e.resolvePath())
|
||||
.uniCode(e.getUniCode())
|
||||
.status(e.getStatus())
|
||||
.version(Optional.ofNullable(e.getSaasPageElements())
|
||||
.map(pageElement -> pageElement.stream()
|
||||
.findFirst()
|
||||
.map(PageElementResp::getVersion)
|
||||
.orElse(DEFAULT_VERSION))
|
||||
.orElse(DEFAULT_VERSION))
|
||||
.build(), Collectors.toList())))
|
||||
.entrySet().stream()
|
||||
.map(e -> SaasFeatureResourceDTO.builder()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user