feat: 更新公告和链接状态接口,增强参数校验,支持跳转链接最大长度为5000字符,添加异步保存完成图片功能,优化接口文档和数据库结构
This commit is contained in:
178
COMPLETION_IMAGE_ALL_TRIGGERS.md
Normal file
178
COMPLETION_IMAGE_ALL_TRIGGERS.md
Normal file
@@ -0,0 +1,178 @@
|
||||
# 完成图片保存 - 所有触发点总结
|
||||
|
||||
## ✅ 已完成
|
||||
|
||||
现在系统中所有任务完成的场景都会自动保存图片!
|
||||
|
||||
## 📍 任务完成的所有触发点
|
||||
|
||||
### 1. GameCompletionDetectionService(游戏完成检测服务)
|
||||
**位置**: `src/main/java/com/gameplatform/server/service/detection/GameCompletionDetectionService.java`
|
||||
|
||||
**触发条件**:
|
||||
- 设备状态为"已打完"(高置信度)→ 立即完成
|
||||
- 设备状态为"空闲"(中等置信度)→ 二次确认后完成
|
||||
- 登录超过30秒后才检测,避免误判
|
||||
|
||||
**触发来源**:
|
||||
- `EVENT_LISTENER`: 设备状态更新事件
|
||||
- `REGION_SELECT`: 选区请求时主动检查
|
||||
- `MANUAL`: 手动触发
|
||||
|
||||
**图片保存**: ✅ 已集成(第232行)
|
||||
|
||||
---
|
||||
|
||||
### 2. DeviceStats(设备统计服务)
|
||||
**位置**: `src/main/java/com/gameplatform/server/device/DeviceStats.java`
|
||||
|
||||
**触发条件**:
|
||||
- 设备状态为"空闲"
|
||||
- 存在 LOGGED_IN 任务
|
||||
- 任务登录时间超过 3 分钟
|
||||
|
||||
**触发频率**: 每30秒(定时任务)
|
||||
|
||||
**完成原因**: `AUTO_COMPLETE_IDLE_3M`
|
||||
|
||||
**图片保存**: ✅ 已集成(第381行)
|
||||
|
||||
**日志示例**:
|
||||
```
|
||||
自动完成任务:codeNo=FYLAYKEA device=rr0 loginAt=2025-11-03T19:48:29.062 超过3分钟
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3. DeviceAllocationService(设备分配服务)
|
||||
**位置**: `src/main/java/com/gameplatform/server/service/link/DeviceAllocationService.java`
|
||||
|
||||
**触发条件**:
|
||||
- 任务状态为 LOGGED_IN
|
||||
- 距离上次更新时间超过 30 分钟
|
||||
|
||||
**触发时机**: 尝试分配新设备前检查
|
||||
|
||||
**完成原因**: `LOGGED_IN超过30分钟自动完成`
|
||||
|
||||
**图片保存**: ✅ 已集成(第173行)
|
||||
|
||||
**日志示例**:
|
||||
```
|
||||
自动完成LOGGED_IN链接:codeNo=ABC123, device=f1, updatedAt=2025-11-03T19:00:00, 超过30分钟
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 4. DeviceStatusCheckService(设备状态检查服务)
|
||||
**位置**: `src/main/java/com/gameplatform/server/service/device/DeviceStatusCheckService.java`
|
||||
|
||||
**触发条件**:
|
||||
- 设备状态为"空闲"
|
||||
- 完成检测服务未触发(兜底机制)
|
||||
- 存在 LOGGED_IN 任务
|
||||
|
||||
**完成原因**: `状态:已完成(空闲兜底,触发原因:xxx)`
|
||||
|
||||
**图片保存**: ✅ 已集成(第102行)
|
||||
|
||||
**特点**: 批量完成所有设备上的 LOGGED_IN 任务
|
||||
|
||||
---
|
||||
|
||||
## 🎯 完整流程图
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
A[任务变为 COMPLETED] --> B{触发来源}
|
||||
|
||||
B -->|检测服务| C[GameCompletionDetectionService]
|
||||
B -->|设备统计| D[DeviceStats]
|
||||
B -->|设备分配| E[DeviceAllocationService]
|
||||
B -->|状态检查| F[DeviceStatusCheckService]
|
||||
|
||||
C --> G[异步保存4张图片]
|
||||
D --> G
|
||||
E --> G
|
||||
F --> G
|
||||
|
||||
G --> H[并发下载图片]
|
||||
H --> I[保存到本地文件系统]
|
||||
I --> J[更新数据库记录]
|
||||
J --> K[24小时后自动清理]
|
||||
```
|
||||
|
||||
## 📊 完成场景对比
|
||||
|
||||
| 触发服务 | 完成条件 | 检测频率 | 置信度 | 缓冲期 |
|
||||
|---------|----------|----------|--------|--------|
|
||||
| GameCompletionDetectionService | "已打完"或"空闲" | 实时 | 高/中 | 30秒 |
|
||||
| DeviceStats | 空闲且登录>3分钟 | 30秒 | 高 | 无 |
|
||||
| DeviceAllocationService | LOGGED_IN>30分钟 | 按需 | 高 | 无 |
|
||||
| DeviceStatusCheckService | 空闲兜底 | 按需 | 中 | 无 |
|
||||
|
||||
## 🔍 验证方法
|
||||
|
||||
### 查看日志
|
||||
```bash
|
||||
# 查看所有完成相关日志
|
||||
tail -f logs/server.log | grep -E "自动完成|完成图片"
|
||||
|
||||
# 查看特定链接的图片保存
|
||||
tail -f logs/server.log | grep "codeNo=FYLAYKEA"
|
||||
```
|
||||
|
||||
### 查询数据库
|
||||
```sql
|
||||
-- 查看最近完成且保存了图片的任务
|
||||
SELECT
|
||||
code_no,
|
||||
status,
|
||||
reason,
|
||||
completed_points,
|
||||
completion_images_saved_at,
|
||||
JSON_EXTRACT(completion_images, '$.totalCount') as image_count
|
||||
FROM link_task
|
||||
WHERE status = 'COMPLETED'
|
||||
AND completion_images_saved_at IS NOT NULL
|
||||
ORDER BY completion_images_saved_at DESC
|
||||
LIMIT 10;
|
||||
```
|
||||
|
||||
### 检查文件系统
|
||||
```bash
|
||||
# 查看今天保存的所有图片
|
||||
ls -lh completion-images/$(date +%Y%m%d)/
|
||||
|
||||
# 查看特定任务的图片
|
||||
find completion-images -name "*FYLAYKEA*" -type d
|
||||
ls -lh completion-images/*/FYLAYKEA/
|
||||
```
|
||||
|
||||
## 📝 日志关键字
|
||||
|
||||
- ✅ **成功保存**: `完成图片保存成功`
|
||||
- ⚠️ **保存失败**: `完成图片保存失败`
|
||||
- 📸 **开始保存**: `开始异步保存完成图片`
|
||||
- 🔍 **任务完成**:
|
||||
- `任务.*已标记完成`
|
||||
- `自动完成任务`
|
||||
- `自动完成LOGGED_IN链接`
|
||||
- `空闲兜底`
|
||||
|
||||
## 🎉 总结
|
||||
|
||||
**所有4个触发点都已集成图片保存功能!**
|
||||
|
||||
不管任务是通过哪种方式完成的(智能检测、超时自动完成、兜底机制等),系统都会:
|
||||
|
||||
1. ✅ 自动保存4张完成图片
|
||||
2. ✅ 更新数据库记录
|
||||
3. ✅ 24小时后自动清理
|
||||
4. ✅ 异步执行不阻塞主流程
|
||||
|
||||
---
|
||||
|
||||
**更新时间**: 2025-11-03
|
||||
**版本**: v1.1.0 (完整覆盖所有触发点)
|
||||
|
||||
Reference in New Issue
Block a user