소스 검색

Merge remote-tracking branch 'origin/dev0410' into dev0410

宋悦 8 년 전
부모
커밋
5af8527299

+ 72 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/dto/PageExamCourse.java

@@ -0,0 +1,72 @@
+package com.qmth.cqb.paper.dto;
+
+import java.io.Serializable;
+import java.util.List;
+
+import cn.com.qmth.examcloud.common.dto.core.ExamCourseDto;
+
+/**
+ * @author  	chenken
+ * @date    	2017年7月26日 上午11:32:38
+ * @company 	QMTH
+ * @description PageExamCourse.java
+ */
+public class PageExamCourse implements Serializable{
+	
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -4960290977498969319L;
+
+	private List<ExamCourseDto> content;
+	
+	private int totalElements;
+	
+	private int totalPages;
+	
+	private int size;
+	
+	private int number;
+
+	public List<ExamCourseDto> getContent() {
+		return content;
+	}
+
+	public void setContent(List<ExamCourseDto> content) {
+		this.content = content;
+	}
+
+	public int getTotalElements() {
+		return totalElements;
+	}
+
+	public void setTotalElements(int totalElements) {
+		this.totalElements = totalElements;
+	}
+
+	public int getTotalPages() {
+		return totalPages;
+	}
+
+	public void setTotalPages(int totalPages) {
+		this.totalPages = totalPages;
+	}
+
+	public int getSize() {
+		return size;
+	}
+
+	public void setSize(int size) {
+		this.size = size;
+	}
+
+	public int getNumber() {
+		return number;
+	}
+
+	public void setNumber(int number) {
+		this.number = number;
+	}
+	
+}
+

+ 10 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/model/ExtractConfig.java

@@ -6,6 +6,8 @@ import java.util.Map;
 
 import org.springframework.data.annotation.Id;
 
+import cn.com.qmth.examcloud.common.dto.core.ExamCourseDto;
+
 import com.qmth.cqb.utils.enums.ExtractPolicy;
 
 /**
@@ -107,6 +109,14 @@ public class ExtractConfig implements Serializable {
     	this.courseCode = course_code;
 	}
     
+	public ExtractConfig(ExamCourseDto examCourseDto) {
+		this.examId = examCourseDto.getExamId();
+		this.examName = examCourseDto.getExamName();
+		this.courseCode = examCourseDto.getCourseCode();
+		this.courseName = examCourseDto.getCourseName();
+		this.examType = examCourseDto.getExamType().name();
+	}
+
 	public Long getExamId() {
         return examId;
     }

+ 6 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/rpc/ExamCourseClient.java

@@ -19,5 +19,11 @@ import cn.com.qmth.examcloud.common.dto.core.ExamCourseDto;
 public interface ExamCourseClient {
 	@RequestMapping(method = RequestMethod.GET, value = "${app.api.exam}/exam_course/marking")
 	List<ExamCourseDto> findExamCourseByExamId(@RequestParam("exam_id") String examId);
+	
+	@RequestMapping(method = RequestMethod.GET, value = "${app.api.exam}/exam_course")
+	String findPageExamCourse(@RequestParam("exam_id") Long examId,
+										   @RequestParam(value = "course_code",required = false) String courseCode,
+										   @RequestParam("cur_page") Integer  currentPage,
+										   @RequestParam("page_size") Integer  pageSize);
 }
 

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

@@ -5,6 +5,8 @@ import java.util.Map;
 
 import javax.servlet.http.HttpServletResponse;
 
+import org.springframework.data.domain.Page;
+
 import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
 
 import com.qmth.cqb.paper.dto.ExportPaperInfoModel;
@@ -94,5 +96,14 @@ public interface ExtractConfigService {
 	 * @param exportModel
 	 */
 	public void exportExamPaperInfo(ExportPaperInfoModel exportModel,HttpServletResponse response)  throws Exception ;
+	/**
+	 * 分页查询调卷规则
+	 * @param currentPage
+	 * @param pageSize
+	 * @param examId
+	 * @param courseNo
+	 * @return
+	 */
+	public Page<ExtractConfig> findPageExtractConfig(int currentPage,int pageSize, Long examId, String courseNo);
 	
 }

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

@@ -21,6 +21,9 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.domain.Example;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
@@ -37,6 +40,7 @@ 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;
 import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+import cn.com.qmth.examcloud.common.util.GsonUtil;
 import cn.com.qmth.examcloud.common.util.excel.ExcelWriter;
 
 import com.qmth.cqb.paper.dao.ExportServiceManageRepo;
