Переглянути джерело

修改任务时涉及到endpoint新建众测任务

郭超 4 роки тому
батько
коміт
8ce28160b5

+ 3 - 3
site/src/main/java/com/mooctest/crowd/site/command/CrowdTestTaskCommand.java

@@ -44,9 +44,9 @@ public class CrowdTestTaskCommand {
 
     private int participantCount;
 
-    private int collaborativeType;
-
-    private String threePageUrl;
+//    private int collaborativeType;
+//
+//    private String threePageUrl;
 
     private EndPoint endPoint;
 

+ 51 - 33
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdTaskServiceImpl.java

@@ -242,15 +242,13 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
 
         // 配置endpoint
         EndPoint endPoint = task.getEndPoint();
-        String endPointData;
         // 众测服务同步新建任务
-        if(command.getEndPoint().getThreePageUrl() != null){
-            endPointData = this.createTaskToCrowdService(command.getName(), command.getDesc(), command.getEndPoint().getCollaborativeType(), command.getEndPoint().getThreePageUrl());
+        if(command.getEndPoint().getThreePageUrl() != null && !command.getEndPoint().getThreePageUrl().equals("")){
+            String endPointData = this.createTaskToCrowdService(command.getName(), command.getDesc(), command.getEndPoint().getCollaborativeType(), command.getEndPoint().getThreePageUrl());
             if(endPointData.equals("")){
                 throw new BaseException("创建失败,众测端调用出错");
             }
             Map<String, Object> dataMap = (Map<String, Object>) JSON.parse(endPointData);
-//            endPoint.setServerCode(dataMap.get("encodedUrl").toString());
             endPoint.setToken(dataMap.get("taskDaPanUrl").toString());
             endPoint.setExamId(dataMap.get("examId").toString());
             endPoint.setCaseId(dataMap.get("caseId").toString());
@@ -264,6 +262,55 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         return getTaskDetails(projectCode, taskCode, userId);
     }
 
+    @Override
+    public TaskDetailsDTO updateTask(String projectCode, String taskCode, CrowdTestTaskCommand command, Long userId) {
+        CrowdTestProject project = projectRepo.getByProjectCodeAndTaskCode(projectCode, taskCode);
+        CrowdTestTask task = this.getTaskByProjectAndTaskCode(project, taskCode);
+        if (task.getStatus() == CrowdTestTaskStatus.HAS_FINISHED)
+            throw new BaseException("禁止修改已结束的任务!");
+        CrowdTestTask updateTask = command.toCrowdTask(projectCode);
+        // 定向任务被拒绝,更新时需要删除任务中的taskToUser  acceptedUserList
+        if (task.getDistributionType().equals(DistributeType.DIRECT.getId())) {
+            crowdTestTaskRepo.deleteTaskToUser(task.getAcceptedUserList().get(0));
+        }
+
+        updateTask.setId(task.getId());
+        updateTask.setCode(taskCode);
+        updateTask.setCreateTime(task.getCreateTime());
+        updateTask.setStatus(CrowdTestTaskStatus.HAS_RELEASED);
+        updateTask.update();
+
+        // 判断endpoint是否有修改
+        EndPoint endPoint = task.getEndPoint();
+        EndPoint commandEndPoint = command.getEndPoint();
+        if(endPoint != null){
+            if(!task.getName().equals(command.getName()) || endPoint.getCollaborativeType() != commandEndPoint.getCollaborativeType()
+                    || !endPoint.getThreePageUrl().equals(commandEndPoint.getThreePageUrl())){
+                // 更新不一样的值
+                endPoint.setCollaborativeType(commandEndPoint.getCollaborativeType());
+                endPoint.setThreePageUrl(commandEndPoint.getThreePageUrl());
+
+                // 任务名称、协作模式、三级菜单被修改,则在众测中新建任务
+                String endPointData = this.createTaskToCrowdService(command.getName(), command.getDesc(), commandEndPoint.getCollaborativeType(), commandEndPoint.getThreePageUrl());
+                if(endPointData.equals("")){
+                    throw new BaseException("创建失败,众测端调用出错");
+                }
+                Map<String, Object> dataMap = (Map<String, Object>) JSON.parse(endPointData);
+                endPoint.setToken(dataMap.get("taskDaPanUrl").toString());
+                endPoint.setExamId(dataMap.get("examId").toString());
+                endPoint.setCaseId(dataMap.get("caseId").toString());
+                // 获取填写报告的url
+                String reportUrl = this.getForEntityReportUrl(userId, task, endPoint);
+                endPoint.setUrl(reportUrl);
+            }
+        }
+        updateTask.setEndPoint(endPoint);
+        project.removeTask(task);
+        project.getCrowdTestTaskList().add(updateTask);
+        projectRepo.saveCrowdTestProject(project);
+        return getTaskDetails(projectCode, taskCode, userId);
+    }
+
     private String createTaskToCrowdService(String name, String desc, int collaborativeType, String threePageUrl) {
         MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
         params.add("name", name);
@@ -333,35 +380,6 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     }
 
     @Override
-    public TaskDetailsDTO updateTask(String projectCode, String taskCode, CrowdTestTaskCommand command, Long userId) {
-        CrowdTestProject project = projectRepo.getByProjectCodeAndTaskCode(projectCode, taskCode);
-        CrowdTestTask crowdTestTask = this.getTaskByProjectAndTaskCode(project, taskCode);
-        if (crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_FINISHED)
-            throw new BaseException("禁止修改已结束的任务!");
-//        command.setType(commonRepo.getTypeCodeByName(command.getType()));
-        CrowdTestTask updateTask = command.toCrowdTask(projectCode);
-        // 定向任务被拒绝,更新时需要删除任务中的taskToUser  acceptedUserList
-        if (crowdTestTask.getDistributionType().equals(DistributeType.DIRECT.getId())) {
-            crowdTestTaskRepo.deleteTaskToUser(crowdTestTask.getAcceptedUserList().get(0));
-        }
-
-        updateTask.setId(crowdTestTask.getId());
-        updateTask.setCode(taskCode);
-        updateTask.setCreateTime(crowdTestTask.getCreateTime());
-        updateTask.setStatus(CrowdTestTaskStatus.HAS_RELEASED);
-        updateTask.update();
-//        project.removeTask(crowdTestTask);
-
-//        // 重新生成任务导出链接
-//        String exportTaskUrl = this.exportTask(projectCode, updateTask.getCode(), userId);
-//        updateTask.setExportUrl(exportTaskUrl);
-
-//        project.addTask(updateTask);
-        projectRepo.saveCrowdTestProject(project);
-        return getTaskDetails(projectCode, taskCode, userId);
-    }
-
-    @Override
     public TaskSquareDTO getAllTasks() {
         return viewMediator.renderTaskSquare();
     }

+ 30 - 159
site/src/main/resources/application.yml

@@ -102,45 +102,6 @@ baseUrl:
     review: http://127.0.0.1:9004
     crowd: http://127.0.0.1:8090
     crowdIndex: http://localhost:8000/edit?primaryColor=%231890ff&fixSiderbar=true&colorWeak=false&title=%E4%BC%97%E6%B5%8B%E6%9C%8D%E5%8A%A1%E7%B3%BB%E7%BB%9F&pwa=false&token=
----
-spring:
-  profiles: dev-online
-  datasource:
-    url: jdbc:mysql://101.37.175.111:3306/crowd-test-service-online?useSSL=false&useUnicode=yes&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
-    username: mooctest
-    password: secr3t!
-  redis:
-    host: 59.42.10.53
-    port: 6379
-    password: '#2019@callforttest@!'
-    jedis:
-      pool:
-        max-active: 8
-        max-idle: 8
-        max-wait: -1
-        min-idle: 0
-    database: 6
-user:
-  service:
-    baseUrl: http://59.42.10.53:8081
-
-#file:
-#  save:
-#    path: /var/www/
-
-file:
-  save:
-    path: /Users/guochao/Desktop/project/data/cofortest/
-
-#feature:
-#  client:
-#    oss: true
-feature:
-  client:
-    oss: false
-
-website:
-  domain: mooctest.net
 
 ---
 # 开发-私有版
@@ -186,7 +147,9 @@ file:
 
 website:
   domain: mooctest.net
+
 ---
+#私有云版本
 spring:
   profiles: private-cloud
   datasource:
@@ -235,55 +198,11 @@ website:
   domain: 127.0.0.1
 
 ---
+#开发线上版本
 spring:
-  profiles: private-cloud-localhost
-  datasource:
-    url: jdbc:mysql://127.0.0.1:3306/crowd-test-service?useSSL=false&useUnicode=yes&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
-    username: root
-    password: Customs2019
-  redis:
-    host: 127.0.0.1
-    port: 6379
-    password:
-    jedis:
-      pool:
-        max-active: 8
-        max-idle: 8
-        max-wait: -1
-        min-idle: 0
-    database: 0
-
-feature:
-  client:
-    oss: false
-
-file:
-  save:
-    path: /Users/guochao/Desktop/project/data/cofortest/
-
-user:
-  service:
-    baseUrl: http://127.0.0.1:8081
-#    baseUrl: http://59.42.10.53:8081
-
-website:
-  domain: 127.0.0.1
-
-private:
-  cloud:
-    # 导入私有云的项目code以此开头
-    master: MASTER
-    task:
-      type:
-        code: MzZC
-    publish:
-      project:
-        id: 4
----
-spring:
-  profiles: dev-localhost
+  profiles: dev-online
   datasource:
-    url: jdbc:mysql://101.37.175.111:3306/crowd-test-service?useSSL=false&useUnicode=yes&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://101.37.175.111:3306/crowd-test-service-online?useSSL=false&useUnicode=yes&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
     username: mooctest
     password: secr3t!
   redis:
@@ -297,63 +216,40 @@ spring:
         max-wait: -1
         min-idle: 0
     database: 6
-
-feature:
-  client:
-    oss: true
-
-file:
-  save:
-    path: http://mooctest-crowd-service.oss-cn-hangzhou.aliyuncs.com/
-
 user:
   service:
-#    baseUrl: http://127.0.0.1:8081
     baseUrl: http://59.42.10.53:8081
 
-website:
-  domain: mooctest.net
+#file:
+#  save:
+#    path: /var/www/
 
----
-spring:
-  profiles: pre
-  datasource:
-    url: jdbc:mysql://101.37.175.111:3306/crowd-test-service-pre?useSSL=false&useUnicode=yes&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
-    username: mooctest
-    password: secr3t!
-  redis:
-    host: 10.18.18.50
-    port: 6379
-    password: '#2019@callforttest@!'
-    jedis:
-      pool:
-        max-active: 8
-        max-idle: 8
-        max-wait: -1
-        min-idle: 0
-    database: 6
-user:
-  service:
-    baseUrl: http://10.18.18.50:8081
+file:
+  save:
+    path: /Users/guochao/Desktop/project/data/cofortest/
 
+#feature:
+#  client:
+#    oss: true
 feature:
   client:
-    oss: true
+    oss: false
 
 website:
   domain: mooctest.net
 
 ---
+#开发线上版本
 spring:
-  profiles: dev-online-localhost
+  profiles: dev-online
   datasource:
     url: jdbc:mysql://101.37.175.111:3306/crowd-test-service-online?useSSL=false&useUnicode=yes&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
     username: mooctest
     password: secr3t!
   redis:
-    host: 114.55.91.27
+    host: 59.42.10.53
     port: 6379
-    password: '#03#05@ise@mooctest'
+    password: '#2019@callforttest@!'
     jedis:
       pool:
         max-active: 8
@@ -363,53 +259,28 @@ spring:
     database: 6
 user:
   service:
-    baseUrl: http://127.0.0.1:8081
+    baseUrl: http://59.42.10.53:8081
+
+#file:
+#  save:
+#    path: /var/www/
 
 file:
   save:
-    path: /var/www/
+    path: /Users/guochao/Desktop/project/data/cofortest/
 
+#feature:
+#  client:
+#    oss: true
 feature:
   client:
-    oss: true
+    oss: false
 
 website:
   domain: mooctest.net
 
 ---
-spring:
-  profiles: pre-online
-  datasource:
-    url: jdbc:mysql://10.18.18.50:3306/crowd-test-service?useSSL=false&useUnicode=yes&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
-    username: root
-    password: callfortest_crowd
-  redis:
-    host: 10.18.18.50
-    port: 6379
-    password: '#2019@callforttest@!'
-    jedis:
-      pool:
-        max-active: 8
-        max-idle: 8
-        max-wait: -1
-        min-idle: 0
-    database: 0
-
-feature:
-  client:
-    oss: true
-
-file:
-  save:
-    path: /var/www/
-
-user:
-  service:
-    baseUrl: http://user.cofortest.com:8081
-website:
-  domain: cofortest.com
-
----
+#线上群智版本
 spring:
   profiles: online
   datasource: