diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/v3/msg/MessageMappingProcessor.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/v3/msg/MessageMappingProcessor.java index f7a4b4d1..4f356b87 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/v3/msg/MessageMappingProcessor.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/v3/msg/MessageMappingProcessor.java @@ -14,13 +14,16 @@ import cn.axzo.msg.center.inside.notices.utils.FunctionalTransactionTemplate; import lombok.RequiredArgsConstructor; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import static java.util.function.Function.identity; import static java.util.stream.Collectors.joining; @@ -92,9 +95,14 @@ public class MessageMappingProcessor implements EventMappingProcessor { .orElse(new ArrayList<>()) .stream() .map(MessageDispatchResp::getMsgid) + .filter(Objects::nonNull) .collect(joining(",")); - // 把im端的id也存起来 - messageRecordV3Dao.setSendSuccess(message.getId(), imMessageId); + if (StringUtils.isBlank(imMessageId)) { + messageRecordV3Dao.batchSetSendFailed(Collections.singletonList(message.getId()), "云信没有返回message_id"); + } else { + // 把im端的id也存起来 + messageRecordV3Dao.setSendSuccess(message.getId(), imMessageId); + } } }