|
@@ -146,12 +146,7 @@ public class OnlineExamThread implements Runnable {
|
|
|
String paperResult = subjectPaperHttp.httpAction(null, datas);
|
|
|
JSONObject paperJson = JSONObject.fromObject(paperResult);
|
|
|
String subjectCode = paperJson.getString(ID);
|
|
|
- String paper = paperJson.getString("details");
|
|
|
- byte[] paperData = paper.getBytes(StandardCharsets.UTF_8);
|
|
|
- fileService.uploadPaper(new ByteArrayInputStream(paperData), BinaryUtil.encodeMD5(paperData),
|
|
|
- exam.getId(), subjectCode, FormatType.JSON);
|
|
|
- this.saveSubject(subjectMap, exam.getId(), subjectCode, subjectName,
|
|
|
- JSONArray.fromObject(paper));
|
|
|
+ this.saveSubject(subjectMap, exam.getId(), subjectCode, subjectName, paperResult);
|
|
|
// 保存考生数据
|
|
|
ExamStudent examStudent = getExamStudent(exam, student, subjectCode, record.getString(ID), now);
|
|
|
list.add(examStudent);
|
|
@@ -213,7 +208,7 @@ public class OnlineExamThread implements Runnable {
|
|
|
}
|
|
|
|
|
|
private ExamSubject saveSubject(Map<String, ExamSubject> subjectMap, Integer examId, String subjectCode,
|
|
|
- String subjectName, JSONArray questionArray) {
|
|
|
+ String subjectName, String paperResult) throws Exception {
|
|
|
ExamSubject subject = subjectMap.get(subjectCode);
|
|
|
if (subject != null) {
|
|
|
return subject;
|
|
@@ -223,6 +218,11 @@ public class OnlineExamThread implements Runnable {
|
|
|
subjectMap.put(subjectCode, subject);
|
|
|
return subject;
|
|
|
}
|
|
|
+ //保存paperjson
|
|
|
+ byte[] paperData = paperResult.getBytes(StandardCharsets.UTF_8);
|
|
|
+ fileService.uploadPaper(new ByteArrayInputStream(paperData), BinaryUtil.encodeMD5(paperData), examId,
|
|
|
+ subjectCode, FormatType.JSON);
|
|
|
+ //保存subject
|
|
|
subject = new ExamSubject();
|
|
|
subject.setExamId(examId);
|
|
|
subject.setCode(subjectCode);
|
|
@@ -235,7 +235,9 @@ public class OnlineExamThread implements Runnable {
|
|
|
subject.setUploadCount(0);
|
|
|
subjectService.save(subject);
|
|
|
subjectMap.put(subjectCode, subject);
|
|
|
-
|
|
|
+ //保存question
|
|
|
+ JSONObject paperJson = JSONObject.fromObject(paperResult);
|
|
|
+ JSONArray questionArray = JSONArray.fromObject(paperJson.getString("details"));
|
|
|
double totalScore = 0d;
|
|
|
List<ExamQuestion> list = new ArrayList<>();
|
|
|
for (int i = 0; i < questionArray.size(); i++) {
|
|
@@ -245,8 +247,8 @@ public class OnlineExamThread implements Runnable {
|
|
|
JSONArray qArray = questionJson.getJSONArray("questions");
|
|
|
for (int j = 0; j < qArray.size(); j++) {
|
|
|
JSONObject sub = qArray.getJSONObject(j);
|
|
|
- JSONArray subJson = sub.getJSONArray("subQuestions");
|
|
|
- if (!subJson.isEmpty()) {
|
|
|
+ if (!sub.getJSONObject("subQuestions").isNullObject()) {
|
|
|
+ JSONArray subJson = sub.getJSONArray("subQuestions");
|
|
|
for (int k = 0; k < subJson.size(); k++) {
|
|
|
JSONObject question = subJson.getJSONObject(j);
|
|
|
ExamQuestion q = new ExamQuestion();
|
|
@@ -285,11 +287,12 @@ public class OnlineExamThread implements Runnable {
|
|
|
}
|
|
|
}
|
|
|
questionService.save(list);
|
|
|
+ //保存group
|
|
|
MarkGroup group = new MarkGroup(examId, subjectCode, 1, null, totalScore, 0d, null, null,
|
|
|
MarkMode.COMMON.toString(), 0, false, false, null);
|
|
|
groupService.save(group);
|
|
|
+
|
|
|
subjectService.updateScore(examId, subjectCode, false, totalScore);
|
|
|
- ;
|
|
|
return subject;
|
|
|
}
|
|
|
}
|