MSA-17. 구매 오픈 시각 기능 구현

결제 진입 메서드에 단순히 요청 시각과 구매 오픈 시각을 비교하는 로직을 추가했다. 그리고 엔드포인트를 통해 관리자가 특정 제품에 대한 StartTime을 지정할 수 있게 한다. 구매 오픈 시각이 설정된 제품은 비교 로직을 통해 구매 시간 전 결제를 할 수 없게 구현하였다.

 // 특정 제품의 판매 시작 시간 확인
        LocalTime saleStartTime = saleTimeRepository.getProductSaleTime(productId);
        LocalTime now = LocalTime.now();
        if (saleStartTime != null && now.isBefore(saleStartTime)) {
            return "결제는 " + saleStartTime.toString() + "부터 가능합니다.";
        }
@PostMapping("/sale-time/{productId}")
public String setProductSaleTime(@PathVariable int productId, @RequestParam String saleTime) {
    LocalTime saleStartTime = LocalTime.parse(saleTime, DateTimeFormatter.ofPattern("HH:mm"));
    saleTimeRepository.setProductSaleTime(productId, saleStartTime);
    return "Sale start time for product " + productId + " set to " + saleStartTime.toString();
}

오픈할 제품 id와 시각을 이렇게 Param으로 요청할 수 있다.

결제 시각 전의 결제 요청을 아예 거부한다.

judy

About judy

junior BE

Comments

comments powered by Disqus