售后退款
这篇解决什么
退款 / 退货退款单存在哪、商家点同意还是拒绝走哪条接口。读完能对上 trade_after_sale.status 和支付退款 payRefundId。
默认端口 48080。开启见 商城功能设计。原单见 交易订单。
示意图:用户端建单。管理端同意、拒绝、收货、打款。钱走支付退款单。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 管理端 | @RequestMapping("/trade/after-sale") | ruoyi-office/yudao-module-mall/yudao-module-trade-server/.../controller/admin/aftersale/AfterSaleController.java |
| 同意 | PUT /agree | 同上 |
| 拒绝 | PUT /disagree | 同上 |
| 确认收货 | PUT /receive | 同上 |
| 拒绝收货 | PUT /refuse | 同上 |
| 确认退款 | PUT /refund | 同上 |
| 用户端 | /trade/after-sale | AppAfterSaleController |
| 售后表 | trade_after_sale | AfterSaleDO |
| 管理端页 | 售后列表 / 详情 | ruoyi-office-vben/apps/web-antd/src/views/mall/trade/afterSale/ |
官方菜单:售后退款 2073。路由 /mall/trade/after-sale。
方式与状态
way:10 仅退款,20 退货退款。type:10 售中,20 售后。金额 refundPrice 单位分。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
10 | 申请中 | AfterSaleStatusEnum.APPLY |
20 | 卖家通过,待退货 | SELLER_AGREE |
30 | 买家已寄回 | BUYER_DELIVERY |
40 | 等待退款 | WAIT_REFUND |
50 | 完成 | COMPLETE |
61 / 62 / 63 | 买家取消 / 卖家拒绝 / 拒收 | 同上 |
仅退款不会走到 30。退货退款要填 logisticsId / logisticsNo。退款成功写 payRefundId,并累加订单 refundPrice,不改订单 payPrice。
售后不是 ERP 销售退货
进销存退货写 erp_sale_return。这里退的是商城零售单,库存退回 product_sku。审批人也不是 Flowable,就是管理端用户。
示意图:按 AfterSaleStatusEnum。仅退款从同意后可直接进退款。
流水在 trade_after_sale_log。订单项有独立售后状态,不要只改主单。
配置与操作
走 订单中心 → 售后退款(2073,/mall/trade/after-sale)。用户端建单。管理端同意 PUT /agree、拒绝 /disagree、收货 /receive、拒收 /refuse、打款 /refund。
way=10 仅退款,同意后可直接进退款;20 退货退款要等寄回。钱走支付退款 payRefundId,累加订单 refundPrice,不改 payPrice。审批人是管理端用户,不是 Flowable。开启见 商城功能设计。

本系统截图:售后列表。
