From 02b57f0d6808a413469085dd42d893a5d2c8eb2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=BE=99?= Date: Fri, 21 Mar 2025 17:11:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20(feature/REQ-3714)=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=A7=92=E8=89=B2=E4=B8=8D=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E5=9B=A0?= =?UTF-8?q?=E4=B8=BA=E5=BA=95=E5=B1=82=E6=8B=A6=E6=88=AA=E5=99=A8=E5=9C=A8?= =?UTF-8?q?update=E7=9A=84=E6=97=B6=E5=80=99=E6=8A=8Ais=5Fdelete=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E7=BB=99=E6=8E=92=E9=99=A4=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SaasRoleUserRelationServiceImpl.java | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleUserRelationServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleUserRelationServiceImpl.java index 41988118..e87c3067 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleUserRelationServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleUserRelationServiceImpl.java @@ -223,46 +223,49 @@ public class SaasRoleUserRelationServiceImpl extends ServiceImpl e.getIdentityId() + "_" + e.getIdentityType() + "_" + e.getSaasRoleUser().getPersonId() + "_" + e.getWorkspaceId() + "_" + e.getOuId())); // 根据入参解析insert、delete的记录 - List upsert = Lists.newArrayList(); - assembleInsertData(roleUserMap, param, roles, upsert); + List insert = Lists.newArrayList(); + List remove = Lists.newArrayList(); + assembleInsertData(roleUserMap, param, roles, insert); - assembleDeleteData(roleUserMap, param, roles, upsert); + assembleDeleteData(roleUserMap, param, roles, remove); // 批量insert、delete - if (CollectionUtils.isEmpty(upsert)) { + if (CollectionUtils.isEmpty(insert) && CollectionUtils.isEmpty(remove)) { return; } - this.saveOrUpdateBatch(upsert); + + if (!CollectionUtils.isEmpty(insert)) { + this.saveBatch(insert); + } + + if (!CollectionUtils.isEmpty(remove)) { + this.removeByIds(Lists.transform(remove, SaasRoleUserRelation::getId)); + } // 发送mq - List inserts = upsert.stream() - .filter(saasRoleUserRelation -> Objects.isNull(saasRoleUserRelation.getIsDelete()) || Objects.equals(TableIsDeleteEnum.NORMAL.value, saasRoleUserRelation.getIsDelete())) - .collect(Collectors.toList()); - if (!CollectionUtils.isEmpty(inserts)) { + if (!CollectionUtils.isEmpty(insert)) { Event event = Event.builder() .targetType(TARGET_TYPE) .eventCode(SAAS_ROLE_USER_RELATION_UPSERT.getEventCode()) .data(SaasRoleUserRelationUpsertPayload.builder() - .newValues(inserts) + .newValues(insert) .build()) .build(); mqProducer.send(event); } - List deletes = upsert.stream() - .filter(saasRoleUserRelation -> Objects.nonNull(saasRoleUserRelation.getIsDelete()) && !Objects.equals(TableIsDeleteEnum.NORMAL.value, saasRoleUserRelation.getIsDelete())) - .collect(Collectors.toList()); - if (!CollectionUtils.isEmpty(deletes)) { + if (!CollectionUtils.isEmpty(remove)) { Event event = Event.builder() .targetType(TARGET_TYPE) .eventCode(SAAS_ROLE_USER_RELATION_REMOVED.getEventCode()) .data(SaasRoleUserRelationRemovePayload.builder() - .values(deletes) + .values(remove) .build()) .build(); mqProducer.send(event); } + insert.addAll(remove); operateLogService.save(LogAddReq.builder() .scene("UPSERT_USER_ROLE") @@ -274,7 +277,7 @@ public class SaasRoleUserRelationServiceImpl extends ServiceImpl