diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/RoleTypeEnum.java b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/RoleTypeEnum.java index c94a57f7..6b765e76 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/RoleTypeEnum.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/RoleTypeEnum.java @@ -5,6 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; import java.util.Arrays; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; @@ -56,4 +57,10 @@ public enum RoleTypeEnum { return Objects.equals(this.value, value); } + public static List listAdmin() { + return Arrays.stream(values()) + .filter(RoleTypeEnum::isAdminRole) + .map(RoleTypeEnum::getValue) + .collect(Collectors.toList()); + } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/event/inner/CacheRolePermissionHandler.java b/tyr-server/src/main/java/cn/axzo/tyr/server/event/inner/CacheRolePermissionHandler.java index b0a66cc4..b048fdc7 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/event/inner/CacheRolePermissionHandler.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/event/inner/CacheRolePermissionHandler.java @@ -2,6 +2,7 @@ package cn.axzo.tyr.server.event.inner; import cn.axzo.framework.rocketmq.Event; import cn.axzo.framework.rocketmq.EventConsumer; +import cn.axzo.tyr.client.common.enums.RoleTypeEnum; import cn.axzo.tyr.client.model.res.SaasRoleRes; import cn.axzo.tyr.server.event.payload.PageElementFeatureResourceUpsertPayload; import cn.axzo.tyr.server.event.payload.RolePermissionCreatedPayload; @@ -47,6 +48,7 @@ public class CacheRolePermissionHandler implements InitializingBean { .roleIds(Optional.ofNullable(payload.getRoleIds()) .map(Lists::newArrayList) .orElse(null)) + .roleTypesNotIn(RoleTypeEnum.listAdmin()) .build(); Set roleIds = roleService.list(listSaasRoleParam).stream() .map(SaasRoleRes::getId) @@ -70,7 +72,9 @@ public class CacheRolePermissionHandler implements InitializingBean { return; } - RoleService.ListSaasRoleParam listSaasRoleParam = RoleService.ListSaasRoleParam.builder().build(); + RoleService.ListSaasRoleParam listSaasRoleParam = RoleService.ListSaasRoleParam.builder() + .roleTypesNotIn(RoleTypeEnum.listAdmin()) + .build(); Set roleIds = roleService.list(listSaasRoleParam).stream() .map(SaasRoleRes::getId) .collect(Collectors.toSet()); diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/event/inner/CacheRoleSaasFeatureResourceHandler.java b/tyr-server/src/main/java/cn/axzo/tyr/server/event/inner/CacheRoleSaasFeatureResourceHandler.java index 93be689b..aec6cc72 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/event/inner/CacheRoleSaasFeatureResourceHandler.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/event/inner/CacheRoleSaasFeatureResourceHandler.java @@ -2,6 +2,7 @@ package cn.axzo.tyr.server.event.inner; import cn.axzo.framework.rocketmq.Event; import cn.axzo.framework.rocketmq.EventConsumer; +import cn.axzo.tyr.client.common.enums.RoleTypeEnum; import cn.axzo.tyr.client.model.res.SaasRoleRes; import cn.axzo.tyr.server.event.payload.PageElementFeatureResourceUpsertPayload; import cn.axzo.tyr.server.event.payload.RolePermissionCreatedPayload; @@ -48,6 +49,7 @@ public class CacheRoleSaasFeatureResourceHandler implements InitializingBean { .roleIds(Optional.ofNullable(payload.getRoleIds()) .map(Lists::newArrayList) .orElse(null)) + .roleTypesNotIn(RoleTypeEnum.listAdmin()) .build(); Set roleIds = roleService.list(listSaasRoleParam).stream() .map(SaasRoleRes::getId) @@ -72,6 +74,7 @@ public class CacheRoleSaasFeatureResourceHandler implements InitializingBean { } RoleService.ListSaasRoleParam listSaasRoleParam = RoleService.ListSaasRoleParam.builder() + .roleTypesNotIn(RoleTypeEnum.listAdmin()) .build(); Set roleIds = roleService.list(listSaasRoleParam).stream() diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/job/CacheRoleFeatureResourceJob.java b/tyr-server/src/main/java/cn/axzo/tyr/server/job/CacheRoleFeatureResourceJob.java index 725bec72..698c947e 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/job/CacheRoleFeatureResourceJob.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/job/CacheRoleFeatureResourceJob.java @@ -1,5 +1,6 @@ package cn.axzo.tyr.server.job; +import cn.axzo.tyr.client.common.enums.RoleTypeEnum; import cn.axzo.tyr.client.model.res.SaasRoleRes; import cn.axzo.tyr.server.service.RoleSaasFeatureResourceCacheService; import cn.axzo.tyr.server.service.RoleService; @@ -33,6 +34,7 @@ public class CacheRoleFeatureResourceJob extends IJobHandler { RoleService.ListSaasRoleParam listSaasRoleParam = Optional.ofNullable(s) .map(e -> JSONObject.parseObject(e, RoleService.ListSaasRoleParam.class)) .orElseGet(() -> RoleService.ListSaasRoleParam.builder().build()); + listSaasRoleParam.setRoleTypesNotIn(RoleTypeEnum.listAdmin()); Set roleIds = roleService.list(listSaasRoleParam).stream() .map(SaasRoleRes::getId) diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/job/CacheRolePermissionJob.java b/tyr-server/src/main/java/cn/axzo/tyr/server/job/CacheRolePermissionJob.java index d97fa08b..72b4faef 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/job/CacheRolePermissionJob.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/job/CacheRolePermissionJob.java @@ -1,5 +1,6 @@ package cn.axzo.tyr.server.job; +import cn.axzo.tyr.client.common.enums.RoleTypeEnum; import cn.axzo.tyr.client.model.res.SaasRoleRes; import cn.axzo.tyr.server.service.RolePermissionCacheService; import cn.axzo.tyr.server.service.RoleService; @@ -35,6 +36,8 @@ public class CacheRolePermissionJob extends IJobHandler { .map(e -> JSONObject.parseObject(e, RoleService.ListSaasRoleParam.class)) .orElseGet(() -> RoleService.ListSaasRoleParam.builder().build()); + listSaasRoleParam.setRoleTypesNotIn(RoleTypeEnum.listAdmin()); + Set roleIds = roleService.list(listSaasRoleParam).stream() .map(SaasRoleRes::getId) .collect(Collectors.toSet()); diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java index f8ca3353..2274e702 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/RoleService.java @@ -136,6 +136,9 @@ public interface RoleService extends IService { @CriteriaField(field = "roleType", operator = Operator.IN) private List roleTypes; + @CriteriaField(field = "roleType", operator = Operator.NOT_IN) + private List roleTypesNotIn; + @CriteriaField(field = "id", operator = Operator.NE) private Long idNE; diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductPermissionCacheServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductPermissionCacheServiceImpl.java index 2c48a40b..710e7ee5 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductPermissionCacheServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductPermissionCacheServiceImpl.java @@ -19,7 +19,6 @@ import com.google.common.collect.Maps; import com.google.common.collect.Sets; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -51,12 +50,8 @@ public class ProductPermissionCacheServiceImpl implements ProductPermissionCache @Autowired private SaasFeatureDao saasFeatureDao; - /** 产品权限缓存过期时间 **/ - @Value("${product.permission.expire.minutes:14}") - private Long expireInMinutes; - private LoadingCache>> productPermissionCache = CacheBuilder.newBuilder() - .expireAfterWrite(14, TimeUnit.MINUTES) + .expireAfterWrite(1, TimeUnit.DAYS) .maximumSize(5000) .build(new CacheLoader>>() { @Override diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductSaasFeatureResourceCacheServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductSaasFeatureResourceCacheServiceImpl.java index 09eeb53f..79a8fa4d 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductSaasFeatureResourceCacheServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/ProductSaasFeatureResourceCacheServiceImpl.java @@ -19,7 +19,6 @@ import com.google.common.collect.Sets; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -48,9 +47,6 @@ public class ProductSaasFeatureResourceCacheServiceImpl implements ProductSaasFe @Autowired private SaasFeatureResourceService saasFeatureResourceService; - @Value("${product.feature.resouce.expire.minutes:14}") - private Long expireInMinutes; - public static final Set FEATURE_RESOURCE_TYPES = Sets.newHashSet(FeatureResourceType.MENU.getCode(), FeatureResourceType.PAGE.getCode(), FeatureResourceType.MENU_PARTITION_GROUP.getCode(), @@ -58,7 +54,7 @@ public class ProductSaasFeatureResourceCacheServiceImpl implements ProductSaasFe FeatureResourceType.APP_ENTRY.getCode()); private LoadingCache>> productFeatureResourceCache = CacheBuilder.newBuilder() - .expireAfterWrite(14, TimeUnit.MINUTES) + .expireAfterWrite(1, TimeUnit.DAYS) .maximumSize(5000) .build(new CacheLoader>>() { @Override diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RolePermissionCacheServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RolePermissionCacheServiceImpl.java index 14eb0b7a..d819fdb7 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RolePermissionCacheServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RolePermissionCacheServiceImpl.java @@ -18,7 +18,6 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -50,12 +49,8 @@ public class RolePermissionCacheServiceImpl implements RolePermissionCacheServic @Autowired private SaasFeatureDao saasFeatureDao; - /** 角色权限缓存过期时间 **/ - @Value("${role.permission.expire.minutes:14}") - private static Long expireInMinutes; - private LoadingCache>> rolePermissionCache = CacheBuilder.newBuilder() - .expireAfterWrite(14, TimeUnit.MINUTES) + .expireAfterWrite(1, TimeUnit.DAYS) .maximumSize(5000) .build(new CacheLoader>>() { @Override diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleSaasFeatureResourceCacheServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleSaasFeatureResourceCacheServiceImpl.java index 5a3e4a7c..f28d2523 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleSaasFeatureResourceCacheServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/RoleSaasFeatureResourceCacheServiceImpl.java @@ -18,7 +18,6 @@ import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -47,12 +46,9 @@ public class RoleSaasFeatureResourceCacheServiceImpl implements RoleSaasFeatureR @Autowired private SaasFeatureResourceService saasFeatureResourceService; - /** 角色菜单缓存过期时间 **/ - @Value("${role.feature.resource.expire.minutes:14}") - private Long expireInMinutes; private LoadingCache>> roleFeatureResourceCache = CacheBuilder.newBuilder() - .expireAfterWrite(14, TimeUnit.MINUTES) + .expireAfterWrite(1, TimeUnit.DAYS) .maximumSize(5000) .build(new CacheLoader>>() { @Override diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasFeatureResourceServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasFeatureResourceServiceImpl.java index 5592923d..20cdf985 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasFeatureResourceServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasFeatureResourceServiceImpl.java @@ -65,7 +65,6 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.BooleanUtils; import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.stereotype.Service; @@ -114,15 +113,10 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl>> featureResourceCache = CacheBuilder.newBuilder() - .expireAfterWrite(14, TimeUnit.MINUTES) + .expireAfterWrite(1, TimeUnit.DAYS) .maximumSize(5000) .build(new CacheLoader>>() { @Override