REQ-3345: 处理卡片可见性问题

This commit is contained in:
yanglin 2025-02-07 17:45:00 +08:00
parent 2b9d1d8602
commit fbea281e16

View File

@ -57,8 +57,12 @@ public class CardDao extends ServiceImpl<CardMapper, Card> {
List<UpdatableMessageSendResult> updatableResults = imResponse.getUpdatableMessageSendResults();
if (updatableResults == null)
updatableResults = Collections.emptyList();
Map<PersonAccountAttribute, String> account2BizMessageId = updatableResults.stream()
.collect(toMap(UpdatableMessageSendResult::getAccount, UpdatableMessageSendResult::getBizMessageId));
Map<PersonAccountAttribute, String> person2BizMessageId = updatableResults.stream()
.filter(result -> result.getPerson() != null)
.collect(toMap(UpdatableMessageSendResult::getPerson, UpdatableMessageSendResult::getBizMessageId));
Map<String, String> imAccount2BizMessageId = updatableResults.stream()
.filter(result -> result.getImAccount() != null)
.collect(toMap(UpdatableMessageSendResult::getImAccount, UpdatableMessageSendResult::getBizMessageId));
for (Card card : cards) {
PersonAccountAttribute key = new PersonAccountAttribute();
key.setPersonId(card.getReceiverPersonId() + "");
@ -70,7 +74,9 @@ public class CardDao extends ServiceImpl<CardMapper, Card> {
update.setId(card.getId());
update.setImTaskId(imResponse.getId());
update.setCardState(CardState.SEND_SUCCESS);
String bizMessageId = account2BizMessageId.get(key);
String bizMessageId = person2BizMessageId.get(key);
if (bizMessageId == null)
bizMessageId = imAccount2BizMessageId.get(card.getImReceiveAccount());
if (bizMessageId != null)
update.setBizMessageId(bizMessageId);
updates.add(update);