Javaweb网上商城项目实战(19)抽取购物模型

抽取购物车模型

Javaweb网上商城项目实战(19)抽取购物模型

简单分析

购物项:(图片路径,商品名称,商品价格,这类商品购买的数量,这类商品总价小计)

class CartItem{
   private Product product;  //携带图片路径,商品名称,商品价格
   private int num; //当前类别商品的数量
   private double subTotal;//小计,当前这类商品总共价格  经过计算获取到
}

购物车(个数不确定的购物项)

class Cart{
  List list=new ArrayList();     //个数不确定的购物项
  Map map=new HashMap();  //个数不确定的购物项
  double total; //总计/积分  可以经过计算获取到
  方法:清空购物车
  方法:移除购物车上的购物项
  方法:添加商品到购物车
}

总结:

购物项(商品对象,数量,小计) 小计经过计算获取

购物车(2个属性3个方法)

2个属性: Map 个数不确定的购物项

Total:总计

3个方法

清空购物车 移除购物项 添加购物项到购物车

总计是经过计算获取到的

具体实现

在domain包下创建一个类CartItem

package com.geekerstar.store.domain;

public class CartItem {
	private Product product;//目的携带购物项3种参数(图片路径,商品名称,商品价格)
	private int num;//当前类别商品数量
	private double subTotal;//小计
	
	
	//小计是经过计算可以获取到的
	public double getSubTotal() {
		return product.getShop_price()*num;
	}
	
	
	public Product getProduct() {
		return product;
	}
	public void setProduct(Product product) {
		this.product = product;
	}
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	
	public void setSubTotal(double subTotal) {
		this.subTotal = subTotal;
	}
}

再在domain目录下新建一个购物车Cart

package com.geekerstar.store.domain;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

//2个属性3个方法
public class Cart {
	//总计/积分
	private double total=0;
	//个数不确定的购物项 商品pid<===>CartItem
	Map map=new HashMap();
	//添加购物项到购物车
	//当用户点击加入购物车按钮,可以将当前要购买的商品id,商品数量发送到服务端,服务端根据商品id查询到商品信息
	//有了商品信息Product对象,有了要购买商品数量,当前的购物项也就可以获取到了
	public void addCartItemToCar(CartItem cartItem){
		//获取到正在想购物车中添加的商品pid
		String pid=cartItem.getProduct().getPid();
		//将当前的购物项加入购物车之前,判断之前是否买过这类商品
		//如果没有买过    list.add(cartItem);
		//如果买过: 获取到原先的数量,获取到本次的数量,相加之后设置到原先购物项上
		if(map.containsKey(pid)){
			//获取到原先的购物项
			CartItem oldItem=map.get(pid);
			oldItem.setNum(oldItem.getNum()+cartItem.getNum());
			
		}else{
			map.put(pid, cartItem);
		}
	}

	//移除购物项
	public void removeCartItem(String pid){
		map.remove(pid);
	}
	//清空购物车
	public void clearCart(){
		map.clear();
	}
	
	//总计是可以经过计算获取到
	public double getTotal() {
		//向让总计请0
		total=0;
		//获取到Map中所有的购物项
		Collection values = map.values();
		
		//遍历所有的购物项,将购物项上的小计相加
		for (CartItem cartItem : values) {
			total+=cartItem.getSubTotal();
		}
		
		return total;
	}
	

	public void setTotal(double total) {
		this.total = total;
	}

	public Map getMap() {
		return map;
	}


	public void setMap(Map map) {
		this.map = map;
	}
}

至此完成购物车抽取工作,下一节继续完善购物车功能。

源码下载

[dm href=’https://www.jikewenku.com/product/1700.html’]下载地址[/dm]

导航目录

[dm href=’https://www.jikewenku.com/project/2786.html’]查看导航[/dm]

本站所有文章均来自互联网,如有侵权,请联系站长删除。极客文库 » Javaweb网上商城项目实战(19)抽取购物模型
分享到:
赞(0)

评论抢沙发

评论前必须登录!