더북(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를 반환합니다.