Bläddra i källkod

修复数据同步问题

宋悦 7 år sedan
förälder
incheckning
98cb30c4e0
1 ändrade filer med 67 tillägg och 16 borttagningar
  1. 67 16
      cqb-starter/src/main/java/com/qmth/cqb/sync/DataReceiveService.java

+ 67 - 16
cqb-starter/src/main/java/com/qmth/cqb/sync/DataReceiveService.java

@@ -3,6 +3,7 @@ package com.qmth.cqb.sync;
 import com.qmth.commons.dataSync.core.annotations.DataReceive;
 import com.qmth.commons.dataSync.core.entity.BaseSyncData;
 import com.qmth.commons.dataSync.core.service.DataSyncService;
+import com.qmth.cqb.base.dao.CourseRepo;
 import com.qmth.cqb.base.model.Course;
 import com.qmth.cqb.paper.dao.PaperRepo;
 import com.qmth.cqb.paper.model.Paper;
@@ -34,6 +35,9 @@ public class DataReceiveService {
     @Autowired
     PaperRepo paperRepo;
 
+    @Autowired
+    CourseRepo courseRepo;
+
     @DataReceive(domain = "cn.com.qmth.examcloud.common.dto.core.CourseSync")
     public synchronized void readCourse(BaseSyncData baseSyncData) {
         if (dataSyncService.expired(baseSyncData)) {
@@ -54,28 +58,75 @@ public class DataReceiveService {
             log.error("entity value is null");
             return;
         }
-        List<Question> questions = quesRepo.findByCourseNoAndOrgId(courseCode, orgId);
-        List<Paper> papers = paperRepo.findByCourseNoAndOrgId(courseCode, orgId);
-        if (questions != null && questions.size() > 0) {
-            for (Question question : questions) {
-                Course course = question.getCourse();
-                course.setName(courseName);
-                course.setLevel(courseLevel);
-                course.setEnable(enable);
-                course.setUpdateTime(CommonUtils.getCurDateTime());
-            }
+
+        Course localCourse = courseRepo.findFirstByCodeAndOrgId(courseCode,orgId);
+        if(localCourse != null){
+            localCourse.setName(courseName);
+            localCourse.setLevel(courseLevel);
+            localCourse.setEnable(enable);
+            localCourse.setUpdateTime(CommonUtils.getCurDateTime());
+            courseRepo.save(localCourse);
+        }else{
+            Course tempCourse = new Course();
+            tempCourse.setCode(courseCode);
+            tempCourse.setName(courseName);
+            tempCourse.setLevel(courseLevel);
+            tempCourse.setEnable(enable);
+            tempCourse.setOrgId(orgId);
+            tempCourse.setCreateTime(CommonUtils.getCurDateTime());
+            courseRepo.save(tempCourse);
         }
+
+        List<Paper> papers = paperRepo.findByCourseNoAndOrgId(courseCode, orgId);
         if (papers != null && papers.size() > 0) {
             for (Paper paper : papers) {
                 Course course = paper.getCourse();
-                course.setName(courseName);
-                course.setLevel(courseLevel);
-                course.setEnable(enable);
-                course.setUpdateTime(CommonUtils.getCurDateTime());
+                if(course != null){
+                    course.setName(courseName);
+                    course.setLevel(courseLevel);
+                    course.setEnable(enable);
+                    course.setUpdateTime(CommonUtils.getCurDateTime());
+                    paper.setCourse(course);
+                }else{
+                    Course tempCourse = new Course();
+                    tempCourse.setCode(courseCode);
+                    tempCourse.setName(courseName);
+                    tempCourse.setLevel(courseLevel);
+                    tempCourse.setEnable(enable);
+                    tempCourse.setOrgId(orgId);
+                    tempCourse.setCreateTime(CommonUtils.getCurDateTime());
+                    paper.setCourse(tempCourse);
+                }
             }
+            paperRepo.save(papers);
         }
-        quesRepo.save(questions);
-        paperRepo.save(papers);
+
+
+
+        List<Question> questions = quesRepo.findByCourseNoAndOrgId(courseCode, orgId);
+        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);
+                    course.setUpdateTime(CommonUtils.getCurDateTime());
+                    question.setCourse(course);
+                }else{
+                    Course tempCourse = new Course();
+                    tempCourse.setCode(courseCode);
+                    tempCourse.setName(courseName);
+                    tempCourse.setLevel(courseLevel);
+                    tempCourse.setEnable(enable);
+                    tempCourse.setOrgId(orgId);
+                    tempCourse.setCreateTime(CommonUtils.getCurDateTime());
+                    question.setCourse(tempCourse);
+                }
+            }
+            quesRepo.save(questions);
+        }
+
         log.info("-----------coursesync end---------");
     }