# 代码审查修复任务

## 任务列表

| Task ID | 闭环关联 | 任务描述 | 输入 | 输出 | 触发条件 | 状态 | 优先级 | 依赖 | 预计耗时 | 负责人 | 完成时间 |
| ------- | ---------- | ---------- | ----- | ---- | -------- | ---- | --- | --- | ---- | -------- | -------- |
| BE-CR001 | 代码质量闭环 | 修复 TypeScript 编译错误（400+） | 错误列表 | 编译通过 | 代码审查 | ✅ completed | P0 | - | 16h | AI-Backend-1 | 2026-03-22 |
| BE-CR002 | 代码质量闭环 | 修复金额字段类型（51 处 float/double → decimal） | 违规文件列表 | 数据库表更新 | 代码审查 | ✅ completed | P0 | - | 4h | AI-Backend-1 | 2026-03-20 |
| BE-CR003 | 安全闭环 | 移除 VaultCrypto 默认密钥硬编码 | VaultCrypto.ts | 安全密钥管理 | 代码审查 | ✅ completed | P0 | - | 1h | AI-Backend-1 | 2026-03-20 |
| BE-CR004 | 功能闭环 | 完成核心 TODO 项（商品/订单同步） | TODO 列表 | 功能实现 | 代码审查 | 🔒 claimed | P1 | - | 8h | AI-Backend-1 | 2026-03-25 |
| BE-CR005 | 类型安全闭环 | 减少 `any` 类型使用（43 处） | 违规文件列表 | 类型定义完善 | 代码审查 | 🔒 claimed | P1 | - | 6h | AI-Backend-1 | 2026-03-25 |
| BE-CR006 | 日志规范闭环 | 统一 logger 使用（86 处 console.log） | 违规文件列表 | 日志统一 | 代码审查 | 🔒 claimed | P1 | - | 3h | AI-Backend-1 | 2026-03-24 |
| BE-CR007 | 输入验证闭环 | 完善输入参数验证 | API 路由列表 | Zod 验证 | 代码审查 | 🔒 claimed | P2 | - | 12h | AI-Backend-1 | 2026-04-10 |
| BE-CR008 | 性能优化闭环 | 优化数据库查询索引 | 慢查询日志 | 索引优化 | 性能监控 | 🔒 claimed | P2 | - | 8h | AI-Backend-1 | 2026-04-15 |
| BE-CR009 | 测试覆盖闭环 | 补充单元测试覆盖率 | 测试报告 | 测试用例 | 代码审查 | 🔒 claimed | P2 | - | 20h | AI-Backend-1 | 2026-04-20 |

## 相关闭环

- 代码质量闭环
- 安全闭环
- 功能闭环
- 类型安全闭环
- 日志规范闭环
- 输入验证闭环
- 性能优化闭环
- 测试覆盖闭环

## 依赖关系

- BE-CR001 是基础任务，无依赖
- BE-CR002 无依赖
- BE-CR003 无依赖
- BE-CR004 无依赖
- BE-CR005 无依赖
- BE-CR006 无依赖
- BE-CR007 依赖 BE-CR001
- BE-CR008 依赖 BE-CR001
- BE-CR009 依赖 BE-CR001

## 任务详情

### BE-CR001: 修复 TypeScript 编译错误

**问题描述**: Server 模块存在 400+ 个 TypeScript 编译错误，导致项目无法正常构建。

**影响文件**:
- `src/services/*.ts` (100+ 文件)
- `src/domains/**/*.ts` (50+ 文件)
- `src/core/**/*.ts` (30+ 文件)

**错误类型分布**:
- 类型不匹配错误: ~40%
- 缺少类型声明: ~30%
- 导入/导出错误: ~20%
- 其他语法错误: ~10%

**验收标准**:
- ✅ 运行 `npm run check` 无错误
- ✅ 项目能够成功编译
- ✅ 无 TypeScript 类型错误
- ✅ 所有导入导出正确

**实施步骤**:
1. 运行 `npm run check` 获取完整错误列表
2. 按模块分批修复，优先修复核心服务（Trade/Billing/Arbitrage）
3. 添加缺失的类型声明文件
4. 统一模块导入规范

---

### BE-CR002: 修复金额字段类型

**问题描述**: 根据项目规则 1.1，金额字段必须使用 `decimal(10,2)`，但发现多处使用 `float`/`double`。

