B2C网站购物车的封装

本文详细阐述了购物车在电子商务平台中的实现机制,包括商品添加、获取购物车信息、总价计算、商品数量修改等功能,并通过Struts2框架进行调用。

购物车

Cart.java

public class Cart {
	private Map<Integer,CartItem> map=new LinkedHashMap<Integer,CartItem>();
	private double totalPrice;
	private Integer totalNum;
	
	public void add(Good good,String img_path){
		CartItem cartItem=map.get(good.getId());
		if(cartItem!=null){
			cartItem.setQuantity(cartItem.getQuantity()+good.getNum());
		}else{
			cartItem=new CartItem();
			cartItem.setGood(good);
			cartItem.setQuantity(good.getNum());
			cartItem.setSimg_path(img_path);
			map.put(good.getId(), cartItem);
		}
	}
	
	public Map<Integer, CartItem> getMap() {
		return map;
	}

	public void setMap(Map<Integer, CartItem> map) {
		this.map = map;
	}

	public double getTotalPrice() {
		double allPrice=0;
		for(Map.Entry<Integer, CartItem> me:map.entrySet()){
			CartItem item=me.getValue();
			allPrice+=item.getPrice();
		}
		this.totalPrice=allPrice;
		return totalPrice;
	}
	public void setTotalPrice(double totalPrice) {
		this.totalPrice = totalPrice;
	}

	public Integer getTotalNum() {
		Integer allNum=0;
		for(Map.Entry<Integer, CartItem> me:map.entrySet()){
			CartItem item=me.getValue();
			allNum+=item.getQuantity();
		}
		this.totalNum=allNum;
		return totalNum;
	}
}


CartItem.java

public class CartItem {
	private Good good;
	private Integer quantity;
	private double price;
	private String simg_path;
	public String getSimg_path() {
		return simg_path;
	}
	public void setSimg_path(String simg_path) {
		this.simg_path = simg_path;
	}
	public Good getGood() {
		return good;
	}
	public void setGood(Good good) {
		this.good = good;
	}
	public Integer getQuantity() {
		return quantity;
	}
	public void setQuantity(Integer quantity) {
		this.quantity = quantity;
		this.price=this.good.getPrice()*this.quantity;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	
}


购物车的调用

struts2中Action的调用

public String addCart() {
		if (good != null) {

			Good fgood = (Good) baseService.getObject(Good.class, "number",
					good.getNumber());
			System.out.println(good.getNum());
			//获取session中的cart			
			HttpServletRequest request = ServletActionContext.getRequest();
			Cart cart = (Cart) request.getSession().getAttribute("cart");
			//如果为空表示购物车内没有东西,则创建购物车		
			if (cart == null) {
				cart = new Cart();
				request.getSession().setAttribute("cart", cart);
			}
			//放入到session里面							
			ServletActionContext.getRequest().getSession().setAttribute("cart", cart);
			return "addCart";
		} else {
			return "addCartfail";
		}
	}
	//删除购物车里面的商品
	public String deleteCartGood() {
		HttpServletRequest request = ServletActionContext.getRequest();

		Cart cart = (Cart) request.getSession().getAttribute("cart");
		if (cart != null) {
			cart.getMap().remove(cartkey);
		}

		return "addCart";

	}
	//改变购物车里面的的商品数量
	public String changeCartGoodNum() {
		HttpServletRequest request = ServletActionContext.getRequest();
		Cart cart = (Cart) request.getSession().getAttribute("cart");
		System.out.println(cartGoodNum + "------------");
		if (cart != null) {
			CartItem item = cart.getMap().get(cartkey);
			if ("reduce" == cartGoodNum || "reduce".equals(cartGoodNum)) {
				if (item.getQuantity() <= 1) {
					item.setQuantity(1);
				} else {
					item.setQuantity(item.getQuantity() - 1);
				}
			} else if ("add" == cartGoodNum || "add".equals(cartGoodNum)) {
				if (item.getQuantity() >= 99) {
					item.setQuantity(99);
				} else {
					item.setQuantity(item.getQuantity() + 1);
				}
			} else {
				return "addCartfail";
			}
		}

		return "addCart";
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值