All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m16s
41 lines
2.2 KiB
Markdown
41 lines
2.2 KiB
Markdown
## ADDED Requirements
|
||
|
||
### Requirement: 退款申请数据模型
|
||
系统 SHALL 提供 `tb_refund_request` 表存储退款申请,包含退款单号(唯一)、关联订单 ID、店铺 ID(数据权限过滤)、实收金额、申请退款金额、审批退款金额、状态、审批人、审批时间、佣金回扣标记、退款后资产处理标记等字段。
|
||
|
||
#### Scenario: 创建退款申请
|
||
- **WHEN** 平台管理员提交退款申请,填写订单 ID、实收金额、申请退款金额、退款原因
|
||
- **THEN** 系统 SHALL 生成唯一退款单号(格式 RF+日期时间+随机数),创建 `status=1(待审批)` 的退款记录,`shop_id` 从关联订单自动读取
|
||
|
||
#### Scenario: 仅针对已支付套餐订单
|
||
- **WHEN** 管理员对非已支付订单或充值订单发起退款
|
||
- **THEN** 系统 SHALL 返回错误,拒绝创建
|
||
|
||
#### Scenario: 重复退款防护
|
||
- **WHEN** 管理员对已有待审批/已通过/已退回退款记录的订单再次发起退款
|
||
- **THEN** 系统 SHALL 返回错误,拒绝创建
|
||
- **WHEN** 管理员对仅有已拒绝退款记录的订单重新发起退款
|
||
- **THEN** 系统 SHALL 允许创建新的退款申请
|
||
|
||
### Requirement: 退款状态流转
|
||
退款单状态 SHALL 按以下规则流转:待审批(1) → 已通过(2)/已拒绝(3)/已退回(4);已退回(4) → 待审批(1)。已通过和已拒绝为终态。
|
||
|
||
#### Scenario: 审批通过
|
||
- **WHEN** 审批人对待审批退款单执行通过操作
|
||
- **THEN** 状态 SHALL 变为 2(已通过),记录审批人和审批时间,异步触发资产处理和佣金回扣
|
||
|
||
#### Scenario: 审批拒绝
|
||
- **WHEN** 审批人对待审批退款单执行拒绝操作,填写拒绝原因
|
||
- **THEN** 状态 SHALL 变为 3(已拒绝),记录拒绝原因
|
||
|
||
#### Scenario: 退回重提
|
||
- **WHEN** 审批人退回退款申请,申请人修改后重新提交
|
||
- **THEN** 状态 SHALL 从 4(已退回)变回 1(待审批)
|
||
|
||
#### Scenario: 非法状态变更被拒绝
|
||
- **WHEN** 对已通过或已拒绝的退款单执行任何状态变更
|
||
- **THEN** 系统 SHALL 返回错误,状态不变
|
||
|
||
### Requirement: 仅平台账号可操作
|
||
退款的发起和审批 SHALL 限制为平台用户(user_type IN 1,2)。同一人可以既发起又审批。
|