Browse Source

接口调试代码

gaoxing 8 years ago
parent
commit
bab50cb3b0

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

@@ -4,6 +4,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -32,6 +33,7 @@ import com.qmth.cqb.question.dao.QuesBakRepo;
 import com.qmth.cqb.question.dao.QuesRepo;
 import com.qmth.cqb.question.model.Question;
 import com.qmth.cqb.question.model.QuestionBak;
+import com.qmth.cqb.question.model.QuestionSearchCondition;
 import com.qmth.cqb.question.service.QuesService;
 import com.qmth.cqb.utils.BeanCopierUtil;
 import com.qmth.cqb.utils.CommonUtils;
@@ -469,4 +471,55 @@ public class PaperService {
 
     }
 
+    public Page<Question> listQuestionforSelect(String paperId, int curPage, int pageSize, QuesStructType quesType) {
+        List<Question> questions = new ArrayList<Question>();
+        Paper paper = paperRepo.findOne(paperId);
+        QuestionSearchCondition ques = new QuestionSearchCondition();
+        if (quesType != null) {
+            ques.setQuesType(quesType);
+        }
+        Map<String, String> quesParams = new HashMap<String, String>();
+        // quesParams.put("courseName", paper.getCourseName());
+        // ques.setQuesParams(quesParams);
+        List<PaperDetailUnit> pdus = paperDetailUnitRepo.findByPaper(paper);
+        for (PaperDetailUnit pdu : pdus) {
+            questions.add(pdu.getQuestion());
+        }
+        Page<Question> allQuestions = quesService.findAll(ques, curPage, pageSize);
+        Iterator<Question> que = allQuestions.iterator();
+        while (que.hasNext()) {
+            if (questions.contains(que.next())) {
+                que.remove();
+            }
+        }
+        return allQuestions;
+    }
+
+    public Paper selectQuestionsToPaper(String paperId, String paperDetailId, List<Question> questions) {
+        Paper paper = paperRepo.findOne(paperId);
+        PaperDetail pd = paperDetailRepo.findOne(paperDetailId);
+        List<PaperDetailUnit> pdus = paperDetailUnitRepo.findByPaperDetail(pd);
+        List<PaperDetailUnit> saveUnits = paperDetailUnitRepo.findByPaperDetail(pd);
+        for (Question ques : questions) {
+            PaperDetailUnit pdu = new PaperDetailUnit();
+            pdu.setPaper(paper);
+            pdu.setQuestionType(ques.getQuestionType());
+            pdu.setQuestion(ques);
+            pdu.setCreateTime(CommonUtils.getCurDateTime());
+            pdu.setPaperDetail(pd);
+            pdus.add(pdu);
+            Collections.sort(pdus);
+            pdu.setNumber(pdus.indexOf(pdu) + 1);
+            if (ques.getScore() == null || ques.getScore() == 0d) {
+                pdu.setScore(0d);
+            } else {
+                pdu.setScore(ques.getScore());
+            }
+            saveUnits.add(pdu);
+        }
+        paperDetailUnitRepo.save(saveUnits);
+        formatPaper(paper);
+        return paper;
+
+    }
 }

+ 43 - 5
cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperController.java

@@ -8,6 +8,7 @@ import com.qmth.cqb.paper.model.PaperSearchInfo;
 import com.qmth.cqb.paper.service.PaperService;
 import com.qmth.cqb.question.model.Question;
 
+import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
 import io.swagger.annotations.ApiOperation;
 
 import java.util.Arrays;
@@ -16,6 +17,7 @@ import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -169,8 +171,7 @@ public class PaperController {
     		                            @PathVariable String courseCode,
     		                            @PathVariable String groupCode,
     		                            @PathVariable String paperId){
-      paperService.joinToExamPaper(Long.parseLong(examId),
-              courseCode, groupCode, paperId);
+      paperService.joinToExamPaper(Long.parseLong(examId),courseCode, groupCode, paperId);
           return new ResponseEntity(HttpStatus.OK);
     }
     
@@ -189,8 +190,7 @@ public class PaperController {
                                            @PathVariable String groupCode,
                                            @PathVariable String paperId){
 
-      paperService.releaseExamPaper(Long.parseLong(examId),
-              courseCode, groupCode, paperId);
+      paperService.releaseExamPaper(Long.parseLong(examId),courseCode, groupCode, paperId);
         return new ResponseEntity(HttpStatus.OK);
     }
     
