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() +
"_" + e.getSaasRoleUser().getPersonId() + "_" + e.getWorkspaceId() + "_" + e.getOuId()));
// 根据入参解析insertdelete的记录
List<SaasRoleUserRelation> upsert = Lists.newArrayList();
assembleInsertData(roleUserMap, param, roles, upsert);
List<SaasRoleUserRelation> insert = Lists.newArrayList();
List<SaasRoleUserRelation> remove = Lists.newArrayList();
assembleInsertData(roleUserMap, param, roles, insert);
assembleDeleteData(roleUserMap, param, roles, upsert);
assembleDeleteData(roleUserMap, param, roles, remove);
// 批量insertdelete
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<SaasRoleUserRelation> 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<SaasRoleUserRelation> 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<SaasRoleUserRel
.message(new JSONObject()
.fluentPut("param", param)
.fluentPut("oldValues", oldRoleUsers)
.fluentPut("newValues", upsert)
.fluentPut("newValues", insert)
.toJSONString())
.build());
}