# 电商模块 (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. **订单号生成**:使用时间戳+随机字符串生成唯一订单号 ## 待完善功能 ### 商品中心 - [ ] 商品属性管理 - [ ] 商品规格模板 - [ ] 商品搜索功能 ### 交易中心 - ✅ 订单评价功能 - ✅ 售后管理功能(退款、退货、换货) - [ ] 地址管理模块(可考虑集成到会员模块) - [ ] 订单优惠券使用记录 ### 营销中心 - [ ] 营销活动管理 - [ ] 拼团功能 - [ ] 秒杀功能 - [ ] 砍价功能 ### 优惠券中心 - [ ] 优惠券管理 - [ ] 用户优惠券功能 - [ ] 优惠券统计 ### 统计中心 - [ ] 交易分析 - [ ] 会员分析 - [ ] 商品分析 - [ ] 营销分析