@@ -221,7 +221,7 @@ public class PaperController {
                                       @PathVariable String courseCode,
                                       @PathVariable String groupCode){
       paperService.deletGroupCode(Long.parseLong(examId), courseCode, groupCode);
-        return new ResponseEntity(HttpStatus.OK);
+      return new ResponseEntity(HttpStatus.OK);
     }
     
     /**
@@ -268,4 +268,42 @@ public class PaperController {
     public ResponseEntity getPaperNamesByQuesId(@PathVariable String questionId){
         return new ResponseEntity(paperService.getPaperNamesByQuestionId(questionId),HttpStatus.OK);
     }
+    
+    /**
+     * 根据试题获取试卷名称
+     * @param 
+     * @return
+     */
+    @ApiOperation(value="查询用于选题的试题列表",notes="查询用于选题的试题列表")
+    @GetMapping(value = "/paper/listQuestion/{paperId}/{curPage}/{pageSize}")
+    public ResponseEntity listQuestionforSelect(@PathVariable String paperId,
+                                                @PathVariable int curPage,
+                                                @PathVariable int pageSize,
+                                                @RequestParam(name = "quesType") String quesType){
+        if(StringUtils.isNotEmpty(quesType)){          
+            return new ResponseEntity(paperService.listQuestionforSelect(paperId,curPage,pageSize,QuesStructType.valueOf(quesType)),HttpStatus.OK);
+        } else {
+            return new ResponseEntity(paperService.listQuestionforSelect(paperId,curPage,pageSize,null),HttpStatus.OK);
+        }
+       
+    }
+    
+    /**
+     * 
+     * 向试卷中某道大题插入多道试题(已存在的试题)
+     * 
+     * @param paperId
+     * @param paperDetailId
+     * @param question
+     * @return
+     */
+    @ApiOperation(value = "向导入试卷中的新增试题", notes = "向导入试卷中的新增试题")
+    @PostMapping(value = "/paper/selectQuestions/{paperId}/{paperDetailId}")
+    public ResponseEntity selectQuestionsToPaper(@PathVariable String paperId, 
+                                                 @PathVariable String paperDetailId,
+                                                 @RequestBody List<Question> questions) {
+        return new ResponseEntity(paperService.selectQuestionsToPaper(paperId, paperDetailId, questions), HttpStatus.OK);
+
+    }
+    
 }

+ 1 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperDetailController.java

@@ -70,7 +70,7 @@ public class PaperDetailController {
      * @return
      */
     @ApiOperation(value = "更新试卷中的大题", notes = "更新试卷中的大题")
-    @PutMapping(value = "/paperDetail")
+    @PostMapping(value = "/updatePaperDetail/{paperId}")
     public ResponseEntity updatePaperDetail(@PathVariable String paperId,
                                             @RequestBody PaperDetail pd) {
         pd.setPaper(paperRepo.findOne(paperId));

+ 37 - 38
cqb-question-resource/src/main/java/com/qmth/cqb/question/model/QuestionSearchCondition.java

@@ -2,59 +2,58 @@ package com.qmth.cqb.question.model;
 
 import java.util.Map;
 
-public class QuestionSearchCondition {
+import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
 
-	private String id;
+public class QuestionSearchCondition {
 
-	private String quesTypeName;// 试题类型名称
+    private String id;
 
-	private String createTime;// 创建时间
+    private QuesStructType quesType;// 试题类型名称
 
-	private String updateTime;// 更新时间
+    private String createTime;// 创建时间
 
-	private Map<String, String> quesParams;// 试题其他属性
+    private String updateTime;// 更新时间
 
-	public String getId() {
-		return id;
-	}
+    private Map<String, String> quesParams;// 试题其他属性
 
-	public void setId(String id) {
-		this.id = id;
-	}
+    public String getId() {
+        return id;
+    }
 
-	public String getQuesTypeName() {
-		return quesTypeName;
-	}
+    public void setId(String id) {
+        this.id = id;
+    }
 
-	public void setQuesTypeName(String quesTypeName) {
-		this.quesTypeName = quesTypeName;
-	}
+    public QuesStructType getQuesType() {
+        return quesType;
+    }
 
-	public String getCreateTime() {
-		return createTime;
-	}
+    public void setQuesType(QuesStructType quesType) {
+        this.quesType = quesType;
+    }
 
-	public void setCreateTime(String createTime) {
-		this.createTime = createTime;
-	}
+    public String getCreateTime() {
+        return createTime;
+    }
 
-	public String getUpdateTime() {
-		return updateTime;
-	}
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
 
-	public void setUpdateTime(String updateTime) {
-		this.updateTime = updateTime;
-	}
+    public String getUpdateTime() {
+        return updateTime;
+    }
 
-	public Map<String, String> getQuesParams() {
-		return quesParams;
-	}
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
 
-	public void setQuesParams(Map<String, String> quesParams) {
-		this.quesParams = quesParams;
-	}
-	  
-	  
+    public Map<String, String> getQuesParams() {
+        return quesParams;
+    }
 
+    public void setQuesParams(Map<String, String> quesParams) {
+        this.quesParams = quesParams;
+    }
 
 }