Ver Fonte

后端:1.网考接口提交
2.上传音频文件大小修改(5M修改为10M)

weiwenhai há 7 anos atrás
pai
commit
4639d5e47b

+ 108 - 102
cqb-paper/src/main/java/com/qmth/cqb/paper/service/ExtractConfigService.java

@@ -1,102 +1,108 @@
-package com.qmth.cqb.paper.service;
-
-import java.util.List;
-import java.util.Map;
-
-
-
-
-
-
-
-
-import org.springframework.data.domain.Page;
-
-import cn.com.qmth.examcloud.common.dto.question.QuestionDto;
-import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
-
-import com.qmth.cqb.paper.model.ExtractConfig;
-import com.qmth.cqb.paper.model.Paper;
-import com.qmth.cqb.utils.enums.PaperType;
-
-/**
- * 
- * @author  	chenken
- * @date    	2017年4月14日 下午6:08:15
- * @company 	QMTH
- * @description 调卷规则接口
- */
-public interface ExtractConfigService {
-	/**
-	 * 根据考试ID和课程code获取规则
-	 * @param examId
-	 * @param courseCode
-	 * @return
-	 */
-	public ExtractConfig findConfig(ExtractConfig extractConfig);
-	/**
-	 * 根据ID获取调卷规则
-	 * @param id
-	 * @return
-	 */
-	public ExtractConfig findConfigById(String id);
-	/**
-	 * 保存调卷规则
-	 * @param extractConfig
-	 * @param orgName		机构名称
-	 * @throws Exception
-	 */
-	public Map<String, String> saveExtractConfig(ExtractConfig extractConfig,AccessUser accessUser) throws Exception;
-	/**
-	 * 按照设定调卷规则生成一套试卷
-	 * 1.根据ExamPaper集合得出每个类型下应该抽取的试卷,并返回 试卷类型--->试卷的map
-	 * 2.根据小题乱序和选项乱序规则,重组试卷
-	 * 3.得到试卷类型--->试卷ID的map,设置到finishedPaperIdMap属性中
-	 * 4.如果 是第一次生成试卷,保存finishedPaperIdMap
-	 * @param extractConfigId	规则 ID
-	 * @return 类型--->试卷ID的Map集合
-	 */
-	public Map<String, String> makePaperByConfig(ExtractConfig extractConfig);
-	/**
-	 * 根据给定试卷重组试卷,生成新的试卷
-	 * @param paper					给定的试卷
-	 * @param upSetQuestionOrder	小题乱序		1:乱序  0:不乱序
-	 * @param upSetOptionOrder		选项乱序		1:乱序  0:不乱序
-	 * @return
-	 */
-	public Paper recombinationPaper(Paper paper,PaperType paperType,int upSetQuestionOrder,int upSetOptionOrder);
-	/**
-	 * 根据courseNo和orgId取出所有被引用的试卷 ID
-	 * @return
-	 */
-	public List<String> getExamPaperId(String courseCode,String orgId);
-	/**
-	 * 根据考试ID,课程code,试卷类型生成试卷
-	 * @return PaperDto
-	 */
-	public Map<String, Object> extractExamPaper(Long exam_id,String course_code,String group_code);
-	/**
-	 * 根据paperDetailUnitId抽取单个试题
-	 * @param id
-	 * @return
-	 */
-	public QuestionDto extractExamQuestion(String examId,String courseCode,String groupCode,String paperDetailUnitId);
-	/**
-	 * 判断试卷中的题是否都为客观题(单选、多选、判断),包括套题中的小题
-	 * 全为客观题返回true
-	 * 不全为客观题返回false
-	 * @param newPaper
-	 * @return
-	 */
-	public boolean checkIsAllQbjectiveQuestion(String paperId);
-	/**
-	 * 分页查询调卷规则
-	 * @param currentPage
-	 * @param pageSize
-	 * @param examId
-	 * @param courseNo
-	 * @return
-	 */
-	public Page<ExtractConfig> findPageExtractConfig(int currentPage,int pageSize, Long examId, String courseNo, String courseLevel);
-	
-}
+package com.qmth.cqb.paper.service;
+
+import java.util.List;
+import java.util.Map;
+
+
+
+
+
+
+
+
+import org.springframework.data.domain.Page;
+
+import cn.com.qmth.examcloud.common.dto.question.QuestionDto;
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+
+import com.qmth.cqb.paper.model.ExtractConfig;
+import com.qmth.cqb.paper.model.Paper;
+import com.qmth.cqb.utils.enums.PaperType;
+
+/**
+ * 
+ * @author  	chenken
+ * @date    	2017年4月14日 下午6:08:15
+ * @company 	QMTH
+ * @description 调卷规则接口
+ */
+public interface ExtractConfigService {
+	/**
+	 * 根据考试ID和课程code获取规则
+	 * @param examId
+	 * @param courseCode
+	 * @return
+	 */
+	public ExtractConfig findConfig(ExtractConfig extractConfig);
+	/**
+	 * 根据ID获取调卷规则
+	 * @param id
+	 * @return
+	 */
+	public ExtractConfig findConfigById(String id);
+	/**
+	 * 保存调卷规则
+	 * @param extractConfig
+	 * @param orgName		机构名称
+	 * @throws Exception
+	 */
+	public Map<String, String> saveExtractConfig(ExtractConfig extractConfig,AccessUser accessUser) throws Exception;
+	/**
+	 * 按照设定调卷规则生成一套试卷
+	 * 1.根据ExamPaper集合得出每个类型下应该抽取的试卷,并返回 试卷类型--->试卷的map
+	 * 2.根据小题乱序和选项乱序规则,重组试卷
+	 * 3.得到试卷类型--->试卷ID的map,设置到finishedPaperIdMap属性中
+	 * 4.如果 是第一次生成试卷,保存finishedPaperIdMap
+	 * @param extractConfigId	规则 ID
+	 * @return 类型--->试卷ID的Map集合
+	 */
+	public Map<String, String> makePaperByConfig(ExtractConfig extractConfig);
+	/**
+	 * 根据给定试卷重组试卷,生成新的试卷
+	 * @param paper					给定的试卷
+	 * @param upSetQuestionOrder	小题乱序		1:乱序  0:不乱序
+	 * @param upSetOptionOrder		选项乱序		1:乱序  0:不乱序
+	 * @return
+	 */
+	public Paper recombinationPaper(Paper paper,PaperType paperType,int upSetQuestionOrder,int upSetOptionOrder);
+	/**
+	 * 根据courseNo和orgId取出所有被引用的试卷 ID
+	 * @return
+	 */
+	public List<String> getExamPaperId(String courseCode,String orgId);
+	/**
+	 * 根据考试ID,课程code,试卷类型生成试卷
+	 * @return PaperDto
+	 */
+	public Map<String, Object> extractExamPaper(Long exam_id,String course_code,String group_code);
+	/**
+	 * 根据paperDetailUnitId抽取单个试题
+	 * @param id
+	 * @return
+	 */
+	public QuestionDto extractExamQuestion(String examId,String courseCode,String groupCode,String paperDetailUnitId);
+	/**
+	 * 判断试卷中的题是否都为客观题(单选、多选、判断),包括套题中的小题
+	 * 全为客观题返回true
+	 * 不全为客观题返回false
+	 * @param newPaper
+	 * @return
+	 */
+	public boolean checkIsAllQbjectiveQuestion(String paperId);
+	/**
+	 * 分页查询调卷规则
+	 * @param currentPage
+	 * @param pageSize
+	 * @param examId
+	 * @param courseNo
+	 * @return
+	 */
+	public Page<ExtractConfig> findPageExtractConfig(int currentPage,int pageSize, Long examId, String courseNo, String courseLevel);
+	
+	/**
+	 * 根据试卷id获取试卷结构
+	 * @return PaperDto
+	 */
+	public Map<String, Object> extractPaper(String paperId);
+	
+}

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

