265 lines
7.6 KiB
Markdown
265 lines
7.6 KiB
Markdown
# 电商模块 (ruoyi-mall)
|
|
|
|
## 模块简介
|
|
|
|
`ruoyi-mall` 是 PoJie 项目的电商核心业务模块,提供完整的电商功能,包括商品管理、购物车、订单管理、支付集成等。
|
|
|
|
## 模块结构
|
|
|
|
根据模块结构规划,`ruoyi-mall` 采用子模块拆分的方式,包含以下子模块:
|
|
|
|
- `ruoyi-mall-product` - 商品中心 (SPU, SKU, 分类, 品牌, 属性)
|
|
- `ruoyi-mall-trade` - 交易中心 (购物车, 订单, 售后)
|
|
- `ruoyi-mall-promotion` - 营销中心 (活动, 拼团, 秒杀, 砍价)
|
|
- `ruoyi-mall-coupon` - 优惠券中心 (独立拆分,便于复用)
|
|
- `ruoyi-mall-statistics` - 统计中心 (交易分析, 会员分析)
|
|
|
|
各子模块详细说明请参考对应的 README.md 文件。
|
|
|
|
## 功能特性
|
|
|
|
### 1. 商品管理
|
|
|
|
- ✅ 商品CRUD操作
|
|
- ✅ 商品上架/下架
|
|
- ✅ 商品浏览量和销量统计
|
|
- ✅ 商品详情管理
|
|
|
|
### 2. SKU管理
|
|
|
|
- ✅ SKU CRUD操作
|
|
- ✅ 库存管理
|
|
- ✅ 库存扣减和恢复
|
|
- ✅ 规格属性管理
|
|
|
|
### 3. 购物车管理
|
|
|
|
- ✅ 添加/删除购物车
|
|
- ✅ 购物车数量修改
|
|
- ✅ 购物车选中状态管理
|
|
- ✅ 购物车详情查询(包含商品和SKU信息)
|
|
|
|
### 4. 订单管理
|
|
|
|
- ✅ 订单创建
|
|
- ✅ 订单查询(列表、详情)
|
|
- ✅ 订单取消
|
|
- ✅ 订单状态管理
|
|
- ✅ 订单支付集成
|
|
|
|
### 5. 支付集成
|
|
|
|
- ✅ 与支付中心(ruoyi-pay)集成
|
|
- ✅ 支付回调处理
|
|
- ✅ 支付状态同步
|
|
|
|
## 数据库表
|
|
|
|
### 商品中心 (ruoyi-mall-product)
|
|
|
|
- `mall_product` - 商品表
|
|
- `mall_sku` - SKU表
|
|
- `mall_category` - 商品分类表
|
|
- `mall_brand` - 品牌表
|
|
|
|
### 交易中心 (ruoyi-mall-trade)
|
|
|
|
- `mall_cart` - 购物车表
|
|
- `mall_order` - 订单表
|
|
- `mall_order_item` - 订单明细表
|
|
- `mall_after_sale` - 售后申请表
|
|
- `mall_order_evaluate` - 订单评价表
|
|
- `mall_order_coupon` - 订单优惠券使用记录表
|
|
|
|
详细表结构请参考:`script/sql/ry_mall.sql`
|
|
|
|
## 配置说明
|
|
|
|
在 `application.yml` 中添加以下配置:
|
|
|
|
```yaml
|
|
ruoyi:
|
|
mall:
|
|
pay-app-id: 1 # 支付应用ID
|
|
pay-notify-url: https://your-domain.com/app/mall/pay/notify # 支付回调地址
|
|
```
|
|
|
|
## API接口
|
|
|
|
### 移动端接口
|
|
|
|
#### 商品接口
|
|
|
|
- `GET /app/mall/product/list` - 查询商品列表
|
|
- `GET /app/mall/product/{id}` - 查询商品详情
|
|
- `GET /app/mall/product/{productId}/skus` - 查询商品SKU列表
|
|
|
|
#### 商品分类接口
|
|
|
|
- `GET /app/mall/product/category/tree` - 查询商品分类树形列表(仅启用分类)
|
|
|
|
#### 品牌接口
|
|
|
|
- `GET /app/mall/product/brand/list` - 查询品牌列表(仅启用品牌)
|
|
|
|
#### 购物车接口
|
|
|
|
- `GET /app/mall/cart/list` - 查询购物车列表
|
|
- `GET /app/mall/cart/detail/list` - 查询购物车详情列表(包含商品信息)
|
|
- `POST /app/mall/cart` - 添加购物车
|
|
- `PUT /app/mall/cart` - 修改购物车
|
|
- `DELETE /app/mall/cart/{ids}` - 删除购物车
|
|
- `DELETE /app/mall/cart/clear` - 清空购物车
|
|
- `PUT /app/mall/cart/selected/{id}` - 更新选中状态
|
|
- `PUT /app/mall/cart/selected/batch` - 批量更新选中状态
|
|
|
|
#### 订单接口
|
|
|
|
- `POST /app/mall/order/submit` - 提交订单并发起支付
|
|
- `GET /app/mall/order/list` - 查询订单列表
|
|
- `GET /app/mall/order/{id}` - 查询订单详情
|
|
- `PUT /app/mall/order/cancel/{id}` - 取消订单
|
|
- `POST /app/mall/order/pay/notify` - 支付回调(由支付中心调用)
|
|
|
|
#### 优惠券接口
|
|
|
|
- `GET /app/mall/coupon/available/list` - 查询可领取的优惠券列表
|
|
- `GET /app/mall/coupon/{id}` - 获取优惠券详情
|
|
- `GET /app/mall/coupon/user/list` - 查询用户优惠券列表
|
|
- `GET /app/mall/coupon/user/available/list` - 查询用户可用优惠券列表
|
|
- `GET /app/mall/coupon/user/{id}` - 获取用户优惠券详情
|
|
- `POST /app/mall/coupon/user/receive/{couponId}` - 领取优惠券
|
|
|
|
### 管理端接口
|
|
|
|
#### 商品管理
|
|
|
|
- `GET /mall/product/list` - 查询商品列表
|
|
- `GET /mall/product/{id}` - 查询商品详情
|
|
- `POST /mall/product` - 新增商品
|
|
- `PUT /mall/product` - 修改商品
|
|
- `DELETE /mall/product/{ids}` - 删除商品
|
|
- `PUT /mall/product/status/{id}` - 上架/下架商品
|
|
|
|
#### 商品分类管理
|
|
|
|
- `GET /mall/product/category/list` - 查询商品分类列表(分页)
|
|
- `GET /mall/product/category/tree` - 查询商品分类树形列表
|
|
- `GET /mall/product/category/{id}` - 获取商品分类详情
|
|
- `POST /mall/product/category` - 新增商品分类
|
|
- `PUT /mall/product/category` - 修改商品分类
|
|
- `DELETE /mall/product/category/{ids}` - 删除商品分类
|
|
|
|
#### 优惠券管理
|
|
|
|
- `GET /mall/coupon/list` - 查询优惠券列表(分页)
|
|
- `GET /mall/coupon/{id}` - 获取优惠券详情
|
|
- `POST /mall/coupon` - 新增优惠券
|
|
- `PUT /mall/coupon` - 修改优惠券
|
|
- `DELETE /mall/coupon/{ids}` - 删除优惠券
|
|
- `POST /mall/coupon/export` - 导出优惠券列表
|
|
- `PUT /mall/coupon/changeStatus/{id}` - 启用/禁用优惠券
|
|
|
|
#### 用户优惠券管理
|
|
|
|
- `GET /mall/coupon/user/list` - 查询用户优惠券列表(分页)
|
|
- `GET /mall/coupon/user/{id}` - 获取用户优惠券详情
|
|
- `DELETE /mall/coupon/user/{ids}` - 删除用户优惠券
|
|
- `POST /mall/coupon/user/export` - 导出用户优惠券列表
|
|
- `POST /mall/product/category/export` - 导出商品分类列表
|
|
|
|
#### 品牌管理
|
|
|
|
- `GET /mall/product/brand/list` - 查询品牌列表(分页)
|
|
- `GET /mall/product/brand/{id}` - 获取品牌详情
|
|
- `POST /mall/product/brand` - 新增品牌
|
|
- `PUT /mall/product/brand` - 修改品牌
|
|
- `DELETE /mall/product/brand/{ids}` - 删除品牌
|
|
- `POST /mall/product/brand/export` - 导出品牌列表
|
|
|
|
#### SKU管理
|
|
|
|
- `GET /mall/sku/list` - 查询SKU列表
|
|
- `GET /mall/sku/{id}` - 查询SKU详情
|
|
- `GET /mall/sku/product/{productId}` - 根据商品ID查询SKU列表
|
|
- `POST /mall/sku` - 新增SKU
|
|
- `PUT /mall/sku` - 修改SKU
|
|
- `DELETE /mall/sku/{ids}` - 删除SKU
|
|
|
|
#### 订单管理
|
|
|
|
- `GET /mall/order/list` - 查询订单列表
|
|
- `GET /mall/order/{id}` - 查询订单详情
|
|
- `PUT /mall/order` - 修改订单
|
|
- `DELETE /mall/order/{ids}` - 删除订单
|
|
- `PUT /mall/order/delivery/{id}` - 订单发货
|
|
|
|
## 业务流程
|
|
|
|
### 订单提交流程
|
|
|
|
1. 用户选择商品(从购物车或直接购买)
|
|
2. 调用 `/app/mall/order/submit` 提交订单
|
|
3. 系统创建订单和订单明细
|
|
4. 调用支付中心创建支付单
|
|
5. 返回支付参数给前端
|
|
6. 前端调起支付
|
|
7. 支付成功后,支付中心回调 `/app/mall/order/pay/notify`
|
|
8. 系统更新订单状态并扣减库存
|
|
|
|
### 购物车流程
|
|
|
|
1. 用户浏览商品,选择SKU
|
|
2. 调用 `/app/mall/cart` 添加到购物车
|
|
3. 如果购物车中已存在该SKU,则更新数量
|
|
4. 用户可以在购物车中修改数量、选中状态
|
|
5. 提交订单时,从购物车获取商品信息
|
|
6. 订单创建成功后,删除购物车中的商品
|
|
|
|
## 依赖模块
|
|
|
|
- `ruoyi-pay` - 支付中心模块
|
|
- `ruoyi-common-*` - 通用工具模块
|
|
|
|
## 注意事项
|
|
|
|
1. **库存管理**:订单支付成功后才扣减库存,避免超卖
|
|
2. **幂等性**:支付回调需要保证幂等处理
|
|
3. **地址管理**:当前版本地址信息简化处理,后续可扩展地址表
|
|
4. **订单号生成**:使用时间戳+随机字符串生成唯一订单号
|
|
|
|
## 待完善功能
|
|
|
|
### 商品中心
|
|
|
|
- [ ] 商品属性管理
|
|
- [ ] 商品规格模板
|
|
- [ ] 商品搜索功能
|
|
|
|
### 交易中心
|
|
|
|
- ✅ 订单评价功能
|
|
- ✅ 售后管理功能(退款、退货、换货)
|
|
- [ ] 地址管理模块(可考虑集成到会员模块)
|
|
- [ ] 订单优惠券使用记录
|
|
|
|
### 营销中心
|
|
|
|
- [ ] 营销活动管理
|
|
- [ ] 拼团功能
|
|
- [ ] 秒杀功能
|
|
- [ ] 砍价功能
|
|
|
|
### 优惠券中心
|
|
|
|
- [ ] 优惠券管理
|
|
- [ ] 用户优惠券功能
|
|
- [ ] 优惠券统计
|
|
|
|
### 统计中心
|
|
|
|
- [ ] 交易分析
|
|
- [ ] 会员分析
|
|
- [ ] 商品分析
|
|
- [ ] 营销分析
|