Files
junhong_cmp_fiber/openspec/changes/archive/2026-03-28-fix-business-completion/proposal.md
huang f339fb1987
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m8s
fix: 资产钱包自动创建机制 — 修复C端购买时钱包不存在报错
- client_order: 新增 getOrCreateWallet 兜底,钱包不存在时自动创建
- device_import: 设备导入事务内同步创建设备钱包
- iot_card_import: IoT卡批量导入后批量创建卡钱包
- queue/handler: 传递 AssetWalletStore 给两个导入 handler
- migration 000098: 为存量IoT卡和设备补建资产钱包
2026-03-30 11:37:41 +08:00

34 lines
3.0 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.
## Why
修正业务方案审查后,确认 5 项业务逻辑补全仍未完成佣金链断裂静默跳过、C端订单 Handler 绕过 Service 层直接查 DB、富友支付留桩未实现、平台无法代用代理钱包购包、卡/设备激活后状态字段未更新。这些问题直接影响业务正确性佣金链断裂导致平台无法发现缺配置的代理、Handler 绕层违反架构约束、富友支付无法上线、平台运营受限、资产状态不反映真实使用情况。
## What Changes
- **F-1 佣金链断裂改为零额待审记录**`commission_calculation/service.go` 中佣金链断裂(代理缺少套餐系列授权)时,不再静默 `break`,改为创建 `amount=0, status=99(待人工修正)` 的佣金记录并记录告警日志,让平台管理员能发现并处理。新增常量 `CommissionStatusPendingReview = 99`
- **F-4 C端订单 Handler 迁移到 Service 层**`internal/handler/app/client_order.go` 中直接 `h.db.WithContext(resolved.SkipPermissionCtx)` 查询数据库的代码,迁移到 `internal/service/client_order/service.go` 新增 `ListOrders` / `GetOrderDetail` 方法Handler 改为调用 Service。
- **J-1 富友支付实现**`order/service.go``FuiouPayJSAPI``FuiouPayMiniApp` 从留桩(返回"暂未实现")改为真实调用 `pkg/fuiou/` SDK 完成预下单。回调链路已存在,无需修改。需在 DB 插入富友支付凭证配置。
- **J-2 平台钱包代购**`order/service.go:CreateLegacy` 的钱包支付分支,新增支持平台操作人用某代理钱包给该代理名下资产购包的场景(`buyerType="" && resourceShopID != nil`)。
- **J-3 卡/设备 status 3/4 业务触发**:套餐激活成功后自动将 `iot_card.status` / `device.status` 更新为 3已激活最后一个 active 套餐到期后更新为 4已停用
## Capabilities
### New Capabilities
- `commission-pending-review`: 佣金链断裂时创建零额待审记录,支持按 status=99 筛选
### Modified Capabilities
- `client-order-purchase`: C端订单查询迁移到 Service 层,删除 Handler 直接 DB 访问
- `fuiou-payment`: 从留桩改为真实实现 JSAPI 和 MiniApp 预下单
- `admin-order-creation`: 平台钱包代购场景支持
- `asset-lifecycle-status`: 卡/设备 status 字段 3已激活和 4已停用的自动触发
## Impact
- **新增文件**:无(`commission-pending-review` 的逻辑内嵌到现有 `commission_calculation/service.go`
- **修改文件**`internal/service/commission_calculation/service.go``internal/handler/app/client_order.go``internal/service/client_order/service.go``internal/service/order/service.go``internal/service/package/activation_service.go`(或套餐激活相关文件)
- **新增常量**`CommissionStatusPendingReview = 99`
- **DB 操作**:需插入富友支付凭证到 `tb_wechat_config`J-1
- **无 DB 迁移**schema 不变)
- **前端影响**:佣金记录列表需支持 `status=99` 筛选F-1