Files
makemd/docs/00_Business/tasks/backend/27_code_review_fixes.md
wurenzhi 48a78137c5 refactor(terminology): 统一术语标准并优化代码类型安全
- 将B2B统一为TOB术语
- 将状态值统一为大写格式
- 优化类型声明,避免使用any
- 将float类型替换为decimal以提高精度
- 新增术语标准化文档
- 优化路由结构和菜单分类
- 添加TypeORM实体类
- 增强加密模块安全性
- 重构前端路由结构
- 完善任务模板和验收标准
2026-03-20 09:43:50 +08:00

6.8 KiB
Raw Blame History

代码审查修复任务

任务列表

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 集成测试