@@ -10,6 +10,7 @@ import com.qmth.cqb.paper.assemble.PaperDetailDtoAssembler;
 import com.qmth.cqb.paper.assemble.PaperDetailUnitDtoAssembler;
 import com.qmth.cqb.paper.assemble.PaperDtoAssembler;
 import com.qmth.cqb.paper.assemble.SubQuestionDtoAssembler;
+
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.SystemUtils;
 import org.bson.types.ObjectId;
@@ -822,5 +823,18 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 		}
 		return new PageImpl<ExtractConfig>(extractConfigs,new PageRequest(currentPage,pageSize),pageExamCourse.getTotalElements());
 	}
+
+	@Override
+	public Map<String, Object> extractPaper(String paperId) {
+		Map<String, Object> returnMap = new HashMap<String,Object>();
+		Paper paper = paperRepo.findOne(paperId);
+		if(paper == null){
+			returnMap.put("errorMsg","该试卷不存在");
+			return returnMap;
+		}
+		PaperDto paperDto = getPaperDtoByPaper(paper,paperId);
+		returnMap.put("paperDto",paperDto);
+		return returnMap;
+	}
 	
 }

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

@@ -226,4 +226,21 @@ public class ExtractConfigController {
 		}
 	}
 	
+	@ApiOperation(value = "根据试卷id抽取考试试卷", notes = "根据试卷id抽取考试试卷")
+    @GetMapping(value = "/extract/paper/{paperId}")
+    public ResponseEntity<Object> extractPaper(@PathVariable String paperId) {
+		try{
+			Map<String, Object> returnMap = extractConfigService.extractPaper(paperId);
+			if(returnMap.get("errorMsg")==null){
+				PaperDto paperDto = (PaperDto) returnMap.get("paperDto");
+				return new ResponseEntity<Object>(paperDto, HttpStatus.OK);
+			}else{
+				return new ResponseEntity<Object>(returnMap.get("errorMsg")+"", HttpStatus.OK);
+			}
+		}catch(Exception e){
+			logger.error("抽卷失败",e);
+			return new ResponseEntity<Object>(HttpStatus.INTERNAL_SERVER_ERROR);
+		}
+	}
+	
 }	

