重构用的提案,现在不敢跑
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 49s

This commit is contained in:
2026-04-14 17:38:36 +08:00
parent 8706247436
commit d26010b29d
11 changed files with 492 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
## Why
当前 `tb_asset_recharge_record` 表同时承担"充值业务订单"和"第三方支付凭证"两个职责,导致强充订单对用户不可见、幂等键锁死后无法引导用户恢复支付、支付与业务逻辑强耦合难以扩展。需要彻底替换为职责单一的新结构:独立的充值订单表 `tb_recharge_order` + 独立的支付记录表 `tb_payment`,一次性完整删除 `tb_asset_recharge_record` 及其所有相关代码。
## What Changes
- **新增** `tb_recharge_order` 表:承接充值业务订单(用户可见、有状态流转、挂 `iot_card_id`/`device_id`
- **新增** `tb_payment` 表:统一记录所有支付凭证(微信/支付宝/钱包),与业务订单解耦
- **新增** `/api/c/v1/recharge-orders` 充值订单列表接口:独立展示充值订单,不与套餐订单混合
- **修改** `/api/c/v1/orders` 列表接口:保持不变,仅展示套餐购买订单(`tb_order`
- **修改** 支付回调链路:完全重写为查 `tb_payment` 路由,彻底移除旧链路
- **修改** `auto_purchase` 异步任务:从 `tb_recharge_order` 读取关联套餐 IDs
- **修改** 幂等检查逻辑:幂等键命中时返回已有充值订单,引导前端拉起支付
- **BREAKING** 直接删除 `tb_asset_recharge_record` 表及全部相关代码(`AssetRechargeStore``RechargeService` 写路径等),无过渡期,无 fallback
## Capabilities
### New Capabilities
- `recharge-order`:充值订单管理——创建、列表查询、详情、状态流转(待支付→已支付→自动购包完成),独立于套餐订单展示
- `payment-record`:支付记录管理——统一记录微信/支付宝/钱包支付凭证,关联业务订单(`tb_order``tb_recharge_order`),支持幂等回调处理
### Modified Capabilities
- `client-order-purchase`:强充下单改写新表;幂等检查命中时返回已有充值订单而非报错;`/api/c/v1/orders` 接口本身保持不变(仍只返回套餐订单)
- `force-recharge-check`:强充判断逻辑不变,创建数据改写 `tb_recharge_order` + `tb_payment`
- `order-payment``PayOrder` 接口支付成功时同步创建 `tb_payment` 记录
- `wallet-recharge`:普通充值全部改写 `tb_recharge_order` + `tb_payment``/api/c/v1/wallet/recharges` 接口后端数据源改为 `tb_recharge_order`
- `asset-recharge-adaptation`:该 spec 描述的能力全部迁移至新 spec原 spec 废弃
## Impact
**数据库**:新增 2 张表(`tb_recharge_order``tb_payment`),直接 DROP `tb_asset_recharge_record`
**代码删除**`AssetRechargeRecord` 模型、`asset_recharge_store.go``recharge/service.go` 中所有写方法及回调处理、bootstrap 中相关注入
**代码新增**`internal/model/recharge_order.go``internal/model/payment.go``recharge_order_store.go``payment_store.go``recharge_order/service.go`
**代码修改**`client_order/service.go`(强充创建 + 幂等恢复)、`auto_purchase.go`(改读新表)、`callback/payment.go`(完全重写路由)、`client_wallet.go`GetRechargeRecords 改查新表)、`wechat_config/service.go`resolvePaymentConfigID 改查新表)、`wechat_config_store.go`CountPendingRechargesByConfigID 改查新表、bootstrap 注入
**API 变化**:新增 `/api/c/v1/recharge-orders` 端点;`/api/c/v1/orders` 不变;`/api/c/v1/wallet/recharges` 后端换表但接口不变