# 面试管理接口文档 ## 概述 面试管理基础模块,支持企业创建面试、学生响应面试、企业取消/完成面试,以及面试状态时间线查看。 ## 状态机 ``` SCHEDULED → CONFIRMED → COMPLETED (终态) ↓ ↓ ↓→ DECLINED (终态) ↓→ RESCHEDULE_REQUESTED → SCHEDULED ↓→ CANCELLED (终态) ``` ## 接口列表 ### 1. 创建面试 (企业) ``` POST /api/v1/applications/{applicationId}/interviews ``` **请求体:** ```json { "roundNo": 1, "title": "技术面试", "interviewType": "ONLINE", "startAt": "2026-08-10T14:00:00", "endAt": "2026-08-10T15:00:00", "timezone": "Asia/Shanghai", "meetingUrl": "https://meeting.example.com/123", "interviewerName": "张经理", "notes": "请准备项目经验介绍" } ``` ### 2. 查询投递的面试列表 ``` GET /api/v1/applications/{applicationId}/interviews ``` ### 3. 我的面试列表 ``` GET /api/v1/interviews/me?status=SCHEDULED&from=2026-08-01&to=2026-08-31&page=0&size=20 ``` 参数: | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | status | String | 否 | 状态筛选 | | from | DateTime | 否 | 开始时间 >= from | | to | DateTime | 否 | 开始时间 <= to | | page | int | 否 | 页码, 默认0 | | size | int | 否 | 每页大小, 默认20, 最大100 | ### 4. 面试详情 ``` GET /api/v1/interviews/{interviewId} ``` ### 5. 修改面试 (企业) ``` PUT /api/v1/interviews/{interviewId} ``` ### 6. 学生响应面试 ``` POST /api/v1/interviews/{interviewId}/respond ``` **请求体:** ```json { "action": "CONFIRM", "reason": "时间可以接受" } ``` action 可选值: `CONFIRM`, `DECLINE`, `REQUEST_RESCHEDULE` ### 7. 企业取消面试 ``` POST /api/v1/interviews/{interviewId}/cancel ``` ### 8. 企业完成面试 ``` POST /api/v1/interviews/{interviewId}/complete ``` ### 9. 状态时间线 ``` GET /api/v1/interviews/{interviewId}/timeline ``` ## 权限矩阵 | 操作 | 企业 | 学生 | |------|------|------| | 创建面试 | 仅本企业岗位投递 | ❌ | | 查看面试 | 仅本企业 | 仅本人 | | 修改面试 | 仅本企业 | ❌ | | 取消面试 | 仅本企业 | ❌ | | 响应面试 | ❌ | 仅本人 | | 完成面试 | 仅本企业 | ❌ | ## 错误码 | 错误码 | 说明 | |--------|------| | 8401 | 面试不存在 | | 8402 | 无权访问面试 | | 8403 | 非法状态流转 | | 8404 | 时间区间无效 | | 8405 | 面试时长超过8小时 | | 8406 | 在线面试需要会议链接 | | 8407 | 线下面试需要地址 | | 8408 | 面试开始时间必须在未来 | | 8409 | 面试未结束不能完成 | | 8410 | 已响应,不可重复操作 |