Refactor: ToolService 인터페이스 분리 및 GlowEaiComponent 로드 에러 수정
Some checks failed
Deploy to OCIWP / deploy (push) Has been cancelled
Some checks failed
Deploy to OCIWP / deploy (push) Has been cancelled
This commit is contained in:
@@ -1,49 +1,7 @@
|
||||
package io.shinhanlife.dap.dapmt.service;
|
||||
|
||||
import io.shinhanlife.dap.dapmt.annotation.McpFunction;
|
||||
import io.shinhanlife.dap.dapmt.annotation.McpTool;
|
||||
import io.shinhanlife.dap.dapmt.dto.EmailSendReq;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import io.shinhanlife.dap.dapmt.dto.*;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.dapmt.email
|
||||
* @className EmailToolService
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
* @create 2026.09.01
|
||||
* <pre>
|
||||
* ---------- 개정이력 ----------
|
||||
* 수정일 수정자 수정내용
|
||||
* ---------- -------- ---------------------------
|
||||
* 2026.09.01 0986406 최초생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Slf4j
|
||||
@McpTool(routingType = "EAI", categoryKey = "notification")
|
||||
public class EmailToolService extends AbstractMcpToolService {
|
||||
|
||||
@McpFunction(register = false, displayName = "send_email 툴", name = "send_email", description = "이메일 발송", prompt = "고객에게 이메일을 발송해줘.", mappingId = "EMAIL_SEND_001")
|
||||
public Object sendEmail(EmailSendReq req) {
|
||||
log.info("[Email] 이메일 발송 요청 수신. 수신자: {}", req.getEmailAddress());
|
||||
|
||||
// EAI 연동을 위한 파라미터 변환
|
||||
Map<String, Object> payload = new HashMap<>();
|
||||
payload.put("address", req.getEmailAddress());
|
||||
payload.put("subject", req.getSubject());
|
||||
payload.put("content", req.getBody());
|
||||
|
||||
// 레거시 시스템 연동 (EAI)
|
||||
Map<String, Object> result = executeLegacy("EAI", "EMAIL_SEND_001", payload);
|
||||
|
||||
// 결과 가공
|
||||
if ("SUCCESS".equals(result.get("status"))) {
|
||||
result.put("message", "이메일이 성공적으로 발송되었습니다.");
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
public interface EmailToolService {
|
||||
Object sendEmail(EmailSendReq req);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
package io.shinhanlife.dap.dapmt.service.impl;
|
||||
|
||||
import io.shinhanlife.dap.dapmt.annotation.McpFunction;
|
||||
import io.shinhanlife.dap.dapmt.annotation.McpTool;
|
||||
import io.shinhanlife.dap.dapmt.service.EmailToolService;
|
||||
import io.shinhanlife.dap.dapmt.service.AbstractMcpToolService;
|
||||
import io.shinhanlife.dap.dapmt.dto.EmailSendReq;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @package io.shinhanlife.dap.dapmt.email
|
||||
* @className EmailToolService
|
||||
* @description AX HUB 시스템 처리 클래스
|
||||
* @author 0986406
|
||||
* @create 2026.09.01
|
||||
* <pre>
|
||||
* ---------- 개정이력 ----------
|
||||
* 수정일 수정자 수정내용
|
||||
* ---------- -------- ---------------------------
|
||||
* 2026.09.01 0986406 최초생성
|
||||
*
|
||||
* </pre>
|
||||
*/
|
||||
@Slf4j
|
||||
@McpTool(routingType = "EAI", categoryKey = "notification")
|
||||
public class EmailToolServiceImpl extends AbstractMcpToolService implements EmailToolService {
|
||||
|
||||
@McpFunction(register = false, displayName = "send_email 툴", name = "send_email", description = "이메일 발송", prompt = "고객에게 이메일을 발송해줘.", mappingId = "EMAIL_SEND_001")
|
||||
@Override
|
||||
public Object sendEmail(EmailSendReq req) {
|
||||
log.info("[Email] 이메일 발송 요청 수신. 수신자: {}", req.getEmailAddress());
|
||||
|
||||
// EAI 연동을 위한 파라미터 변환
|
||||
Map<String, Object> payload = new HashMap<>();
|
||||
payload.put("address", req.getEmailAddress());
|
||||
payload.put("subject", req.getSubject());
|
||||
payload.put("content", req.getBody());
|
||||
|
||||
// 레거시 시스템 연동 (EAI)
|
||||
Map<String, Object> result = executeLegacy("EAI", "EMAIL_SEND_001", payload);
|
||||
|
||||
// 결과 가공
|
||||
if ("SUCCESS".equals(result.get("status"))) {
|
||||
result.put("message", "이메일이 성공적으로 발송되었습니다.");
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user