Esempio n. 1
0
 @Override
 public void merge(Member member, Cart cart) {
   if (member != null && cart != null && cart.getMember() == null) {
     Cart memberCart = member.getCart();
     if (memberCart != null) {
       for (Iterator<CartItem> iterator = cart.getCartItems().iterator(); iterator.hasNext(); ) {
         CartItem cartItem = iterator.next();
         Product product = cartItem.getProduct();
         if (memberCart.contains(product)) {
           if (Cart.MAX_PRODUCT_COUNT != null
               && memberCart.getCartItems().size() > Cart.MAX_PRODUCT_COUNT) {
             continue;
           }
           CartItem item = memberCart.getCartItem(product);
           item.add(cartItem.getQuantity());
           cartItemDao.merge(item);
         } else {
           if (Cart.MAX_PRODUCT_COUNT != null
               && memberCart.getCartItems().size() >= Cart.MAX_PRODUCT_COUNT) {
             continue;
           }
           iterator.remove();
           cartItem.setCart(memberCart);
           memberCart.getCartItems().add(cartItem);
           cartItemDao.merge(cartItem);
         }
       }
       cartDao.remove(cart);
     } else {
       member.setCart(cart);
       cart.setMember(member);
       cartDao.merge(cart);
     }
   }
 }