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

2.2 KiB
Raw Blame History

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。同一人可以既发起又审批。