开发者学堂课程【Java Web项目实战2:图书商城:购物车模块这相关类创建 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/35/detail/776
购物车模块这相关类创建
内容简介:
一、购物车模块
二、创建相关类
三、购物车的结构
四、具体内容
一、购物车模块
购物车存储
●保存在 session 中;
● 保存在 cookie 中,
●保存在数据库中。
二、创建相关类
购物条目=商品+数量
购物车=N个条目
class Cartltem{
private Book book;private int count;
…
}
class Cart{
key 为 bid ,即图书 id
private Map map;
//提供各种操作方法
}
三、购物车的结构
➢ CartItem 包含图书和数量
➢ Cart :包含一个 Map
四、具体内容
CartItem
1 package cn. itcast .bookstore. cart . domain;
2
3 /**
4 *购物车条目
5 * @param
6 * @return
7 */
8 public class CartItem {
9 private Book book;
10 }
11 *
12 */
13 public alass CartItem {
14 private Book book;// 商品
15 private int count;//数量
16
17 /**
18 *小计方法
19 * @return
20 * 处理了二进制误差问题
21 */
22 public double getSubtatal() {//小计方法,但它没有对应成员!
23 BigDecimal d1 = new BigDecimal (book.getPrice() + "");
24 BigDecimal d2 = new BigDecimal (count + "") ;
25 return d1 . multiply(d2) .doublevalue();
26 }
27
28 public Book getBook() {
29 return book;
30 }
31
32 public void setBook(Book book) (
33 this.book = book;
Cart
➢购物车模块:
◆添加购物车条目;
◆清空所有条目;
◆删除指定条目;
◆我的购物车 (按用户查询购物车)
1 package cn.itcast.bookstore.cart.domain;
2
3 import java.util. Collection;
4 import java.util .LinkedHashMap;
5 import java.util Map;
6
7 /**
8 *购物车类
9 * @author cxf
10 *
11 */
12 public class Cart {
13 private Map map = new LinkedHashMap0);
15
16
17 /*计算合计
18 *@return
19 */
20 public double getTotal() {
21 //合计=所有条目的小计之和
22 BigDecimal total = new BigDecimal ("0");
23 for (CartItem cartItem : map.values()) {
24 BigDecimal subtotal = new BigDecimal("+ cartItem.getsubtatal());
25 total = total.add (subtotal);
26 }
27 return total.doubleValue();
28 }
29
30 /**
31 *添加条目到车中
32 * @param cartItem
33 */
34 public void add (CartItem cartItem) {
35 if (map. containsKey (cartItem.getBook().getBid())) {//判断原来车中是否存在该条目
36 CartItem_ cartItem = map.get (cartItem.getBook() .getBid());//返回原条目
37 -cartItem.setCount (_ cartItem.getCount() + cartItem. getCount();//设置老条目的数量为,其自己数量的+新条目的数量
38 map.put (cartItem.getBook() .getBid(), cartItem);
39 }else {
40 map.put (cartItem. getBook().getBook()
,cartItem);
41 /**
42 *清空所有条目
43 */
44 public void clear (){
map.clear() ;
45 }
46 /**
47 *删除指定条目
48 *@param bid
49 */
50 public void clear ()
51map.remove(bid) ;
52 }
53 /**
54 *获取所有条目
55 *@return
56 */
57 public
58 Collection getCartItems (){
59 return map. values() ;
60 }
61 }