Przeglądaj źródła

just format code

deason 5 lat temu
rodzic
commit
f17e94960c

+ 21 - 27
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/provider/ExtractConfigCloudServiceProvider.java

@@ -1,11 +1,16 @@
 package cn.com.qmth.examcloud.core.questions.api.provider;
 
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
+import cn.com.qmth.examcloud.commons.exception.StatusException;
+import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
+import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
+import cn.com.qmth.examcloud.core.questions.api.ExtractConfigCloudService;
+import cn.com.qmth.examcloud.core.questions.api.request.*;
+import cn.com.qmth.examcloud.core.questions.api.response.*;
+import cn.com.qmth.examcloud.core.questions.service.ExtractConfigProviderService;
+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.question.DefaultQuestion;
 import io.swagger.annotations.ApiOperation;
-
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -14,23 +19,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import cn.com.qmth.examcloud.commons.exception.StatusException;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
-import cn.com.qmth.examcloud.core.questions.api.ExtractConfigCloudService;
-import cn.com.qmth.examcloud.core.questions.api.request.GetBasePaperReq;
-import cn.com.qmth.examcloud.core.questions.api.request.GetPaperReq;
-import cn.com.qmth.examcloud.core.questions.api.request.GetQuestionAnswerReq;
-import cn.com.qmth.examcloud.core.questions.api.request.GetQuestionListReq;
-import cn.com.qmth.examcloud.core.questions.api.request.GetQuestionReq;
-import cn.com.qmth.examcloud.core.questions.api.response.GetBasePaperResp;
-import cn.com.qmth.examcloud.core.questions.api.response.GetPaperResp;
-import cn.com.qmth.examcloud.core.questions.api.response.GetQuestionAnswerResp;
-import cn.com.qmth.examcloud.core.questions.api.response.GetQuestionListResp;
-import cn.com.qmth.examcloud.core.questions.api.response.GetQuestionResp;
-import cn.com.qmth.examcloud.core.questions.service.ExtractConfigProviderService;
-import cn.com.qmth.examcloud.question.commons.core.paper.DefaultPaper;
-import cn.com.qmth.examcloud.question.commons.core.question.DefaultQuestion;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * @author weiwenhai
@@ -67,12 +58,15 @@ public class ExtractConfigCloudServiceProvider implements ExtractConfigCloudServ
         if (StringUtils.isBlank(groupCode)) {
             throw new StatusException("Q-010061", "groupCode is null");
         }
-        Map<String, Object> map = extractConfigExamService.getDefaultPaper(paperReq.getExamId(), paperReq.getCourseCode(), paperReq.getGroupCode());
+
+        ExtractConfigPaper result = extractConfigExamService.getDefaultPaper(paperReq.getExamId(), paperReq.getCourseCode(), paperReq.getGroupCode());
+
         GetPaperResp resp = new GetPaperResp();
-        resp.setSortOptionOrder((Short) map.get("upSetOptionOrder") == 0 ? false : true);
-        resp.setSortQuestionOrder((Short) map.get("upSetQuestionOrder") == 0 ? false : true);
-        resp.setPaperId((String) map.get("paperId"));
-        resp.setDefaultPaper((DefaultPaper) map.get("defaultPaper"));
+        resp.setPaperId(result.getPaperId());
+        resp.setSortQuestionOrder(result.getSortQuestionOrder());
+        resp.setSortOptionOrder(result.getSortOptionOrder());
+        resp.setDefaultPaper(result.getDefaultPaper());
+
         return resp;
     }
 

+ 10 - 20
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ExtractConfigProviderService.java

@@ -1,12 +1,13 @@
 package cn.com.qmth.examcloud.core.questions.service;
 
+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.question.DefaultQuestion;
+
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import cn.com.qmth.examcloud.question.commons.core.paper.DefaultPaper;
-import cn.com.qmth.examcloud.question.commons.core.question.DefaultQuestion;
-
 /**
  * @author weiwenhai
  * @date 2018.8.15
@@ -16,29 +17,17 @@ import cn.com.qmth.examcloud.question.commons.core.question.DefaultQuestion;
 public interface ExtractConfigProviderService {
 
     /**
-     * 根据调卷规则抽取试卷
-     *
-     * @param req
-     * @return
+     * 根据调卷规则获取试卷结构
      */
