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

@@ -0,0 +1,40 @@
package com.mosquito.project.controller;
import com.mosquito.project.dto.RegisterCallbackRequest;
import com.mosquito.project.persistence.entity.ProcessedCallbackEntity;
import com.mosquito.project.persistence.repository.ProcessedCallbackRepository;
import jakarta.validation.Valid;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/v1/callback")
public class CallbackController {
private final ProcessedCallbackRepository processedCallbackRepository;
private final com.mosquito.project.service.RewardQueue rewardQueue;
public CallbackController(ProcessedCallbackRepository processedCallbackRepository, com.mosquito.project.service.RewardQueue rewardQueue) {
this.processedCallbackRepository = processedCallbackRepository;
this.rewardQueue = rewardQueue;
}
@PostMapping("/register")
public ResponseEntity<Void> register(@Valid @RequestBody RegisterCallbackRequest request) {
String trackingId = request.getTrackingId();
if (processedCallbackRepository.existsById(trackingId)) {
return ResponseEntity.ok().build();
}
ProcessedCallbackEntity e = new ProcessedCallbackEntity();
e.setTrackingId(trackingId);
e.setCreatedAt(java.time.OffsetDateTime.now(java.time.ZoneOffset.UTC));
processedCallbackRepository.save(e);
rewardQueue.enqueueReward(trackingId, request.getExternalUserId(), null);
return ResponseEntity.ok().build();
}
}