feat: Add PaymentApproval sample tool to axhub-tool-payment

This commit is contained in:
jade
2026-07-09 22:06:31 +09:00
parent 526c65002e
commit dca25a7299
3 changed files with 108 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
package io.shinhanlife.axhub.biz.mcp.tool.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
/**
* @package io.shinhanlife.axhub.biz.mcp.tool.dto
* @className PaymentApprovalReq
* @description AX HUB 시스템 처리 클래스
* @author 김형식
* @create 2026.09.01
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2026.09.01 김형식 최초생성
*
* </pre>
*/
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class PaymentApprovalReq {
private String accountNumber;
private long amount;
private String paymentMethod;
}

View File

@@ -0,0 +1,27 @@
package io.shinhanlife.axhub.biz.mcp.tool.dto;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
/**
* @package io.shinhanlife.axhub.biz.mcp.tool.dto
* @className PaymentApprovalRes
* @description AX HUB 시스템 처리 클래스
* @author 김형식
* @create 2026.09.01
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2026.09.01 김형식 최초생성
*
* </pre>
*/
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class PaymentApprovalRes {
private String status;
private String message;
private String transactionId;
private long approvedAmount;
}

View File

@@ -0,0 +1,55 @@
package io.shinhanlife.axhub.biz.mcp.tool.service;
import io.shinhanlife.axhub.biz.mcp.tool.annotation.McpFunction;
import io.shinhanlife.axhub.biz.mcp.tool.annotation.McpTool;
import io.shinhanlife.axhub.biz.mcp.tool.dto.PaymentApprovalReq;
import io.shinhanlife.axhub.biz.mcp.tool.dto.PaymentApprovalRes;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import java.util.Map;
import java.util.UUID;
/**
* @package io.shinhanlife.axhub.biz.mcp.tool.service
* @className PaymentApprovalService
* @description AX HUB 시스템 처리 클래스
* @author 김형식
* @create 2026.09.01
* <pre>
* ---------- 개정이력 ----------
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2026.09.01 김형식 최초생성
*
* </pre>
*/
@Slf4j
@Service
@McpTool(
routingType = "MCI",
group = "PAYMENT"
)
public class PaymentApprovalService extends AbstractMcpToolService {
@McpFunction(
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;
}
}