|
@@ -81,6 +81,7 @@ public class KmtExerciseSubmitServiceImpl implements KmtExerciseSubmitService {
|
|
|
kmtExerciseService.appendQuestionDataFromJSONFile(questions); //读文件,把题目信息加载到实体中
|
|
|
KmtExerciseBook book = kmtExerciseMapper.findExerciseBookById(questions.get(0).getExerciseBookId());
|
|
|
this.appendUser2QuestionBean(questions, book); //把加工审核人,校对人加载到实体中
|
|
|
+ boolean isAnswerCorrectSubmit = isAnswerCorrectSubmit(request.getType()); //是否是校对修改提交
|
|
|
boolean isManagerSubmit = isManagerSubmit(userId, request.getType()); //是否是管理员提交
|
|
|
request.setType(isManagerSubmit ? 3 : request.getType()); //管理员提交修改为3, 管理员修改不改变题目的状态
|
|
|
|
|
@@ -90,7 +91,7 @@ public class KmtExerciseSubmitServiceImpl implements KmtExerciseSubmitService {
|
|
|
return responseEntity.failure(ResponseConstant.CODE_000, "请添加知识点");
|
|
|
} else {
|
|
|
//走事务保存练习册,题目,知识点
|
|
|
- this.updateBookAndQuestionsAndKnow(questions, book, request);
|
|
|
+ this.updateBookAndQuestionsAndKnow(questions, book, request,isAnswerCorrectSubmit);
|
|
|
// 异步刷新练习册加工状态和题目状态统计
|
|
|
ThreadPool.getInstance().addTask(new SyncRefreshExerciseBookStatusTask(Collections.singletonList(questions.get(0).getExerciseBookId()), 2));
|
|
|
//数据同步es
|
|
@@ -104,8 +105,7 @@ public class KmtExerciseSubmitServiceImpl implements KmtExerciseSubmitService {
|
|
|
|
|
|
@Override
|
|
|
@Transactional(propagation = Propagation.REQUIRED)
|
|
|
- public void updateBookAndQuestionsAndKnow (List<KmtExerciseQuestion> questions, KmtExerciseBook book, AuditingV1Request request){
|
|
|
- boolean isAnswerCorrectSubmit = isAnswerCorrectSubmit(request.getType()); //是否是校对修改提交
|
|
|
+ public void updateBookAndQuestionsAndKnow (List<KmtExerciseQuestion> questions, KmtExerciseBook book, AuditingV1Request request,Boolean isAnswerCorrectSubmit){
|
|
|
List<String> questionIds = request.getQuestions().stream().map(QuestionUpdateRequest::getQuestionId).collect(Collectors.toList());
|
|
|
|
|
|
//更新练习册
|
|
@@ -141,6 +141,7 @@ public class KmtExerciseSubmitServiceImpl implements KmtExerciseSubmitService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -415,6 +416,15 @@ public class KmtExerciseSubmitServiceImpl implements KmtExerciseSubmitService {
|
|
|
//解析加工或解析审核
|
|
|
if (isAnswerCorrectSubmit) {
|
|
|
this.updateProofreadStatusSubmit(questions, questionUpdateRequests);
|
|
|
+ String exerciseBookId = questions.get(0).getExerciseBookId();
|
|
|
+ // 如果已经没有需要修改答案的题目,则修改练习册的校对状态为已修改
|
|
|
+ List<String> questionIds = questionUpdateRequests.stream().map(QuestionUpdateRequest::getQuestionId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ int count = kmtExerciseMapper.countAnswerWrongQuestion(exerciseBookId, new HashSet<>(questionIds));
|
|
|
+ if (count < 1) {
|
|
|
+ kmtExerciseMapper.updateKmtExerciseBookProofreadStatus(exerciseBookId, ProofreadStatusEnum.ManagerModified.getCode());
|
|
|
+ }
|
|
|
+
|
|
|
} else if (type == 0) {
|
|
|
this.updateHandlerQuestions(questions, questionUpdateRequests);
|
|
|
} else if (type == 1) {
|