Przeglądaj źródła

合并调卷规则代码,将之前的代码删除

chenken 8 lat temu
rodzic
commit
b2f63d42bc

+ 6 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/service/ExtractConfigService.java

@@ -60,4 +60,10 @@ public interface ExtractConfigService {
 	 * @return PaperDto
 	 */
 	public Map<String, Object> extract(Long exam_id,String course_code,String group_code);
+	/**
+	 * 根据QuestionId抽取单个试题
+	 * @param id
+	 * @return
+	 */
+	public Map<String, Object> getQuestionById(String id);
 }

+ 25 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/service/ExtractConfigServiceImpl.java

@@ -24,6 +24,7 @@ import cn.com.qmth.examcloud.common.dto.question.PaperDetailDto;
 import cn.com.qmth.examcloud.common.dto.question.PaperDetailUnitDto;
 import cn.com.qmth.examcloud.common.dto.question.PaperDto;
 import cn.com.qmth.examcloud.common.dto.question.QuesOptionDto;
+import cn.com.qmth.examcloud.common.dto.question.QuestionDto;
 import cn.com.qmth.examcloud.common.dto.question.SubQuestionDto;
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
 
@@ -457,4 +458,28 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 			}
 		}
 	}
+	
+	@Override
+	public Map<String, Object> getQuestionById(String id) {
+        String msg = "";
+        Map<String, Object> quesMap = new HashMap<String, Object>();
+        Question ques = quesRepo.findOne(id);
+        QuestionDto dto = BeanCopierUtil.copyProperties(ques, QuestionDto.class);
+        if (ques.getQuestionType() == QuesStructType.NESTED_ANSWER_QUESTION) {
+            List<Question> subQuesList = ques.getSubQuestions();
+            List<SubQuestionDto> subQuesDtos = BeanCopierUtil.copyPropertiesOfList(subQuesList, SubQuestionDto.class);
+            for (int m = 0; m < subQuesList.size(); m++) {
+                List<QuesOptionDto> quesOptionDtos = BeanCopierUtil
+                        .copyPropertiesOfList(subQuesList.get(m).getQuesOptions(), QuesOptionDto.class);
+                subQuesDtos.get(m).setQuesOptions(quesOptionDtos);
+                subQuesDtos.get(m).setQuesAnswer(subQuesList.get(m).getQuesAnswer());
+                subQuesDtos.get(m).setNumber(m + 1);
+                dto.setSubQuestions(subQuesDtos);
+            }
+        }
+        msg = "success";
+        quesMap.put("quesDto", dto);
+        quesMap.put("msg", msg);
+        return quesMap;
+    }
 }

+ 0 - 175
cqb-paper/src/main/java/com/qmth/cqb/paper/service/ExtractService.java

