### 購物車
#### 商城應用
在亞米商城中,用戶將喜歡的商品加入到購物車中,點擊購物車項進行提交訂單,下面我們就簡單來看看亞米商城的購物車界面。

當用戶將商品加入購物車后,可以在`購物車`中查看到添加在購物車中的列表信息,點擊需要購買的購物項進行確認訂單頁。

**注意**:添加購物車的商品數據**千萬一定必須持久化到 DB** 。好處如下:
- 數據分析。例如,哪些商品被添加到購物車很多,但是很少被下單,實現轉換率漏斗。
- 業務拓展。例如,賣家基于買家購物車的商品信息,進行回訪,促發購買。
- 用戶體驗。緩存總會過期,可能買家目前僅僅是添加到購物車,N 天后會進行購買。
#### 數據庫實體
整體實體類關系如下圖:

model實體類
```java
@Data
@TableName("tz_basket")
public class Basket implements Serializable {
/**
* 主鍵
*/
@TableId
private Long basketId;
/**
* 店鋪ID
*/
private Long shopId;
/**
* 產品ID
*/
private Long prodId;
/**
* SkuID
*/
private Long skuId;
/**
* 用戶ID
*/
private String userId;
/**
* 購物車產品個數
*/
private Integer basketCount;
/**
* 購物時間
*/
private Date basketDate;
}
```
- `basketId` ,購物車主鍵ID,唯一自增
- `shopId` ,店鋪Id
> shopId用來標識所屬的店鋪信息,區分店鋪,后續可擴展為B2B2C模式
- `prodId` ,商品Id
- skuId,商品skuId
> 添加到新的商品 skuId 添加到購物車后,生成一條購物車項,如果購物車已存在此商品,對應的購物項的數量增加
- `userId` ,用戶ID
- `basketCount`,添加在購物車的數量
- `basketDate` ,添加到購物車的最新時間
本文目前寫的購物車是相對比較淺的,在實際項目中,結合在商城系統中的營銷活動,有復雜的優惠價格計算邏輯等。
- 開發環境準備
- 基本開發手冊
- 項目目錄結構
- 權限管理
- 通用分頁表格
- Swagger文檔
- undertow容器
- 對xss攻擊的防御
- 分布式鎖
- 統一的系統日志
- 統一驗證
- 統一異常處理
- 文件上傳下載
- 一對多、多對多分頁
- 認證與授權
- 從授權開始看源碼
- 自己寫個授權的方法-開源版
- 商城表設計
- 商品信息
- 商品分組
- 購物車
- 訂單
- 地區管理
- 運費模板
- 接口設計
- 必讀
- 購物車的設計
- 訂單設計-確認訂單
- 訂單設計-提交訂單
- 訂單設計-支付
- 生產環境
- nginx安裝與跨域配置
- 安裝mysql
- 安裝redis
- 傳統方式部署項目
- docker
- 使用docker部署商城
- centos jdk安裝
- docker centos 安裝
- Docker Compose 安裝與卸載
- docker 鏡像的基本操作
- docker 容器的基本操作
- 通過yum安裝maven
- 常見問題