197 lines
6.8 KiB
Markdown
197 lines
6.8 KiB
Markdown
|
|
# 代码审查修复任务
|
|||
|
|
|
|||
|
|
## 任务列表
|
|||
|
|
|
|||
|
|
| 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 集成测试
|