로깅 개선 및 EAI 배치 가상 연동 작업 완료

This commit is contained in:
Rinjae
2025-10-16 15:02:35 +09:00
parent c204bbf106
commit f5e689fe51
10 changed files with 246 additions and 47 deletions
@@ -3,6 +3,9 @@ package com.eactive.ext.kjb.ums;
import com.eactive.apim.portal.portaluser.entity.PortalUser;
import com.eactive.apim.portal.template.entity.MessageRequest;
import com.eactive.apim.portal.template.repository.MessageRequestRepository;
import com.eactive.ext.kjb.common.KjbProperty;
import com.eactive.ext.kjb.eai.EaiBatchMessage;
import com.eactive.ext.kjb.eai.KjbEaiBatchModule;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import lombok.extern.slf4j.Slf4j;
@@ -22,19 +25,19 @@ import java.util.Map;
@Slf4j
public class EmailJob {
private final EmailProperty prop;
private final KjbProperty prop;
private final MessageRequest messageRequest;
private final Path tempFilePath;
private final Path eaiFilePath;
private final Path backupFilePath;
private final Path failedFilePath;
private MessageRequestRepository messageRequestRepository;
private final MessageRequestRepository messageRequestRepository;
private final LocalDateTime now = LocalDateTime.now();
private EmailJob(EmailProperty prop, MessageRequest messageRequest, MessageRequestRepository messageRequestRepository) {
private EmailJob(KjbProperty prop, MessageRequest messageRequest, MessageRequestRepository messageRequestRepository) {
this.messageRequest = messageRequest;
this.prop = prop;
@@ -50,7 +53,7 @@ public class EmailJob {
}
public static EmailJob create(EmailProperty prop, MessageRequest messageRequest, MessageRequestRepository repository) {
public static EmailJob create(KjbProperty prop, MessageRequest messageRequest, MessageRequestRepository repository) {
if (prop == null) {
throw new IllegalArgumentException("Property is null");
}
@@ -120,13 +123,17 @@ public class EmailJob {
messageRequestRepository.save(messageRequest);
}
try {
log.debug("이메일 파일 생성");
doSaveFile();
log.debug("EAI 배치 호출");
eaiBatchCall();
log.debug("발송 성공 처리");
doSuccess();
} catch (Exception e) {
log.error("이메일 발송 실패", e);
doFail();
} finally {
doDeleteEaiFile();
@@ -141,8 +148,16 @@ public class EmailJob {
// TODO: EAI 발송 실패 처리
}
private void eaiBatchCall() {
// TODO: EAI 배치 호출
private void eaiBatchCall() throws IOException {
KjbEaiBatchModule eaiBatchModule = new KjbEaiBatchModule(prop);
EaiBatchMessage result = eaiBatchModule.call(prop.getEaiBatchInterfaceId(), eaiFilePath.getFileName().toString());
if (!"1".equals(result.getResultCode())) {
log.error("EAI Batch call failed: {}", result);
throw new IllegalStateException("EAI Batch call failed: " + result);
}
log.debug("EAI Batch call result: {}", result);
}
private void doSuccess() {