Refactor: ToolService 인터페이스 분리 및 GlowEaiComponent 로드 에러 수정
Some checks failed
Deploy to OCIWP / deploy (push) Has been cancelled

This commit is contained in:
jade
2026-07-23 12:59:15 +09:00
parent 5f8228bfce
commit 165a6340ea
33 changed files with 1039 additions and 876 deletions

View File

@@ -1,54 +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.PaymentApprovalReq;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import io.shinhanlife.dap.dapmt.dto.*;
import java.util.Map;
import java.util.UUID;
/**
* @package io.shinhanlife.dap.dapmt.service
* @className PaymentApprovalService
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2026.09.01 0986406 최초생성
*
* </pre>
*/
@Slf4j
@Service
@McpTool(
routingType = "MCI",
categoryKey = "payment"
)
public class PaymentApprovalService extends AbstractMcpToolService {
@McpFunction(register = false, displayName = "paymentapproval 툴", name = "paymentapproval",
description = "결제 승인 처리",
prompt = "결제 승인 처리 해줘.",
mappingId = "PAY_001"
)
public Object execute(PaymentApprovalReq req) {
log.info("[Payment] 결제 승인 요청 수신. 계좌: {}, 금액: {}", req.getAccountNumber(), req.getAmount());
// 레거시 연동
Map<String, Object> result = executeLegacy("MCI", "PAY_001", req);
// 가짜 데이터 응답 매핑 (AI 에이전트가 그럴듯하게 보여주기 위함)
if ("SUCCESS".equals(result.get("status"))) {
result.put("transactionId", "TX_" + UUID.randomUUID().toString().substring(0, 8).toUpperCase());
result.put("approvedAmount", req.getAmount());
result.put("message", "결제가 성공적으로 승인되었습니다.");
}
return result;
}
public interface PaymentApprovalService {
Object execute(PaymentApprovalReq req);
}

View File

@@ -0,0 +1,57 @@
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.PaymentApprovalService;
import io.shinhanlife.dap.dapmt.service.AbstractMcpToolService;
import io.shinhanlife.dap.dapmt.dto.PaymentApprovalReq;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.UUID;
/**
* @package io.shinhanlife.dap.dapmt.service
* @className PaymentApprovalService
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2026.09.01 0986406 최초생성
*
* </pre>
*/
@Slf4j
@Service
@McpTool(
routingType = "MCI",
categoryKey = "payment"
)
public class PaymentApprovalServiceImpl extends AbstractMcpToolService implements PaymentApprovalService {
@McpFunction(register = false, displayName = "paymentapproval 툴", name = "paymentapproval",
description = "결제 승인 처리",
prompt = "결제 승인 처리 해줘.",
mappingId = "PAY_001"
)
@Override
public Object execute(PaymentApprovalReq req) {
log.info("[Payment] 결제 승인 요청 수신. 계좌: {}, 금액: {}", req.getAccountNumber(), req.getAmount());
// 레거시 연동
Map<String, Object> result = executeLegacy("MCI", "PAY_001", req);
// 가짜 데이터 응답 매핑 (AI 에이전트가 그럴듯하게 보여주기 위함)
if ("SUCCESS".equals(result.get("status"))) {
result.put("transactionId", "TX_" + UUID.randomUUID().toString().substring(0, 8).toUpperCase());
result.put("approvedAmount", req.getAmount());
result.put("message", "결제가 성공적으로 승인되었습니다.");
}
return result;
}
}