REQ-3281: 修复老app收不到push

This commit is contained in:
yanglin 2024-12-11 16:43:47 +08:00
parent 25e5536ad1
commit a564ea8898

View File

@ -6,6 +6,7 @@ import cn.axzo.framework.rocketmq.EventHandler;
import cn.axzo.im.center.common.enums.AppTypeEnum;
import cn.axzo.msg.center.api.request.MsgBody4Guest;
import cn.axzo.msg.center.dal.MessageRecordV3Dao;
import cn.axzo.msg.center.dal.mapper.MessageRecordV3Mapper;
import cn.axzo.msg.center.domain.entity.MessageRecordV3;
import cn.axzo.msg.center.domain.enums.NativeTypeEnum;
import cn.axzo.msg.center.event.payload.MessageHistoryUpdatedPayload;
@ -77,6 +78,7 @@ public class PushYouMengMessageHandler implements EventHandler, InitializingBean
TerminalTypeEnum.WEB_VIEW,
TerminalTypeEnum.MINI_PROGRAM,
TerminalTypeEnum.WECHAT_MINI_PROGRAM);
@Autowired private MessageRecordV3Mapper messageRecordV3Mapper;
@Override
@ -98,17 +100,21 @@ public class PushYouMengMessageHandler implements EventHandler, InitializingBean
}
Long imMessageTaskId = payload.getNewMessageHistory().getImMessageTaskId();
Optional<MessageRecordV3> messageRecordV3s = messageRecordV3Dao.lambdaQuery()
.eq(MessageRecordV3::getImMsgId, String.valueOf(imMessageTaskId))
.list()
.stream()
.findFirst();
if (!messageRecordV3s.isPresent()) {
MessageRecordV3 messageRecordV3 = messageRecordV3Dao.lambdaQuery()
.eq(MessageRecordV3::getCmTaskId, String.valueOf(imMessageTaskId))
.last("LIMIT 1")
.one();
if (messageRecordV3 == null) {
messageRecordV3 = messageRecordV3Dao.lambdaQuery()
.eq(MessageRecordV3::getCmpTaskId, String.valueOf(imMessageTaskId))
.last("LIMIT 1")
.one();
}
if (messageRecordV3 == null) {
log.info("push-handler, 非当前业务的im消息");
return;
}
MessageRecordV3 messageRecordV3 = messageRecordV3s.get();
Optional<TemplateModelV3> messageTemplateDTO = modelV3Service.findEnabledByCode(messageRecordV3.getTemplateCode());
if (!messageTemplateDTO.isPresent()) {
log.info("push-handler, 模板code:{},不存在", messageRecordV3.getTemplateCode());