feat:(REQ-3342) 角色upsert时,增加角色相关的事件mq

This commit is contained in:
李龙 2024-12-16 17:11:16 +08:00
parent d998bfb4eb
commit 738eb72bbd
3 changed files with 36 additions and 0 deletions

View File

@ -13,6 +13,7 @@ public enum EventTypeEnum {
PAGE_ELEMENT_FEATURE_RESOURCE_UPSERT("page-element-feature-resource", "page-element-feature-resource-upsert", "菜单-页面元素绑定关系更新"), PAGE_ELEMENT_FEATURE_RESOURCE_UPSERT("page-element-feature-resource", "page-element-feature-resource-upsert", "菜单-页面元素绑定关系更新"),
SAAS_ROLE_USER_RELATION_REMOVED("saas-role-user-relation", "saas-role-user-relation-removed", "删除用户角色信息"), SAAS_ROLE_USER_RELATION_REMOVED("saas-role-user-relation", "saas-role-user-relation-removed", "删除用户角色信息"),
SAAS_ROLE_USER_RELATION_UPSERT("saas-role-user-relation", "saas-role-user-relation-upsert", "更新用户角色信息"), SAAS_ROLE_USER_RELATION_UPSERT("saas-role-user-relation", "saas-role-user-relation-upsert", "更新用户角色信息"),
SAAS_ROLE_UPSERT("saas-role", "saas-role-upsert", "更新角色信息"),
; ;
EventTypeEnum(String model, String name, String desc) { EventTypeEnum(String model, String name, String desc) {

View File

@ -0,0 +1,20 @@
package cn.axzo.tyr.server.event.payload;
import cn.axzo.tyr.server.repository.entity.SaasRole;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SaasRoleUpsertPayload implements Serializable {
private SaasRole newRole;
private SaasRole oldRole;
}

View File

@ -55,6 +55,7 @@ import cn.axzo.tyr.client.model.vo.SaveOrUpdateRoleVO;
import cn.axzo.tyr.server.config.MqProducer; import cn.axzo.tyr.server.config.MqProducer;
import cn.axzo.tyr.server.event.payload.RolePermissionCreatedPayload; import cn.axzo.tyr.server.event.payload.RolePermissionCreatedPayload;
import cn.axzo.tyr.server.event.payload.SaasFeatureResourceUpsertPayload; import cn.axzo.tyr.server.event.payload.SaasFeatureResourceUpsertPayload;
import cn.axzo.tyr.server.event.payload.SaasRoleUpsertPayload;
import cn.axzo.tyr.server.model.RelationOperateLogResourceBindRoleDO; import cn.axzo.tyr.server.model.RelationOperateLogResourceBindRoleDO;
import cn.axzo.tyr.server.model.RelationOperateLogRoleBindResourceDO; import cn.axzo.tyr.server.model.RelationOperateLogRoleBindResourceDO;
import cn.axzo.tyr.server.model.ResourcePermission; import cn.axzo.tyr.server.model.ResourcePermission;
@ -141,6 +142,7 @@ import java.util.stream.Stream;
import static cn.axzo.tyr.server.event.inner.EventTypeEnum.ROLE_PERMISSION_CREATED; 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.event.inner.EventTypeEnum.SAAS_FEATURE_RESOURCE_UPSERT;
import static cn.axzo.tyr.server.event.inner.EventTypeEnum.SAAS_ROLE_UPSERT;
import static cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation.NEW_FEATURE; import static cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation.NEW_FEATURE;
import static cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation.OLD_FEATURE; import static cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation.OLD_FEATURE;
@ -497,6 +499,10 @@ public class RoleServiceImpl extends ServiceImpl<SaasRoleMapper, SaasRole>
List<SaveOrUpdateRoleVO.GroupInfoVO> groupTrees = saveOrUpdateRole.getGroupTree(); List<SaveOrUpdateRoleVO.GroupInfoVO> groupTrees = saveOrUpdateRole.getGroupTree();
// 验证角色分组信息 // 验证角色分组信息
validRoleGroup(groupTrees); validRoleGroup(groupTrees);
SaasRole oldSaasRole = Optional.ofNullable(saveOrUpdateRole.getId())
.map(id -> saasRoleDao.getById(id))
.orElse(null);
SaasRole saasRole = validAndBuildRole(saveOrUpdateRole, now); SaasRole saasRole = validAndBuildRole(saveOrUpdateRole, now);
//验证权限集信息 //验证权限集信息
SaasPermissionGroup saasPermissionGroup = validPermissionGroupCommon(saveOrUpdateRole); SaasPermissionGroup saasPermissionGroup = validPermissionGroupCommon(saveOrUpdateRole);
@ -544,6 +550,15 @@ public class RoleServiceImpl extends ServiceImpl<SaasRoleMapper, SaasRole>
.build()) .build())
.build(); .build();
mqProducer.send(event); mqProducer.send(event);
// 上面是因为原来做权限的缓存需要角色权限的事件因为代码没有收口所以这里把最基本的角色相关的事件补上
mqProducer.send(Event.builder()
.targetType("saasRoleId")
.eventCode(SAAS_ROLE_UPSERT.getEventCode())
.data(SaasRoleUpsertPayload.builder()
.newRole(saasRoleDao.getById(saasRole.getId()))
.oldRole(oldSaasRole)
.build())
.build());
return saasRole.getId(); return saasRole.getId();
} }