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