**违规文件列表**:
| 文件路径 | 行号 | 违规代码 |
|----------|------|----------|
| `src/services/ProductService.ts` | 53 | `table.double('rating')` |
| `src/core/runtime/LegacyTableInitializer.ts` | 321-322 | `table.float('daily_budget')` |
| `src/domains/Arbitrage/ArbitrageService.ts` | 98-99 | `table.float('initial_profit_rate')` |
| `src/domains/Billing/SLAGovernanceService.ts` | 108 | `table.float('p95_latency_ms')` |
| `src/services/FXHedgingService.ts` | 40 | `table.float('volatility')` |

**验收标准**:
- ✅ 所有金额字段使用 `decimal(10,2)`
- ✅ 数据库表结构更新完成
- ✅ 迁移脚本执行成功
- ✅ 无数据丢失

**实施步骤**:
1. 识别所有使用 float/double 的金额字段
2. 创建数据库迁移脚本
3. 更新表结构定义
4. 执行迁移并验证数据完整性

---

### BE-CR003: 移除 VaultCrypto 默认密钥硬编码

**问题描述**: `VaultCrypto.ts` 中存在默认主密钥硬编码，如果环境变量未设置，将使用可预测的默认密钥，严重危及凭证安全。

**文件**: `server/src/utils/VaultCrypto.ts`
**行号**: 9

**验收标准**:
- ✅ 移除默认密钥硬编码
- ✅ 环境变量缺失时抛出明确错误
- ✅ 添加密钥验证逻辑
- ✅ 通过安全测试

**实施步骤**:
1. 修改 `MASTER_KEY` 获取逻辑
2. 添加环境变量验证
3. 更新相关文档
4. 测试密钥管理流程

---

### BE-CR004: 完成核心 TODO 项

**问题描述**: 发现 30 个 TODO/FIXME 注释，部分涉及核心功能缺失。

**关键遗留项**:
| 文件 | 行号 | 描述 | 优先级 |
|------|------|------|--------|
| `OperationAgentService.ts` | 118 | 商品同步到数据库 | P0 |
| `OperationAgentService.ts` | 167 | 订单同步到数据库 | P0 |
| `PlatformApiService.ts` | 204-214 | Amazon SP-API 同步 | P1 |
| `dynamicPricing.ts` | 261 | analyzeCompetitorPrices 方法 | P1 |
| `SummaryAggregationService.ts` | 125-126 | 真实成本/利润接入 | P1 |

**验收标准**:
- ✅ 所有 P0 级别 TODO 完成
- ✅ 商品同步功能实现
- ✅ 订单同步功能实现
- ✅ 核心功能测试通过

---

### BE-CR005: 减少 `any` 类型使用

**问题描述**: Dashboard 模块中存在 43 处 `any` 类型使用，削弱了 TypeScript 的类型安全。

**验收标准**:
- ✅ 减少 `any` 类型使用至 10 处以下
- ✅ 定义明确的接口类型
- ✅ 通过 TypeScript 严格检查
- ✅ 类型覆盖率 > 95%

---

### BE-CR006: 统一 logger 使用

**问题描述**: 86 个文件混合使用 `console.log/warn/error`，与统一的 logger 服务并存。

**验收标准**:
- ✅ 所有 console.log 替换为 logger
- ✅ 日志格式统一
- ✅ 日志级别正确使用
- ✅ 日志输出可配置

---

### BE-CR007: 完善输入参数验证

**问题描述**: 部分 API 缺少输入参数校验，建议统一使用 Zod 进行参数验证。

**验收标准**:
- ✅ 所有 API 路由添加参数验证
- ✅ 使用 Zod 统一验证
- ✅ 错误提示清晰
- ✅ 通过安全测试

---

### BE-CR008: 优化数据库查询索引

**问题描述**: 复杂查询需通过 `EXPLAIN` 校验索引，批量操作建议分批处理。

**验收标准**:
- ✅ 所有慢查询优化
- ✅ 索引合理配置
- ✅ 查询性能提升 > 50%
- ✅ 通过性能测试

---

### BE-CR009: 补充单元测试覆盖率

**问题描述**: 核心服务缺少单元测试，需要补充测试用例。

**验收标准**:
- ✅ 核心服务测试覆盖率 > 80%
- ✅ 关键业务逻辑测试完整
- ✅ 所有测试通过
- ✅ CI/CD 集成测试
