카드 매입 승인 경로 Spring Boot 3 전환 (ACX-E2E-1785394564819)
Some checks are pending
Verify / source-contract (push) Waiting to run
Some checks are pending
Verify / source-contract (push) Waiting to run
This commit is contained in:
parent
f8b4402cc7
commit
6221af0ab6
1 changed files with 76 additions and 0 deletions
|
|
@ -0,0 +1,76 @@
|
||||||
|
package com.acquirex.approval.domain;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import jakarta.validation.constraints.Positive;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/** 카드 매입 승인 도메인 - Jakarta EE 9+ */
|
||||||
|
public class ApprovalDomain {
|
||||||
|
|
||||||
|
public enum Status { PENDING, APPROVED, REJECTED, CANCELLED }
|
||||||
|
|
||||||
|
public static class Request {
|
||||||
|
@NotBlank(message = "거래 ID는 필수입니다")
|
||||||
|
private String transactionId;
|
||||||
|
@NotBlank(message = "가맹점 ID는 필수입니다")
|
||||||
|
private String merchantId;
|
||||||
|
@NotNull @Positive private BigDecimal amount;
|
||||||
|
@NotBlank private String cardNumber;
|
||||||
|
private LocalDateTime requestTime = LocalDateTime.now();
|
||||||
|
|
||||||
|
public Request() {}
|
||||||
|
public Request(String transactionId, String merchantId, BigDecimal amount, String cardNumber) {
|
||||||
|
this.transactionId = transactionId; this.merchantId = merchantId;
|
||||||
|
this.amount = amount; this.cardNumber = cardNumber;
|
||||||
|
}
|
||||||
|
public String getTransactionId() { return transactionId; }
|
||||||
|
public void setTransactionId(String transactionId) { this.transactionId = transactionId; }
|
||||||
|
public String getMerchantId() { return merchantId; }
|
||||||
|
public void setMerchantId(String merchantId) { this.merchantId = merchantId; }
|
||||||
|
public BigDecimal getAmount() { return amount; }
|
||||||
|
public void setAmount(BigDecimal amount) { this.amount = amount; }
|
||||||
|
public String getCardNumber() { return cardNumber; }
|
||||||
|
public void setCardNumber(String cardNumber) { this.cardNumber = cardNumber; }
|
||||||
|
public LocalDateTime getRequestTime() { return requestTime; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Response {
|
||||||
|
private String approvalId;
|
||||||
|
private String transactionId;
|
||||||
|
private Status status;
|
||||||
|
private String message;
|
||||||
|
private LocalDateTime approvalTime = LocalDateTime.now();
|
||||||
|
|
||||||
|
public Response() {}
|
||||||
|
public Response(String approvalId, String transactionId, Status status, String message) {
|
||||||
|
this.approvalId = approvalId; this.transactionId = transactionId;
|
||||||
|
this.status = status; this.message = message;
|
||||||
|
}
|
||||||
|
public static Response success(String approvalId, String transactionId) {
|
||||||
|
return new Response(approvalId, transactionId, Status.APPROVED, "매입 승인 완료");
|
||||||
|
}
|
||||||
|
public static Response rejected(String transactionId, String reason) {
|
||||||
|
return new Response(null, transactionId, Status.REJECTED, reason);
|
||||||
|
}
|
||||||
|
public static Response cancelled(String approvalId) {
|
||||||
|
return new Response(approvalId, null, Status.CANCELLED, "매입 취소 완료");
|
||||||
|
}
|
||||||
|
public String getApprovalId() { return approvalId; }
|
||||||
|
public void setApprovalId(String approvalId) { this.approvalId = approvalId; }
|
||||||
|
public String getTransactionId() { return transactionId; }
|
||||||
|
public void setTransactionId(String transactionId) { this.transactionId = transactionId; }
|
||||||
|
public Status getStatus() { return status; }
|
||||||
|
public void setStatus(Status status) { this.status = status; }
|
||||||
|
public String getMessage() { return message; }
|
||||||
|
public void setMessage(String message) { this.message = message; }
|
||||||
|
public LocalDateTime getApprovalTime() { return approvalTime; }
|
||||||
|
public void setApprovalTime(LocalDateTime approvalTime) { this.approvalTime = approvalTime; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String generateApprovalId() {
|
||||||
|
return "APR-" + UUID.randomUUID().toString().substring(0, 8).toUpperCase();
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue