feat: (feature/REQ-3714) 修改用户角色不支持移除的问题,因为底层拦截器在update的时候把is_delete字段给排除了

This commit is contained in:
李龙 2025-03-21 17:11:02 +08:00
parent 5bd53eeef7
commit 02b57f0d68

View File

@ -223,46 +223,49 @@ public class SaasRoleUserRelationServiceImpl extends ServiceImpl<SaasRoleUserRel
.collect(Collectors.groupingBy(e -> e.getIdentityId() + "_" + e.getIdentityType() + .collect(Collectors.groupingBy(e -> e.getIdentityId() + "_" + e.getIdentityType() +
"_" + e.getSaasRoleUser().getPersonId() + "_" + e.getWorkspaceId() + "_" + e.getOuId())); "_" + e.getSaasRoleUser().getPersonId() + "_" + e.getWorkspaceId() + "_" + e.getOuId()));
// 根据入参解析insertdelete的记录 // 根据入参解析insertdelete的记录
List<SaasRoleUserRelation> upsert = Lists.newArrayList(); List<SaasRoleUserRelation> insert = Lists.newArrayList();
assembleInsertData(roleUserMap, param, roles, upsert); List<SaasRoleUserRelation> remove = Lists.newArrayList();
assembleInsertData(roleUserMap, param, roles, insert);
assembleDeleteData(roleUserMap, param, roles, upsert); assembleDeleteData(roleUserMap, param, roles, remove);
// 批量insertdelete // 批量insertdelete
if (CollectionUtils.isEmpty(upsert)) { if (CollectionUtils.isEmpty(insert) && CollectionUtils.isEmpty(remove)) {
return; return;
} }
this.saveOrUpdateBatch(upsert);
if (!CollectionUtils.isEmpty(insert)) {
this.saveBatch(insert);
}
if (!CollectionUtils.isEmpty(remove)) {
this.removeByIds(Lists.transform(remove, SaasRoleUserRelation::getId));
}
// 发送mq // 发送mq
List<SaasRoleUserRelation> inserts = upsert.stream() if (!CollectionUtils.isEmpty(insert)) {
.filter(saasRoleUserRelation -> Objects.isNull(saasRoleUserRelation.getIsDelete()) || Objects.equals(TableIsDeleteEnum.NORMAL.value, saasRoleUserRelation.getIsDelete()))
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(inserts)) {
Event event = Event.builder() Event event = Event.builder()
.targetType(TARGET_TYPE) .targetType(TARGET_TYPE)
.eventCode(SAAS_ROLE_USER_RELATION_UPSERT.getEventCode()) .eventCode(SAAS_ROLE_USER_RELATION_UPSERT.getEventCode())
.data(SaasRoleUserRelationUpsertPayload.builder() .data(SaasRoleUserRelationUpsertPayload.builder()
.newValues(inserts) .newValues(insert)
.build()) .build())
.build(); .build();
mqProducer.send(event); mqProducer.send(event);
} }
List<SaasRoleUserRelation> deletes = upsert.stream() if (!CollectionUtils.isEmpty(remove)) {
.filter(saasRoleUserRelation -> Objects.nonNull(saasRoleUserRelation.getIsDelete()) && !Objects.equals(TableIsDeleteEnum.NORMAL.value, saasRoleUserRelation.getIsDelete()))
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(deletes)) {
Event event = Event.builder() Event event = Event.builder()
.targetType(TARGET_TYPE) .targetType(TARGET_TYPE)
.eventCode(SAAS_ROLE_USER_RELATION_REMOVED.getEventCode()) .eventCode(SAAS_ROLE_USER_RELATION_REMOVED.getEventCode())
.data(SaasRoleUserRelationRemovePayload.builder() .data(SaasRoleUserRelationRemovePayload.builder()
.values(deletes) .values(remove)
.build()) .build())
.build(); .build();
mqProducer.send(event); mqProducer.send(event);
} }
insert.addAll(remove);
operateLogService.save(LogAddReq.builder() operateLogService.save(LogAddReq.builder()
.scene("UPSERT_USER_ROLE") .scene("UPSERT_USER_ROLE")
@ -274,7 +277,7 @@ public class SaasRoleUserRelationServiceImpl extends ServiceImpl<SaasRoleUserRel
.message(new JSONObject() .message(new JSONObject()
.fluentPut("param", param) .fluentPut("param", param)
.fluentPut("oldValues", oldRoleUsers) .fluentPut("oldValues", oldRoleUsers)
.fluentPut("newValues", upsert) .fluentPut("newValues", insert)
.toJSONString()) .toJSONString())
.build()); .build());
} }