Esempio n. 1
0
  public void addCartItem(CartItem cartItem) {
    String productId = cartItem.getProduct().getProductId();

    if (cartItems.containsKey(productId)) {
      CartItem existingCartItem = cartItems.get(productId);
      existingCartItem.setQuantity(existingCartItem.getQuantity() + cartItem.getQuantity());
      cartItems.put(productId, existingCartItem);
    } else {
      cartItems.put(productId, cartItem);
    }

    updateGrandTotal();
  }
Esempio n. 2
0
  public void removeFromCart(String cartId, String productId, int quantity) {
    synchronized (lock) {
      List<CartItem> itemsForCart = carts.get(cartId);
      if (itemsForCart == null) return;

      final CartItem cartItem = findCartItemForProduct(cartId, productId);
      if (cartItem == null) return;

      cartItem.decreaseQuantity(quantity);
      if (cartItem.getQuantity() == 0) itemsForCart.remove(cartItem);
    }
  }
Esempio n. 3
0
 public BigDecimal getSubTotal() {
   BigDecimal subTotal = new BigDecimal("0");
   Iterator<CartItem> items = getAllCartItems();
   while (items.hasNext()) {
     CartItem cartItem = (CartItem) items.next();
     Item item = cartItem.getItem();
     BigDecimal listPrice = item.getListPrice();
     BigDecimal quantity = new BigDecimal(String.valueOf(cartItem.getQuantity()));
     subTotal = subTotal.add(listPrice.multiply(quantity));
   }
   return subTotal;
 }
  // returns list of items ordered so far by the user
  public CartItem decreaseQuantity(Long cartId) {
    DynamoDBMapper mapper = this.conn.getMapper();
    DynamoDBScanExpression scanExpression = new DynamoDBScanExpression();
    Map<String, Condition> scanFilter = new HashMap<String, Condition>();
    Condition scanCondition =
        new Condition()
            .withComparisonOperator(ComparisonOperator.EQ.toString())
            .withAttributeValueList(new AttributeValue().withN(cartId.toString()));

    scanFilter.put("CartId", scanCondition);
    scanExpression.setScanFilter(scanFilter);
    PaginatedScanList<CartItem> items = mapper.scan(CartItem.class, scanExpression);
    CartItem item = items.get(0);
    item.setQuantity(item.getQuantity() - 1);
    mapper.save(item);
    return item;
  }