⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cart.java

📁 这是基于spring +hibernate的项目
💻 JAVA
字号:
package com.pure.domain;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 * 购物车
 * 
 * @author pure
 * 
 */
public class Cart implements Serializable {
	private static final long serialVersionUID = 2417322804103445678L;

	private final Map itemMap = Collections.synchronizedMap(new HashMap());

	private final List itemList = new ArrayList();

	public Cart() {
	}

	public Iterator getAllCartItems() {
		return itemList.iterator();
	}

	public List getCartItemList() {
		return itemList;
	}

	public int getNumberOfItems() {
		return itemList.size();
	}

	public boolean containsItemId(String itemId) {
		return itemMap.containsKey(itemId);
	}

	/**
	 * 添加一个商品
	 * 
	 * @param item
	 */
	public void addItem(Dish dish) {
		CartItem cartItem = (CartItem) itemMap.get(dish.getId());
		if (cartItem == null) {
			cartItem = new CartItem();
			cartItem.setDish(dish);
			cartItem.setQuantity(0);
			itemMap.put(dish.getId(), cartItem);
			itemList.add(cartItem);
		}
		cartItem.incrementQuantity();
	}

	/**
	 * 删除一个商品
	 * 
	 * @param itemId
	 * @return
	 */
	public Dish removeItemById(String dishId) {
		CartItem cartItem = (CartItem) itemMap.remove(Long.valueOf(dishId));
		if (cartItem == null) {
			return null;
		} else {
			itemList.remove(cartItem);
			return cartItem.getDish();
		}
	}

	/**
	 * 清空购物车
	 * 
	 */
	public void clearCart() {
		itemMap.clear();
		itemList.clear();
	}

	public void incrementQuantityByItemId(String dishId) {
		CartItem cartItem = (CartItem) itemMap.get(dishId);
		cartItem.incrementQuantity();
	}

	public void setQuantityByItemId(String dishId, int quantity) {
		// 说明:在添加的时候是以Long对象添加数据的,此处仍以Long值取出
		CartItem cartItem = (CartItem) itemMap.get(Long.valueOf(dishId));
		cartItem.setQuantity(quantity);
	}

	/**
	 * 统计此商品的总价
	 * 
	 * @return
	 */
	public double getSubTotal() {
		double subTotal = 0;
		Iterator items = getAllCartItems();
		while (items.hasNext()) {
			CartItem cartItem = (CartItem) items.next();
			Dish dish = cartItem.getDish();
			double listPrice = dish.getPrice();
			int quantity = cartItem.getQuantity();
			subTotal += listPrice * quantity;
		}
		return subTotal;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -