Files
junhong_cmp_fiber/openspec/specs/agent-recharge-payment-voucher/spec.md
huang 4aab0bcbf2
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 4m39s
提案以及归档
2026-04-18 09:10:29 +08:00

44 lines
2.1 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 在 `POST /api/admin/agent-recharges` 接口中,当 `payment_method=offline` 时强制要求 `payment_voucher_key` 字段非空。凭证 key 为通过 `/storage/upload-url` 上传至对象存储后获得的文件标识符。当 `payment_method=wechat` 时,`payment_voucher_key` 字段忽略。
#### Scenario: 线下支付缺少凭证时拒绝创建
- **WHEN** 调用 `POST /api/admin/agent-recharges``payment_method=offline``payment_voucher_key` 为空或未传
- **THEN** 系统返回 400错误码 `CodeInvalidParam`,消息"线下充值必须上传支付凭证"
#### Scenario: 线下支付有凭证时创建成功
- **WHEN** 调用 `POST /api/admin/agent-recharges``payment_method=offline``payment_voucher_key` 非空
- **THEN** 系统创建充值记录,凭证 key 写入 `tb_agent_recharge_record.payment_voucher_key`,返回 200
#### Scenario: 微信支付不需要凭证
- **WHEN** 调用 `POST /api/admin/agent-recharges``payment_method=wechat`,不传 `payment_voucher_key`
- **THEN** 系统正常创建充值记录,不做凭证校验,返回 200
### Requirement: 充值记录存储支付凭证
系统 SHALL 将 `payment_voucher_key` 持久化到 `tb_agent_recharge_record` 表的 `payment_voucher_key` 列,与充值记录创建在同一个数据库操作内完成。
#### Scenario: 凭证随记录创建写入
- **WHEN** `Create` 方法执行创建充值记录
- **THEN** `payment_voucher_key` 与其他字段一同写入数据库,不可分割
### Requirement: 充值记录响应包含凭证信息
系统 SHALL 在 `AgentRechargeResponse` 中返回 `payment_voucher_key` 字段,允许为空(历史记录及微信支付无凭证)。
#### Scenario: 已上传凭证的线下充值记录查询
- **WHEN** 查询已创建的线下充值记录
- **THEN** 响应 `payment_voucher_key` 字段返回非空的对象存储 key
#### Scenario: 微信支付记录无凭证字段
- **WHEN** 查询微信支付的充值记录
- **THEN** 响应 `payment_voucher_key` 字段为空字符串或 omitempty前端不展示