|
@@ -10,6 +10,7 @@ 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.extract.ExtractConfigPaper;
|
|
|
+import cn.com.qmth.examcloud.core.questions.service.cache.Constants;
|
|
|
import cn.com.qmth.examcloud.core.questions.service.config.UpYunProperty;
|
|
|
import cn.com.qmth.examcloud.question.commons.core.paper.DefaultPaper;
|
|
|
import cn.com.qmth.examcloud.question.commons.core.paper.DefaultQuestionGroup;
|
|
@@ -17,6 +18,7 @@ import cn.com.qmth.examcloud.question.commons.core.paper.DefaultQuestionStructur
|
|
|
import cn.com.qmth.examcloud.question.commons.core.paper.DefaultQuestionUnitWrapper;
|
|
|
import cn.com.qmth.examcloud.question.commons.core.question.QuestionType;
|
|
|
import cn.com.qmth.examcloud.question.commons.core.question.*;
|
|
|
+import cn.com.qmth.examcloud.web.redis.RedisClient;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -67,6 +69,9 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
|
|
|
@Autowired
|
|
|
private PaperService paperService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private RedisClient redisClient;
|
|
|
+
|
|
|
@Autowired
|
|
|
private UpYunProperty upYunProperty;
|
|
|
|
|
@@ -96,7 +101,13 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
|
|
|
}
|
|
|
|
|
|
log.debug("将原始试卷:" + basePaper.getId() + "根据规则构建试卷结构");
|
|
|
- DefaultPaper defaultPaper = this.buildDefaultByBasePaper(basePaper, String.valueOf(examId), courseCode, groupCode);
|
|
|
+
|
|
|
+
|
|
|
+ String cacheKey = Constants.CACHE_KEY_PAPER_FOR_EXTRACT_CONFIG + String.format("%s_%s_%s_%s", examId, courseCode, groupCode, basePaper.getId());
|
|
|
+ DefaultPaper defaultPaper = redisClient.get(cacheKey, DefaultPaper.class, Constants.DEFAULT_TIME_OUT);
|
|
|
+ if (defaultPaper == null) {
|
|
|
+ defaultPaper = this.buildDefaultByBasePaper(basePaper, String.valueOf(examId), courseCode, groupCode);
|
|
|
+ }
|
|
|
|
|
|
Short questionOrder = extractConfig.getScrambling_the_question_order();
|
|
|
Short optionOrder = extractConfig.getScrambling_the_option_order();
|
|
@@ -277,6 +288,13 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
|
|
|
defaultPaper.setName(basePaper.getName());
|
|
|
defaultPaper.setQuestionGroupList(questionGroupList);
|
|
|
defaultPaper.setFullyObjective(fullyObjective);
|
|
|
+
|
|
|
+ if (examId != null) {
|
|
|
+
|
|
|
+ String cacheKey = Constants.CACHE_KEY_PAPER_FOR_EXTRACT_CONFIG + String.format("%s_%s_%s_%s", examId, courseCode, groupCode, basePaper.getId());
|
|
|
+ redisClient.set(cacheKey, defaultPaper, Constants.DEFAULT_TIME_OUT);
|
|
|
+ }
|
|
|
+
|
|
|
return defaultPaper;
|
|
|
}
|
|
|
|