# 交易中心模块 (ruoyi-mall-trade) ## 模块简介 `ruoyi-mall-trade` 是商城系统的交易中心模块,负责交易流程的核心功能,包括购物车、订单、售后等。 ## 功能特性 ### 1. 购物车管理 - ✅ 添加/删除购物车 - ✅ 购物车数量修改 - ✅ 购物车选中状态管理 - ✅ 购物车详情查询 ### 2. 订单管理 - ✅ 订单创建 - ✅ 订单查询(列表、详情) - ✅ 订单取消 - ✅ 订单状态管理 - ✅ 订单支付集成 ### 3. 售后管理 ✅ - ✅ 订单退款申请 - ✅ 退货申请 - ✅ 换货申请 - ✅ 售后审核(同意/拒绝) - ✅ 售后状态跟踪 - ✅ 退货物流信息填写 - ✅ 商家确认收货 - ✅ 完成售后处理 - ✅ 取消售后申请 ### 4. 订单评价 ✅ - ✅ 订单评价提交 - ✅ 评价列表查询(支持按订单、商品查询) - ✅ 评价审核(通过/驳回) - ✅ 评价回复(商家回复) - ✅ 评价导出功能 ### 5. 地址管理 ✅ - ✅ 收货地址CRUD操作 - ✅ 用户地址列表查询 - ✅ 默认地址查询 - ✅ 设置默认地址 - ✅ 地址导出功能(管理端) ## 数据库表 - `mall_cart` - 购物车表 - `mall_order` - 订单表 - `mall_order_item` - 订单明细表 - `mall_after_sale` - 售后申请表 - `mall_order_evaluate` - 订单评价表 - `mall_order_coupon` - 订单优惠券使用记录表 - `mall_address` - 收货地址表 详细表结构请参考:`script/sql/ry_mall.sql` ## 模块结构 ``` org.dromara.mall.trade ├── controller │ ├── admin // 管理端API │ └── app // 用户端API ├── domain │ ├── bo // 业务对象 │ └── vo // 视图对象 ├── mapper // MyBatis Mapper ├── service // 业务逻辑层 │ └── impl ├── enums // 枚举类 └── config // 配置类 ``` ## 依赖模块 - `ruoyi-mall-product` - 商品中心模块 - `ruoyi-pay` - 支付中心模块 - `ruoyi-common-*` - 通用工具模块 ## 业务流程 ### 订单提交流程 1. 用户选择商品(从购物车或直接购买) 2. 调用订单提交接口 3. 系统创建订单和订单明细 4. 调用支付中心创建支付单 5. 返回支付参数给前端 6. 前端调起支付 7. 支付成功后,支付中心回调 8. 系统更新订单状态并扣减库存 ## 模块结构 ``` org.dromara.mall.trade ├── controller │ ├── admin // 管理端API │ │ ├── AdminMallAfterSaleController.java │ │ ├── AdminMallOrderEvaluateController.java │ │ └── AdminMallAddressController.java │ └── app // 用户端API │ ├── AppMallAfterSaleController.java │ ├── AppMallOrderEvaluateController.java │ └── AppMallAddressController.java ├── domain │ ├── MallAfterSale.java │ ├── MallOrderEvaluate.java │ ├── MallOrderCoupon.java │ ├── MallAddress.java │ ├── bo // 业务对象 │ │ ├── MallAfterSaleBo.java │ │ ├── MallOrderEvaluateBo.java │ │ ├── MallOrderCouponBo.java │ │ └── MallAddressBo.java │ └── vo // 视图对象 │ ├── MallAfterSaleVo.java │ ├── MallOrderEvaluateVo.java │ ├── MallOrderCouponVo.java │ └── MallAddressVo.java ├── mapper │ ├── MallAfterSaleMapper.java │ ├── MallOrderEvaluateMapper.java │ ├── MallOrderCouponMapper.java │ └── MallAddressMapper.java ├── service │ ├── MallAfterSaleService.java │ ├── MallOrderEvaluateService.java │ ├── MallOrderCouponService.java │ ├── MallAddressService.java │ ├── SeckillOrderService.java │ └── impl │ ├── MallAfterSaleServiceImpl.java │ ├── MallOrderEvaluateServiceImpl.java │ ├── MallOrderCouponServiceImpl.java │ ├── MallAddressServiceImpl.java │ └── SeckillOrderServiceImpl.java ├── utils │ └── CouponCalculator.java └── config └── MallTradeAutoConfiguration.java ``` ## API接口 ### 管理端接口 #### 售后申请管理 (`/mall/order/after-sale`) - `GET /mall/order/after-sale/list` - 查询售后申请列表(分页) - `GET /mall/order/after-sale/{id}` - 获取售后申请详情 - `DELETE /mall/order/after-sale/{ids}` - 删除售后申请 - `POST /mall/order/after-sale/export` - 导出售后申请列表 - `PUT /mall/order/after-sale/audit/{id}` - 审核售后申请(同意/拒绝) - `PUT /mall/order/after-sale/receive/{id}` - 确认收货(商家确认收到退货) - `PUT /mall/order/after-sale/complete/{id}` - 完成售后 #### 订单评价管理 (`/mall/order/evaluate`) - `GET /mall/order/evaluate/list` - 查询订单评价列表(分页) - `GET /mall/order/evaluate/{id}` - 获取订单评价详情 - `DELETE /mall/order/evaluate/{ids}` - 删除订单评价 - `POST /mall/order/evaluate/export` - 导出订单评价列表 - `PUT /mall/order/evaluate/audit/{id}` - 审核评价(通过/驳回) - `PUT /mall/order/evaluate/reply/{id}` - 回复评价 ### 移动端接口 #### 售后申请 (`/app/mall/order/after-sale`) - `GET /app/mall/order/after-sale/list` - 查询售后申请列表 - `GET /app/mall/order/after-sale/order/{orderId}` - 根据订单ID查询售后申请列表 - `GET /app/mall/order/after-sale/{id}` - 获取售后申请详情 - `POST /app/mall/order/after-sale` - 新增售后申请(退款/退货/换货) - `PUT /app/mall/order/after-sale/logistics/{id}` - 填写退货物流信息 - `PUT /app/mall/order/after-sale/cancel/{id}` - 取消售后申请 #### 订单评价 (`/app/mall/order/evaluate`) - `GET /app/mall/order/evaluate/list` - 查询订单评价列表 - `GET /app/mall/order/evaluate/order/{orderId}` - 根据订单ID查询评价列表 - `GET /app/mall/order/evaluate/product/{productId}` - 根据商品ID查询评价列表(仅已审核) - `GET /app/mall/order/evaluate/{id}` - 获取订单评价详情 - `POST /app/mall/order/evaluate` - 提交订单评价 #### 收货地址 (`/app/mall/address`) - `GET /app/mall/address/list` - 查询收货地址列表 - `GET /app/mall/address/default` - 获取默认收货地址 - `GET /app/mall/address/{id}` - 获取收货地址详情 - `POST /app/mall/address` - 新增收货地址 - `PUT /app/mall/address` - 修改收货地址 - `DELETE /app/mall/address/{ids}` - 删除收货地址 - `PUT /app/mall/address/default/{id}` - 设置默认地址