|
@@ -65,12 +65,14 @@ public class KmtExerciseQuestionDealServiceImpl implements KmtExerciseQuestionDe
|
|
|
KmtExerciseQuestion nextQuestion = kmtExerciseMapper.findByBookIdAndNum(book.getBookId(), request.getNum());
|
|
|
//新增小题
|
|
|
if (request.getQuestionClassType() == 2){
|
|
|
- saveQuestion(book, request, nextQuestion, questionImage, answerImage);
|
|
|
+ KmtExerciseQuestion newQuestion = saveQuestion(book, request, nextQuestion, questionImage, answerImage);
|
|
|
+ saveJSONFileAndEs(newQuestion, request, questionImage);
|
|
|
} else {
|
|
|
//新增大题, 如果已存在当前大题号,则报错
|
|
|
String bqi = kmtExerciseMapper.findBigQuestionIndexByBookCourseId(nextQuestion.getBookCourseId(), request.getBigQuestionIndex());
|
|
|
if (StringUtil.isBlank(bqi)){
|
|
|
- saveQuestion(book, request, nextQuestion, questionImage, answerImage);
|
|
|
+ KmtExerciseQuestion newQuestion = saveQuestion(book, request, nextQuestion, questionImage, answerImage);
|
|
|
+ saveJSONFileAndEs(newQuestion, request, questionImage);
|
|
|
} else {
|
|
|
responseEntity.failure(ResponseConstant.CODE_000, "已存在大题号,请在大题号下直接添加小题");
|
|
|
}
|
|
@@ -97,7 +99,12 @@ public class KmtExerciseQuestionDealServiceImpl implements KmtExerciseQuestionDe
|
|
|
*/
|
|
|
private void saveJSONFileAndEs (KmtExerciseQuestion kmtExerciseQuestion, AddExerciseQuestionRequest request, String questionImage){
|
|
|
String content = JSONFileUtil.readJSONFile(PropertiesUtil.getValue("EXERCISE_JSON_FILE_PATH") + kmtExerciseQuestion.getQuestionPath());
|
|
|
- Map<String, String> map = JSON.parseObject(content, Map.class);
|
|
|
+ Map<String, String> map = null;
|
|
|
+ if (StringUtil.isBlank(content)){
|
|
|
+ map = new HashMap<>();
|
|
|
+ } else {
|
|
|
+ map = JSON.parseObject(content, Map.class);
|
|
|
+ }
|
|
|
map.put("question", request.getQuestion());
|
|
|
map.put("question_text", request.getQuestionText());
|
|
|
map.put("question_json", JSON.toJSONString(Collections.singletonList(ExerciseUtil.getExerciseQuestionAnswerValue(questionImage))));
|
|
@@ -139,7 +146,7 @@ public class KmtExerciseQuestionDealServiceImpl implements KmtExerciseQuestionDe
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- private void saveQuestion(KmtExerciseBook book,AddExerciseQuestionRequest request, KmtExerciseQuestion nextQuestion, String questionImage, String answerImage){
|
|
|
+ private KmtExerciseQuestion saveQuestion(KmtExerciseBook book,AddExerciseQuestionRequest request, KmtExerciseQuestion nextQuestion, String questionImage, String answerImage){
|
|
|
kmtExerciseMapper.updateQuestionNumByBookIdAndNum(book.getBookId(), request.getNum());
|
|
|
KmtExerciseQuestion kmtExerciseQuestion = new KmtExerciseQuestion();
|
|
|
String newQuestionId = IdWorker.generateId();
|
|
@@ -175,7 +182,7 @@ public class KmtExerciseQuestionDealServiceImpl implements KmtExerciseQuestionDe
|
|
|
kmtExerciseQuestion.setHandlerSubmitTime(DateUtil.parse_yyyyMMddHHmmss("1970-01-01 00:00:01"));
|
|
|
kmtExerciseQuestion.setQuestionPath(nextQuestion.getQuestionPath().substring(0, nextQuestion.getQuestionPath().lastIndexOf("/")) + newQuestionId + ".json");
|
|
|
kmtExerciseQuestionService.save(kmtExerciseQuestion);
|
|
|
- saveJSONFileAndEs(kmtExerciseQuestion, request, questionImage);
|
|
|
+ return kmtExerciseQuestion;
|
|
|
}
|
|
|
|
|
|
|