feat:(hotfix/20240906) 只缓存普通角色以及缓存有效期改成1天

This commit is contained in:
lilong 2024-09-11 15:26:05 +08:00
parent a033919e17
commit 10045a5588
11 changed files with 28 additions and 30 deletions

View File

@ -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<String> listAdmin() {
return Arrays.stream(values())
.filter(RoleTypeEnum::isAdminRole)
.map(RoleTypeEnum::getValue)
.collect(Collectors.toList());
}
}

View File

@ -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<Long> 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<Long> roleIds = roleService.list(listSaasRoleParam).stream()
.map(SaasRoleRes::getId)
.collect(Collectors.toSet());

View File

@ -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<Long> 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<Long> roleIds = roleService.list(listSaasRoleParam).stream()

View File

@ -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<Long> roleIds = roleService.list(listSaasRoleParam).stream()
.map(SaasRoleRes::getId)

View File

@ -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<Long> roleIds = roleService.list(listSaasRoleParam).stream()
.map(SaasRoleRes::getId)
.collect(Collectors.toSet());

View File

@ -136,6 +136,9 @@ public interface RoleService extends IService<SaasRole> {
@CriteriaField(field = "roleType", operator = Operator.IN)
private List<String> roleTypes;
@CriteriaField(field = "roleType", operator = Operator.NOT_IN)
private List<String> roleTypesNotIn;
@CriteriaField(field = "id", operator = Operator.NE)
private Long idNE;

View File

@ -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<Long, Optional<List<PermissionDTO>>> productPermissionCache = CacheBuilder.newBuilder()
.expireAfterWrite(14, TimeUnit.MINUTES)
.expireAfterWrite(1, TimeUnit.DAYS)
.maximumSize(5000)
.build(new CacheLoader<Long, Optional<List<PermissionDTO>>>() {
@Override

View File

@ -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<Integer> 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<Long, Optional<List<FeatureResourceDTO>>> productFeatureResourceCache = CacheBuilder.newBuilder()
.expireAfterWrite(14, TimeUnit.MINUTES)
.expireAfterWrite(1, TimeUnit.DAYS)
.maximumSize(5000)
.build(new CacheLoader<Long, Optional<List<FeatureResourceDTO>>>() {
@Override

View File

@ -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<Long, Optional<List<PermissionDTO>>> rolePermissionCache = CacheBuilder.newBuilder()
.expireAfterWrite(14, TimeUnit.MINUTES)
.expireAfterWrite(1, TimeUnit.DAYS)
.maximumSize(5000)
.build(new CacheLoader<Long, Optional<List<PermissionDTO>>>() {
@Override

View File

@ -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<Long, Optional<List<SaasFeatureResourceDTO>>> roleFeatureResourceCache = CacheBuilder.newBuilder()
.expireAfterWrite(14, TimeUnit.MINUTES)
.expireAfterWrite(1, TimeUnit.DAYS)
.maximumSize(5000)
.build(new CacheLoader<Long, Optional<List<SaasFeatureResourceDTO>>>() {
@Override

View File

@ -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<SaasFeatureResou
private final MqProducer mqProducer;
private final SaasFeatureDao saasFeatureDao;
/** 菜单树过期时间 **/
@Value("${saas.feature.resource.expire.minutes:14}")
private Long expireInMinutes;
private static final String TARGET_TYPE = "saasFeatureResourceId";
private LoadingCache<String, Optional<List<SaasFeatureResourceCache>>> featureResourceCache = CacheBuilder.newBuilder()
.expireAfterWrite(14, TimeUnit.MINUTES)
.expireAfterWrite(1, TimeUnit.DAYS)
.maximumSize(5000)
.build(new CacheLoader<String, Optional<List<SaasFeatureResourceCache>>>() {
@Override