Przeglądaj źródła

编辑大题号功能

chen 5 lat temu
rodzic
commit
f5b85318c1

+ 30 - 6
ssj-kmt-exercise-service-impl/src/main/java/com/ssj/service/kmt/kmt/service/impl/KmtExerciseQuestionDealServiceImpl.java

@@ -83,13 +83,37 @@ public class KmtExerciseQuestionDealServiceImpl implements KmtExerciseQuestionDe
                 }
             } else {
                 KmtExerciseQuestion kmtExerciseQuestion = kmtExerciseQuestionService.getById(request.getQuestionId());
-                if (!kmtExerciseQuestion.getBigQuestionIndex().equals(request.getBigQuestionIndex())){
-                    return responseEntity.failure(ResponseConstant.CODE_000, "大题号不能修改");
+                if (kmtExerciseQuestion.getQuestionClassType() == 2){
+                    if (!kmtExerciseQuestion.getBigQuestionIndex().equals(request.getBigQuestionIndex())){
+                        return responseEntity.failure(ResponseConstant.CODE_000, "大题号不能修改");
+                    }
+                    kmtExerciseMapper.updateQuestionEditData(request, questionImage, answerImage);
+                    saveJSONFile(kmtExerciseQuestion, request, questionImage);
+                    ThreadPool.getInstance().addTask(new SyncSaveExerciseQuestionsTask(kmtExerciseMapper, exerciseQuestionSearchService,
+                            Collections.singletonList(kmtExerciseQuestion.getId())));
+                } else {
+                    if (!kmtExerciseQuestion.getBigQuestionIndex().equals(request.getBigQuestionIndex())){
+                        //如果大题号不同,判断当前课时的大题号是否存在,存在的话不能修改
+                        String bigQuestionIndex = kmtExerciseMapper.findBigQuestionIndexByBookCourseId(kmtExerciseQuestion.getBookCourseId(), request.getBigQuestionIndex());
+                        if (StringUtil.isNotBlank(bigQuestionIndex)){
+                            return responseEntity.failure(ResponseConstant.CODE_000, "当前课时已存在该大题号,修改失败");
+                        }
+                    }
+                    //修改大题以及小题的题号
+                    kmtExerciseMapper.updateQuestionEditData(request, questionImage, answerImage);
+                    saveJSONFile(kmtExerciseQuestion, request, questionImage);
+                    if (kmtExerciseQuestion.getQuestionClassType() == 0){
+                        //单题
+                        ThreadPool.getInstance().addTask(new SyncSaveExerciseQuestionsTask(kmtExerciseMapper, exerciseQuestionSearchService,
+                                Collections.singletonList(kmtExerciseQuestion.getId())));
+                    } else {
+                        //存在小题
+                        kmtExerciseMapper.updateBigQuestionIndexByParentId(request.getBigQuestionIndex(), kmtExerciseQuestion.getId());
+                        ThreadPool.getInstance().addTask(new SyncSaveExerciseBookCourseTask(kmtExerciseMapper, exerciseQuestionSearchService,
+                                kmtExerciseQuestion.getBookCourseId()));
+                    }
+
                 }
-                kmtExerciseMapper.updateQuestionEditData(request, questionImage, answerImage);
-                saveJSONFile(kmtExerciseQuestion, request, questionImage);
-                ThreadPool.getInstance().addTask(new SyncSaveExerciseQuestionsTask(kmtExerciseMapper, exerciseQuestionSearchService,
-                        Collections.singletonList(kmtExerciseQuestion.getId())));
             }
             return responseEntity.success("成功");
         } else {

+ 5 - 1
ssj-mybatis-service-impl/src/main/java/com/ssj/service/mapper/KmtExerciseMapper.java

@@ -1147,7 +1147,7 @@ public interface KmtExerciseMapper {
                                                        @Param("questionClassType")int questionClassType,
                                                        @Param("id")String id);
 
-    @Update("update kmt_exercise_questions set small_question_name=#{req.smallQuestionIndex}, image=#{questionImage}, " +
+    @Update("update kmt_exercise_questions set big_question_index=#{req.bigQuestionIndex} small_question_name=#{req.smallQuestionIndex}, image=#{questionImage}, " +
             " answer_image=#{answerImage}, deal_status =3" +
             " where id=#{req.questionId}")
     int updateQuestionEditData (@Param("req") AddExerciseQuestionRequest req,
@@ -1197,4 +1197,8 @@ public interface KmtExerciseMapper {
 
     @Select("select * from kmt_exercise_questions where book_id=#{bookId} limit 2000")
     List<KmtExerciseQuestion> findByBookId (@Param("bookId") String bookId);
+
+    @Update("update kmt_exercise_questions set big_question_index=#{bigQuestionIndex} where parent_id=#{parentId}")
+    int updateBigQuestionIndexByParentId (@Param("bigQuestionIndex") String bigQuestionIndex,
+                                          @Param("parentId") String parentId);
 }