81,092
社区成员
发帖
与我相关
我的任务
分享
package com.shopping.impl;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import com.shopping.cart.Cart;
import com.shopping.pojo.ProductItemVO;
import com.shopping.pojo.ProductVO;
//购物车
public class CartImpl implements Cart {
private Map<String, ProductItemVO> cart = Collections.synchronizedMap(new HashMap<String, ProductItemVO>());
public void addItem(ProductVO product) {
String key = product.getPpid();
ProductItemVO item = cart.get(key);
if (item == null){
item = new ProductItemVO();
item.setProduct(product);
item.setQuantity(1);
cart.put(key, item);
}else{
item.incrementQuantity();
}
}
public void incrementQuantity(String key){
ProductItemVO item = cart.get(key);
item.incrementQuantity();
}
public void setQuantity(String key, int quantity){
ProductItemVO item = cart.get(key);
item.setQuantity(quantity);
}
public void clear() {
cart.clear();
}
public void removeItem(String index) {
cart.remove(index);
}
public double getTotalMoney(){
double totalMoney = 0.0;
for (Iterator<ProductItemVO> iter = cart.values().iterator(); iter.hasNext(); ){
ProductItemVO item = iter.next();
totalMoney = totalMoney + item.getTotalPrice();
}
return totalMoney;
}
public Map<String, ProductItemVO> getCart() {
return cart;
}
public int getAmount() {
// TODO Auto-generated method stub
int amount = 0;
for (Iterator<ProductItemVO> iter = cart.values().iterator(); iter.hasNext(); ){
ProductItemVO item = iter.next();
amount = amount + item.getQuantity();
}
return amount;
}
public boolean hasItem(String key) {
// TODO Auto-generated method stub
return cart.containsKey(key);
}
}
//商品枚举
package com.shopping.pojo;
import java.io.Serializable;
public class ProductItemVO implements Serializable{
/**
* 此商品枚举中的商品
*/
private ProductVO product;
/**
* 此商品枚举中的相应商品的数量
*/
private int quantity;
public ProductVO getProduct() {
return product;
}
public void setProduct(ProductVO product) {
this.product = product;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
/**
* 商品数量的增加
*/
public void incrementQuantity(){
quantity++;
}
/**
* 商品价格
* @return
*/
public double getTotalPrice() {
if (product != null) {
return product.getPrice() * quantity;
}else {
return 0;
}
}
}