All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m30s
60 lines
3.6 KiB
Markdown
60 lines
3.6 KiB
Markdown
# 订单、退款与换货当前行为
|
||
|
||
## Purpose
|
||
|
||
描述订单、退款、换货及订单套餐失效的当前可观察行为。
|
||
|
||
## Requirements
|
||
|
||
### Requirement: 订单、退款与换货状态门禁
|
||
|
||
系统 SHALL 仅允许待支付订单取消;退款申请按待审批、已通过、已拒绝、已退回流转,只有已退回申请可重新提交;换货按待填写信息、待发货、已发货、已完成或已取消流转,并拒绝与当前状态或流程类型不匹配的操作。
|
||
|
||
#### Scenario: 重复推进终态
|
||
|
||
- **GIVEN** 退款或换货已进入不允许当前操作的状态
|
||
- **WHEN** 再次审批、发货、完成、取消或重新提交
|
||
- **THEN** 系统返回状态冲突且不重复改变资产、余额或业务状态
|
||
|
||
### Requirement: 代理退款查询按所属店铺隔离
|
||
|
||
系统 SHALL 允许代理账号通过 `GET /api/admin/refunds` 查询其当前所属店铺的全部退款申请,并通过 `GET /api/admin/refunds/{id}` 查询其中任一申请详情,不以申请创建账号作为查询条件。该范围 SHALL 不包含下级代理店铺、其他店铺或未关联店铺的退款申请;代理账号未关联店铺时,列表 SHALL 为空且详情 SHALL 返回不存在。平台和超级管理员的既有退款查询范围 SHALL 保持不变。
|
||
|
||
#### Scenario: 查看同店铺其他账号提交的退款
|
||
|
||
- **GIVEN** 当前代理所属店铺存在由另一账号创建的退款申请
|
||
- **WHEN** 该代理查询退款列表或该申请详情
|
||
- **THEN** 系统返回该退款申请
|
||
|
||
#### Scenario: 查询下级代理店铺的退款
|
||
|
||
- **GIVEN** 当前代理的下级代理店铺存在退款申请
|
||
- **WHEN** 当前代理查询退款列表或该申请详情
|
||
- **THEN** 系统不返回该退款申请,详情查询返回不存在
|
||
|
||
#### Scenario: 未绑定店铺的代理查询退款
|
||
|
||
- **GIVEN** 当前代理账号未关联店铺
|
||
- **WHEN** 该代理查询退款列表或退款申请详情
|
||
- **THEN** 系统返回空列表或不存在,且不泄露任何退款申请
|
||
|
||
## 可达操作索引
|
||
|
||
本节只用于入口导航,不是行为 Requirement;业务义务以上述 Requirements 为准。
|
||
|
||
### 订单管理
|
||
|
||
`GET /api/admin/orders`(获取订单列表);`POST /api/admin/orders`(创建订单);`GET /api/admin/orders/{id}`(获取订单详情);`POST /api/admin/orders/{id}/cancel`(取消订单);`POST /api/admin/orders/purchase-check`(套餐购买预检)。
|
||
|
||
### 退款管理
|
||
|
||
`GET /api/admin/refunds`(退款申请列表);`POST /api/admin/refunds`(创建退款申请);`GET /api/admin/refunds/{id}`(退款申请详情);`POST /api/admin/refunds/{id}/approve`(审批通过退款申请);`POST /api/admin/refunds/{id}/reject`(审批拒绝退款申请);`POST /api/admin/refunds/{id}/resubmit`(重新提交退款申请);`POST /api/admin/refunds/{id}/return`(退回退款申请)。
|
||
|
||
### 换货管理
|
||
|
||
`GET /api/admin/exchanges`(获取换货单列表);`POST /api/admin/exchanges`(创建换货单);`GET /api/admin/exchanges/{id}`(获取换货单详情);`POST /api/admin/exchanges/{id}/cancel`(取消换货);`POST /api/admin/exchanges/{id}/complete`(确认换货完成);`POST /api/admin/exchanges/{id}/renew`(旧资产转新);`POST /api/admin/exchanges/{id}/ship`(换货发货)。
|
||
|
||
### 订单套餐失效
|
||
|
||
`GET /api/admin/order-package-invalidate-tasks`(查询订单套餐失效任务列表);`POST /api/admin/order-package-invalidate-tasks`(创建订单套餐批量失效任务);`GET /api/admin/order-package-invalidate-tasks/{id}`(查询订单套餐失效任务详情)。
|