deason 5 éve
szülő
commit
111d28d49d

+ 1 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/cache/Constants.java

@@ -8,7 +8,7 @@ public interface Constants {
 
     String CACHE_KEY_PAPER_FOR_BASE = "Q_PAPER:BASE_";
 
-    String CACHE_KEY_PAPER_FOR_DEFAULT = "Q_PAPER:DEFAULT_";
+    String CACHE_KEY_PAPER_FOR_EXTRACT_CONFIG = "Q_PAPER:EXTRACT_CONFIG_";
 
     String CACHE_KEY_QUESTION = "Q_QUESTION:";
 

+ 58 - 0
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/cache/ExtractConfigPaperCache.java

@@ -0,0 +1,58 @@
+package cn.com.qmth.examcloud.core.questions.service.cache;
+
+import cn.com.qmth.examcloud.commons.exception.StatusException;
+import cn.com.qmth.examcloud.core.questions.service.ExtractConfigProviderService;
+import cn.com.qmth.examcloud.question.commons.core.paper.DefaultPaper;
+import cn.com.qmth.examcloud.support.cache.bean.ExtractConfigPaperCacheBean;
+import cn.com.qmth.examcloud.web.cache.RandomObjectRedisCache;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ExtractConfigPaperCache extends RandomObjectRedisCache<ExtractConfigPaperCacheBean> {
+    @Autowired
+    private ExtractConfigProviderService extractConfigProviderService;
+
+    @Override
+    public ExtractConfigPaperCacheBean loadFromResource(Object... keys) {
+        Long examId = (Long) keys[0];
+        String courseCode = String.valueOf(keys[1]);
+        String groupCode = String.valueOf(keys[2]);
+        String paperId = String.valueOf(keys[3]);
+
+        if (examId == null) {
+            throw new StatusException("400", "examId is null");
+        }
+
+        if (StringUtils.isBlank(courseCode)) {
+            throw new StatusException("400", "courseCode is empty");
+        }
+
+        if (StringUtils.isBlank(groupCode)) {
+            throw new StatusException("400", "groupCode is empty");
+        }
+
+        if (StringUtils.isBlank(paperId)) {
+            throw new StatusException("400", "paperId is empty");
+        }
+
+        DefaultPaper defaultPaper = extractConfigProviderService.getBaseDefaultPaper(paperId);
+        //todo
+
+        ExtractConfigPaperCacheBean cacheBean = new ExtractConfigPaperCacheBean();
+        cacheBean.setDefaultPaper(defaultPaper);
+        return cacheBean;
+    }
+
+    @Override
+    protected String getKeyPrefix() {
+        return "Q_PAPER:EXTRACT_CONFIG_";
+    }
+
+    @Override
+    protected int getTimeout() {
+        return 5 * 60;// N分钟
+    }
+
+}

+ 8 - 0
examcloud-core-questions-starter/src/main/java/cn/com/qmth/examcloud/core/questions/starter/DemoController.java

@@ -2,9 +2,11 @@ package cn.com.qmth.examcloud.core.questions.starter;
 
 import cn.com.qmth.examcloud.core.questions.service.cache.BasePaperCache;
 import cn.com.qmth.examcloud.core.questions.service.cache.Constants;
+import cn.com.qmth.examcloud.core.questions.service.cache.ExtractConfigPaperCache;
 import cn.com.qmth.examcloud.core.questions.service.cache.QuestionCache;
 import cn.com.qmth.examcloud.support.cache.CacheHelper;
 import cn.com.qmth.examcloud.support.cache.bean.BasePaperCacheBean;
+import cn.com.qmth.examcloud.support.cache.bean.ExtractConfigPaperCacheBean;
 import cn.com.qmth.examcloud.support.cache.bean.QuestionCacheBean;
 import cn.com.qmth.examcloud.web.support.Naked;
 import org.apache.commons.lang3.StringUtils;
@@ -28,6 +30,8 @@ public class DemoController {
     @Autowired
     private RedisTemplate<String, Object> redisTemplate;
     @Autowired
+    private ExtractConfigPaperCache extractConfigPaperCache;
+    @Autowired
     private BasePaperCache basePaperCache;
     @Autowired
     private QuestionCache questionCache;
@@ -42,6 +46,10 @@ public class DemoController {
         String paperId = "2085113d-b74c-4dea-9f94-b22bb4825f2a";
         String questionId = "5d54d08def8fce19f8b3ab98";
 
+        ExtractConfigPaperCacheBean extractConfigPaperCacheBean = CacheHelper.getExtractConfigPaper(examId, courseCode, groupCode, paperId);
+        log.info("extractConfigPaperName: " + extractConfigPaperCacheBean.getDefaultPaper().getName());
+        //extractConfigPaperCache.remove(examId, courseCode, groupCode, paperId);
+
         BasePaperCacheBean basePaperCacheBean = CacheHelper.getBasePaper(paperId);
         log.info("basePaperName: " + basePaperCacheBean.getDefaultPaper().getName());
         //basePaperCache.remove(paperId);