feat: add import post-check templates

This commit is contained in:
Codex
2026-06-29 08:16:48 +08:00
parent eee21f6eed
commit 69f8e28d4e
15 changed files with 954 additions and 28 deletions

View File

@@ -730,15 +730,22 @@ POST /api/tenant-content/imports/preview/videos
POST /api/tenant-content/imports/videos
GET /api/tenant-content/imports
GET /api/tenant-content/imports/issues
GET /api/tenant-content/imports/field-mapping
GET /api/tenant-content/imports/templates
POST /api/tenant-content/imports/post-check
GET /api/tenant-content/imports/post-check
```
前端流程:
1. 上传或粘贴 JSON/CSV/Excel先调用对应 preview
2. 展示 `job.totalCount/validCount/errorCount/warningCount`
3. 展示 `job.sourceFormat``job.parserMetadata`、逐行 `issues`,错误行必须让运营修正;如果后端允许 `allowPartial`,也要二次确认
4. 小批量确认后直接调用 import大批量确认时传 `executionMode=async` 排队,前端轮询 job 状态
5. 导入完成后刷新内容列表、分数线列表或题目视频列表
1. 页面初始化调用 `field-mapping`,渲染字段说明、别名、必填项和示例
2. 下载模板调用 `templates?importType=...&format=csv|json`,用 `contentBase64` 生成文件
3. 上传或粘贴 JSON/CSV/Excel先调用对应 preview
4. 展示 `job.totalCount/validCount/errorCount/warningCount`
5. 展示 `job.sourceFormat``job.parserMetadata`、逐行 `issues`,错误行必须让运营修正;如果后端允许 `allowPartial`,也要二次确认
6. 小批量确认后直接调用 import大批量确认时传 `executionMode=async` 排队,前端轮询 job 状态。
7. 导入进入 `completed/completed_with_errors` 后调用 `POST /api/tenant-content/imports/post-check`
8. 展示 `summary.importPostCheck``GET /api/tenant-content/imports/post-check?jobId=...` 返回的复检结果,再刷新内容列表、分数线列表或题目视频列表。
CSV 请求示例:
@@ -786,6 +793,16 @@ completed_with_errors刷新成功内容并提示查看 issues。
failed/rejected展示 errorMessage 和 issues允许运营修正后重新 preview。
```
导入复检状态:
```text
passed可以展示为导入验收通过。
warning导入已落库但存在可运营确认的风险例如 allowPartial 导入。
failed导入结果和目标表不一致必须提示管理员排查不要静默刷新页面。
```
前端不要自行判断导入成功率,也不要只看 `completed` 就认为可上线;以复检结果和目标内容刷新结果共同作为运营提示。
前端文件限制应与后端一致:单文件最大 8MB最多 5000 行、160 列。后端不会保存原始 `fileBase64`,但前端仍不要把含隐私的导入文件写入长期缓存。
分数线导入前端注意: