浏览代码

后端接口提交

weiwenhai 6 年之前
父节点
当前提交
2371630897

+ 191 - 0
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/provider/HandleSyncCloudServiceProvider.java

@@ -0,0 +1,191 @@
+package cn.com.qmth.examcloud.core.questions.api.provider;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiOperation;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import cn.com.qmth.examcloud.commons.api.HandleSyncCloudService;
+import cn.com.qmth.examcloud.commons.api.request.SyncCourseReq;
+import cn.com.qmth.examcloud.commons.api.request.SyncExamReq;
+import cn.com.qmth.examcloud.commons.api.request.SyncExamStudentReq;
+import cn.com.qmth.examcloud.commons.api.request.SyncOrgReq;
+import cn.com.qmth.examcloud.commons.api.request.SyncSpecialtyReq;
+import cn.com.qmth.examcloud.commons.api.request.SyncStudentReq;
+import cn.com.qmth.examcloud.commons.api.response.SyncCourseResp;
+import cn.com.qmth.examcloud.commons.api.response.SyncExamResp;
+import cn.com.qmth.examcloud.commons.api.response.SyncExamStudentResp;
+import cn.com.qmth.examcloud.commons.api.response.SyncOrgResp;
+import cn.com.qmth.examcloud.commons.api.response.SyncSpecialtyResp;
+import cn.com.qmth.examcloud.commons.api.response.SyncStudentResp;
+import cn.com.qmth.examcloud.commons.base.exception.StatusException;
+import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
+import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
+import cn.com.qmth.examcloud.core.questions.dao.ExtractConfigRepo;
+import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
+import cn.com.qmth.examcloud.core.questions.dao.QuesRepo;
+import cn.com.qmth.examcloud.core.questions.dao.entity.Course;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
+import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
+import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
+
+/**
+ * @author 		weiwenhai
+ * @date		2018.10.11
+ * @company		qmth
+ * @description	同步课程
+ * @code		018
+ */
+@Transactional
+@RestController
+@RequestMapping("${$rmp.cloud.questions}" + "dataSync")
+public class HandleSyncCloudServiceProvider extends ControllerSupport implements HandleSyncCloudService {
+
+	private static final long serialVersionUID = -2121791220624238299L;
+
+	@Autowired
+    ExtractConfigRepo extractConfigRepo;
+	
+	@Autowired
+    QuesRepo quesRepo;
+
+    @Autowired
+    PaperRepo paperRepo;
+	
+	@ApiOperation(value = "同步课程")
+	@PostMapping("syncCourse")
+	@Override
+	public SyncCourseResp syncCourse(@RequestBody SyncCourseReq req) {
+		String courseCode = req.getCode();
+		Long rootOrgId = req.getRootOrgId();
+		String courseName = req.getName();
+		String courseLevel = req.getLevel();
+		Boolean enable = req.getEnable();
+		Long courseId = req.getId();
+		if (StringUtils.isBlank(courseName)) {
+			throw new StatusException("Q-018073", "courseName is null");
+		}
+		if (null == courseId) {
+			throw new StatusException("Q-018076", "courseId is null");
+		}
+		if (StringUtils.isBlank(courseLevel)) {
+			throw new StatusException("Q-018079", "courseLevel is null");
+		}
+		if (null == rootOrgId) {
+			throw new StatusException("Q-018082", "rootOrgId is null");
+		}
+		//同步调卷规则
+	    List<ExtractConfig> extractConfigs= extractConfigRepo.findByCourseCodeAndOrgId(courseCode,rootOrgId.toString());
+		if (extractConfigs != null && extractConfigs.size() > 0) {
+		    for (ExtractConfig extractConfig : extractConfigs) {
+		        extractConfig.setCourseName(courseName);
+		        Course course = extractConfig.getCourse();
+		        if(course != null){
+		            course.setName(courseName);
+		            course.setLevel(courseLevel);
+		            course.setEnable(enable.toString());
+		            course.setUpdateTime(CommonUtils.getCurDateTime());
+		            extractConfig.setCourse(course);
+		        }else{
+		            Course tempCourse = new Course();
+		            tempCourse.setCode(courseCode);
+		            tempCourse.setName(courseName);
+		            tempCourse.setLevel(courseLevel);
+		            tempCourse.setEnable(enable.toString());
+		            tempCourse.setOrgId(rootOrgId.toString());
+		            tempCourse.setCreateTime(CommonUtils.getCurDateTime());
+		            extractConfig.setCourse(tempCourse);
+		        }
+		    }
+		    extractConfigRepo.save(extractConfigs);
+		}
+		//同步试卷
+		List<Paper> papers = paperRepo.findByCourseNoAndOrgId(courseCode, rootOrgId.toString());
+        if (papers != null && papers.size() > 0) {
+            for (Paper paper : papers) {
+                Course course = paper.getCourse();
+                if(course != null){
+                    course.setName(courseName);
+                    course.setLevel(courseLevel);
+                    course.setEnable(enable.toString());
+                    course.setUpdateTime(CommonUtils.getCurDateTime());
+                    paper.setCourse(course);
+                }else{
+                    Course tempCourse = new Course();
+                    tempCourse.setCode(courseCode);
+                    tempCourse.setName(courseName);
+                    tempCourse.setLevel(courseLevel);
+                    tempCourse.setEnable(enable.toString());
+                    tempCourse.setOrgId(rootOrgId.toString());
+                    tempCourse.setCreateTime(CommonUtils.getCurDateTime());
+                    paper.setCourse(tempCourse);
+                }
+            }
+            paperRepo.save(papers);
+        }
+        //同步试题
+        List<Question> questions = quesRepo.findByCourseNoAndOrgId(courseCode, rootOrgId.toString());
+        if (questions != null && questions.size() > 0) {
+            for (Question question : questions) {
+                Course course = question.getCourse();
+                if(course != null){
+                    course.setName(courseName);
+                    course.setLevel(courseLevel);
+                    course.setEnable(enable.toString());
+                    course.setUpdateTime(CommonUtils.getCurDateTime());
+                    question.setCourse(course);
+                }else{
+                    Course tempCourse = new Course();
+                    tempCourse.setCode(courseCode);
+                    tempCourse.setName(courseName);
+                    tempCourse.setLevel(courseLevel);
+                    tempCourse.setEnable(enable.toString());
+                    tempCourse.setOrgId(rootOrgId.toString());
+                    tempCourse.setCreateTime(CommonUtils.getCurDateTime());
+                    question.setCourse(tempCourse);
+                }
+            }
+            quesRepo.save(questions);
+        }
+        SyncCourseResp resp = new SyncCourseResp();
+		return resp;
+	}
+
+	@Override
+	public SyncOrgResp syncOrg(SyncOrgReq req) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SyncStudentResp syncStudent(SyncStudentReq req) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SyncExamStudentResp syncExamStudent(SyncExamStudentReq req) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SyncSpecialtyResp syncSpecialty(SyncSpecialtyReq req) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public SyncExamResp syncExam(SyncExamReq req) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+}

