考试相关
本章节专注于描述考试和练习相关的API,专为管理员和子管理员设计,用于维护和管理考试及练习内容。
题库
题库列表:questionBank/listpage
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键 | 否 |
name | String (16) | 名称 | 否 |
curPage | Integer | 当前第几页 | 否 |
pageSize | Integer | 每页多少条 | 否 |
响应参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
msg | String | 响应消息 |
data.total | Integer | 总行数 |
data.list[] | Object[] | 分页列表 |
data.list[].id | Integer | 主键 |
data.list[].name | String | 名称 |
data.list[].createUserName | String | 创建用户 |
data.list[].objectiveNum | String | 客观题数量 |
data.list[].subjectiveNum | Integer | 主观题数量 |
data.list[].singleNum | Integer | 单选题数量 |
data.list[].multipleNum | Integer | 多选题数量 |
data.list[].fillBlankSubNum | Integer | 主观填空题数量 |
data.list[].fillBlankObjNum | Integer | 客观填空题数量 |
data.list[].judgeNum | Integer | 判断题数量 |
data.list[].qaSubNum | Integer | 主观问答题数量 |
data.list[].qaObjNum | Integer | 客观问答题数量 |
data.list[].questionNum | Integer | 试题数量 |
data.list[].updateTime | Date | 更新时间 |
题库添加:questionBank/add
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
name | String (16) | 名称 | 是 |
响应参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
msg | String | 响应消息 |
data | Integer | 题库ID |
题库修改:questionBank/edit
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键 | 是 |
name | String (16) | 名称 | 是 |
题库删除:questionBank/del
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键 | 是 |
题库详情:questionBank/get
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键 | 是 |
响应参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
msg | String | 响应消息 |
data.id | Integer | 题库id |
data.name | String | 题库名称 |
题库清空:questionBank/clear
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键 | 是 |
试题
试题列表:question/listpage
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
questionBankId | Integer | 题库id | 否 |
questionBankName | String | 题库名称 | 否 |
id | Integer | 编号(主键) | 否 |
title | String | 题干 | 否 |
type | Integer | 类型(1:单选;2:多选;3:填空;4:判断;5:问答) | 否 |
score | Double | 分值 | 否 |
markType | Integer | 阅卷类型(1:客观题;2:主观题) | 否 |
exIds | String | 排除的试题IDS(英文逗号分割) | 否 |
state | Integer | 状态(0:删除;1:发布;);默认查询1;参数为0则查询最近7天已删除的试题 | 否 |
rand | String | 随机查询 (任意字符串) | 否 |
curPage | Integer | 当前第几页 | 否 |
pageSize | Integer | 每页多少条 | 否 |
响应参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
msg | String | 响应消息 |
data.total | Integer | 总行数 |
data.list[] | Object[] | 分页列表 |
data.list[].id | Integer | 主键 |
data.list[].type | Integer | 类型(1:单选;2:多选;3:填空;4:判断;5:问答) |
data.list[].title | String | 题干 |
data.list[].imgFileIds | Integer[] | 图片IDS(V5.2.0新增) |
data.list[].markType | Integer | 阅卷类型(1:客观题;2:主观题) |
data.list[].state | Integer | 状态(0:删除;1:发布;) |
data.list[].analysis | String | 解析 |
data.list[].questionBankId | Integer | 题库ID |
data.list[].questionBankName | Integer | 题库名称 |
data.list[].score | Double | 分值 |
data.list[].markOptions | Integer[] | 分值选项 |
data.list[].options[] | Object[] | 单多选选项(type=1,2时有效) |
data.list[].answers[] | String[] | 答案(如果是填空或智能问答,会有多个答案) |
data.list[].scores[] | Double[] | 答案分值(如果是填空或智能问答,表示每空分值;如果是多选,表示漏选分值) |
data.list[].updateUserName | String | 更新用户名称 |
试题添加:question/add
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
type | Integer | 类型(1:单选;2:多选;3:填空;4:判断;5:问答) | 是 |
title | Text | 题干 | 是 |
imgFileIds | Integer[] | 图片(V5.2.0新增) | 否 |
markType | Integer | 阅卷类型(1:客观题;2:主观题) | 是 |
analysis | Text | 解析 | 是 |
questionBankId | Integer | 题库ID | 是 |
score | Double | 分数 | 是 |
markOptions[] | Integer[] | 分数选项(1:漏选得分;2:答案无顺序;3:大小写不敏感;) | 否 |
options[] | String[] | 选项,type为1,2时有效,len <= 7 | 否 |
answers[] | String[] | 答案(如果是填空或智能问答,会有多个答案) | 是 |
scores[] | Double[] | 答案分值(如果是填空或智能问答,表示每空分值;如果是多选,表示漏选分值) | 否 |
试题修改:question/edit
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键 | 是 |
type | Integer | 类型(修改无效) | 否 |
其他字段同question/add |
试题删除:question/del
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
ids | Integer[] | 试题IDS | 是 |
试题移动:question/move(V5.3.0新增)
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer[] | 主键 | 是 |
questionBankId | Integer | 题库ID | 是 |
试题获取:question/get
提示消息
已实现缓存处理,可不限次数请求,默认空闲两小时失效。
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键 | 是 |
响应参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
msg | String | 响应消息 |
data.id | Integer | 主键 |
data.type | Integer | 类型(1:单选;2:多选;3:填空;4:判断;5:问答 |
data.title | Text | 题干 |
data.imgFileIds | Integer[] | 图片IDS(V5.2.0新增) |
data.options[] | String[] | 选项,type为1,2时有效,len <= 7 |
data.markType | Integer | 阅卷类型(1:客观题;2:主观题) |
data.analysis | Text | 解析 |
data.questionBankId | Integer | 题库ID |
data.score | Double | 分数 |
data.markOptions[] | Integer[] | 分数选项(1:漏选得分;2:答案无顺序;3:大小写不敏感;) |
data.answers[] | String[] | 答案(如果是填空或智能问答,会有多个答案) |
data.scores[] | Double[] | 答案分值(如果是填空或智能问答,表示每空分值;如果是多选,表示漏选分值) |
data.state | Integer | 状态(0:删除;1:发布;) |
试题复制:question/copy
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键 | 是 |
考试
考试列表:exam/listpage
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
name | String (16) | 名称 | 否 |
genType | Integer | 组卷方式(1:人工组卷;2:随机组卷) | 否 |
loginType | Integer | 登录方式(1:正常登录;2:免登录;) | 否 |
markState | Integer | 阅卷状态(1:未阅卷;2:阅卷中;3:已阅卷;) | 否 |
markType | Integer | 阅卷方式(1:客观题;2:主观题;) | 否 |
isLimit | Integer | 是否限时考试(0:不限时;1:限时) | 否 |
state | Integer | 考试状态(1:发布;2:暂停) | |
curPage | Integer | 当前第几页 | 否 |
pageSize | Integer | 每页多少条 | 否 |
响应参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
msg | String | 响应消息 |
data.total | Integer | 总行数 |
data.list[] | Object[] | 分页列表 |
data.list[].id | Integer | 主键 |
data.list[].name | String | 名称 |
data.list[].startTime | Date | 开始时间 |
data.list[].endTime | Date | 结束时间 |
data.list[].markStartTime | Date | 阅卷开始时间 |
data.list[].markEndTime | Date | 阅卷结束时间 |
data.list[].passScore | Double | 及格分数 |
data.list[].totalScore | Double | 总分数 |
data.list[].state | Integer | 考试状态 |
data.list[].markState | Integer | 阅卷方式(1:客观题;2:主观题;) |
data.list[].scoreState | Integer | 成绩查询状态(1:考试结束后;2:不公布;3:交卷后) |
data.list[].rankState | Integer | 排名状态(1:公布;2:不公布) |
data.list[].genType | Integer | 组卷方式(1:人工组卷;2:随机组卷) |
data.list[].markType | Integer | 阅卷方式(1:客观题;2:主观题;) |
data.list[].sxes | Integer[] | 防作弊(1:试题乱序;2:选项乱序;) |
data.list[].anonState | Integer[] | 匿名阅卷(1:是;2:否) |
data.list[].limitMinute | Integer | 限制时长(分钟) |
data.list[].userNum | Integer | 用户数量 |
data.list[].markUserNum | Integer | 阅卷用户数量 |
考试发布:exam/publish
- 请求数据格式为json,请设置HTTP请求头:{ Content-Type: application/json }
json
{
"id": null, // 考试ID(修改时用)
"name": "考试-2023-04-01",// 考试名称
"loginType": 1,// 登录方式(1:正常登录;2:免登录;)
"paperName": "试卷-2023-04-01",// 试卷试卷名称
"genType": 1, // 组卷方式(1:人工组卷;2:随机组卷)
"passScore": 14,// 及格分数
"sxes": [2, 1],// genType == 1有效
"scoreState": 3,// 成绩查询状态(1:考试结束后;2:不公布;3:交卷后)
"rankState": 1,// 排名状态(1:公布;2:不公布)
"examQuestions": [{// genType == 1有效(固定组卷)
"type": 1,// 类型 (1:章节;2:试题)
"chapterName": "单选题",// 章节名称
"chapterTxt": ""// 章节描述(非必填)
}, {
"type": 2,// 类型 (1:章节;2:试题) 试题数据格式参考question/add接口
"questionType": 1,// 试题类型(1:单选;2:多选;3:填空;4:判断;5:问答)
"markType": 1,// 阅卷类型(1:客观题;2:主观题)
"title": "这是一道单选题的题干,简单写法",// 题干
"imgFileIds": [21994],// 图片(V5.2.0新增)
"score": 1,// 分数
"answers": ["B"],// 答案
"scores": [],// 分数(非必填,默认为1分)
"options": ["单选题的A选项", "单选题的B选项", "单选题的C选项", "单选题的D选项"],// 选项
},],
"examRules": [{// genType == 1有效(随机组卷)
"type": 1,// 类型 (1:章节;2:试题)
"chapterName": "单选题",// 章节名称
"chapterTxt": ""// 章节描述
}, {
"type": 2,// 类型 (1:章节;2:试题)
"questionBankId": 5,// 题库ID
"questionType": 1,// 试题类型(1:单选;2:多选;3:填空;4:判断;5:问答)
"markType": 1,// 阅卷类型(1:客观题;2:主观题),1有效
"markOptions": [],// 阅卷选项(2:答案无顺序;3:不分大小写;) questionType == 3,23有效;questionType == 5,3有效
"num": 10,// 题数
"score": 1,// 分数
"scores": []// questionType == 2有效,漏选分数
}],
"userIds": [1229, 1228, 1193, 1201, 1209],// 用户IDS
"orgIds": [3, 69],// 机构IDS
"makrUser": [3, 69],// 阅卷用户IDS
"totalScore": 24,// 总分
"markType": 2,// 阅卷类型(1:客观题;2:主观题)
"startTime": "2023-04-01 08:00:00",// 考试开始时间
"endTime": "2023-04-01 10:00:00",// 考试结束时间
"markStartTime": "2023-04-01 14:00:00",// 阅卷开始时间
"markEndTime": "2023-04-01 18:00:00",// 阅卷结束时间
"limitMinute": 60 // 限制分钟(考试开始时间由用户第一次打开试卷时计时))
}
响应参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
msg | String | 响应消息 |
data | String | 进度条ID。建议每隔1秒请求一次,获取进度参考:progressBar/get |
考试试卷:exam/paper
请求参数 | 类型 | 描述 |
---|---|---|
id | Integer | 主键 |
响应参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
msg | String | 响应消息 |
data.id | Integer | 主键 |
data.name | String | 考试名称 |
data.paperName | String | 试卷名称 |
data.markType | Integer | 阅卷类型 |
data.startTime | Date | 考试开始时间 |
data.endTime | Date | 考试结束时间 |
data.markStartTime | Date | 阅卷开始时间 |
data.markEndTime | Date | 阅卷结束时间 |
data.genType | Integer | 组卷方式(1:人工组卷;2:随机组卷) |
data.showType | Integer | 展示方式(1:整卷展示;3:单题展示;)暂无用 |
data.loginType | Integer | 登录方式(1:正常登录;2:免登录;) |
data.passScore | Integer | 及格分数 |
data.anonState | Integer | 匿名阅卷状态(1:是;2:否) |
data.scoreState | Integer | 成绩查询状态(1:考试结束后;2:不公布;3:交卷后) |
data.rankState | Integer | 排名状态(1:公布;2:不公布) |
data.sxes | Integer[] | 防作弊(1:试题乱序;2:选项乱序;) |
data.examQuestions | Object[] | 参考 exam/publish 接口 |
data.examRules | Object[] | 参考 exam/publish 接口 |
data.examUserIds | Integer[] | 考试用户IDS |
data.limitMinute | Integer | 限制分钟(考试开始时间由用户第一次打开试卷时计时,如果为0表示考试时间内不限时) |
考试用户:exam/user(V5.3.0新增)
请求参数 | 类型 | 描述 |
---|---|---|
id | Integer | 主键 |
响应参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
msg | String | 响应消息 |
data[].userId | Integer | 考试用户ID |
data[].answerState | Integer | 及格状态 |
考试删除:exam/del
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键 | 是 |
考试获取:exam/get
请求参数 | 类型 | 描述 |
---|---|---|
id | Integer | 主键 |
响应参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
msg | String | 响应消息 |
data.id | Integer | 主键 |
data.name | String | 考试名称 |
data.paperName | String | 试卷名称 |
data.startTime | Date | 考试开始时间 |
data.endTime | Date | 考试结束时间 |
data.markStartTime | Date | 阅卷开始时间 |
data.markEndTime | Date | 阅卷结束时间 |
data.markState | Integer | 阅卷状态(1:未阅卷;2:阅卷中;3:已阅卷;) |
data.scoreState | Integer | 成绩查询状态(1:考试结束后;2:不公布;3:交卷后) |
data.rankState | Integer | 排名状态(1:公布;2:不公布) |
data.anonState | Integer | 匿名阅卷状态(1:是;2:否) |
data.passScore | Double | 及格分数 |
data.totalScore | Double | 总分数 |
data.markType | Integer | 阅卷方式(1:客观题;2:主观题;) |
data.loginType | Integer | 登录方式(1:正常登录;2:免登录;) |
data.genType | Integer | 组卷方式(1:人工组卷;2:随机组卷) |
data.sxes | Integer[] | 防作弊(1:试题乱序;2:选项乱序;) |
data.state | Integer | 状态(0:删除;1:发布;) |
data.userNum | Integer | 考试人数 |
data.limitMinute | Integer | 限制时长(分钟) |
考试获取:exam/examGet(V5.2.0新增)
请求参数 | 类型 | 描述 |
---|---|---|
name | String | 用于免登录考试 |
响应参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
msg | String | 响应消息 |
data.id | Integer | 主键 |
data.name | String | 考试名称 |
data.loginType | Integer | 登录方式(1:正常登录;2:免登录;) |
data.startTime | Date | 开始时间 |
data.endTime | Date | 结束时间 |
考试变更时间:exam/time
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键 | 是 |
timeType | Integer | 状态 【1:考试开始时间;2:考试结束时间;3:阅卷开始时间;4:阅卷结束时间】 | 是 |
minute | Integer | 分钟数(提前用负数、延后用整数) | 是 |
考试暂停:exam/pause
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键,如果正常则变更为冻结;如果冻结则变更为正常 | 是 |
考试用户添加:exam/userAdd(V5.2.0新增)
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键 | 是 |
orgIds | Integer[] | 机构IDS | 否 |
userIds | Integer[] | 用户IDS | 否 |
考试成绩状态:exam/score
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键,如果正常则变更为冻结;如果冻结则变更为正常 | 是 |
scoreState | Integer | 成绩状态(1:考试结束后;2:不公布;3:交卷后) | 是 |
考试排名状态:exam/rank
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键,如果正常则变更为冻结;如果冻结则变更为正常 | 是 |
rankState | Integer | 排名状态(1:公布;2:不公布) | 是 |
考试阅卷协助:exam/assist
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键 | 是 |
markUserIds | Integer[] | 阅卷用户IDS,角色为阅卷用户 |
考试阅卷用户列表:exam/markUserList
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键 | 是 |
响应参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
msg | String | 响应消息 |
data[] | Object[] | 任意数组 |
data[].id | Integer | 考试名称 |
data[].name | String | 试卷名称 |
练习(V5.4.0重新实现)
提示消息
管理员可以看所有练习;子管理员可以看自己创建的练习,考试用户可以看(管理或子管理)分配给自己的;阅卷用户无权限;
练习列表:exer/listpage
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
name | String (16) | 名称 | 否 |
questionBankId | Integer | 题库ID | 否 |
state | Integer | 状态(1:发布;2:暂停) | 否 |
curPage | Integer | 当前第几页 | 否 |
pageSize | Integer | 每页多少条 | 否 |
响应参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
msg | String | 响应消息 |
data.total | Integer | 总行数 |
data.list[] | Object[] | 分页列表 |
data.list[].id | Integer | 主键 |
data.list[].name | String | 名称 |
data.list[].userIds | Integer[] | 练习用户IDS(管理员和子管理员查询有效) |
data.list[].orgIds | Integer[] | 练习机构IDS(管理员和子管理员查询有效) |
data.list[].state | Integer | 状态(1:发布;2:暂停) |
data.list[].updateTime | Date | 更新时间 |
data.list[].createUserName | String | 创建用户名称 |
data.list[].questionBankId | Integer | 题库ID(用于创建练习选择题库的时候,已存在的不可选) |
data.list[].questionBankName | String | 题库名称 |
练习添加:exer/add
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
name | String | 练习名称 | 是 |
questionBankId | Integer | 题库ID | 是 |
orgIds | Integer[] | 练习机构IDS | 否 |
userIds | Integer[] | 练习用户IDS | 否 |
练习添加:exer/edit
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 练习ID | 是 |
name | String | 练习名称 | 是 |
questionBankId | Integer | 题库ID | 是 |
orgIds | Integer[] | 练习机构IDS | 否 |
userIds | Integer[] | 练习用户IDS | 否 |
练习列表:exer/get
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键 | 是 |
响应参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
msg | String | 响应消息 |
data.id | Integer | 总行数 |
data.name | Object[] | 分页列表 |
data.questionBankId | Integer | 题库ID |
data.questionBankName | String | 题库名称 |
data.orgIds | Integer[] | 机构IDS |
data.userIds | Integer[] | 用户IDS |
data.state | Integer | 状态(1:发布;2:暂停) |
练习列表:exer/state
请求参数 | 类型 | 描述 | 必填 |
---|---|---|---|
id | Integer | 主键,如果发布则变为暂停,如果暂停则变为发布。 | 是 |
响应参数 | 类型 | 描述 |
---|---|---|
code | Integer | 响应码 |
msg | String | 响应消息 |