浏览代码

Merge branch 'master' into bug-branch

chen 5 年之前
父节点
当前提交
0c25dad83a

+ 13 - 3
ssj-kmt-exercise-service-impl/src/main/java/com/ssj/service/kmt/kmt/service/impl/KmtExerciseSubmitServiceImpl.java

@@ -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) {

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

@@ -23,7 +23,7 @@ public interface KmtExerciseSubmitService {
      * @param book
      * @param request
      */
-    void updateBookAndQuestionsAndKnow(List<KmtExerciseQuestion> questions, KmtExerciseBook book, AuditingV1Request request);
+    void updateBookAndQuestionsAndKnow(List<KmtExerciseQuestion> questions, KmtExerciseBook book, AuditingV1Request request,Boolean isAnswerCorrectSubmit);
 
     /**
      * 数据同步es

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

@@ -1468,7 +1468,7 @@
         <if test="req.proofreadDate != null and req.proofreadDate != ''">
             and date(t1.latest_answer_wrong_date_time) = #{req.proofreadDate}
         </if>
-        order by t1.proofread_status
+        order by t1.proofread_status,t1.latest_answer_wrong_date_time desc
     </select>
 
     <select id="findQuestionListAnswerWrong" resultType="com.ssj.service.kmt.dto.ExerciseQuetionDto">