perf:更新用户职位的时候,清除缓存

This commit is contained in:
曾文豪
2024-08-27 13:38:57 +08:00
parent 80ec6d2e3d
commit 0310bd4a15
5 changed files with 15 additions and 10 deletions

View File

@@ -53,7 +53,7 @@ public class CorePlatformUniqueService extends TsServiceBase<CorePlatformUniqueM
if (tokenBean != null) { if (tokenBean != null) {
// 清除授权信息 // 清除授权信息
TsCacheService.of().remove(StrUtil.format(TsAuthorityHandler.CACHE_HAS_AUTHORITY, TsCacheService.of().remove(StrUtil.format(TsAuthorityHandler.CACHE_AUTHORITY,
tokenBean.getRoleId(), tokenBean.getId())); tokenBean.getRoleId(), tokenBean.getId()));
// 添加登录日志 // 添加登录日志

View File

@@ -154,7 +154,7 @@ public class CoreRoleService extends TsServiceBase<CoreRoleGroupMapper, CoreRole
coreRoleUserMapper.insert(roleUser); coreRoleUserMapper.insert(roleUser);
} }
onRoleChange(roleUser.getTypeId(), roleUser.getUserId()); onRoleChange("", roleUser.getUserId());
} }
@@ -171,7 +171,7 @@ public class CoreRoleService extends TsServiceBase<CoreRoleGroupMapper, CoreRole
coreRoleUser.setIsDeleted(1); coreRoleUser.setIsDeleted(1);
coreRoleUserMapper.updateById(coreRoleUser); coreRoleUserMapper.updateById(coreRoleUser);
onRoleChange(coreRoleUser.getTypeId(), coreRoleUser.getUserId()); onRoleChange("", coreRoleUser.getUserId());
} }
@@ -179,8 +179,13 @@ public class CoreRoleService extends TsServiceBase<CoreRoleGroupMapper, CoreRole
* 当授权发生变化时 * 当授权发生变化时
*/ */
public void onRoleChange(String roleId, String userId) { public void onRoleChange(String roleId, String userId) {
TsCacheService.of().keys(StrUtil.format(TsAuthorityHandler.CACHE_HAS_AUTHORITY, if (StrUtil.isEmpty(roleId)) {
roleId, userId)).forEach(key -> TsCacheService.of().remove(key)); TsCacheService.of().keys(StrUtil.replace(TsAuthorityHandler.CACHE_AUTHORITY,
":{}", "")).forEach(key -> TsCacheService.of().remove(key));
} else {
TsCacheService.of().keys(StrUtil.format(TsAuthorityHandler.CACHE_AUTHORITY,
roleId, userId)).forEach(key -> TsCacheService.of().remove(key));
}
} }

View File

@@ -68,11 +68,11 @@ public class TsCacheService {
/** /**
* 获取key * 获取key
* *
* @param pattern * @param prefix
* @return * @return
*/ */
public Set<String> keys(String pattern) { public Set<String> keys(String prefix) {
return tsCacheHandler.keys(pattern); return tsCacheHandler.keys(prefix);
} }

View File

@@ -9,7 +9,7 @@ import java.util.List;
@Service @Service
public interface TsAuthorityHandler { public interface TsAuthorityHandler {
String CACHE_HAS_AUTHORITY = "CACHE:HAS_AUTHORITY:{}:{}"; String CACHE_AUTHORITY = "CACHE:AUTHORITY:{}:{}";
/** /**

View File

@@ -56,7 +56,7 @@ public class RoleAuthorityAspect {
HttpServletRequest request = ServletKit.getRequest(); HttpServletRequest request = ServletKit.getRequest();
TokenBean tokenBean = tsTokenConfig.validToken(request, true); TokenBean tokenBean = tsTokenConfig.validToken(request, true);
String cacheKey = StrUtil.format(TsAuthorityHandler.CACHE_HAS_AUTHORITY, tokenBean.getRoleId(), tokenBean.getId()); String cacheKey = StrUtil.format(TsAuthorityHandler.CACHE_AUTHORITY, tokenBean.getRoleId(), tokenBean.getId());
List<String> authorityList = StrUtil.split(TsCacheService.of().get(cacheKey), ";") List<String> authorityList = StrUtil.split(TsCacheService.of().get(cacheKey), ";")
.stream().filter(StrUtil::isNotEmpty).collect(Collectors.toList()); .stream().filter(StrUtil::isNotEmpty).collect(Collectors.toList());
if (CollUtil.isEmpty(authorityList)) { if (CollUtil.isEmpty(authorityList)) {