# Apifox 指南:问卷-管理 - baseURL: `http://localhost:8080` - 认证:登录后台获取 Token 后,在 Apifox 设置全局 Header `Authorization: Bearer `。 ## 场景一:创建草稿 1) 新建接口:POST `/manage/survey` - Body(JSON): ```json { "title": "迎新信息登记", "deadline": "2025-12-31 23:59:59", "visibleAll": 1, "status": 0, "items": [ {"title":"你的自我介绍","type":1,"required":1,"sortNo":0}, {"title":"宿舍是否分配完成?","type":2,"required":1,"sortNo":1, "options":[{"label":"是"},{"label":"否"}]} ] } ``` - 断言:`status == 200 && body.data.id != null` 2) 查询详情(含选项统计):GET `/manage/survey/{id}` - 断言:`status == 200 && body.data.items.length >= 2` - 检查:若存在单/多选题,其 `items[].options[].voteCount` 存在且为数字。 ## 场景二:编辑草稿 → 发布 1) 编辑草稿:PUT `/manage/survey` - Body(JSON):在“创建草稿”返回的 `id` 基础上带 `id`,修改题目/选项 - 断言:`status == 200` 2) 发布:PUT `/manage/survey/{id}/publish` - 断言:`status == 200` - 常见失败:`409 仅草稿可发布` ## 场景三:置顶与自动取消置顶 1) 置顶:PUT `/manage/survey/{id}/pin` - Body(JSON):`{"pinned": true}` - 断言:`status == 200` 2) 取消置顶:PUT `/manage/survey/{id}/pin` - Body(JSON):`{"pinned": false}` - 断言:`status == 200` 3) 过期后自动取消置顶: - 步骤:将截止时间设置为过去时间;再次调用列表接口应返回 `pinned=0` ## 场景四:延期 1) PUT `/manage/survey/{id}/extend` - Body(JSON):`{"deadline": "2026-01-31 23:59:59"}` - 断言:`status == 200` - 常见失败:`400 新截止时间必须晚于当前截止时间` ## 场景五:归档 1) PUT `/manage/survey/{id}/archive` - 断言:`status == 200` - 归档后再提交应失败(参见门户指南的断言)。 ## 场景六:AI 汇总报告(新增) 前置:已发布并且已有若干提交数据;后台已配置环境变量 `ZAI_API_KEY`(智普 API Key)。 1) 生成汇总:POST `/manage/survey/{id}/ai-summary` - Headers:`Authorization: Bearer {{token}}` - Body(JSON):`{"extraPrompt":"(可选)输出 Markdown 并给出三条改进建议"}` - 断言:`status == 200 && body.data.text != null && body.data.text.length > 0` - 常见失败: - 401/403 权限未分配:请在后台为角色勾选 `manage:survey:summary` 按钮权限。 - 500 AI 调用异常:检查服务日志与 `ZAI_API_KEY` 是否正确配置。