-    public Map<String, Object> getDefaultPaper(Long examId, String courseCode, String groupCode);
+    public ExtractConfigPaper getDefaultPaper(Long examId, String courseCode, String groupCode);
 
     /**
-     * 根据试题id获取试题
-     *
-     * @param exam_id
-     * @param course_code
-     * @param group_code
-     * @param questionId
-     * @return
+     * 根据调卷规则获取某个试题
      */
     public DefaultQuestion getDefaultQuestion(Long examId, String courseCode, String groupCode, String questionId);
 
     /**
-     * 根据试卷id获取试卷
-     *
-     * @param paperId
-     * @return
+     * 获取某份试卷的试卷结构
      */
     public DefaultPaper getBaseDefaultPaper(String paperId);
 
@@ -65,4 +54,5 @@ public interface ExtractConfigProviderService {
      * @return
      */
     public String getQuestionStructure(String paperId) throws Exception;
-}
+
+}

+ 45 - 0
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/bean/extract/ExtractConfigPaper.java

@@ -0,0 +1,45 @@
+package cn.com.qmth.examcloud.core.questions.service.bean.extract;
+
+import cn.com.qmth.examcloud.question.commons.core.paper.DefaultPaper;
+
+import java.io.Serializable;
+
+public class ExtractConfigPaper implements Serializable {
+    String paperId;
+    Boolean sortQuestionOrder;
+    Boolean sortOptionOrder;
+    DefaultPaper defaultPaper;
+
+    public String getPaperId() {
+        return paperId;
+    }
+
+    public void setPaperId(String paperId) {
+        this.paperId = paperId;
+    }
+
+    public Boolean getSortQuestionOrder() {
+        return sortQuestionOrder;
+    }
+
+    public void setSortQuestionOrder(Boolean sortQuestionOrder) {
+        this.sortQuestionOrder = sortQuestionOrder;
+    }
+
+    public Boolean getSortOptionOrder() {
+        return sortOptionOrder;
+    }
+
+    public void setSortOptionOrder(Boolean sortOptionOrder) {
+        this.sortOptionOrder = sortOptionOrder;
+    }
+
+    public DefaultPaper getDefaultPaper() {
+        return defaultPaper;
+    }
+
+    public void setDefaultPaper(DefaultPaper defaultPaper) {
+        this.defaultPaper = defaultPaper;
+    }
+
+}

+ 6 - 8
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/cache/PaperCache.java

@@ -2,15 +2,13 @@ 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.core.questions.service.bean.extract.ExtractConfigPaper;
 import cn.com.qmth.examcloud.support.cache.bean.PaperCacheBean;
 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;
 
-import java.util.Map;
-
 @Component
 public class PaperCache extends RandomObjectRedisCache<PaperCacheBean> {
     @Autowired
@@ -34,13 +32,13 @@ public class PaperCache extends RandomObjectRedisCache<PaperCacheBean> {
             throw new StatusException("400", "groupCode is empty");
         }
 
-        Map<String, Object> map = extractConfigProviderService.getDefaultPaper(examId, courseCode, groupCode);
+        ExtractConfigPaper result = extractConfigProviderService.getDefaultPaper(examId, courseCode, groupCode);
 
         PaperCacheBean cacheBean = new PaperCacheBean();
-        cacheBean.setDefaultPaper((DefaultPaper) map.get("defaultPaper"));
-        cacheBean.setPaperId((String) map.get("paperId"));
-        cacheBean.setSortQuestionOrder((Short) map.get("upSetOptionOrder") == 0 ? false : true);
-        cacheBean.setSortOptionOrder((Short) map.get("upSetOptionOrder") == 0 ? false : true);
+        cacheBean.setPaperId(result.getPaperId());
+        cacheBean.setSortQuestionOrder(result.getSortQuestionOrder());
+        cacheBean.setSortOptionOrder(result.getSortOptionOrder());
+        cacheBean.setDefaultPaper(result.getDefaultPaper());
         return cacheBean;
     }
 

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

