瀏覽代碼

Merge branch 'bug-branch' of chchen/exercise into master

0819中午上线
chchen 5 年之前
父節點
當前提交
278055c6b8

+ 1 - 1
ssj-kmt-exercise-service-impl/src/main/java/com/ssj/service/kmt/kmt/service/impl/KmtExerciseServiceImpl.java

@@ -729,7 +729,7 @@ public class KmtExerciseServiceImpl implements KmtExerciseService {
     private void updateRollbackKmtExerciseBookFinishStatus (int questionCount, KmtExerciseBook exerciseBook, int fromType, int toType){
         int count = 0;
         //题目加工
-        if (! this.isHandled(exerciseBook, fromType)){
+        if (!this.isHandled(exerciseBook, fromType)){
             count = kmtExerciseMapper.countUnFinishQuestionsByExerciseBookId(exerciseBook.getId(), fromType);
             if (count <= questionCount){
                 this.setExerciseAuthField(exerciseBook, fromType, 1);

+ 38 - 1
ssj-kmt-exercise-service-impl/src/main/java/com/ssj/service/kmt/kmt/service/impl/KmtExerciseSubmitServiceImpl.java

@@ -109,7 +109,8 @@ public class KmtExerciseSubmitServiceImpl implements KmtExerciseSubmitService {
         List<String> questionIds = request.getQuestions().stream().map(QuestionUpdateRequest::getQuestionId).collect(Collectors.toList());
 
         //更新练习册
-        this.updateKmtExerciseBookFinishStatus(questions.size(), book, request.getType());
+        int questionCount = getQuestionStatusCount(questions, request.getType());
+        this.updateKmtExerciseBookFinishStatus(questionCount, book, request.getType());
         kmtExerciseMapper.updateKmtExerciseBookHandleStatus(book);
 
         //更新题目
@@ -143,6 +144,42 @@ public class KmtExerciseSubmitServiceImpl implements KmtExerciseSubmitService {
 
     }
 
+    /**
+     * 获取更新的题目的当前状态下的题数
+     * @param questions
+     * @param type
+     * @return
+     */
+    private int getQuestionStatusCount (List<KmtExerciseQuestion> questions, int type){
+        int result = 0;
+        if (type == 0){
+            for (KmtExerciseQuestion q :questions){
+                if (q.getDealStatus() == 0 || q.getDealStatus() == 1) {
+                    result += 1;
+                }
+            }
+        } else if (type == 1){
+            for (KmtExerciseQuestion q :questions){
+                if (q.getDealStatus() == 3 || q.getDealStatus() == 7) {
+                    result += 1;
+                }
+            }
+        } else if (type == 4){
+            for (KmtExerciseQuestion q :questions){
+                if (q.getDealStatus() == 5 || q.getDealStatus() == 8) {
+                    result += 1;
+                }
+            }
+        } else if (type == 5){
+            for (KmtExerciseQuestion q :questions){
+                if (q.getDealStatus() == 9 || q.getDealStatus() == 10) {
+                    result += 1;
+                }
+            }
+        }
+        return result;
+    }
+
     @Override
     @Transactional(propagation = Propagation.NOT_SUPPORTED)
     public void updateEsQuestionAndKnow (List<KmtExerciseQuestion> questions, List<String> questionIds){

+ 2 - 1
ssj-kmt-exercise-service/src/main/java/com/ssj/service/kmt/exercisesys/enums/ExerciseBookHalfBookEnum.java

@@ -6,7 +6,8 @@ public enum ExerciseBookHalfBookEnum {
 
     WholeBook(0, "整本"),
     FirstHalf(1, "上半"),
-    SecondHalf(2, "下半");
+    SecondHalf(2, "下半"),
+    DifferentBook(3, "不同");
 
     private Integer code;
     private String description;

+ 4 - 4
ssj-mybatis-service-impl/src/main/resources/mybatis/mapper/KmtExerciseMapper.xml

@@ -112,16 +112,16 @@
         from kmt_exercise_questions eq  left join kmt_exercise_book eb on eq.exercise_book_id=eb.id
         where eq.book_course_id = #{bookCourseId} and (eq.exercise_book_id=#{exerciseBookId} or eq.is_common_flag = 0)
         <if test = "dealType == 2">
-            and eq.deal_status in (3, 7)
+            and eq.deal_status in (3, 7) and eb.auditing_user_id=#{userId}
         </if>
         <if test = "dealType == 1">
-            and eq.deal_status &lt; 2
+            and eq.deal_status &lt; 2 and eb.handle_user_id=#{userId}
         </if>
         <if test = "dealType == 4">
-            and eq.deal_status in (5, 8)
+            and eq.deal_status in (5, 8) and eb.analysis_user_id=#{userId}
         </if>
         <if test = "dealType == 5">
-            and eq.deal_status in (9, 10)
+            and eq.deal_status in (9, 10) and eb.analysis_auditer_id = #{userId}
         </if>
         <if test = "dealType == 6">
             and eq.deal_status >= 4 and eq.deal_status != 7 and eb.answer_correcter_id=#{userId} and eq.proofread_status = 0