더북(TheBook)

    public void confirmOrder(String bookId, long quantity) {
        Book bookById = bookRepository.getBookById(bookId);
        if (bookById.getUnitsInStock() < quantity) {
            throw new IllegalArgumentException("품절입니다. 사용가능한 제고수 :" + bookById.getUnitsInStock());
        }
        bookById.setUnitsInStock(bookById.getUnitsInStock() - quantity);
    }

 

    public Long saveOrder(Order order) {
        Long orderId = orderRepository.saveOrder(order);
        cartService.delete(order.getCart().getCartId());
        return orderId;
    }
}

confirmOrder() 메서드는 도서 재고 수에 대한 도서 주문 가능 여부를 처리합니다. 주문 도서 수가 재고 수보다 많으면 IllegalArgumentException 예외를 발생합니다.

saveOrder() 메서드는 주문 내역에 대해 Order 저장소 객체에 저장하고, 현재 장바구니 정보를 삭제한 후 주문 내역 ID를 반환합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.