카드 매입 승인 경로 Spring Boot 3 전환 (ACX-E2E-1785394564819)
Some checks are pending
Verify / source-contract (push) Waiting to run

This commit is contained in:
forge-bot 2026-07-30 10:38:13 +00:00
parent b3f0574fc1
commit 36f0b1c0c8

View file

@ -0,0 +1,67 @@
package com.acquirex.cardapproval.controller;
import com.acquirex.cardapproval.service.AcquisitionApprovalService;
import com.acquirex.cardapproval.service.AcquisitionApprovalService.AcquisitionApprovalRequest;
import com.acquirex.cardapproval.service.AcquisitionApprovalService.AcquisitionApprovalResponse;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
/**
* 카드 매입 승인 REST 컨트롤러
* Spring Boot 3.x Web (Jakarta Servlet)
*/
@RestController
@RequestMapping("/api/v1/acquisitions")
@RequiredArgsConstructor
@Slf4j
public class AcquisitionApprovalController {
private final AcquisitionApprovalService service;
@PostMapping
public ResponseEntity<AcquisitionApprovalResponse> processAcquisition(
@Valid @RequestBody AcquisitionApprovalRequest request) {
log.info("매입 승인 요청 수신: {}", request.getApprovalNumber());
AcquisitionApprovalResponse response = service.processAcquisition(request);
return ResponseEntity.status(HttpStatus.CREATED).body(response);
}
@GetMapping("/{id}")
public ResponseEntity<AcquisitionApprovalResponse> getAcquisition(@PathVariable Long id) {
log.info("매입 승인 조회: ID={}", id);
return ResponseEntity.ok(service.getAcquisition(id));
}
@GetMapping("/merchant/{merchantId}")
public ResponseEntity<List<AcquisitionApprovalResponse>> getAcquisitionsByMerchant(
@PathVariable String merchantId) {
log.info("가맹점별 매입 승인 목록 조회: 가맹점={}", merchantId);
return ResponseEntity.ok(service.getAcquisitionsByMerchant(merchantId));
}
@GetMapping("/period")
public ResponseEntity<List<AcquisitionApprovalResponse>> getAcquisitionsByPeriod(
@RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime startDate,
@RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime endDate) {
log.info("기간별 매입 승인 목록 조회: {} ~ {}", startDate, endDate);
return ResponseEntity.ok(service.getAcquisitionsByPeriod(startDate, endDate));
}
@PostMapping("/{id}/cancel")
public ResponseEntity<AcquisitionApprovalResponse> cancelAcquisition(
@PathVariable Long id,
@RequestBody Map<String, String> cancelRequest) {
log.info("매입 취소 요청: ID={}", id);
String reason = cancelRequest.getOrDefault("reason", "고객 요청");
return ResponseEntity.ok(service.cancelAcquisition(id, reason));
}
}