## 1. 查询投影 - [x] 1.1 新增退款套餐用量批量读取:按「冻结套餐使用记录优先级 → 订单主套餐 → 订单任一套餐使用记录、同级按 id 升序取第一条」解析每个退款申请的当前退款套餐,返回真实已用量与真实总量(MB)。实现为固定两次查询(`id IN` 与 `order_id IN`)+ 内存择一,不得按退款条数逐条查询;套餐记录不存在或字段为空时返回 0,不报错。 证据:`internal/service/refund/package_usage.go`(`loadRefundPackageUsages` 两次查询 + `resolveRefundPackageUsage` 优先级择一)。烟测实测:冻结套餐记录返回 321/1000;未冻结回退订单主套餐返回 321/1000(非零);套餐记录物理删除返回 0 且不报错;4 条退款的套餐查询次数恒为 2(不随条数增长)。 - [x] 1.2 退款列表、详情响应新增「当前退款套餐已用量」与「当前退款套餐总量」两个字段:列表批量填充、详情单条填充,字段单位与含义写入中文 description,枚举与单位不得与既有套餐 DTO 冲突。 证据:`internal/model/dto/refund_dto.go` 的 `RefundResponse.RefundPackageUsedMB`/`RefundPackageTotalMB`(中文 description 含单位与零值语义);`internal/service/refund/service.go` 列表批量填充、详情单条填充。`go run cmd/gendocs/main.go` 生成的 OpenAPI 已包含两个字段。 ## 2. 导出 - [x] 2.1 退款导出场景新增两列「当前退款套餐已用量(MB)」与「当前退款套餐总量(MB)」,插入在既有「套餐名称」列之后;同步调整 `refundExportRow`、Select 列与表头,保持表头与行元素数量、顺序严格一致。该两列必须覆盖未冻结 `package_usage_id` 的退款,不得沿用只按 `r.package_usage_id` join 的取法。 证据:`internal/exporter/refund_scene.go` 表头与行新增「当前退款套餐已用量(MB)」「当前退款套餐总量(MB)」两列(位于「套餐名称」之后),并以 LATERAL 按同一优先级取唯一套餐记录,不再依赖 `r.package_usage_id` join。烟测实测:导出 43 行列数与表头一致,两个新列下标为 6/7,43/43 行取到套餐总量(改动前仅 30/43 有 `package_usage_id`)。 ## 3. 验证 - [x] 3.1 按 ENG-TEST-001 在维护者指定的 `junhong_cmp_test` PostgreSQL + Redis DB 6 验证,仅创建与删除本 Change 自有 fixture,禁止重置整库:冻结过套餐使用记录的退款返回该记录用量;未冻结但订单存在主套餐的退款返回主套餐用量而非零;套餐记录已物理删除时返回 0 且列表/详情/导出仍正常;列表与导出的套餐查询次数固定为 2 次、不随条数增长;确认退款金额校验、套餐失效、接续、停机与佣金回溯行为无变化。 证据:测试库 `junhong_cmp_test` 实测四项解析场景与 2 次固定查询;并以同批 43 条退款做 Go 解析器与导出 SQL 的口径对拍,**不一致 0 条**。未修改退款金额校验、套餐失效、接续、停机与佣金回溯相关代码。fixture 全部清理,未重置整库。 - [x] 3.2 运行 `gofmt -w`、`go build ./cmd/api ./cmd/worker`、`go run cmd/gendocs/main.go`、`openspec validate add-refund-package-usage-display --strict`、`openspec validate --all`、`openspec doctor --json` 与 `./scripts/context-health.sh`;自动化测试按项目决策为 N/A,验证脚本在完成后删除,不留测试文件。 证据:`gofmt -l`(变更集)无输出;`go build ./cmd/api ./cmd/worker` 退出码 0;`go run cmd/gendocs/main.go` 退出码 0 且 OpenAPI 含新字段;`openspec validate add-refund-package-usage-display --strict` 有效;`openspec validate --all` 通过;`openspec doctor --json` healthy;`./scripts/context-health.sh` 通过。验证脚本已删除,仓库内 `*_test.go` 计数为 0。