最新公告
  • 新注册用户请前往个人中心绑定邮箱以便接收相关凭证邮件!!!点击前往个人中心
  • 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.geekerstar.com/product/1700.html’]下载地址[/dm]

    导航目录

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

    本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
    极客文库 » Javaweb网上商城项目实战(19)抽取购物模型

    常见问题FAQ

    如果资源链接失效了怎么办?
    本站用户分享的所有资源都有自动备份机制,如果资源链接失效,请联系本站客服QQ:2580505920更新资源地址。
    如果用户分享的资源与描述不符怎么办?
    可以联系客服QQ:2580505920,如果要求合理可以安排退款或者退赞助积分。
    如何分享个人资源获取赞助积分或其他奖励?
    本站用户可以分享自己的资源,但是必须保证资源没有侵权行为。点击个人中心,根据操作填写并上传即可。资源所获收益完全归属上传者,每周可申请提现一次。
    如果您发现了本资源有侵权行为怎么办?
    及时联系客服QQ:2580505920,核实予以删除。

    参与讨论

    • 211会员总数(位)
    • 3737资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 869稳定运行(天)

    欢迎加入「极客文库」,成为原创作者从这里开始!

    立即加入 了解更多
    成为赞助用户享有更多特权立即升级