腾讯云短信回调没有logId 根据serialNo查询id来更新

pull/203/head
baolin 2025-08-10 11:04:42 +08:00
parent 2de710190e
commit fa02450c56
1 changed files with 11 additions and 9 deletions

View File

@ -1,6 +1,5 @@
package cn.iocoder.yudao.module.system.service.sms; package cn.iocoder.yudao.module.system.service.sms;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsLogDO; import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsLogDO;
@ -8,11 +7,11 @@ import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsTemplateDO;
import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsLogMapper; import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsLogMapper;
import cn.iocoder.yudao.module.system.enums.sms.SmsReceiveStatusEnum; import cn.iocoder.yudao.module.system.enums.sms.SmsReceiveStatusEnum;
import cn.iocoder.yudao.module.system.enums.sms.SmsSendStatusEnum; import cn.iocoder.yudao.module.system.enums.sms.SmsSendStatusEnum;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
@ -69,13 +68,16 @@ public class SmsLogServiceImpl implements SmsLogService {
String apiReceiveCode, String apiReceiveMsg) { String apiReceiveCode, String apiReceiveMsg) {
SmsReceiveStatusEnum receiveStatus = Objects.equals(success, true) ? SmsReceiveStatusEnum receiveStatus = Objects.equals(success, true) ?
SmsReceiveStatusEnum.SUCCESS : SmsReceiveStatusEnum.FAILURE; SmsReceiveStatusEnum.SUCCESS : SmsReceiveStatusEnum.FAILURE;
smsLogMapper.update(new LambdaUpdateWrapper<SmsLogDO>() Long logId = id;
.set(SmsLogDO::getReceiveStatus, receiveStatus.getStatus()) if (logId == null || logId == 0) {
.set(SmsLogDO::getReceiveTime, receiveTime) SmsLogDO log = smsLogMapper.selectOne(SmsLogDO::getApiSerialNo, serialNo);
.set(SmsLogDO::getApiReceiveCode, apiReceiveCode) if (log == null) { // 这里查不到,有可能短信不是在本系统发送,故不抛异常
.set(SmsLogDO::getApiReceiveMsg, apiReceiveMsg) return;
.eq(id != null && id > 0, SmsLogDO::getId, id) }
.eq(!StrUtil.isEmptyIfStr(serialNo), SmsLogDO::getApiSerialNo, serialNo)); logId = log.getId();
}
smsLogMapper.updateById(SmsLogDO.builder().id(logId).receiveStatus(receiveStatus.getStatus())
.receiveTime(receiveTime).apiReceiveCode(apiReceiveCode).apiReceiveMsg(apiReceiveMsg).build());
} }
@Override @Override