REQ-3581: 避免形成无限循环
This commit is contained in:
parent
8e099c4502
commit
04a43f8820
@ -1,11 +1,11 @@
|
||||
|
||||
package cn.axzo.nanopart.ess.api.enums;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @Author zr
|
||||
* @Date 2024/3/19 18:01
|
||||
@ -15,7 +15,6 @@ import java.util.Arrays;
|
||||
public enum MQEvent {
|
||||
|
||||
ESS_CONTRACT_STATE_CHANGE("nanopart", "ess-contract-state-change", "腾讯电子签合同状态变化"),
|
||||
ESS_CONTRACT_DOWNLOAD_PDF("nanopart", "ess-contract-download-pdf", "腾讯电子签合同下载PDF"),
|
||||
|
||||
;
|
||||
private final String model;
|
||||
|
||||
@ -183,6 +183,10 @@ public class EssService {
|
||||
public void saveContractSnapshot(SaveContractSnapshotRequest request) {
|
||||
essLogDao.logRequest("saveContractSnapshot", request.getEssContractId(), request);
|
||||
EssContract contract = essContractDao.getOrThrow(request.getEssContractId());
|
||||
if (contract.isSavedOnOss() && !request.isRetryDownload()) {
|
||||
log.info("合同已保存快照, contract={}", contract);
|
||||
return;
|
||||
}
|
||||
contract.getOrCreateExt().setSaveContractSnapshotArbitrarily(true);
|
||||
essContractDao.updateExt(contract);
|
||||
maybeScheduleDownloadContractPDF(contract, request.isRetryDownload());
|
||||
|
||||
@ -1,21 +1,20 @@
|
||||
|
||||
package cn.axzo.nanopart.ess.server.ess.mq;
|
||||
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import cn.axzo.framework.rocketmq.EventConsumer;
|
||||
import cn.axzo.framework.rocketmq.EventHandler;
|
||||
import cn.axzo.nanopart.ess.api.enums.MQEvent;
|
||||
import cn.axzo.nanopart.ess.api.mq.EssContractDownloadPDFEvent;
|
||||
import cn.axzo.nanopart.ess.server.dao.EssContractDao;
|
||||
import cn.axzo.nanopart.ess.server.entity.EssContract;
|
||||
import cn.axzo.nanopart.ess.server.ess.EssService;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -45,8 +44,7 @@ public class DownloadContractHandler implements EventHandler, InitializingBean {
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
eventConsumer.registerHandlers(Collections.singletonList(MQEvent.ESS_CONTRACT_DOWNLOAD_PDF.getEventCode()),
|
||||
this);
|
||||
eventConsumer.registerHandler(InternalMQEvent.ESS_CONTRACT_DOWNLOAD_PDF.getEventCode(), this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ public class EssBroadcaster {
|
||||
message.setRetryDownload(retryDownload);
|
||||
// @formatter:off
|
||||
eventProducer.send(Event.builder()
|
||||
.eventCode(MQEvent.ESS_CONTRACT_DOWNLOAD_PDF.getEventCode())
|
||||
.eventCode(InternalMQEvent.ESS_CONTRACT_DOWNLOAD_PDF.getEventCode())
|
||||
.shardingKey(contract.getEssContractId())
|
||||
.targetId(contract.getEssContractId())
|
||||
.targetType("ess-contract")
|
||||
|
||||
@ -0,0 +1,35 @@
|
||||
|
||||
package cn.axzo.nanopart.ess.server.ess.mq;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import cn.axzo.framework.rocketmq.Event;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @Author zr
|
||||
* @Date 2024/3/19 18:01
|
||||
* @Description
|
||||
**/
|
||||
@Getter
|
||||
public enum InternalMQEvent {
|
||||
|
||||
ESS_CONTRACT_DOWNLOAD_PDF("nanopart", "ess-contract-download-pdf", "腾讯电子签合同下载PDF"),
|
||||
|
||||
;
|
||||
private final String model;
|
||||
private final String tag;
|
||||
private final String desc;
|
||||
private final Event.EventCode eventCode;
|
||||
|
||||
InternalMQEvent(String model, String tag, String desc) {
|
||||
this.eventCode = Event.EventCode.builder().module(model).name(tag).build();
|
||||
this.model = model;
|
||||
this.tag = tag;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public static InternalMQEvent getByName(String name) {
|
||||
return Arrays.stream(InternalMQEvent.values()).filter(item -> item.name().equals(name)).findFirst().orElse(null);
|
||||
}
|
||||
}
|
||||
@ -1,8 +1,6 @@
|
||||
|
||||
package cn.axzo.nanopart.ess.server.ess.mq;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@ -76,7 +74,6 @@ public class PersonResignHandler implements EventHandler, InitializingBean {
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
eventConsumer.registerHandlers(Collections.singletonList(Event.EventCode.from("org-user:org-user-movement")),
|
||||
this);
|
||||
eventConsumer.registerHandler(Event.EventCode.from("org-user:org-user-movement"), this);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user