deason 6 жил өмнө
parent
commit
d51ea55047

+ 11 - 0
examcloud-core-print-provider/pom.xml

@@ -12,6 +12,17 @@
     </parent>
 
     <dependencies>
+        <dependency>
+            <groupId>cn.com.qmth.examcloud.rmi</groupId>
+            <artifactId>examcloud-commons-api</artifactId>
+            <version>${examcloud.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>cn.com.qmth.examcloud.commons</groupId>
+                    <artifactId>examcloud-commons-web</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
         <dependency>
             <groupId>cn.com.qmth.examcloud.rmi</groupId>
             <artifactId>examcloud-core-print-api</artifactId>

+ 4 - 4
examcloud-core-print-provider/src/main/java/cn/com/qmth/examcloud/core/print/api/provider/PrintingProjectCloudServiceProvider.java

@@ -36,12 +36,12 @@ public class PrintingProjectCloudServiceProvider extends ControllerSupport imple
     @Autowired
     private PrintingProjectService printingProjectService;
 
-    @PostMapping("/sync")
+    @PostMapping("/data/sync")
     @ApiOperation(value = "同步(新增或更新)印刷项目信息")
-    public SyncPrintingProjectResp syncPrintingProject(@RequestBody SyncPrintingProjectReq request) {
-        Check.isNull(request, "请求参数不能为空!");
+    public SyncPrintingProjectResp syncPrintingProject(@RequestBody SyncPrintingProjectReq req) {
+        Check.isNull(req, "请求参数不能为空!");
 
-        SyncPrintingProjectBean bean = request.getBean();
+        SyncPrintingProjectBean bean = req.getBean();
         printingProjectService.syncPrintingProject(new OrgExamInfo(bean.getOrgId(), bean.getOrgName(), bean.getExamId(), bean.getExamName()));
 
         return new SyncPrintingProjectResp();

+ 74 - 0
examcloud-core-print-provider/src/main/java/cn/com/qmth/examcloud/core/print/api/provider/PrintingSyncCloudServiceProvider.java

@@ -0,0 +1,74 @@
+/*
+ * *************************************************
+ * Copyright (c) 2018 QMTH. All Rights Reserved.
+ * Created by Deason on 2018-10-31 10:59:58.
+ * *************************************************
+ */
+
+package cn.com.qmth.examcloud.core.print.api.provider;
+
+import cn.com.qmth.examcloud.commons.api.HandleSyncCloudService;
+import cn.com.qmth.examcloud.commons.api.request.*;
+import cn.com.qmth.examcloud.commons.api.response.*;
+import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
+import cn.com.qmth.examcloud.core.print.service.PrintingProjectService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+/**
+ * 数据同步相关接口
+ *
+ * @author: fengdesheng
+ * @since: 2018/10/31
+ */
+@RestController
+@Api(tags = "数据同步相关接口")
+@RequestMapping("${$rmp.cloud.print}/data")
+public class PrintingSyncCloudServiceProvider extends ControllerSupport implements HandleSyncCloudService {
+    @Autowired
+    private PrintingProjectService printingProjectService;
+
+    @ApiOperation(value = "同步学校机构")
+    @PostMapping("/syncOrg")
+    public SyncOrgResp syncOrg(@RequestBody SyncOrgReq req) {
+        printingProjectService.syncPrintingProjectOrgName(req.getRootId(), req.getName());
+        return new SyncOrgResp();
+    }
+
+    @ApiOperation(value = "同步考试")
+    @PostMapping("syncExam")
+    public SyncExamResp syncExam(@RequestBody SyncExamReq req) {
+        //printingProjectService.syncPrintingProjectOrgName(req.getExamId(), req.getExamName());
+        return new SyncExamResp();
+    }
+
+    @ApiOperation(value = "同步考生")
+    @PostMapping("/syncExamStudent")
+    public SyncExamStudentResp syncExamStudent(@RequestBody SyncExamStudentReq req) {
+        return null;
+    }
+
+    @ApiOperation(value = "同步学生")
+    @PostMapping("/syncStudent")
+    public SyncStudentResp syncStudent(@RequestBody SyncStudentReq req) {
+        return null;
+    }
+
+    @ApiOperation(value = "同步课程")
+    @PostMapping("/syncCourse")
+    public SyncCourseResp syncCourse(@RequestBody SyncCourseReq req) {
+        return null;
+    }
+
+    @ApiOperation(value = "同步专业")
+    @PostMapping("syncSpecialty")
+    public SyncSpecialtyResp syncSpecialty(@RequestBody SyncSpecialtyReq req) {
+        return null;
+    }
+
+}

+ 10 - 0
examcloud-core-print-service/src/main/java/cn/com/qmth/examcloud/core/print/service/PrintingProjectService.java

@@ -41,6 +41,16 @@ public interface PrintingProjectService {
      */
     void syncPrintingProject(OrgExamInfo examInfo);
 
+    /**
+     * 同步更新学校名称信息
+     */
+    void syncPrintingProjectOrgName(Long orgId, String orgName);
+
+    /**
+     * 同步更新考试名称信息
+     */
+    void syncPrintingProjectExamName(Long examId, String examName);
+
     /**
      * 同步更新项目经理名称信息
      */

+ 25 - 0
examcloud-core-print-service/src/main/java/cn/com/qmth/examcloud/core/print/service/impl/PrintingProjectServiceImpl.java

@@ -19,6 +19,7 @@ import cn.com.qmth.examcloud.core.print.service.bean.OrgExamInfo;
 import cn.com.qmth.examcloud.core.print.service.bean.PrintingProjectConvert;
 import cn.com.qmth.examcloud.core.print.service.bean.PrintingProjectInfo;
 import cn.com.qmth.examcloud.core.print.service.bean.PrintingProjectQuery;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
@@ -149,14 +150,38 @@ public class PrintingProjectServiceImpl implements PrintingProjectService {
         printingProjectRepository.save(project);
     }
 
+    @Override
+    public void syncPrintingProjectOrgName(Long orgId, String orgName) {
+        if (orgId == null || StringUtils.isBlank(orgName)) {
+            return;
+        }
+        String updateSql = String.format("UPDATE ec_prt_project SET org_name = '%s' WHERE org_id = %s", orgName, orgId);
+        jdbcTemplate.update(updateSql);
+    }
+
+    @Override
+    public void syncPrintingProjectExamName(Long examId, String examName) {
+        if (examId == null || StringUtils.isBlank(examName)) {
+            return;
+        }
+        String updateSql = String.format("UPDATE ec_prt_project SET exam_name = '%s' WHERE exam_id = %s", examName, examId);
+        jdbcTemplate.update(updateSql);
+    }
+
     @Override
     public void syncPrintingProjectPmName(Long pmId, String pmName) {
+        if (pmId == null || StringUtils.isBlank(pmName)) {
+            return;
+        }
         String updateSql = String.format("UPDATE ec_prt_project SET pm_name = '%s' WHERE pm_id = %s", pmName, pmId);
         jdbcTemplate.update(updateSql);
     }
 
     @Override
     public void syncPrintingProjectSupplierName(Long supplierId, String supplierName) {
+        if (supplierId == null || StringUtils.isBlank(supplierName)) {
+            return;
+        }
         String updateSql = String.format("UPDATE ec_prt_project SET supplier_name = '%s' WHERE supplier_id = %s", supplierName, supplierId);
         jdbcTemplate.update(updateSql);
     }

+ 6 - 4
examcloud-core-print-starter/src/test/java/cn/com/qmth/examcloud/core/print/test/PrintingProjectServiceTest.java

@@ -57,7 +57,7 @@ public class PrintingProjectServiceTest {
         System.out.println(new JsonMapper().toJson(page));
     }
 
-    //@Test
+    @Test
     public void updatePrintingProjectTest() throws Exception {
         PrintingProjectInfo info = new PrintingProjectInfo();
         info.setId(1L);
@@ -74,12 +74,14 @@ public class PrintingProjectServiceTest {
         printingProjectService.updatePrintingProject(info);
     }
 
-    //@Test
+    @Test
     public void syncPrintingProjectTest() throws Exception {
         OrgExamInfo examInfo = new OrgExamInfo(1L, "武汉大学", 1L, "计算机考试");
         printingProjectService.syncPrintingProject(examInfo);
-        printingProjectService.syncPrintingProjectPmName(1L, "雷布斯");
-        printingProjectService.syncPrintingProjectSupplierName(1L, "小米公司");
+        printingProjectService.syncPrintingProjectOrgName(1L, "武汉大学1");
+        printingProjectService.syncPrintingProjectExamName(1L, "计算机考试1");
+        printingProjectService.syncPrintingProjectPmName(1L, "雷布斯1");
+        printingProjectService.syncPrintingProjectSupplierName(1L, "小米公司1");
     }
 
     //@Test