From ffd48916e5f85f481b20db721abc0c6b672329b4 Mon Sep 17 00:00:00 2001 From: lilong Date: Sat, 24 Aug 2024 11:00:33 +0800 Subject: [PATCH] =?UTF-8?q?feat:(REQ-2699)=20=E8=8F=9C=E5=8D=95=E4=B8=AD?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=92=E8=89=B2=E6=97=B6=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=A7=92=E8=89=B2=E6=9D=83=E9=99=90=E6=9B=B4=E6=96=B0?= =?UTF-8?q?mq=EF=BC=8C=E6=9B=B4=E6=96=B0=E8=A7=92=E8=89=B2=E6=9D=83?= =?UTF-8?q?=E9=99=90=E7=9A=84mq=E6=97=B6=EF=BC=8C=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E5=85=A8=E9=87=8F=E6=9B=B4=E6=96=B0=EF=BC=8C=E5=9B=A0=E4=B8=BA?= =?UTF-8?q?=E5=8F=91=E9=80=81mq=E7=9A=84=E5=9C=B0=E6=96=B9=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=9C=80=E8=A6=81=E9=87=8D=E6=9E=84=E6=89=8D=E8=83=BD?= =?UTF-8?q?=E5=87=86=E7=A1=AE=E7=9A=84=E5=8F=91=E9=80=81mq?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/event/inner/CacheRolePermissionHandler.java | 10 ++++++---- .../service/impl/SaasFeatureResourceServiceImpl.java | 10 ++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) 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 093166c1..bed072c8 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 @@ -73,12 +73,14 @@ public class CacheRolePermissionHandler implements InitializingBean { log.info("begin cached role permission handler rocketmq event: {}", event); RolePermissionCreatedPayload payload = event.normalizedData(RolePermissionCreatedPayload.class); - if (CollectionUtils.isEmpty(payload.getRoleIds())) { - return; - } + // 影响角色权限入口的代码没法简单重构,导致发送的roleIds可能不准确,所以一旦有角色权限的更新事件后,全量更新角色权限,角色权限数量不多 + // 后续收口了代码就准确根据角色去更新缓存 +// if (CollectionUtils.isEmpty(payload.getRoleIds())) { +// return; +// } RoleService.ListSaasRoleParam listSaasRoleParam = RoleService.ListSaasRoleParam.builder() - .roleIds(Lists.newArrayList(payload.getRoleIds())) +// .roleIds(Lists.newArrayList(payload.getRoleIds())) .needPermissionRelation(true) .build(); List roles = roleService.list(listSaasRoleParam); 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 afc0f86b..c1d23595 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 @@ -32,6 +32,7 @@ import cn.axzo.tyr.client.model.res.PageElementResp; import cn.axzo.tyr.client.model.res.SaasFeatureResourceResp; import cn.axzo.tyr.server.common.util.Throws; import cn.axzo.tyr.server.config.MqProducer; +import cn.axzo.tyr.server.event.payload.RolePermissionCreatedPayload; import cn.axzo.tyr.server.event.payload.SaasFeatureResourceUpsertPayload; import cn.axzo.tyr.server.model.ResourcePermission; import cn.axzo.tyr.server.model.ResourcePermissionQueryDTO; @@ -87,6 +88,7 @@ import java.util.function.Function; import java.util.stream.Collectors; import static cn.axzo.tyr.server.config.exception.BizResultCode.FEATURE_RESOURCE_NOT_FOUND; +import static cn.axzo.tyr.server.event.inner.EventTypeEnum.ROLE_PERMISSION_CREATED; import static cn.axzo.tyr.server.event.inner.EventTypeEnum.SAAS_FEATURE_RESOURCE_UPSERT; import static cn.axzo.tyr.server.repository.entity.SaasFeatureResource.DEFAULT_WORKSPACE_TYPE; import static cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation.NEW_FEATURE; @@ -310,6 +312,14 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl