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들 간의 의존도가 있으면 순서를 정할 수 있다