浏览代码

提交通用题库后台 BUG

chenken 7 年之前
父节点
当前提交
a35d475a47

+ 4 - 5
cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/service/GenPaperService.java

@@ -217,7 +217,6 @@ public class GenPaperService {
                                 nestQums.add(pdu.getQuestion().getSubQuestions().size());
                                 nestedUnits.add(pdu);
                             }
-
                         } else {
                             otherQuesNum.add(1);
                         }
@@ -327,7 +326,6 @@ public class GenPaperService {
             if (!qsts.contains(saveUnits.get(i).getQuestionType())) {
                 qsts.add(saveUnits.get(i).getQuestionType());
             }
-
         }
         Map<QuesStructType, List<PaperDetailUnit>> unitMap = new HashMap<QuesStructType, List<PaperDetailUnit>>();
         Map<QuesStructType, Integer> qTypeIndexMap = new HashMap<QuesStructType, Integer>();
@@ -340,7 +338,6 @@ public class GenPaperService {
             }
             unitMap.put(qsts.get(i - 1), tempUnits);
             qTypeIndexMap.put(qsts.get(i - 1), i);
-
         }
         List<PaperDetail> details = new ArrayList<PaperDetail>();
         for (QuesStructType qType : unitMap.keySet()) {
@@ -367,8 +364,10 @@ public class GenPaperService {
             pd.setPaper(paper);
         }
         paperDetailRepo.save(details);
-        for (PaperDetailUnit pdu : selectedUnits) {
-            pdu.setPaper(paper);
+        for(int i = 0;i<selectedUnits.size();i++){
+        	PaperDetailUnit pdu = selectedUnits.get(i);
+        	pdu.setNumber(i+1);
+        	pdu.setPaper(paper);
         }
         unitRepo.save(selectedUnits);
         return paper;

+ 1 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java

@@ -197,7 +197,7 @@ public interface PaperService {
      */
     public List<String> getPaperNamesByQuestionId(String questionId);
     
-    public Page<Question> listQuestionforSelect(String paperId,int curPage,int pageSize,QuesStructType quesType,AccessUser accessUser);
+    public Page<Question> listQuestionforSelect(String paperId,int curPage,int pageSize,QuesStructType quesType,AccessUser accessUser,String quesBody);
 
     public Paper selectQuestionsToPaper(String paperId, String paperDetailId, List<Question> questions,
             AccessUser user);

+ 2 - 2
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/PaperServiceImpl.java

@@ -751,14 +751,14 @@ public class PaperServiceImpl implements PaperService{
 
     }
 
-    public Page<Question> listQuestionforSelect(String paperId,int curPage,int pageSize,QuesStructType quesType,AccessUser accessUser) {
+    public Page<Question> listQuestionforSelect(String paperId,int curPage,int pageSize,QuesStructType quesType,AccessUser accessUser,String quesBody) {
         Set<String> selectedIds = new HashSet<>();
         Paper paper = paperRepo.findOne(paperId);
         List<PaperDetailUnit> pdus = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
         for (PaperDetailUnit pdu : pdus) {
             selectedIds.add(pdu.getQuestion().getId());
         }
-        return quesService.findByIdExclude(selectedIds, paper.getCourseNo(), quesType, curPage, pageSize,accessUser.getRootOrgId());
+        return quesService.findByIdExclude(selectedIds, paper.getCourseNo(), quesType, curPage, pageSize,accessUser.getRootOrgId(),quesBody);
     }
 
     public Paper selectQuestionsToPaper(String paperId, String paperDetailId, List<Question> questions,

+ 3 - 2
cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperController.java

@@ -454,7 +454,8 @@ public class PaperController {
                                                 @PathVariable String paperId,
                                                 @PathVariable int curPage,
                                                 @PathVariable int pageSize,
-                                                @RequestParam(name = "quesType") String quesType) {
+                                                @RequestParam(name = "quesType") String quesType,
+                                                @RequestParam(name = "quesBody") String quesBody) {
         AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
         if(accessUser == null){
             return new ResponseEntity<Object>(new PageImpl<Question>(new ArrayList<Question>()),HttpStatus.OK);
@@ -463,7 +464,7 @@ public class PaperController {
         if (StringUtils.isNotEmpty(quesType)) {
         	quesStructType = QuesStructType.valueOf(quesType);
         }
-        Page<Question> questionPageList = paperService.listQuestionforSelect(paperId,curPage,pageSize,quesStructType,accessUser);
+        Page<Question> questionPageList = paperService.listQuestionforSelect(paperId,curPage,pageSize,quesStructType,accessUser,quesBody);
         return new ResponseEntity<Object>(questionPageList,HttpStatus.OK);
     }
 

+ 1 - 1
cqb-question-resource/src/main/java/com/qmth/cqb/question/service/QuesService.java

@@ -59,7 +59,7 @@ public interface QuesService {
      * @param pageSize
      * @return
      */
-    public Page<Question> findByIdExclude(Set<String> idSet,String courseNo,QuesStructType quesType,int curPage,int pageSize,Long orgId);
+    public Page<Question> findByIdExclude(Set<String> idSet,String courseNo,QuesStructType quesType,int curPage,int pageSize,Long orgId,String quesBody);
 
     /**
      * 按ID获取试题

+ 8 - 2
cqb-question-resource/src/main/java/com/qmth/cqb/question/service/impl/QuesServiceImpl.java

@@ -2,6 +2,7 @@ package com.qmth.cqb.question.service.impl;
 
 import java.util.List;
 import java.util.Set;
+import java.util.regex.Pattern;
 
 import org.apache.commons.lang3.StringEscapeUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -244,7 +245,7 @@ public class QuesServiceImpl implements QuesService{
      * @param pageSize
      * @return
      */
-    public Page<Question> findByIdExclude(Set<String> idSet,String courseNo,QuesStructType quesType,int curPage,int pageSize,Long orgId) {
+    public Page<Question> findByIdExclude(Set<String> idSet,String courseNo,QuesStructType quesType,int curPage,int pageSize,Long orgId,String quesBody) {
         Query query = new Query();
         if(quesType!=null){
         	query.addCriteria(Criteria.where("questionType").is(quesType));
@@ -252,8 +253,13 @@ public class QuesServiceImpl implements QuesService{
         query.addCriteria(Criteria.where("orgId").is(orgId+""));
         query.addCriteria(Criteria.where("course.code").is(courseNo));
         query.addCriteria(Criteria.where("id").nin(idSet));
+        //模糊匹配
+        if(StringUtils.isNotBlank(quesBody)){
+        	Pattern pattern = Pattern.compile("^.*"+quesBody+".*$", Pattern.CASE_INSENSITIVE);
+            query.addCriteria(Criteria.where("quesBody").regex(pattern));
+        }
         long total = this.mongoTemplate.count(query, Question.class);
-        query.with(new Sort(new Order(Direction.DESC,"createTime")));
+        query.with(new Sort(new Order(Direction.DESC,"id")));
 		query.limit(pageSize);
         query.skip((curPage - 1) * pageSize);
         List<Question> questionList = this.mongoTemplate.find(query,Question.class);