@@ -46,6 +50,7 @@ import com.qmth.cqb.paper.dao.PaperDetailUnitRepo;
 import com.qmth.cqb.paper.dao.PaperRepo;
 import com.qmth.cqb.paper.dto.ExportPaperInfoModel;
 import com.qmth.cqb.paper.dto.ObjectiveQuestionStructure;
+import com.qmth.cqb.paper.dto.PageExamCourse;
 import com.qmth.cqb.paper.dto.PaperDetailExp;
 import com.qmth.cqb.paper.dto.PaperDetailUnitExp;
 import com.qmth.cqb.paper.dto.PaperExp;
@@ -793,4 +798,28 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
     	subjectiveExcelExporter.write(examName+"_主观题.xlsx",subjectiveQuestionStructureList,out2);
 	}
 
+	@Override
+	public Page<ExtractConfig> findPageExtractConfig(int currentPage,int pageSize, Long examId, String courseNo) {
+		String examCourseJson = examCourseClient.findPageExamCourse(examId,courseNo,currentPage,pageSize);
+		
+		PageExamCourse pageExamCourse = GsonUtil.getInstanceByJson(examCourseJson,PageExamCourse.class);
+		
+		List<ExamCourseDto> examCourseList = pageExamCourse.getContent();
+		if(examCourseList.size()==0){
+			throw new RuntimeException("考务系统无数据返回");
+		}
+		List<ExtractConfig> extractConfigs = new ArrayList<ExtractConfig>();
+		for(ExamCourseDto examCourseDto:examCourseList){
+			ExtractConfig condition = new ExtractConfig();
+			condition.setExamId(examCourseDto.getExamId());
+			condition.setCourseCode(examCourseDto.getCourseCode());
+			ExtractConfig extractConfig = this.findConfig(condition);
+			if(extractConfig==null){
+				extractConfig = new ExtractConfig(examCourseDto);
+			}
+			extractConfigs.add(extractConfig);
+		}
+		return new PageImpl<ExtractConfig>(extractConfigs,new PageRequest(currentPage,pageSize),pageExamCourse.getTotalElements());
+	}
+
 }

+ 19 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/web/ExtractConfigController.java

@@ -15,6 +15,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Controller;
@@ -23,6 +24,7 @@ import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import cn.com.qmth.examcloud.common.dto.question.PaperDto;
 import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
@@ -30,6 +32,7 @@ import cn.com.qmth.examcloud.common.util.ErrorMsg;
 
 import com.qmth.cqb.paper.dto.ExportPaperInfoModel;
 import com.qmth.cqb.paper.model.ExtractConfig;
+import com.qmth.cqb.paper.rpc.ExamCourseClient;
 import com.qmth.cqb.paper.service.ExtractConfigService;
 import com.qmth.cqb.utils.enums.ExportWay;
 
@@ -49,6 +52,22 @@ public class ExtractConfigController {
 	@Autowired
 	private ExtractConfigService extractConfigService;
 	
+	@ApiOperation(value = "根据考试ID和课程ID获取调卷规则", notes = "根据考试ID和课程ID获取调卷规则")
+    @GetMapping(value = "/findPageExtractConfig/{currentPage}/{pageSize}")
+	public ResponseEntity findPageExtractConfig(@PathVariable int currentPage,
+														       @PathVariable int pageSize,
+															   @RequestParam("examId") Long examId,
+															   @RequestParam("courseNo") String courseNo){
+		try{
+			Page<ExtractConfig> extractConfigPageList = extractConfigService.findPageExtractConfig(currentPage,pageSize,examId,courseNo);
+			return new ResponseEntity<Page<ExtractConfig>>(extractConfigPageList,HttpStatus.OK);
+		}catch(Exception e){
+			e.printStackTrace();
+			return new ResponseEntity<Object>(new ErrorMsg(e.getMessage()),HttpStatus.INTERNAL_SERVER_ERROR);
+		}
+	}
+	
+	
 	@ApiOperation(value = "根据考试ID和课程ID获取调卷规则", notes = "根据考试ID和课程ID获取调卷规则")
     @GetMapping(value = "/extractConfig/{examId}/{courseCode}")
 	public ResponseEntity<ExtractConfig> findExtractConfig(@PathVariable Long examId,@PathVariable String courseCode){