@@ -1,175 +0,0 @@
-package com.qmth.cqb.paper.service;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Example;
-import org.springframework.stereotype.Service;
-
-import com.qmth.cqb.paper.dao.ExamPaperRepo;
-import com.qmth.cqb.paper.dao.ExtractConfigRepo;
-import com.qmth.cqb.paper.dao.PaperDetailRepo;
-import com.qmth.cqb.paper.dao.PaperDetailUnitRepo;
-import com.qmth.cqb.paper.dao.PaperRepo;
-import com.qmth.cqb.paper.model.ExtractConfig;
-import com.qmth.cqb.paper.model.Paper;
-import com.qmth.cqb.paper.model.PaperDetail;
-import com.qmth.cqb.paper.model.PaperDetailUnit;
-import com.qmth.cqb.question.dao.QuesRepo;
-import com.qmth.cqb.question.model.Question;
-import com.qmth.cqb.utils.BeanCopierUtil;
-import com.qmth.cqb.utils.CommonUtils;
-import com.qmth.cqb.utils.word.DocxProcessUtil;
-
-import cn.com.qmth.examcloud.common.dto.question.PaperDetailDto;
-import cn.com.qmth.examcloud.common.dto.question.PaperDetailUnitDto;
-import cn.com.qmth.examcloud.common.dto.question.PaperDto;
-import cn.com.qmth.examcloud.common.dto.question.QuesOptionDto;
-import cn.com.qmth.examcloud.common.dto.question.QuestionDto;
-import cn.com.qmth.examcloud.common.dto.question.SubQuestionDto;
-import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
-
-@Service
-public class ExtractService {
-
-    @Autowired
-    ExamPaperRepo examPaperRepo;
-
-    @Autowired
-    PaperRepo paperRepo;
-
-    @Autowired
-    ExtractConfigRepo extractConfigRepo;
-
-    @Autowired
-    PaperDetailRepo paperDetailRepo;
-
-    @Autowired
-    PaperDetailUnitRepo paperDetailUnitRepo;
-
-    @Autowired
-    PaperService paperService;
-
-    @Autowired
-    QuesRepo questionRepo;
-
-    private Map<String, AtomicInteger> randomMap = new HashMap<String, AtomicInteger>();
-
-    /**
-     * 注意:单机版计数器,重启后重新归零;用于随机抽取试卷的规则
-     * 
-     * @param key
-     * @param totalCount
-     * @return
-     */
-    private int randomNumber(String key, int totalCount) {
-        AtomicInteger counter = randomMap.get(key);
-        if (counter == null) {
-            synchronized (ExtractService.class) {
-                counter = randomMap.get(key);
-                if (counter == null) {
-                    counter = new AtomicInteger();
-                    randomMap.put(key, counter);
-                }
-            }
-        }
-
-        return counter.incrementAndGet() % totalCount;
-    }
-
-    /**
-     * 随机抽一张试卷
-     * @param examId
-     * @param courseCode
-     * @param groupCode
-     * @return
-     */
-    public Map<String, Object> randomPaper(Long examId, String courseCode, String groupCode) {
-        String msg = "";
-        List<Paper> papers = paperService.listExamPapers(examId, courseCode, groupCode);
-        Map<String, Object> paperMap = new HashMap<String, Object>();
-        if (papers.size() > 0) {
-            papers.get(this.randomNumber(examId + courseCode + groupCode, papers.size()));
-
-        } else {
-            msg = "没有可用的抽取试卷,请检查";
-            paperMap.put("msg", msg);
-            return paperMap;
-        }
-        Paper paper = papers.get(0);
-        PaperDto paperDto = BeanCopierUtil.copyProperties(paper, PaperDto.class);
-        // 获取大题
-        List<PaperDetail> paperDetails = paperDetailRepo.findByPaper(paper);
-        List<PaperDetailDto> paperDetailDtos = BeanCopierUtil.copyPropertiesOfList(paperDetails, PaperDetailDto.class);
-        paperDto.setPaperDetails(paperDetailDtos);
-        // 封装小题
-        for (int i = 0; i < paperDetailDtos.size(); i++) {
-            List<PaperDetailUnit> paperDetailUnits = paperDetailUnitRepo.findByPaperDetail(paperDetails.get(i));
-            List<PaperDetailUnitDto> paperDetailUnitDtos = BeanCopierUtil.copyPropertiesOfList(paperDetailUnits,
-                    PaperDetailUnitDto.class);
-            for (int j = 0; j < paperDetailUnitDtos.size(); j++) {
-                PaperDetailUnitDto unitDto = paperDetailUnitDtos.get(j);
-                unitDto.setQuesId(paperDetailUnits.get(j).getQuestion().getId());
-                if (StringUtils.isNotEmpty(paperDetailUnits.get(j).getQuestion().getQuesAnswer())) {
-                    String answer = DocxProcessUtil
-                            .getTextInHtml(paperDetailUnits.get(j).getQuestion().getQuesAnswer());
-                    unitDto.setAnswer(answer);
-                }
-                if (unitDto.getQuestionType() == QuesStructType.NESTED_ANSWER_QUESTION) {// 假如是套题
-                    List<Question> subQuesList = paperDetailUnits.get(j).getQuestion().getSubQuestions();
-                    List<SubQuestionDto> subQuesDtos = BeanCopierUtil.copyPropertiesOfList(subQuesList,
-                            SubQuestionDto.class);
-                    for (int m = 0; m < subQuesList.size(); m++) {
-                        List<QuesOptionDto> quesOptionDtos = BeanCopierUtil
-                                .copyPropertiesOfList(subQuesList.get(m).getQuesOptions(), QuesOptionDto.class);
-                        subQuesDtos.get(m).setQuesOptions(quesOptionDtos);
-                        subQuesDtos.get(m)
-                                .setQuesAnswer(DocxProcessUtil.getTextInHtml(subQuesList.get(m).getQuesAnswer()));
-                        subQuesDtos.get(m).setNumber(m + 1);
-                    }
-                    unitDto.setSubQuestions(subQuesDtos);
-                }
-            }
-            paperDetailDtos.get(i).setPaperDetailUnits(paperDetailUnitDtos);
-            paperDetailDtos.get(i).setCnNum(CommonUtils.toCHNum(paperDetailDtos.get(i).getNumber()));
-        }
-        msg = "success";
-        paperMap.put("paperDto", paperDto);
-        paperMap.put("msg", msg);
-        return paperMap;
-    }
-
-    public ExtractConfig findConfig(long examId, String courseCode) {
-        ExtractConfig tempConfig = new ExtractConfig();
-        tempConfig.setExamId(examId);
-        tempConfig.setCourseCode(courseCode);
-        return extractConfigRepo.findOne(Example.of(tempConfig));
-    }
-
-    public Map<String, Object> getQuestionById(String id) {
-        String msg = "";
-        Map<String, Object> quesMap = new HashMap<String, Object>();
-        Question ques = questionRepo.findOne(id);
-        QuestionDto dto = BeanCopierUtil.copyProperties(ques, QuestionDto.class);
-        if (ques.getQuestionType() == QuesStructType.NESTED_ANSWER_QUESTION) {
-            List<Question> subQuesList = ques.getSubQuestions();
-            List<SubQuestionDto> subQuesDtos = BeanCopierUtil.copyPropertiesOfList(subQuesList, SubQuestionDto.class);
-            for (int m = 0; m < subQuesList.size(); m++) {
-                List<QuesOptionDto> quesOptionDtos = BeanCopierUtil
-                        .copyPropertiesOfList(subQuesList.get(m).getQuesOptions(), QuesOptionDto.class);
-                subQuesDtos.get(m).setQuesOptions(quesOptionDtos);
-                subQuesDtos.get(m).setQuesAnswer(subQuesList.get(m).getQuesAnswer());
-                subQuesDtos.get(m).setNumber(m + 1);
-                dto.setSubQuestions(subQuesDtos);
-            }
-        }
-        msg = "success";
-        quesMap.put("quesDto", dto);
-        quesMap.put("msg", msg);
-        return quesMap;
-    }
-}