@@ -9,6 +9,7 @@ import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
 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.config.UpYunProperty;
 import cn.com.qmth.examcloud.question.commons.core.paper.DefaultPaper;
 import cn.com.qmth.examcloud.question.commons.core.paper.DefaultQuestionGroup;
@@ -70,41 +71,42 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
     private UpYunProperty upYunProperty;
 
     @Override
-    public Map<String, Object> getDefaultPaper(Long examId, String courseCode, String groupCode) {
-        Map<String, Object> map = new HashMap<String, Object>();
+    public ExtractConfigPaper getDefaultPaper(Long examId, String courseCode, String groupCode) {
         log.debug("调卷开始...");
-        long startTime = System.currentTimeMillis();
+
         log.debug("开始根据examId:" + examId + "和courseCode:" + courseCode + "获取调卷规则");
         ExtractConfig extractConfig = extractConfigService.findConfig(new ExtractConfig(examId, courseCode));
         if (extractConfig == null) {
             log.error("该课程调卷规则未制定,请联系学校");
             throw new StatusException("Q-020101", "该课程调卷规则未制定,请联系学校");
         }
-        long configFinishTime = System.currentTimeMillis();
-        log.debug("获取调卷规则共耗时:" + (configFinishTime - startTime) + "ms");
+
+
         log.debug("根据调卷规则中设置的概率获取类型为" + groupCode + "的试卷");
         Map<String, Paper> paperMap = this.getExamPaperByProbability(extractConfig.getExamPaperList());
         if (paperMap.isEmpty()) {
             log.error("该考试和课程下调卷规则中试卷不存在,请检查调卷规则,调卷程序退出");
             throw new StatusException("Q-020109", "该考试和课程下调卷规则中试卷不存在,请重新制定调卷规则");
         }
-        long paperMapFinishTime = System.currentTimeMillis();
-        log.debug("获取类型为" + groupCode + "的试卷共耗时:" + (paperMapFinishTime - configFinishTime) + "ms");
+
         Paper basePaper = paperMap.get(groupCode);
         if (basePaper == null) {
             log.error("该考试和课程下调卷规则中该类型试卷不存在,请检查调卷规则,调卷程序退出");
             throw new StatusException("Q-020116", "该考试和课程下调卷规则中试卷不存在,请重新制定调卷规则");
         }
-        log.debug("将原始试卷:" + basePaper.getId() + "根据规则重新组卷");
-        Short upSetQuestionOrder = extractConfig.getScrambling_the_question_order();
-        Short upSetOptionOrder = extractConfig.getScrambling_the_option_order();
-        map.put("upSetQuestionOrder", upSetQuestionOrder);
-        map.put("upSetOptionOrder", upSetOptionOrder);
-        map.put("paperId", basePaper.getId());
-        //构建试卷结构
-        DefaultPaper defaultPaper = buildDefaultByBasePaper(basePaper, String.valueOf(examId), courseCode, groupCode);
-        map.put("defaultPaper", defaultPaper);
-        return map;
+
+        log.debug("将原始试卷:" + basePaper.getId() + "根据规则构建试卷结构");
+        DefaultPaper defaultPaper = this.buildDefaultByBasePaper(basePaper, String.valueOf(examId), courseCode, groupCode);
+
+        Short questionOrder = extractConfig.getScrambling_the_question_order();
+        Short optionOrder = extractConfig.getScrambling_the_option_order();
+
+        ExtractConfigPaper result = new ExtractConfigPaper();
+        result.setPaperId(basePaper.getOrgId());
+        result.setSortQuestionOrder(questionOrder == 0 ? false : true);
+        result.setSortOptionOrder(optionOrder == 0 ? false : true);
+        result.setDefaultPaper(defaultPaper);
+        return result;
     }
 
     /**