+ 22 - 0
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/provider/PaperCloudServiceProvider.java

@@ -3,6 +3,7 @@ package cn.com.qmth.examcloud.core.questions.api.provider;
 import io.swagger.annotations.ApiOperation;
 
 
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -13,7 +14,9 @@ import org.springframework.web.bind.annotation.RestController;
 
 import cn.com.qmth.examcloud.commons.base.exception.StatusException;
 import cn.com.qmth.examcloud.core.questions.api.PaperCloudService;
+import cn.com.qmth.examcloud.core.questions.api.request.GetExtractConfigReq;
 import cn.com.qmth.examcloud.core.questions.api.request.GetQuestionListReq;
+import cn.com.qmth.examcloud.core.questions.api.response.GetCommonResp;
 import cn.com.qmth.examcloud.core.questions.api.response.GetPaperResp;
 import cn.com.qmth.examcloud.core.questions.service.PaperProviderService;
 
@@ -52,4 +55,23 @@ public class PaperCloudServiceProvider implements PaperCloudService{
 		return resp;
 	}
 
+	@ApiOperation(value = "外部接口组卷", notes = "外部接口组卷")
+    @PostMapping("/examPaper")
+	@Override
+	public GetCommonResp examPaper(GetExtractConfigReq req) {
+		if(StringUtils.isBlank(req.getRootOrgId())){
+			throw new StatusException("Q-017063", "rootOrgId is null");
+		}
+		if(StringUtils.isBlank(req.getPaperId())){
+			throw new StatusException("Q-017066", "paperId is null");
+		}
+		if(StringUtils.isBlank(req.getExamId()+"")){
+			throw new StatusException("Q-017069", "examId is null");
+		}
+		String extractConfigId = paperProviderService.examPaper(req.getRootOrgId(), req.getPaperId(), req.getExamId(), req.getExtractConfigId());
+		GetCommonResp resp = new GetCommonResp();
+		resp.setMessage(extractConfigId);
+		return resp;
+	}
+
 }

+ 5 - 0
examcloud-core-questions-service/pom.xml

@@ -21,6 +21,11 @@
 			<artifactId>examcloud-core-questions-api-client</artifactId>
 			<version>${examcloud.version}</version>
 		</dependency>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.rmi</groupId>
+			<artifactId>examcloud-commons-api-client</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
 	</dependencies>
 
 </project>

+ 6 - 0
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PaperProviderService.java

@@ -28,4 +28,10 @@ public interface PaperProviderService {
 	 */
 	public DefaultPaper findPaper(String paperId);
 	
+	/**
+	 * 制定考试试卷
+	 * @return
+	 */
+	public String examPaper(String orgId, String paperId, Long examId, String extractConfigId);
+	
 }

+ 65 - 2
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperProviderServiceImpl.java

@@ -14,19 +14,22 @@ import org.springframework.stereotype.Service;
 import cn.com.qmth.examcloud.commons.base.exception.StatusException;
 import cn.com.qmth.examcloud.commons.base.logging.ExamCloudLog;
 import cn.com.qmth.examcloud.commons.base.logging.ExamCloudLogFactory;