+ 36 - 36
cqb-starter/src/main/resources/application-dev.properties

@@ -1,37 +1,37 @@
-#spring.data.mongodb.uri=mongodb://root:Qmth87863577@119.23.127.95:3717/?authSource=admin&authMechanism=SCRAM-SHA-1
-spring.data.mongodb.uri=mongodb://192.168.10.30:27017/comm-ques-bank
-spring.data.mongodb.grid-fs-database=comm-ques-bank
-spring.data.mongodb.database=comm-ques-bank
-eureka.client.serviceUrl.defaultZone=http://192.168.10.30:1111/eureka/
-spring.application.name=ExamCloud-service-question
-
-spring.redis.host=192.168.10.30
-spring.redis.port=6379
-
-upyun.bucketName=exam-cloud-test
-upyun.userName=examcloud
-upyun.password=examcloud123456
-upyun.uploadUrl=/comm-ques-bank/dev/exam-paper-file/
-upyun.audio.uploadUrl=/comm-ques-bank/dev/audio/
-upyun.audio.maxsize=5
-upyun.downloadUrl=http://exam-cloud-test.b0.upaiyun.com
-upyun.downloadDirectory=paperDirectory
-upyun.zipDirectory=paperZipDirectory
-upyun.radioType=mp3,wma
-
-
-spring.datasource.url=jdbc:mysql://192.168.10.30:3306/exam_cloud_test?useUnicode=true&characterEncoding=UTF-8
-spring.datasource.username=root
-spring.datasource.password=root
-spring.datasource.validation-query=SELECT 1 FROM DUAL
-spring.datasource.test-on-borrow=true
-spring.datasource.driver-class-name=com.mysql.jdbc.Driver
-spring.jpa.show-sql=false
-spring.jpa.hibernate.ddl-auto=update
-
-
-spring.rabbitmq.host=192.168.10.30
-spring.rabbitmq.port=5672
-spring.rabbitmq.username=examcloud
-spring.rabbitmq.password=examcloud
+#spring.data.mongodb.uri=mongodb://root:Qmth87863577@119.23.127.95:3717/?authSource=admin&authMechanism=SCRAM-SHA-1
+spring.data.mongodb.uri=mongodb://192.168.10.30:27017/comm-ques-bank
+spring.data.mongodb.grid-fs-database=comm-ques-bank
+spring.data.mongodb.database=comm-ques-bank
+eureka.client.serviceUrl.defaultZone=http://192.168.10.30:1111/eureka/
+spring.application.name=ExamCloud-service-question
+
+spring.redis.host=192.168.10.30
+spring.redis.port=6379
+
+upyun.bucketName=exam-cloud-test
+upyun.userName=examcloud
+upyun.password=examcloud123456
+upyun.uploadUrl=/comm-ques-bank/dev/exam-paper-file/
+upyun.audio.uploadUrl=/comm-ques-bank/dev/audio/
+upyun.audio.maxsize=10
+upyun.downloadUrl=http://exam-cloud-test.b0.upaiyun.com
+upyun.downloadDirectory=paperDirectory
+upyun.zipDirectory=paperZipDirectory
+upyun.radioType=mp3,wma
+
+
+spring.datasource.url=jdbc:mysql://192.168.10.30:3306/exam_cloud_test?useUnicode=true&characterEncoding=UTF-8
+spring.datasource.username=root
+spring.datasource.password=root
+spring.datasource.validation-query=SELECT 1 FROM DUAL
+spring.datasource.test-on-borrow=true
+spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+spring.jpa.show-sql=false
+spring.jpa.hibernate.ddl-auto=update
+
+
+spring.rabbitmq.host=192.168.10.30
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=examcloud
+spring.rabbitmq.password=examcloud
 spring.rabbitmq.listener.acknowledgeMode=MANUAL

+ 1 - 1
cqb-starter/src/main/resources/application-test.properties

@@ -12,7 +12,7 @@ upyun.userName=examcloud
 upyun.password=examcloud123456
 upyun.uploadUrl=/comm-ques-bank/test/exam-paper-file/
 upyun.audio.uploadUrl=/comm-ques-bank/test/audio/
-upyun.audio.maxsize=5
+upyun.audio.maxsize=10
 upyun.downloadUrl=http://exam-cloud-test.b0.upaiyun.com
 upyun.downloadDirectory=paperDirectory
 upyun.zipDirectory=paperZipDirectory