|
@@ -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;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|