Appearance
弹题结算
GET
/api/app/course/{courseId}/task/{taskId}/marker/{markerId}/settlement
返回弹题当前轮的结算结果。聚合口径为当前 marker_session.recordId 对应的一轮作答。
位置参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| courseId | number | 是 | 课程 ID |
| taskId | number | 是 | 任务 ID |
| markerId | number | 是 | 弹题 ID |
响应
| 字段 | 类型 | 说明 |
|---|---|---|
| totalScore | number | 总分(题数 × 单题满分) |
| score | number | 当前轮得分 |
| rightCount | number | 正确题数 |
| wrongCount | number | 错误题数 |
| noAnswerCount | number | 超时/未答题数 |
| partRightCount | number | 部分正确题数 |
| accuracyRate | number | 正确率(0~100) |
| rank | number / null | 我的排名 |
| beatPercent | number / null | 击败百分比;无排名或学员数小于等于 1 时为 null |
| totalElapsedMs | number | 当前轮总耗时(毫秒) |
| questions | array | 逐题摘要列表,按题目 seq 升序 |
| questions[].id | number | 题目 ID |
| questions[].type | string | 题型 |
| questions[].score | number / null | 本题得分 |
| questions[].result | string | right / wrong / partRight / noAnswer |
响应示例
json
{
"totalScore": 5000,
"score": 3200,
"rightCount": 3,
"wrongCount": 1,
"noAnswerCount": 1,
"partRightCount": 0,
"accuracyRate": 60,
"rank": 8,
"beatPercent": 75,
"totalElapsedMs": 8500,
"questions": [
{
"id": 501,
"type": "single_choice",
"score": 1000,
"result": "right"
},
{
"id": 502,
"type": "fill",
"score": 0,
"result": "noAnswer"
}
]
}异常
| 错误码 | HTTP | 说明 |
|---|---|---|
COURSE_VIDEO_MARKER_TASK_MISMATCH | 400 | 任务与弹题不匹配 |
COURSE_VIDEO_MARKER_NOT_FOUND | 404 | 弹题不存在 |