Files
junhong_cmp_fiber/openspec/specs/refund-request/spec.md
huang 95fc0b0a1b
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m16s
修复一些问题,主要是生效套餐
2026-05-12 10:32:38 +08:00

41 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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。同一人可以既发起又审批。