diff --git a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardDao.java b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardDao.java index 44f11714..205b9eb4 100644 --- a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardDao.java +++ b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/CardDao.java @@ -57,8 +57,12 @@ public class CardDao extends ServiceImpl { List updatableResults = imResponse.getUpdatableMessageSendResults(); if (updatableResults == null) updatableResults = Collections.emptyList(); - Map account2BizMessageId = updatableResults.stream() - .collect(toMap(UpdatableMessageSendResult::getAccount, UpdatableMessageSendResult::getBizMessageId)); + Map person2BizMessageId = updatableResults.stream() + .filter(result -> result.getPerson() != null) + .collect(toMap(UpdatableMessageSendResult::getPerson, UpdatableMessageSendResult::getBizMessageId)); + Map 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 { 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);