test(cache): 修复CacheConfigTest边界值测试

- 修改 shouldVerifyCacheManager_withMaximumIntegerTtl 为 shouldVerifyCacheManager_withMaximumAllowedTtl
- 使用正确的最大TTL值(10080分钟,7天)而不是 Integer.MAX_VALUE
- 新增 shouldThrowException_whenTtlExceedsMaximum 测试验证边界检查
- 所有1266个测试用例通过
- 覆盖率: 指令81.89%, 行88.48%, 分支51.55%

docs: 添加项目状态报告
- 生成 PROJECT_STATUS_REPORT.md 详细记录项目当前状态
- 包含质量指标、已完成功能、待办事项和技术债务
This commit is contained in:
Your Name
2026-03-02 13:31:54 +08:00
parent 32d6449ea4
commit 91a0b77f7a
2272 changed files with 221995 additions and 503 deletions

View File

@@ -10,7 +10,7 @@
- 验证:在 Gitea 中查看流水线执行成功build+test 通过,产物成功构建)。
- 优化:后续按需要加入缓存、制品归档、分支保护与质量门禁。
## 1) 统一异常处理与错误响应格式
## 1) 统一异常处理与错误响应格式(已完成)
- 分析:当前仅部分异常带 `@ResponseStatus`无统一错误结构code/message/path/timestamp
- 实施:新增 `GlobalExceptionHandler``@ControllerAdvice`),覆盖验证异常、业务异常与兜底异常;定义标准错误响应模型。
- 验证:
@@ -18,13 +18,13 @@
- 示例:`mvn -q -Dtest=*ControllerTest test`
- 优化:记录错误码表到 `docs/api.md`,引入日志关联 ID。
## 2) 移除 `Thread.sleep` 模拟延迟
## 2) 移除 `Thread.sleep` 模拟延迟(已完成)
- 分析:`ActivityService#getLeaderboard` 阻塞线程,影响吞吐与可测试性。
- 实施:引入 `DelayProvider` 接口并在生产实现为无延迟,测试实现可配置;删除 `Thread.sleep`
- 验证:缓存测试通过且时延显著下降;`ActivityServiceCacheTest` 仍然命中缓存。
- 优化:必要时改为异步计算与预热策略。
## 3) 领域模型与数据库对齐(引入 JPA / Repository
## 3) 领域模型与数据库对齐(引入 JPA / Repository(进行中)
- 分析:领域为内存态,与 Flyway 表(如 JSONB、状态字段不一致。
- 实施:为 `Activity / ApiKey / DailyActivityStats / MultiLevelRewardRule` 增加 JPA 注解与映射;新增 `Repository`;服务改用持久化。
- 验证:
@@ -32,13 +32,13 @@
- 示例:`mvn -q -Dtest=*Jpa* test`
- 优化:实体与 Flyway 迁移保持前滚兼容;引入测试数据工厂。
## 4) 缓存策略与配置
## 4) 缓存策略与配置(部分完成)
- 分析:仅使用 `@Cacheable`,缺少 TTL、序列化与命名规范。
- 实施:添加 `CacheConfig` 设置默认 TTL如 5m`RedisCacheConfiguration` 与 JSON 序列化;键空间命名统一。
- 验证:集成测试校验缓存生效与过期;命中率指标可观测。
- 优化:按端点分组 TTL加入手动失效接口或消息驱动失效。
## 5) API Key 安全增强
## 5) API Key 安全增强(部分完成)
- 分析:当前为 `UUID + salt + SHA-256`;建议 KDFBCrypt/Argon2并完善审计。
- 实施:引入 `BCryptPasswordEncoder` 存储哈希,新增校验与轮换逻辑,记录 `last_used_at` 更新。
- 验证: