All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m8s
- client_order: 新增 getOrCreateWallet 兜底,钱包不存在时自动创建 - device_import: 设备导入事务内同步创建设备钱包 - iot_card_import: IoT卡批量导入后批量创建卡钱包 - queue/handler: 传递 AssetWalletStore 给两个导入 handler - migration 000098: 为存量IoT卡和设备补建资产钱包
33 lines
2.7 KiB
Markdown
33 lines
2.7 KiB
Markdown
## Why
|
||
|
||
修正业务方案审查后,发现 5 处代码质量问题仍未修复:废弃代码残留、错误被吞、权限前置校验缺失、停复机回调未注入、C端状态枚举映射冗余。这些问题不影响核心链路运行,但会导致:排查困难(错误被吞)、文档/代码不一致(废弃代码)、潜在越权(权限缺失)、联动功能失效(回调未注入)。趁当前无大功能并行,集中清理。
|
||
|
||
## What Changes
|
||
|
||
- **F-2 删除废弃 SIM 状态同步代码**:删除 `internal/task/sim.go` 整个文件、`pkg/queue/handler.go` 中的注册行、`pkg/constants/constants.go` 中的 `TaskTypeSIMStatusSync` 常量。该功能已被轮询系统完全覆盖,消费者核心是 `time.Sleep`,生产者全局零调用。
|
||
- **F-3 修复资产服务错误吞没**:`internal/service/asset/service.go` 中至少 2 处 `cards, _ := s.iotCardStore.GetByIDs(...)` 吞掉了数据库错误,改为记录日志但不中断主流程。
|
||
- **F-5 后台订单 Handler 钱包权限补齐**:`internal/handler/admin/order.go` 创建订单时,钱包支付缺少"仅代理可用"的前置校验,与 Service 层的校验不一致,补齐 Handler 层拦截。
|
||
- **F-6 停复机回调注入**:`internal/bootstrap/` 初始化时未调用 `SetStopResumeCallback` / `SetResumeCallback`,导致停复机后套餐联动回调不触发。在 bootstrap 初始化完成后补充调用。
|
||
- **J-4 删除 C端支付状态映射函数**:`internal/service/client_order/service.go` 中 `orderStatusToClientStatus()` 将管理端 1/2/3/4 映射为 C端 0/1/2,造成前后端枚举不一致。删除该函数,C端直接使用管理端枚举。**BREAKING**:C端前端需同步更新状态枚举解析(1=待支付, 2=已支付, 3=已取消, 4=已退款)。
|
||
|
||
## Capabilities
|
||
|
||
### New Capabilities
|
||
|
||
_无新增能力,全部为现有代码的修正和清理。_
|
||
|
||
### Modified Capabilities
|
||
|
||
- `asset-queries`: 修复错误吞没,查询失败时记录日志
|
||
- `asset-suspend-resume`: 注入停复机回调,停复机后套餐联动生效
|
||
- `admin-order-creation`: Handler 层补齐钱包支付权限前置校验
|
||
- `client-order-purchase`: 移除 C端支付状态映射,统一枚举
|
||
|
||
## Impact
|
||
|
||
- **代码删除**:`internal/task/sim.go`、`internal/service/sync/service.go`(如存在)、相关常量和注册行
|
||
- **修改文件**:`internal/service/asset/service.go`、`internal/handler/admin/order.go`、`internal/bootstrap/services.go`、`internal/service/client_order/service.go`、`pkg/queue/handler.go`、`pkg/constants/constants.go`
|
||
- **前端影响**:C端需将支付状态枚举从 0/1/2 改为 1/2/3/4(J-4,BREAKING)
|
||
- **无 DB 迁移**
|
||
- **无新增依赖**
|