feat:(REQ-2699) 修改缓存配置为分钟,修改查询权限的逻辑

This commit is contained in:
lilong 2024-08-26 16:50:55 +08:00
parent 4eb23c307c
commit 632056a8c8
7 changed files with 20 additions and 23 deletions

View File

@ -51,8 +51,8 @@ public class ProductPermissionCacheServiceImpl implements ProductPermissionCache
private CacheProductPermissionHandler cacheProductPermissionHandler; private CacheProductPermissionHandler cacheProductPermissionHandler;
/** 产品权限缓存过期时间 **/ /** 产品权限缓存过期时间 **/
@Value("${product.permission.expire:180}") @Value("${product.permission.expire.minutes:14}")
private Long expireInDays; private Long expireInMinutes;
@Override @Override
public Map<Long, List<PermissionDTO>> list(ListProductPermissionParam param) { public Map<Long, List<PermissionDTO>> list(ListProductPermissionParam param) {
@ -136,7 +136,7 @@ public class ProductPermissionCacheServiceImpl implements ProductPermissionCache
// 存在hash中部分key移除为了处理快直接把redisKey删除掉修改不频繁 // 存在hash中部分key移除为了处理快直接把redisKey删除掉修改不频繁
redisTemplate.delete(redisKey); redisTemplate.delete(redisKey);
RedisClient.HashOps.hPutAll(redisKey, redisValues); RedisClient.HashOps.hPutAll(redisKey, redisValues);
redisTemplate.expire(redisKey, expireInDays, TimeUnit.DAYS); redisTemplate.expire(redisKey, expireInMinutes, TimeUnit.MINUTES);
log.info("succeed to store product permission: redisKey:{} value:{}", redisKey, redisValues); log.info("succeed to store product permission: redisKey:{} value:{}", redisKey, redisValues);
} }
return null; return null;

View File

@ -47,8 +47,8 @@ public class ProductSaasFeatureResourceCacheServiceImpl implements ProductSaasFe
@Autowired @Autowired
private CacheProductSaasFeatureResourceHandler cacheProductSaasFeatureResourceHandler; private CacheProductSaasFeatureResourceHandler cacheProductSaasFeatureResourceHandler;
@Value("${product.feature.resouce.expire:180}") @Value("${product.feature.resouce.expire.minutes:14}")
private Long expireInDays; private Long expireInMinutes;
@Override @Override
public Map<Long, List<FeatureResourceDTO>> list(ListProductFeatureResourceParam param) { public Map<Long, List<FeatureResourceDTO>> list(ListProductFeatureResourceParam param) {
@ -82,7 +82,7 @@ public class ProductSaasFeatureResourceCacheServiceImpl implements ProductSaasFe
// 存在hash中部分key移除为了处理快直接把redisKey删除掉修改不频繁 // 存在hash中部分key移除为了处理快直接把redisKey删除掉修改不频繁
redisTemplate.delete(redisKey); redisTemplate.delete(redisKey);
RedisClient.HashOps.hPutAll(redisKey, redisValues); RedisClient.HashOps.hPutAll(redisKey, redisValues);
redisTemplate.expire(redisKey, expireInDays, TimeUnit.DAYS); redisTemplate.expire(redisKey, expireInMinutes, TimeUnit.MINUTES);
log.info("succeed to store product featureResource: redisKey:{} value:{}", redisKey, redisValues); log.info("succeed to store product featureResource: redisKey:{} value:{}", redisKey, redisValues);
} }
return null; return null;

View File

@ -48,8 +48,8 @@ public class RolePermissionCacheServiceImpl implements RolePermissionCacheServic
/** 角色权限缓存过期时间 **/ /** 角色权限缓存过期时间 **/
@Value("${role.permission.expire:180}") @Value("${role.permission.expire.minutes:14}")
private Long expireInDays; private Long expireInMinutes;
@Override @Override
public Map<Long, List<PermissionDTO>> list(ListRolePermissionParam param) { public Map<Long, List<PermissionDTO>> list(ListRolePermissionParam param) {
@ -131,7 +131,7 @@ public class RolePermissionCacheServiceImpl implements RolePermissionCacheServic
// 存在hash中部分key移除为了处理快直接把redisKey删除掉修改不频繁 // 存在hash中部分key移除为了处理快直接把redisKey删除掉修改不频繁
redisTemplate.delete(redisKey); redisTemplate.delete(redisKey);
RedisClient.HashOps.hPutAll(redisKey, redisValues); RedisClient.HashOps.hPutAll(redisKey, redisValues);
redisTemplate.expire(redisKey, expireInDays, TimeUnit.DAYS); redisTemplate.expire(redisKey, expireInMinutes, TimeUnit.MINUTES);
log.info("succeed to store role permission: redisKey:{} value:{}", redisKey, redisValues); log.info("succeed to store role permission: redisKey:{} value:{}", redisKey, redisValues);
} }
return null; return null;

View File

