From ad8fb595d0d2389bbf41aa9f1795162731597157 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Thu, 30 Jul 2026 09:33:47 +0000 Subject: [PATCH] =?UTF-8?q?=EC=B9=B4=EB=93=9C=20=EB=A7=A4=EC=9E=85=20?= =?UTF-8?q?=EC=8A=B9=EC=9D=B8=20=EA=B2=BD=EB=A1=9C=20Spring=20Boot=203=20?= =?UTF-8?q?=EC=A0=84=ED=99=98=20(ACX-E2E-1785394564819)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../approval/service/ApprovalService.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 proj-acquirex/src/main/java/com/acquirex/approval/service/ApprovalService.java diff --git a/proj-acquirex/src/main/java/com/acquirex/approval/service/ApprovalService.java b/proj-acquirex/src/main/java/com/acquirex/approval/service/ApprovalService.java new file mode 100644 index 0000000..b77af54 --- /dev/null +++ b/proj-acquirex/src/main/java/com/acquirex/approval/service/ApprovalService.java @@ -0,0 +1,43 @@ +package com.acquirex.approval.service; + +import com.acquirex.approval.domain.ApprovalDomain; +import com.acquirex.approval.domain.ApprovalDomain.Request; +import com.acquirex.approval.domain.ApprovalDomain.Response; +import com.acquirex.approval.domain.ApprovalDomain.Status; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +@Service +public class ApprovalService { + private static final Logger log = LoggerFactory.getLogger(ApprovalService.class); + + public Response processApproval(Request request) { + log.info("매입 승인 요청: transactionId={}, merchantId={}, amount={}", + request.getTransactionId(), request.getMerchantId(), request.getAmount()); + + if (!validate(request)) { + return Response.rejected(request.getTransactionId(), "유효성 검증 실패"); + } + + String approvalId = ApprovalDomain.generateApprovalId(); + Response response = Response.success(approvalId, request.getTransactionId()); + log.info("매입 승인 완료: approvalId={}, status={}", approvalId, response.getStatus()); + return response; + } + + public Response cancelApproval(String approvalId) { + log.info("매입 승인 취소: approvalId={}", approvalId); + if (approvalId == null || approvalId.isBlank()) { + return Response.rejected(null, "승인 ID가 유효하지 않습니다"); + } + return Response.cancelled(approvalId); + } + + private boolean validate(Request request) { + if (request == null) return false; + if (request.getAmount() == null || request.getAmount().signum() <= 0) return false; + if (request.getCardNumber() == null || request.getCardNumber().length() < 13) return false; + return true; + } +} \ No newline at end of file