REQ-3345: 如果聊天消息只有一个人的情况下,同步发送

This commit is contained in:
yanglin 2025-02-25 18:00:40 +08:00
parent 638a6fd8fb
commit 743754427e

View File

@ -251,17 +251,6 @@ public class MessageController implements MessageApi {
String sendImAccount = accountService.registerAccountIfAbsent( String sendImAccount = accountService.registerAccountIfAbsent(
sender.getPersonId(), sender.getOuId(), sender.getAppType()); sender.getPersonId(), sender.getOuId(), sender.getAppType());
BizAssertions.assertNotNull(sendImAccount, "创建账号失败"); BizAssertions.assertNotNull(sendImAccount, "创建账号失败");
boolean syncSend = request.isTrySyncSend()
&& CollectionUtils.isEmpty(request.receivePersonsOrEmpty())
&& request.getImReceiveAccounts() != null
&& request.getImReceiveAccounts().size() == 1;
MessageTask.BizData bizData = MessageTask.BizData.builder()
.messageBody(JSON.toJSONString(request.getMessageBody()))
.isSenderRobot(false)
.syncSend(syncSend)
.senderPersonId(request.determineSenderPersonId())
.nimMessageType(request.getMessageType())
.build();
Date now = new Date(); Date now = new Date();
List<MessageTask.ReceivePerson> requestReceivePersons = JSONArray.parseArray( List<MessageTask.ReceivePerson> requestReceivePersons = JSONArray.parseArray(
JSONObject.toJSONString(request.receivePersonsOrEmpty()), MessageTask.ReceivePerson.class); JSONObject.toJSONString(request.receivePersonsOrEmpty()), MessageTask.ReceivePerson.class);
@ -274,6 +263,15 @@ public class MessageController implements MessageApi {
.build()); .build());
} }
} }
int receiverSize = request.receivePersonsOrEmpty().size() + request.getImReceiveAccounts().size();
boolean syncSend = request.isTrySyncSend() && receiverSize == 1;
MessageTask.BizData bizData = MessageTask.BizData.builder()
.messageBody(JSON.toJSONString(request.getMessageBody()))
.isSenderRobot(false)
.syncSend(syncSend)
.senderPersonId(request.determineSenderPersonId())
.nimMessageType(request.getMessageType())
.build();
Long taskId = transactionTemplate.execute(unused -> { Long taskId = transactionTemplate.execute(unused -> {
MessageTask task = messageTaskService.create(MessageTask.builder() MessageTask task = messageTaskService.create(MessageTask.builder()
.bizId(request.getBizId()) .bizId(request.getBizId())