|
@@ -86,7 +86,7 @@ public class OnlineExamThread implements Runnable {
|
|
|
|
|
|
public static final String FILTER = "filter";
|
|
public static final String FILTER = "filter";
|
|
|
|
|
|
- public OnlineExamThread(DataSync dataSync, String host, LockService lockService, DataSyncService dataSyncService,
|
|
|
|
|
|
+ public OnlineExamThread(DataSync dataSync, LockService lockService, DataSyncService dataSyncService,
|
|
ExamService examService, ExamStudentService studentService, ExamSubjectService subjectService,
|
|
ExamService examService, ExamStudentService studentService, ExamSubjectService subjectService,
|
|
ExamQuestionService questionService, MarkGroupService groupService, FileService fileService) {
|
|
ExamQuestionService questionService, MarkGroupService groupService, FileService fileService) {
|
|
this.dataSync = dataSync;
|
|
this.dataSync = dataSync;
|
|
@@ -98,9 +98,9 @@ public class OnlineExamThread implements Runnable {
|
|
this.questionService = questionService;
|
|
this.questionService = questionService;
|
|
this.groupService = groupService;
|
|
this.groupService = groupService;
|
|
this.fileService = fileService;
|
|
this.fileService = fileService;
|
|
- this.studentHttp = new OnlineExamHttpUtil(dataSync.getAccessKey(), dataSync.getAccessSecret(), host,
|
|
|
|
|
|
+ this.studentHttp = new OnlineExamHttpUtil(dataSync.getAccessKey(), dataSync.getAccessSecret(),
|
|
dataSync.getStudentUrl());
|
|
dataSync.getStudentUrl());
|
|
- this.subjectPaperHttp = new OnlineExamHttpUtil(dataSync.getAccessKey(), dataSync.getAccessSecret(), host,
|
|
|
|
|
|
+ this.subjectPaperHttp = new OnlineExamHttpUtil(dataSync.getAccessKey(), dataSync.getAccessSecret(),
|
|
dataSync.getSubjectPaperUrl());
|
|
dataSync.getSubjectPaperUrl());
|
|
}
|
|
}
|
|
|
|
|
|
@@ -145,7 +145,7 @@ public class OnlineExamThread implements Runnable {
|
|
datas.put(FILTER, "subjective");
|
|
datas.put(FILTER, "subjective");
|
|
String paperResult = subjectPaperHttp.httpAction(null, datas);
|
|
String paperResult = subjectPaperHttp.httpAction(null, datas);
|
|
JSONObject paperJson = JSONObject.fromObject(paperResult);
|
|
JSONObject paperJson = JSONObject.fromObject(paperResult);
|
|
- String subjectCode = paperJson.getString("paperId");
|
|
|
|
|
|
+ String subjectCode = paperJson.getString(ID);
|
|
String paper = paperJson.getString("details");
|
|
String paper = paperJson.getString("details");
|
|
byte[] paperData = paper.getBytes(StandardCharsets.UTF_8);
|
|
byte[] paperData = paper.getBytes(StandardCharsets.UTF_8);
|
|
fileService.uploadPaper(new ByteArrayInputStream(paperData), BinaryUtil.encodeMD5(paperData),
|
|
fileService.uploadPaper(new ByteArrayInputStream(paperData), BinaryUtil.encodeMD5(paperData),
|
|
@@ -160,6 +160,7 @@ public class OnlineExamThread implements Runnable {
|
|
byte[] jsonData = answerJson.getBytes(StandardCharsets.UTF_8);
|
|
byte[] jsonData = answerJson.getBytes(StandardCharsets.UTF_8);
|
|
fileService.uploadJson(new ByteArrayInputStream(jsonData), BinaryUtil.encodeMD5(jsonData),
|
|
fileService.uploadJson(new ByteArrayInputStream(jsonData), BinaryUtil.encodeMD5(jsonData),
|
|
exam.getId(), examStudent.getSecretNumber());
|
|
exam.getId(), examStudent.getSecretNumber());
|
|
|
|
+ studentService.save(examStudent);
|
|
subjectService.updateUploadCount(exam.getId(), subjectCode,
|
|
subjectService.updateUploadCount(exam.getId(), subjectCode,
|
|
(int) studentService.countUploadedByExamIdAndSubjectCode(exam.getId(), subjectCode));
|
|
(int) studentService.countUploadedByExamIdAndSubjectCode(exam.getId(), subjectCode));
|
|
}
|
|
}
|
|
@@ -246,7 +247,24 @@ public class OnlineExamThread implements Runnable {
|
|
JSONObject sub = qArray.getJSONObject(j);
|
|
JSONObject sub = qArray.getJSONObject(j);
|
|
JSONArray subJson = sub.getJSONArray("subQuestions");
|
|
JSONArray subJson = sub.getJSONArray("subQuestions");
|
|
if (!subJson.isEmpty()) {
|
|
if (!subJson.isEmpty()) {
|
|
-
|
|
|
|
|
|
+ for (int k = 0; k < subJson.size(); k++) {
|
|
|
|
+ JSONObject question = subJson.getJSONObject(j);
|
|
|
|
+ ExamQuestion q = new ExamQuestion();
|
|
|
|
+ q.setExamId(examId);
|
|
|
|
+ q.setSubjectCode(subjectCode);
|
|
|
|
+ q.setPaperType("#");
|
|
|
|
+ q.setObjective(false);
|
|
|
|
+ q.setMainNumber(mainNumber);
|
|
|
|
+ String subNumber = sub.getString("number") + "_" + question.getString("number");
|
|
|
|
+ q.setSubNumber(subNumber);
|
|
|
|
+ q.setMainTitle(mainTitle);
|
|
|
|
+ q.setGroupNumber(1);
|
|
|
|
+ double score = question.getDouble("score");
|
|
|
|
+ q.setTotalScore(score);
|
|
|
|
+ q.setIntervalScore(0.5);
|
|
|
|
+ totalScore = totalScore + score;
|
|
|
|
+ list.add(q);
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
ExamQuestion q = new ExamQuestion();
|
|
ExamQuestion q = new ExamQuestion();
|
|
q.setExamId(examId);
|
|
q.setExamId(examId);
|
|
@@ -270,6 +288,8 @@ public class OnlineExamThread implements Runnable {
|
|
MarkGroup group = new MarkGroup(examId, subjectCode, 1, null, totalScore, 0d, null, null,
|
|
MarkGroup group = new MarkGroup(examId, subjectCode, 1, null, totalScore, 0d, null, null,
|
|
MarkMode.COMMON.toString(), 0, false, false, null);
|
|
MarkMode.COMMON.toString(), 0, false, false, null);
|
|
groupService.save(group);
|
|
groupService.save(group);
|
|
|
|
+ subjectService.updateScore(examId, subjectCode, false, totalScore);
|
|
|
|
+ ;
|
|
return subject;
|
|
return subject;
|
|
}
|
|
}
|
|
}
|
|
}
|