实现结账流程:替换旧归还逻辑为完整结账-修正-争议流程
- 新增 order_checkouts 表,支持结账明细(消耗/押金扣除/退回/号主入账) - 租客发起结账 → 号主确认 → 已完成(正常路径) - 号主修改结账 → 租客确认修正 → 已完成(修正路径) - 结账阶段任一方发起争议 → 后台仲裁 → 已完成/已关闭/异常(争议路径) - 争议模块适配结账争议类型,仲裁结果新增 mark_abnormal - 超时任务适配新的 pending_checkout_confirm 状态 - 前端结账明细面板、发起结账/确认/修正/拒绝表单全部实现 - 移除旧的 SubmitReturn/ConfirmReturn 接口
This commit is contained in:
+18
-13
@@ -49,24 +49,27 @@
|
||||
- 确认收号时会重新计算租赁开始时间和结束时间。
|
||||
- 交接记录保存在 `handoff_records`,订单双方都可以查看。
|
||||
|
||||
## 开发态归还与完成
|
||||
## 开发态结账与完成
|
||||
|
||||
- 租赁中订单可以由租客提交归还。
|
||||
- 逾期中订单仍允许租客提交归还,但后台和号主可以根据逾期情况发起申诉或客服处理。
|
||||
- 租客提交归还后,订单状态变为 `pending_return_confirm`,交接状态变为 `pending_owner_return_confirm`。
|
||||
- 只有号主可以确认归还。
|
||||
- 号主确认归还后,订单状态变为 `completed`,交接状态变为 `returned`,结算状态先标记为 `settled`。
|
||||
- 租赁中订单可以由租客发起结账,填写使用结束说明、消耗金额、哈夫币消耗量、其他扣款和证据链接。
|
||||
- 逾期中订单仍允许租客发起结账,但后台和号主可以根据逾期情况发起申诉或客服处理。
|
||||
- 租客发起结账后,订单状态变为 `pending_checkout_confirm`,交接状态变为 `pending_owner_checkout`。
|
||||
- 只有号主可以确认结账或修改结账。
|
||||
- 号主直接确认结账后,订单状态变为 `completed`,交接状态变为 `returned`,结算状态标记为 `settled`。
|
||||
- 号主修改结账后,订单状态变为 `pending_checkout_accept`,交接状态变为 `pending_renter_checkout`,必须等待租客确认修正。
|
||||
- 待号主确认结账或待租客确认修正时,任一方都可以发起结账争议。
|
||||
- 结账争议后订单状态变为 `checkout_disputing`,交接状态变为 `checkout_disputed`,由客服仲裁。
|
||||
- 订单完成后,账号和发布状态恢复为 `published`。
|
||||
- 当前会生成开发态模拟钱包流水,不代表真实支付或提现。
|
||||
|
||||
## 开发态超时任务
|
||||
|
||||
- 后端启动后会运行订单超时扫描任务,默认每 1 分钟执行一次。
|
||||
- 任务从 `system_configs` 读取超时阈值,包括号主待交接、租客确认收号、租客归还宽限和号主确认归还。
|
||||
- 任务从 `system_configs` 读取超时阈值,包括号主待交接、租客确认收号、租客结账宽限和号主确认结账。
|
||||
- 号主待交接超时:订单保持 `pending_handoff`,交接状态变为 `owner_timeout`,租客仍可取消订单或发起申诉。
|
||||
- 租客确认收号超时:订单状态变为 `abnormal`,交接状态变为 `renter_confirm_timeout`,进入客服介入。
|
||||
- 租客逾期未归还:订单状态变为 `overdue`,交接状态变为 `return_overdue`,租客仍可提交归还,号主可发起申诉。
|
||||
- 号主确认归还超时:订单状态变为 `abnormal`,交接状态变为 `owner_return_confirm_timeout`,进入客服复核。
|
||||
- 租客逾期未结账:订单状态变为 `overdue`,交接状态变为 `return_overdue`,租客仍可发起结账,号主可发起申诉。
|
||||
- 号主确认结账超时:订单状态变为 `abnormal`,交接状态变为 `owner_checkout_confirm_timeout`,进入客服复核。
|
||||
- 每个超时动作只推进一次状态,避免重复通知。
|
||||
- 超时动作会给相关用户写入站内信,并以 `system` 身份写入 `audit_logs`。
|
||||
|
||||
@@ -97,8 +100,10 @@
|
||||
- 租客取消订单后通知号主和租客。
|
||||
- 号主提交交接说明后通知租客。
|
||||
- 租客确认收号后通知号主。
|
||||
- 租客提交归还后通知号主。
|
||||
- 号主确认归还后通知号主和租客。
|
||||
- 租客发起结账后通知号主。
|
||||
- 号主确认结账后通知号主和租客。
|
||||
- 号主修改结账后通知租客。
|
||||
- 租客拒绝修正结账后通知双方并进入争议。
|
||||
- 发起申诉后通知对方和发起人。
|
||||
- 仲裁完成后通知号主和租客。
|
||||
- 站内信支持列表查询和标记已读。
|
||||
@@ -107,7 +112,7 @@
|
||||
|
||||
- 订单双方都可以在非终态订单发起申诉。
|
||||
- 同一个订单同一时间只允许存在一个 `open` 或 `processing` 申诉。
|
||||
- 发起申诉后订单状态变为 `disputing`,账号和发布保持锁定。
|
||||
- 发起普通申诉后订单状态变为 `disputing`,发起结账争议后订单状态变为 `checkout_disputing`,账号和发布保持锁定。
|
||||
- 开发态后台仲裁接口为 `/api/admin/disputes`,当前只要求登录,后续接后台管理员和 RBAC。
|
||||
- 仲裁会释放开发态模拟冻结金额,并根据结果生成钱包流水。
|
||||
- 全额退款:释放冻结金额后,将租金加押金作为可用余额退给租客,订单置为 `closed`。
|
||||
@@ -139,7 +144,7 @@
|
||||
|
||||
- 后台仪表盘接口为 `/api/admin/dashboard`,前端页面为 `/admin/dashboard`。
|
||||
- 当前统计用户数、实名用户数、商品数、上架数、订单数、租赁中订单、今日订单、今日钱包流水。
|
||||
- 待处理事项包括待审核商品、待仲裁申诉、待交接订单和待归还确认订单。
|
||||
- 待处理事项包括待审核商品、待仲裁申诉、待交接订单和待结账确认订单。
|
||||
- 最近订单和最近申诉用于运营快速定位问题,后续接入后台订单管理和商品审核后再跳转到对应详情页。
|
||||
|
||||
## 开发态用户管理
|
||||
|
||||
Reference in New Issue
Block a user