Appearance
记录排行
GET
/api/admin/course/{courseId}/marker/{markerId}/record_ranking
获取单个弹题下的作答记录排行,供管理端"弹题列表 / 记录排行"页面使用。
位置参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| courseId | number | 是 | 课程 ID |
| markerId | number | 是 | 弹题 ID |
查询参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | number | 否 | 页码,从 0 开始,默认 0 |
| size | number | 否 | 每页条数,默认 10 |
| sortBy | string | 否 | 排序字段,支持 firstScore / bestScore,默认 firstScore |
| sortOrder | string | 否 | 排序方向,支持 desc / asc,默认 desc |
响应
| 字段 | 类型 | 说明 |
|---|---|---|
| data | array | 记录排行列表 |
| data[].userId | number | 学员 ID |
| data[].userName | string | 学员姓名 |
| data[].avatar | string / null | 学员头像 |
| data[].orgName | string / null | 所属部门名称 |
| data[].firstScore | number | 首次分数 |
| data[].bestScore | number | 最好分数 |
| paginator | object | 分页信息 |
| paginator.total | number | 总条数 |
| paginator.size | number | 每页条数 |
| paginator.page | number | 当前页码 |
响应示例
json
{
"data": [
{
"userId": 1001,
"userName": "李娜",
"avatar": "https://cdn.example.com/avatar/1001.png",
"orgName": "采购部",
"firstScore": 4600,
"bestScore": 4600
}
],
"paginator": {
"total": 85,
"size": 10,
"page": 0
}
}异常
| 错误码 | HTTP | 说明 |
|---|---|---|
COURSE_NOT_FOUND | 404 | 课程不存在 |
MARKER_NOT_FOUND | 404 | 弹题不存在 |
MARKER_COURSE_MISMATCH | 400 | 弹题不属于当前课程 |