11package com .jajaja .domain .cart .service ;
22
3- import com .jajaja .domain .cart .converter .CartConverter ;
43import com .jajaja .domain .cart .dto .CartProductAddRequestDto ;
5- import com .jajaja .domain .cart .dto .CartProductResponseDto ;
6- import com .jajaja .domain .cart .dto .CartResponseDto ;
74import com .jajaja .domain .cart .entity .Cart ;
85import com .jajaja .domain .cart .entity .CartProduct ;
96import com .jajaja .domain .cart .repository .CartProductRepository ;
1411import com .jajaja .domain .product .entity .ProductOption ;
1512import com .jajaja .domain .product .repository .ProductOptionRepository ;
1613import com .jajaja .domain .product .repository .ProductRepository ;
17- import com .jajaja .domain .product .service .ProductCommonService ;
18- import com .jajaja .domain .team .entity .enums .TeamStatus ;
19- import com .jajaja .domain .team .repository .TeamCommandRepository ;
2014import com .jajaja .global .apiPayload .code .status .ErrorStatus ;
2115import com .jajaja .global .apiPayload .exception .handler .CartHandler ;
22- import com .jajaja .global .common .dto .PriceInfoDto ;
2316import lombok .RequiredArgsConstructor ;
2417import lombok .extern .slf4j .Slf4j ;
2518import org .springframework .stereotype .Service ;
3427@ Transactional
3528public class CartCommandServiceImpl implements CartCommandService {
3629
30+ private final CartCommonService cartCommonService ;
31+ private final CouponCommonService couponCommonService ;
3732 private final CartProductRepository cartProductRepository ;
3833 private final ProductRepository productRepository ;
39- private final TeamCommandRepository teamRepository ;
4034 private final ProductOptionRepository productOptionRepository ;
4135 private final MemberCouponRepository memberCouponRepository ;
42- private final CouponCommonService couponCommonService ;
43- private final ProductCommonService productCommonService ;
44- private final CartCommonService cartCommonService ;
4536
4637 @ Override
47- public CartResponseDto addOrUpdateCartProduct (Long memberId , List <CartProductAddRequestDto > request ) {
38+ public void addOrUpdateCartProduct (Long memberId , List <CartProductAddRequestDto > request ) {
4839 Cart cart = cartCommonService .findCart (memberId );
4940 request .forEach (req -> {
5041 log .info ("[CartCommandService] 사용자 {}의 장바구니에 아이템 {} 추가/수정" , memberId , req .productId ());
@@ -67,21 +58,7 @@ public CartResponseDto addOrUpdateCartProduct(Long memberId, List<CartProductAdd
6758 }
6859 );
6960 });
70-
71- List <CartProductResponseDto > items = cart .getCartProducts ().stream ()
72- .map (cartProduct -> {
73- boolean isTeamAvailable = teamRepository .existsByProductIdAndStatus (cartProduct .getProduct ().getId (), TeamStatus .MATCHING );
74- return CartProductResponseDto .of (cartProduct , productCommonService .calculateDiscountedPrice (cartProduct .getUnitPrice (), cartProduct .getProduct ().getDiscountRate ()), isTeamAvailable );
75- })
76- .toList ();
77-
78-
79- PriceInfoDto priceInfo = cart .getCoupon () != null ?
80- couponCommonService .calculateDiscount (cart , cart .getCoupon ()) :
81- PriceInfoDto .noDiscount (cart .calculateTotalAmount ());
82-
8361 revalidateAppliedCouponIfExists (cart );
84- return CartConverter .toCartResponseDto (cart , items , priceInfo );
8562 }
8663
8764 @ Override
0 commit comments