javaWeb - 项目的第六、七阶段 购物车、订单

本文档详细介绍了JavaWeb项目的第六阶段——购物车功能的实现,包括购物车模型编写、加入购物车、显示购物车、删除商品、清空购物车以及修改商品数量的实现。同时,还涵盖了第七阶段的订单模块分析,涉及订单数据库表创建、数据模型、Dao、Service以及Web层的编写和页面联调。
摘要由CSDN通过智能技术生成

项目第六阶段:购物车

购物车模块分析

购物车模型编写

购物车模型

package com.sq.pojo;

import java.math.BigDecimal;

/**
 * 购物车的商品项
 */
public class CartItem {
   
	private Integer id;
	private String name;
	private Integer count;
	private BigDecimal price;
	private BigDecimal totalPrice;

	public CartItem() {
   
	}

	public CartItem(Integer id, String name, Integer count, BigDecimal price, BigDecimal totalPrice) {
   
		this.id = id;
		this.name = name;
		this.count = count;
		this.price = price;
		this.totalPrice = totalPrice;
	}

	public Integer getId() {
   
		return id;
	}

	public void setId(Integer id) {
   
		this.id = id;
	}

	public String getName() {
   
		return name;
	}

	public void setName(String name) {
   
		this.name = name;
	}

	public Integer getCount() {
   
		return count;
	}

	public void setCount(Integer count) {
   
		this.count = count;
	}

	public BigDecimal getPrice() {
   
		return price;
	}

	public void setPrice(BigDecimal price) {
   
		this.price = price;
	}

	public BigDecimal getTotalPrice() {
   
		return totalPrice;
	}

	public void setTotalPrice(BigDecimal totalPrice) {
   
		this.totalPrice = totalPrice;
	}

	@Override
	public String toString() {
   
		return "CartItem{" +
				"id=" + id +
				", name='" + name + '\'' +
				", count=" + count +
				", price=" + price +
				", totalPrice=" + totalPrice +
				'}';
	}
}

package com.sq.pojo;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * 购物车对象
 */
public class Cart {
   

//	private Integer totalCount;
	private BigDecimal totalPrice;
	/**
	 * key 是商品编号,
	 * value,是商品信息
	 */
	private Map<Integer,CartItem> items = new LinkedHashMap<Integer,CartItem>();

	/**
	 * 添加商品项
	 * @return
	 */
	public void addItem(CartItem cartItem){
   
		// 先查看购物车中是否已经添加过此商品,如果已添加,则数量累加,总金额更新,如果没有添加过,直接放到集合中即可
		CartItem item = items.get(cartItem.getId());

		if (item == null){
   
			// 之前没添加过此商品
			items.put(cartItem.getId(),cartItem);
		} else {
   
			// 已经 添加过的情况
			item.setCount( item.getCount() + 1 );// 数量 累加
			item.setTotalPrice( item.getPrice().multiply(new BigDecimal( item.getCount() )) ); // 更新总金额
		}
	}
	/**
	 * 删除商品项
	 * @return
	 */
	public void deleteItem(Integer id){
   
		items.remove(id);
	}
	/**
	 * 清空购物车
	 * @return
	 */
	public void clear(){
   
		items.clear();
	}
	/**
	 * 修改商品数量
	 * @return
	 */
	public void updateCount(Integer id,Integer count){
   
		// 先查看购物车中是否有此商品。如果有,修改商品数量,更新总金额

		CartItem cartItem = items.get(id);
		if ( cartItem != null ){
   
			cartItem.setCount(count); // 修改商品数量
			cartItem.setTotalPrice( cartItem.getPrice().multiply(new BigDecimal( cartItem.getCount() )) ); // 更新总金额
		}
	}

	public Integer getTotalCount() {
   
		Integer totalCount = 0;

		for (Map.Entry<Integer,CartItem>entry : items.entrySet()){
   
			totalCount += entry.getValue().getCount();
		}

		return totalCount;
	}

	public BigDecimal getTotalPrice() {
   
		BigDecimal totalPrice = new BigDecimal(0);

		for (Map.Entry<Integer,CartItem>entry : items.entrySet()){
   
			totalPrice = totalPrice.add(entry.getValue().getTotalPrice());
		}

		return totalPrice;
	}

	public void setTotalPrice(BigDecimal totalPrice) {
   
		this.totalPrice = totalPrice;
	}

	public Map<Integer, CartItem> getItems() {
   
		return items;
	}

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

	@Override
	public String toString() {
   
		return "Cart{" +
				"totalCount=" + getTotalCount() +
				
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值