# 代码审查报告（2025-09-30）

## 概览
- 技术栈：Spring Boot 3、Java 17、Maven、JUnit 5、MockMvc、Flyway、Redis（缓存，测试为嵌入式）。
- 构建与测试：已联网执行 `mvn clean verify` 成功。产物 `target/mosquito-0.0.1-SNAPSHOT.jar` 生成。
- 测试统计：共 26 个测试，全通过（0 失败/0 错误/0 跳过），详见 `target/surefire-reports/`。

## 结构与模块
- 包结构清晰：`controller / service / domain / dto / exception / job`。
- 资源与迁移：`application.properties` 与 Flyway 迁移（V1–V5）完整，命名规范。
- 文档完善：`docs/`（API、架构、数据模型、测试计划）与 `specs/` 分层合理。

## 主要发现
- 控制器：输入校验充分（`@Valid`），返回码语义正确；异常部分依赖注解映射，建议统一异常处理。
- 服务：`ActivityService` 为内存态实现，具备并发安全；`getLeaderboard` 使用 `Thread.sleep` 模拟耗时，建议替换为可注入的延迟或移除。
- 领域模型：当前未持久化（无 JPA 注解），与 Flyway 表结构存在偏差（如 JSONB 字段、状态字段等）。
- 定时任务：`StatisticsAggregationJob` 逻辑简单明确，易扩展为真实数据聚合。
- 依赖：引入了 JPA/AMQP 但暂未使用；`javax.annotation-api` 在 Boot 3 生态建议迁移至 `jakarta.annotation`（仅测试配置中使用）。
- 缓存：`@Cacheable("leaderboards")` 生效，建议补充 TTL、序列化策略与命名规范。

## 建议优先级
1) 统一异常处理与错误响应格式（高）。
2) 去除 `Thread.sleep` 模拟延迟（高）。
3) 对齐领域模型与数据库（引入 JPA 实体/仓储）（高）。
4) 缓存策略（TTL、序列化、命名）与多环境配置（中）。
5) API Key 安全增强与审计（中）。
6) 测试覆盖补齐（奖励/多级奖励/上传/权限）（中）。
7) 依赖精简或尽快落地 AMQP/JPA（中）。
8) 覆盖率基线（JaCoCo）与质量门禁（中）。

