(十七)将商品添加到购物车
Posted Michael2397
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(十七)将商品添加到购物车相关的知识,希望对你有一定的参考价值。
需求: 在商品详情页面上,输入购买的数量,点击加入购物车,在购物车页面上展示里面所有的商品 分析: 涉及的实体: 购物车 购物车项 商品 购物车中的内容 购物车项的map集合(map<商品的id,购物车项>) 总金额 add2Cart(购物车项) removeFromCart(String 商品的id) clearCart() 购物项中的内容 商品对象 购买数量 小计 步骤分析: 1.商品详情页面,输入购买的数量,点击加入购物车 /store/cart?method=add&pid=??&count=?? 2.在cartservlet中的add方法操作 先获取两个参数 pid 和 count 调用ProductService 通过id获取一个商品 拼装CartItem Product--查询出来 count--传递过来了 suctotal--计算 3.获取购物车,调用add2Cart(cartitem) 4.页面跳转 重定向 /jsp/cart.jsp
创建实体
com.louis.domain.CartItem
package com.louis.domain; import java.io.Serializable; /** * 购物车项 * @author Administrator * */ public class CartItem implements Serializable{ private Product product;//商品对象 private Integer count;//购买数量 private Double subtotal=0.0;//小计 public Product getProduct() { return product; } public void setProduct(Product product) { this.product = product; } public Integer getCount() { return count; } public void setCount(Integer count) { this.count = count; } public Double getSubtotal() { return product.getShop_price()*count; } public CartItem(Product product, Integer count) { this.product = product; this.count = count; } public CartItem() { } }
com.louis.domain.Cart
package com.louis.domain; import java.io.Serializable; import java.util.Collection; import java.util.LinkedHashMap; import java.util.Map; public class Cart implements Serializable{ //存放购物车项的集合 key:商品的id cartitem:购物车项 使用map集合便于删除单个购物车项 private Map<String, CartItem> map=new LinkedHashMap<>(); //总金额 private Double total=0.0; /** * 获取所有的购物车项 * @return */ public Collection<CartItem> getItmes(){ return map.values(); } /** * 添加到购物车 * @param item 购物车项 */ public void add2Cart(CartItem item){ //1.先判断购物车中有无该商品 //1.1先获取商品的id String pid = item.getProduct().getPid(); if(map.containsKey(pid)){ //有 //设置购买数量 需要获取该商品之前的购买数量+现在的购买数量(item.getCount) //获取购物车中购物车项 CartItem oItem = map.get(pid); oItem.setCount(oItem.getCount()+item.getCount()); }else{ //没有 将购物车项添加进去 map.put(pid, item); } //2.添加完成之后 修改金额 total+=item.getSubtotal(); } /** * 从购物车删除指定购物车项 * @param pid 商品的id */ public void removeFromCart(String pid){ //1.从集合中删除 CartItem item = map.remove(pid); //2.修改金额 total-=item.getSubtotal(); } /** * 清空购物车 */ public void clearCart(){ //1.map置空 map.clear(); //2.金额归零 total=0.0; } public Map<String, CartItem> getMap() { return map; } public void setMap(Map<String, CartItem> map) { this.map = map; } public Double getTotal() { return total; } public void setTotal(Double total) { this.total = total; } }
问题
map集合的使用
以上是关于(十七)将商品添加到购物车的主要内容,如果未能解决你的问题,请参考以下文章
将购物车商品数据发送到 PayPal WooCommerce
Alexa - 允许用户将商品添加到亚马逊购物篮/购物车。需要帮助
作业二:优化购物车:用户入口:1.将商品的信息存到文件中;2.将已经购买的商品余额记录存到文件中。商家入口:1.可以添加商品;2.可以修改商品的价格