REQ-3581: 返回幂等信息

This commit is contained in:
yanglin 2025-02-24 18:08:24 +08:00
parent 19c3696f5d
commit 421bc0cbc4
2 changed files with 10 additions and 53 deletions

View File

@ -197,30 +197,25 @@ public class EssService {
@BizTransactional
public void downloadContractPDF(EssContract contract, boolean retryDownload) {
EssContract reload = essContractDao.findForUpdateOrNull(contract.getEssContractId());
if (reload == null) {
log.warn("合同不存在, essContractId={}", contract.getEssContractId());
if (StringUtils.isNotBlank(contract.getOssFileKey()) && !retryDownload) {
log.info("合同已下载PDF, contract={}", contract);
return;
}
if (StringUtils.isNotBlank(reload.getOssFileKey()) && !retryDownload) {
log.info("合同已下载PDF, contract={}", reload);
return;
}
if (!shouldDownloadContractPDF(reload)) {
log.info("合同不需要下载PDF, contract={}", reload);
if (!shouldDownloadContractPDF(contract)) {
log.info("合同不需要下载PDF, contract={}", contract);
return;
}
try {
String pdfUrl = getContractPDFUrlFromEss(reload);
String fileName = String.format("%s.pdf", reload.getContractName());
String pdfUrl = getContractPDFUrlFromEss(contract);
String fileName = String.format("%s.pdf", contract.getContractName());
String fileKey = ossService.uploadToOss(pdfUrl, fileName);
essContractDao.setOssFileKey(reload, fileKey);
essLogDao.log("uploadContractToOss", reload.getEssContractId(),
essContractDao.setOssFileKey(contract, fileKey);
essLogDao.log("uploadContractToOss", contract.getEssContractId(),
"ossFileKey", fileKey, "forceDownload", retryDownload);
log.info("上传合同到OSS成功, essContractId={}", reload.getEssContractId());
log.info("上传合同到OSS成功, essContractId={}", contract.getEssContractId());
} catch (Exception e) {
log.warn("上传合同到OSS失败", e);
essLogDao.log(e, "uploadContractToOss", reload.getEssContractId());
essLogDao.log(e, "uploadContractToOss", contract.getEssContractId());
}
}

View File

@ -1,38 +0,0 @@
package cn.axzo.nanopart.ess.server.mq;
import cn.axzo.framework.rocketmq.BaseListener;
import cn.axzo.framework.rocketmq.EventConsumer;
import com.alibaba.fastjson.JSON;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.common.message.MessageExt;
import org.apache.rocketmq.spring.annotation.ConsumeMode;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
/**
* @author yanglin
*/
@Slf4j
@Component
@RequiredArgsConstructor
@RocketMQMessageListener(
maxReconsumeTimes = 3,
consumeMode = ConsumeMode.ORDERLY,
nameServer = "${rocketmq.name-server}",
topic = "topic_nanopart_${spring.profiles.active}",
consumerGroup = "ess_download_contract_pdf_${spring.application.name}_${spring.profiles.active}"
)
public class NanopartEssListener extends BaseListener
implements RocketMQListener<MessageExt> {
private final EventConsumer eventConsumer;
@Override
public void onMessage(MessageExt message) {
log.info("receive mq message: {}", JSON.toJSONString(message));
super.onEvent(message, eventConsumer);
}
}