Java
Spring Batch - 쇼핑몰 만들기(환불), Helper
내이름효주
2024. 4. 23. 15:54
- order1PayPrice: 장바구니에 담은 물품의 총 가격
restCash: 충전 후 남아있는 금액 - 환불
member2의 환불 -> 환불 시 주문자의 주문을 확인 환불 금액을 product_option의 refund_price에 등록시키고 예치금 +시켜줘!
//order public void setRefundDone() { for (OrderItem orderItem : OrderItems) { orderItem.setRefundDone(); } } public int getPayPrice() { int payPrice = 0; for(OrderItem orderItem : OrderItems) { payPrice += orderItem.getPayPrice(); } return payPrice; } //orderItem public void setRefundDone() { if(refundQuantity == quantity) return; this.refundQuantity = quantity; this.refundPrice = payPrice; } //orderService @Transactional public void refund(Order order) { int payPrice = order.getPayPrice(); memberService.addCash(order.getMember(),payPrice,"주문환불__예치금환불"); order.setRefundDone(); orderRepository.save(order); }
- 주문 4개 만들기 - Helper 이용
class Helper { public Order order(Member member, List<ProductOption> productOptions) { for (int i = 0; i < productOptions.size(); i++) { ProductOption productOption = productOptions.get(i); cartService.addItem(member, productOption, i + 1); } return orderService.createFromCart(member); } } Helper helper = new Helper(); Order order1 = helper.order(member1,Arrays.asList(product1Option__RED_95,product1Option__RED_95,product1Option__BLUE_95)); Order order2 = helper.order(member2,Arrays.asList(product2Option__Black_95,product2Option__Black_95,product2Option__White_95)); Order order3 = helper.order(member2,Arrays.asList(product1Option__RED_95,product1Option__RED_100,product2Option__Black_95,product2Option__White_95)); Order order4 = helper.order(member1,Arrays.asList(product1Option__RED_95,product2Option__White_95));
- ProductBackupJobConfig 생성, entity 생성, BackupedProduct table: backuped_product (현재 상품들을 백업)
➡️ backuped_product, product 조회한 결과가 같아야함
💫 Bean들 간의 의존도가 있으면 순서를 정할 수 있다