-import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.core.questions.api.bean.PaperK12Bean;
 import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
+import cn.com.qmth.examcloud.core.questions.dao.ExtractConfigRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
 import cn.com.qmth.examcloud.core.questions.dao.QuesRepo;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Course;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetail;
 import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
+import cn.com.qmth.examcloud.core.questions.service.ExtractConfigService;
 import cn.com.qmth.examcloud.core.questions.service.PaperProviderService;
 import cn.com.qmth.examcloud.question.core.paper.DefaultPaper;
 
@@ -56,6 +59,12 @@ public class PaperProviderServiceImpl implements PaperProviderService{
     
     @Autowired
     ExtractConfigProviderServiceImpl extractConfigProviderServiceImpl;
+    
+    @Autowired
+    ExtractConfigService extractConfigService;
+    
+    @Autowired
+    ExtractConfigRepo extractConfigRepo;
 	
 	@Override
 	public String genPaper(Set<String> questionIds,Map<String, PaperK12Bean> map,String paperName,String orgId,String userName){
@@ -168,10 +177,64 @@ public class PaperProviderServiceImpl implements PaperProviderService{
 	public DefaultPaper findPaper(String paperId) {
 		Paper basePaper = paperRepo.findOne(paperId);
 		if(basePaper == null){
-			throw new StatusException("Q-014160", "basePaper is null");
+			throw new StatusException("Q-014180", "basePaper is null");
 		}
 		DefaultPaper defaultPaper = extractConfigProviderServiceImpl.buildDefaultByBasePaper(basePaper, null, null, null);
 		return defaultPaper;
 	}
 
+	@Override
+	public String examPaper(String orgId, String paperId, Long examId, String extractConfigId) {
+		if(StringUtils.isBlank(extractConfigId)){
+			ExtractConfig extractConfig = new ExtractConfig();
+			extractConfig.setExamId(examId);
+			extractConfig.setCourseCode("K12");
+			extractConfig.setOrgId(orgId);
+			ExtractConfig tempConfig = extractConfigService.findConfig(extractConfig);
+			if(tempConfig != null){
+	    		throw new StatusException("Q-014195", "考卷关联对象已经生成!");
+	    	}else {
+	    		//查询试卷对象
+	    		Paper paper = paperRepo.findOne(paperId);
+	    		//初始化默认课程
+	    		Course course = new Course();
+	    		course.setId("k12");
+	    		course.setCode("k12");
+	    		course.setName("k12");
+	    		course.setLevel("ALL");
+	    		course.setOrgId(orgId);
+	    		course.setCreateTime(CommonUtils.getCurDateTime());
+	    		course.setEnable("true");
+	    		extractConfig.setCourse(course);
+	    		extractConfig.setIfFinish((short)0);
+	    		ExamPaper examPaper = new ExamPaper();
+	    		examPaper.setId(null);
+	    		examPaper.setGroupCode("K");
+	    		examPaper.setWeight(100);
+	    		examPaper.setPaper(paper);
+	    		List<ExamPaper> examPaperList = new ArrayList<ExamPaper>();
+	    		examPaperList.add(examPaper);
+	    		extractConfig.setExamPaperList(examPaperList);
+	    		extractConfig.setScrambling_the_option_order((short)0);
+	    		extractConfig.setScrambling_the_question_order((short)0);
+			}
+			extractConfig = extractConfigRepo.save(extractConfig);
+			return extractConfig.getId();
+		}else {
+			ExtractConfig extractConfig = extractConfigRepo.findOne(extractConfigId);
+			if(extractConfig == null){
+				throw new StatusException("Q-Q-014225", "考卷关联对象不存在");
+			}
+			List<ExamPaper> examPaperList = extractConfig.getExamPaperList();
+			if(examPaperList != null && examPaperList.size()>0){
+				ExamPaper examPaper = examPaperList.get(0);
+				//查询试卷对象
+	    		Paper paper = paperRepo.findOne(paperId);
+				examPaper.setPaper(paper);
+			}
+			extractConfigRepo.save(extractConfig);
+			return extractConfig.getId();
+		}
+	}
+
 }

+ 4 - 2
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/QuestionProviderServiceImpl.java

@@ -58,8 +58,9 @@ public class QuestionProviderServiceImpl implements QuestionProviderService{
 		//初始化默认课程
 		Course course = new Course();
 		course.setId("k12");
-		course.setId("k12");
+		course.setCode("k12");
 		course.setName("k12");
+		course.setLevel("ALL");
 		course.setOrgId(defaultQuestion.getRootOrgId().toString());
 		course.setCreateTime(CommonUtils.getCurDateTime());
 		course.setEnable("true");
@@ -434,8 +435,9 @@ public class QuestionProviderServiceImpl implements QuestionProviderService{
 				//初始化默认课程
 				Course course = new Course();
 				course.setId("k12");
-				course.setId("k12");
+				course.setCode("k12");
 				course.setName("k12");
+				course.setLevel("ALL");
 				course.setOrgId(defaultQuestion.getRootOrgId().toString());
 				course.setCreateTime(CommonUtils.getCurDateTime());
 				course.setEnable("true");