➊
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를 반환합니다.