浏览代码

新增修改

chen 5 年之前
父节点
当前提交
8c87815b20

+ 12 - 5
ssj-kmt-exercise-service-impl/src/main/java/com/ssj/service/kmt/kmt/service/impl/KmtExerciseQuestionDealServiceImpl.java

@@ -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;
     }