feat: 验收任务周期采集与设备资源接口

- 新增 acceptance-tasks 周期采集、立即采集、断点续采与批次管理
- acceptance-resources 返回 xhs_device_accounts 真实设备清单
- 数据看板服务调整及测试更新
This commit is contained in:
2026-08-28 13:43:53 +08:00
parent a021f2fe60
commit e188c50fab
8 changed files with 819 additions and 47 deletions

View File

@@ -12,6 +12,53 @@
}
],
"paths": {
"/api/v1/acceptance-tasks": {
"post": {
"summary": "创建项目验收任务",
"description": "关键词截图取证必须填写 keywords,无需飞书链接;笔记收录必须填写 feishu_links,可选传入仅供本任务使用的 custom_cookie。",
"tags": ["项目验收"],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {"$ref": "#/components/schemas/CreateAcceptanceTask"}
}
}
},
"responses": {"201": {"description": "验收任务创建成功"}}
}
},
"/api/v1/acceptance-tasks/{task_id}/collect-now": {
"post": {
"summary": "立即采集并下发指令",
"description": "复用原任务配置创建独立的新一轮采集。截图取证会立即请求 Framework 下发设备指令。",
"tags": ["项目验收"],
"parameters": [{"$ref": "#/components/parameters/TaskId"}],
"responses": {"201": {"description": "新一轮验收任务已创建"}}
}
},
"/api/v1/acceptance-tasks/{task_id}/schedule": {
"put": {
"summary": "设置每周采集周期",
"description": "按 Asia/Shanghai 时区,在指定星期的 00:00 创建新一轮采集。",
"tags": ["项目验收"],
"parameters": [{"$ref": "#/components/parameters/TaskId"}],
"requestBody": {
"required": true,
"content": {"application/json": {"schema": {"type": "object", "required": ["weekday"], "properties": {"weekday": {"type": "integer", "minimum": 1, "maximum": 7, "description": "1=周一,7=周日"}}}}}
},
"responses": {"200": {"description": "周期设置成功"}}
}
},
"/api/v1/acceptance-tasks/{task_id}/schedule/stop": {
"post": {
"summary": "停止周期采集",
"description": "关闭该任务后续的每周执行,不影响已经开始的采集任务。",
"tags": ["项目验收"],
"parameters": [{"$ref": "#/components/parameters/TaskId"}],
"responses": {"200": {"description": "周期采集已停止"}}
}
},
"/api/v1/tasks/{task_id}/cancel": {
"post": {
"summary": "停止任务",
@@ -58,6 +105,36 @@
}
},
"components": {
"schemas": {
"CreateAcceptanceTask": {
"type": "object",
"required": ["acceptance_method"],
"properties": {
"name": {"type": "string"},
"acceptance_method": {"type": "string", "enum": ["screenshot", "data-analysis"]},
"feishu_links": {
"type": "array",
"items": {"type": "string", "format": "uri"},
"description": "笔记收录必填;关键词截图取证可为空。"
},
"keywords": {
"type": "array",
"maxItems": 20,
"items": {"type": "string"},
"description": "关键词截图取证至少填写 1 个;笔记收录选填。"
},
"device_count": {"type": "integer", "minimum": 1},
"custom_cookie": {
"type": "string",
"maxLength": 16384,
"writeOnly": true,
"description": "仅用于笔记收录。填写后仅使用该 Cookie;留空时使用 Cookie 池全部可用凭据。不会在任务详情中返回。"
},
"created_by_id": {"type": "string"},
"created_by_name": {"type": "string"}
}
}
},
"parameters": {
"TaskId": {
"name": "task_id",