## 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 迁移** - **无新增依赖**