+ 0 - 60
cqb-paper/src/main/java/com/qmth/cqb/paper/web/ExtractController.java

@@ -1,60 +0,0 @@
-package com.qmth.cqb.paper.web;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import cn.com.qmth.examcloud.common.uac.annotation.Uac;
-import cn.com.qmth.examcloud.common.uac.enums.RoleMeta;
-import cn.com.qmth.examcloud.common.uac.enums.UacPolicy;
-
-import com.qmth.cqb.paper.model.ExtractConfig;
-import com.qmth.cqb.paper.service.ExtractService;
-
-import io.swagger.annotations.ApiOperation;
-
-/**
- * Created by songyue on 16/12/28.
- */
-@RestController
-@RequestMapping("${api_cqb}/")
-public class ExtractController {
-
-    @Autowired
-    ExtractService extractService;
-
-    /*@ApiOperation(value = "抽取试卷", notes = "抽取试卷")
-    @GetMapping(value = "/extract/{exam_id}/{course_code}/{group_code}")
-    public ResponseEntity extract(@PathVariable String exam_id, @PathVariable String course_code,
-            @PathVariable String group_code) {
-        Map<String, Object> paperMap = new HashMap<String, Object>();
-        ExtractConfig config = extractService.findConfig(Long.parseLong(exam_id), course_code);
-        if ("RANDOM_PAPER".equals(config.getPolicy().getKey())) {
-            paperMap = extractService.randomPaper(config.getExamId(), config.getCourseCode(), group_code);
-        }
-        if (paperMap.get("msg").equals("success")) {
-            return new ResponseEntity(paperMap.get("paperDto"), HttpStatus.OK);
-        } else {
-            return new ResponseEntity(paperMap.get("msg"), HttpStatus.INTERNAL_SERVER_ERROR);
-        }
-    }*/
-
-    @ApiOperation(value = "抽取单个试题", notes = "抽取单个试题")
-    @GetMapping(value = "/extractQues/{ques_id}")
-    public ResponseEntity extractQuestion(@PathVariable String ques_id) {
-        Map<String, Object> quesMap = new HashMap<String, Object>();
-        quesMap = extractService.getQuestionById(ques_id);
-        if (quesMap.get("msg").equals("success")) {
-            return new ResponseEntity(quesMap.get("quesDto"), HttpStatus.OK);
-        } else {
-            return new ResponseEntity(quesMap.get("msg"), HttpStatus.INTERNAL_SERVER_ERROR);
-        }
-    }
-}