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卡和设备补建资产钱包
2.7 KiB
2.7 KiB
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 迁移
- 无新增依赖