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

项目第六阶段:购物车

购物车模块分析

购物车模型编写

购物车模型

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
    评论
Java EE 项目的目录结构可以根据具体的需求进行灵活设计,但一般情况下,推荐使用以下的标准目录结构: ``` project ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── example │ │ │ ├── controller │ │ │ ├── dao │ │ │ ├── entity │ │ │ ├── service │ │ │ └── util │ │ ├── resources │ │ │ ├── mapper │ │ │ └── db.properties │ │ └── webapp │ │ ├── WEB-INF │ │ │ ├── classes │ │ │ ├── lib │ │ │ └── web.xml │ │ ├── css │ │ ├── js │ │ ├── images │ │ └── index.jsp │ └── test │ ├── java │ └── resources ├── target ├── pom.xml └── README.md ``` 其中,各个目录的作用如下: - `src/main/java`:存放项目的 Java 源代码,按照包名分层,一般包括 `controller`、`dao`、`entity`、`service` 和 `util` 等包; - `src/main/resources`:存放项目的配置文件和资源文件,一般包括数据库连接配置文件 `db.properties`、MyBatis 的 mapper 文件等; - `src/main/webapp`:存放 Web 应用的 Web 资源,包括 JSP 页面、CSS 样式表、JavaScript 脚本等; - `src/test/java`:存放项目的测试代码; - `src/test/resources`:存放测试代码所需要的资源文件; - `target`:存放编译后的 .class 文件、打包后的 .war 文件等; - `pom.xml`:Maven 项目管理工具的配置文件; - `README.md`:项目说明文件。 以上是一种常见的 Java EE 项目目录结构,但并不是唯一的标准。在实际开发中,可以根据项目的具体需求进行合理的调整和修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值