Эх сурвалжийг харах

Merge branch 'dev_v5.0.1' of http://git.qmth.com.cn/examcloud-backend/examcloud-core-questions.git into dev_v5.0.1

xiatian 2 жил өмнө
parent
commit
cc7178be87

+ 23 - 54
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExtractConfigProviderServiceImpl.java

@@ -1,63 +1,37 @@
 package cn.com.qmth.examcloud.core.questions.service.impl;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Example;
-import org.springframework.stereotype.Service;
-
 import cn.com.qmth.examcloud.commons.exception.StatusException;
 import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.Model;
 import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
-import cn.com.qmth.examcloud.core.questions.dao.AudioTimeConfigRepo;
-import cn.com.qmth.examcloud.core.questions.dao.PaperDetailRepo;
-import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
-import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
-import cn.com.qmth.examcloud.core.questions.dao.QuesRepo;
-import cn.com.qmth.examcloud.core.questions.dao.entity.AudioTimeConfig;
-import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
-import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
-import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
-import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetail;
-import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
-import cn.com.qmth.examcloud.core.questions.dao.entity.QuesOption;
-import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
-import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionAudio;
-import cn.com.qmth.examcloud.core.questions.service.ExtractConfigProviderService;
-import cn.com.qmth.examcloud.core.questions.service.ExtractConfigService;
-import cn.com.qmth.examcloud.core.questions.service.PaperService;
-import cn.com.qmth.examcloud.core.questions.service.QuesService;
-import cn.com.qmth.examcloud.core.questions.service.QuestionAudioService;
+import cn.com.qmth.examcloud.core.questions.dao.*;
+import cn.com.qmth.examcloud.core.questions.dao.entity.*;
+import cn.com.qmth.examcloud.core.questions.service.*;
 import cn.com.qmth.examcloud.core.questions.service.bean.QuestionAnswerConvert;
 import cn.com.qmth.examcloud.core.questions.service.bean.extract.ExtractConfigPaper;
 import cn.com.qmth.examcloud.question.commons.core.paper.DefaultPaper;
 import cn.com.qmth.examcloud.question.commons.core.paper.DefaultQuestionGroup;
 import cn.com.qmth.examcloud.question.commons.core.paper.DefaultQuestionStructureWrapper;
 import cn.com.qmth.examcloud.question.commons.core.paper.DefaultQuestionUnitWrapper;
-import cn.com.qmth.examcloud.question.commons.core.question.DefaultQuestion;
-import cn.com.qmth.examcloud.question.commons.core.question.DefaultQuestionOption;
-import cn.com.qmth.examcloud.question.commons.core.question.DefaultQuestionStructure;
-import cn.com.qmth.examcloud.question.commons.core.question.DefaultQuestionUnit;
 import cn.com.qmth.examcloud.question.commons.core.question.QuestionType;
+import cn.com.qmth.examcloud.question.commons.core.question.*;
 import cn.com.qmth.examcloud.support.cache.CacheHelper;
 import cn.com.qmth.examcloud.support.cache.bean.ExtractConfigCacheBean;
 import cn.com.qmth.examcloud.support.cache.bean.ExtractConfigDetailCacheBean;
 import cn.com.qmth.examcloud.support.cache.bean.ExtractConfigPaperCacheBean;
 import cn.com.qmth.examcloud.support.filestorage.FileStorageUtil;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
 
 /**
  * @author weiwenhai
@@ -98,8 +72,8 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
     @Autowired
     private PaperService paperService;
 
-//    @Autowired
-//    private SysProperty sysProperty;
+    //    @Autowired
+    //    private SysProperty sysProperty;
 
     @Override
     public ExtractConfigCacheBean getExtractConfig(Long examId, String courseCode) {
@@ -381,19 +355,13 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
 
     @Override
     public DefaultQuestion getDefaultQuestion(Long examId, String courseCode, String groupCode, String questionId) {
-        LOG.debug("网考根据调卷规则中试题id:" + questionId + "获取单个试题...");
-        long beginTime = System.currentTimeMillis();
-
         Question question = Model.of(quesRepo.findById(questionId));
         if (question == null) {
             throw new StatusException("500", "试题不存在!");
         }
-
         quesService.formatQues(question);
-        LOG.debug("查询单个试题耗时:" + (System.currentTimeMillis() - beginTime) + "ms");
 
         //封装成新的题单元集合
-        beginTime = System.currentTimeMillis();
         DefaultQuestionStructure defaultQuestionStructure = new DefaultQuestionStructure();
         if (question.getHasAudio() == null || false == question.getHasAudio()) {
             defaultQuestionStructure.setHasAudios(false);
@@ -426,11 +394,12 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
         defaultQuestion.setMasterVersion(defaultQuestionStructure);
 
         if (examId != null) {
-            LOG.debug("替换试题单元中的音频路径...");
             appendAudioFlag(defaultQuestion, String.valueOf(examId), courseCode, groupCode, question);
         }
 
-        LOG.debug("封装成新的题单元集合耗时:" + (System.currentTimeMillis() - beginTime) + "ms");
+        // 获取试题信息带答案(敏感信息日志,用于排查调用者)
+        LOG.warn("$$$getQuestionWithAnswer questionId:{} examId:{} courseCode:{} groupCode:{}",
+                questionId, examId, courseCode, groupCode);
         return defaultQuestion;
     }
 
@@ -544,8 +513,8 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
                     String questionAudioId = matchAudioName(containAStr, "a", "id");
                     QuestionAudio questionAudio = questionAudioService.findAudioById(questionAudioId);
                     if (questionAudio != null) {
-//                        String url = sysProperty.getDomain() + questionAudio.getFileUrl();
-                    	//通用存储
+                        //                        String url = sysProperty.getDomain() + questionAudio.getFileUrl();
+                        //通用存储
                         String url = FileStorageUtil.realPath(questionAudio.getFileUrl());
                         if (playTime != null) {
                             containAStr += " question-audio url=\"" + url + "\" playTime=\"" + playTime + "\"" + "></a>";