forked from kimhyungsik/ax_hub_mcp_tool
feat: Add PaymentApproval sample tool to axhub-tool-payment
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user