3.16 客观题作业批改
客观题包括选择题和判断题,这两类题目没有提交按钮,点击后选项后就提交。
以post方式提交到chapterQuizStudySaving,提交的数据有
username,当前登录者
quizId,当前做的题目的id
answer,答题者的答卷
接下来的后台逻辑为:
1. 新增或者更新一个chapter_quiz_study
这个表是记录某人做某道题目的记录,不涉及是否正确,它有以下字段

新记录或者要更新的记录的各字段:
student_id,用户提交的username
quiz_id,题目id,用户提交
answer,答题者的答案,用户提交
start_time忽略
end_time 当前时间,按照yyyy-MM-dd hh:mm:ss的格式
stat 状态码。1为未批改;2未已批改。
这里涉及到一个问题,就是题目已经做过,但是错了,现在要再做一次,所以后台并非每次都新增,先要查询是否已经存在此人做该题的记录,如果有,那么就直接修改已有记录:更新答案和时间,其余不变,否则就要新增一条记录。
这需要一个查询函数,根据student_id和quiz_id查询记录
2。 新增或者更新一个chapter_quiz_correct
这个表记录批改记录

teacher_id,当前批改者,固定为字符串"system"
chapter_quiz_study_id 对应的做题记录id
datetime 批改时间,按照yyyy-MM-dd hh:mm:ss的格式
stat 状态码。2为正确;1为错误
comment 评语。错误的时候写上“错误”,正确无需写入
score 得分。回答正确的时候,从quiz_id对应的题目里取得score值填入
3。如何判断回答正确
chapter_quiz表记录了题目的所有信息,其中有一个字段answer,就是该题目的标准答案,只需要取出chapter_quiz_study记录,然后对比该记录里面的answer和chapter_quiz的answer是否一致,就知道答案是否正确。
只有chapter_quiz表里面的type_id为2(选择题)或者5(判断题)的时候,才进行批改,其余类型的题目直接忽略。
Springboot的类的关联,对于这类比较方便,因为查询一个chapter_quiz_study得到的ChapterQuizStudy对象,就包含了对应的ChapterQuiz的值