• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

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

项目实战 Geekerstar 11个月前 (05-26) 429次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

抽取购物车模型

简单分析

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

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<String,CartItem> map=new HashMap<String,CartItem>();
	//添加购物项到购物车
	//当用户点击加入购物车按钮,可以将当前要购买的商品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<CartItem> values = map.values();
		
		//遍历所有的购物项,将购物项上的小计相加
		for (CartItem cartItem : values) {
			total+=cartItem.getSubTotal();
		}
		
		return total;
	}
	

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

	public Map<String, CartItem> getMap() {
		return map;
	}


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

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

源码下载

下载地址

导航目录

查看导航
丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:Javaweb网上商城项目实战(19)抽取购物模型
喜欢 (0)
[247507792@qq.com]
分享 (0)
Geekerstar
关于作者:
本站技术支持

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00