@ -49,8 +49,8 @@ public class RoleSaasFeatureResourceCacheServiceImpl implements RoleSaasFeatureR
/** 角色菜单缓存过期时间 **/ /** 角色菜单缓存过期时间 **/
@Value("${role.feature.resource.expire:180}") @Value("${role.feature.resource.expire.minutes:14}")
private Long expireInDays; private Long expireInMinutes;
@Override @Override
public Map<Long, List<SaasFeatureResourceDTO>> list(ListRoleSaasFeatureResourceParam param) { public Map<Long, List<SaasFeatureResourceDTO>> list(ListRoleSaasFeatureResourceParam param) {
@ -84,7 +84,7 @@ public class RoleSaasFeatureResourceCacheServiceImpl implements RoleSaasFeatureR
// 存在hash中部分key移除为了处理快直接把redisKey删除掉修改不频繁 // 存在hash中部分key移除为了处理快直接把redisKey删除掉修改不频繁
redisTemplate.delete(redisKey); redisTemplate.delete(redisKey);
RedisClient.HashOps.hPutAll(redisKey, redisValues); RedisClient.HashOps.hPutAll(redisKey, redisValues);
redisTemplate.expire(redisKey, expireInDays, TimeUnit.DAYS); redisTemplate.expire(redisKey, expireInMinutes, TimeUnit.MINUTES);
log.info("succeed to store role featureResource: redisKey:{} value:{}", redisKey, redisValues); log.info("succeed to store role featureResource: redisKey:{} value:{}", redisKey, redisValues);
} }
return null; return null;

View File

@ -121,8 +121,8 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
private RedisTemplate<String, String> redisTemplate; private RedisTemplate<String, String> redisTemplate;
/** 菜单树过期时间 **/ /** 菜单树过期时间 **/
@Value("${saas.feature.resource.expire:180}") @Value("${saas.feature.resource.expire.minutes:14}")
private Long expireInDays; private Long expireInMinutes;
private static final String SAAS_FEATURE_RESOURCE_KEY = "saas:feature:resource:%s"; private static final String SAAS_FEATURE_RESOURCE_KEY = "saas:feature:resource:%s";
@ -785,7 +785,7 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
String redisKey = getKey(saasFeatureResource.getTerminal()); String redisKey = getKey(saasFeatureResource.getTerminal());
String redisValue = JSONObject.toJSONString(saasFeatureResource.getFeatures()); String redisValue = JSONObject.toJSONString(saasFeatureResource.getFeatures());
RedisClient.StringOps.setEx(redisKey, redisValue, RedisClient.StringOps.setEx(redisKey, redisValue,
expireInDays, TimeUnit.DAYS); expireInMinutes, TimeUnit.MINUTES);
log.info("succeed to store featureResource: redisKey:{} value:{}", redisKey, redisValue); log.info("succeed to store featureResource: redisKey:{} value:{}", redisKey, redisValue);
} }
return null; return null;

View File

@ -390,13 +390,10 @@ public class TyrSaasAuthServiceImpl implements TyrSaasAuthService {
} }
List<IdentityAuthReq.WorkspaceOuPair> pairs = BeanMapper.copyList(req.getWorkspaceAndOU(), IdentityAuthReq.WorkspaceOuPair.class); List<IdentityAuthReq.WorkspaceOuPair> pairs = BeanMapper.copyList(req.getWorkspaceAndOU(), IdentityAuthReq.WorkspaceOuPair.class);
request.setWorkspaceOusPairs(pairs); request.setWorkspaceOusPairs(pairs);
request.setFeatureCode(Sets.newHashSet(req.getCodes()));
IdentityAuthRes authRes = this.findIdentityAuthMix(request); IdentityAuthRes authRes = this.findIdentityAuthMix(request);
HashSet<String> codeSet = new HashSet<>(req.getCodes());
//比较code
return authRes.getPermissions().stream() return authRes.getPermissions().stream()
.anyMatch(e -> e.getPermissionPoint() .anyMatch(e -> CollectionUtil.isNotEmpty(e.getPermissionPoint()));
.stream()
.anyMatch(p -> codeSet.contains(p.getFeatureCode())));
} }
@Data @Data

View File

@ -62,8 +62,8 @@ public class WorkspaceProductServiceImpl implements WorkspaceProductService {
/** 授权缓存过期时间 **/ /** 授权缓存过期时间 **/
@Value("${workspace.product.expire:90}") @Value("${workspace.product.expire.minutes:14}")
private Long expireInDays; private Long expireInMinutes;
private static final String WORKSPACE_PRODUCT_KEY = "workspace:product:%s"; private static final String WORKSPACE_PRODUCT_KEY = "workspace:product:%s";
@ -190,7 +190,7 @@ public class WorkspaceProductServiceImpl implements WorkspaceProductService {
for (WorkspaceProductDTO workspaceProduct : param.getWorkspaceProducts()) { for (WorkspaceProductDTO workspaceProduct : param.getWorkspaceProducts()) {
String redisKey = getKey(workspaceProduct.getWorkspaceId()); String redisKey = getKey(workspaceProduct.getWorkspaceId());
RedisUtil.StringValueOps.setEx(redisKey, JSON.toJSONString(workspaceProduct.getProductIds()), RedisUtil.StringValueOps.setEx(redisKey, JSON.toJSONString(workspaceProduct.getProductIds()),
expireInDays, TimeUnit.DAYS); expireInMinutes, TimeUnit.MINUTES);
} }
return null; return null;