|
@@ -33,11 +33,18 @@ import net.lingala.zip4j.util.Zip4jConstants;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
|
+import org.springframework.http.HttpStatus;
|
|
|
|
+import org.springframework.http.ResponseEntity;
|
|
|
|
+import org.springframework.http.converter.StringHttpMessageConverter;
|
|
import org.springframework.mock.web.MockMultipartFile;
|
|
import org.springframework.mock.web.MockMultipartFile;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.util.LinkedMultiValueMap;
|
|
|
|
+import org.springframework.util.MultiValueMap;
|
|
|
|
+import org.springframework.web.client.RestTemplate;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import java.io.*;
|
|
import java.io.*;
|
|
|
|
+import java.nio.charset.StandardCharsets;
|
|
import java.sql.Timestamp;
|
|
import java.sql.Timestamp;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -205,6 +212,26 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
|
|
CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
|
|
CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
|
|
String taskCode = GenerateFlowCodeUtil.generateFlowCode("TASK-" + ProjectType.getCode(command.getType()));
|
|
String taskCode = GenerateFlowCodeUtil.generateFlowCode("TASK-" + ProjectType.getCode(command.getType()));
|
|
task.create(taskCode);
|
|
task.create(taskCode);
|
|
|
|
+
|
|
|
|
+ // 配置endpoint
|
|
|
|
+ EndPoint endPoint = task.getEndPoint();
|
|
|
|
+ String endPointData;
|
|
|
|
+ // 众测服务同步新建任务
|
|
|
|
+ if(command.getEndPoint().getThreePageUrl() != null){
|
|
|
|
+ endPointData = createTaskToCrowdService(command.getName(), command.getDesc(), command.getEndPoint().getCollaborativeType(), command.getEndPoint().getThreePageUrl());
|
|
|
|
+ System.out.println(endPointData);
|
|
|
|
+ if(endPointData.equals("")){
|
|
|
|
+ throw new BaseException("创建失败,众测端调用出错");
|
|
|
|
+ }
|
|
|
|
+ Map<String, Object> dataMap = (Map<String, Object>) JSON.parse(endPointData);
|
|
|
|
+ System.out.println(dataMap.get("encodedUrl").toString());
|
|
|
|
+ System.out.println(dataMap.get("taskDaPanUrl").toString());
|
|
|
|
+ System.out.println(dataMap.get("writeReportUrl").toString());
|
|
|
|
+ endPoint.setServerCode(dataMap.get("encodedUrl").toString());
|
|
|
|
+ endPoint.setUrl(dataMap.get("writeReportUrl").toString());
|
|
|
|
+ endPoint.setToken(dataMap.get("taskDaPanUrl").toString());
|
|
|
|
+ }
|
|
|
|
+ task.setEndPoint(endPoint);
|
|
project.addTask(task);
|
|
project.addTask(task);
|
|
projectRepo.saveCrowdTestProject(project);
|
|
projectRepo.saveCrowdTestProject(project);
|
|
|
|
|
|
@@ -214,6 +241,28 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
|
|
return getTaskDetails(projectCode, taskCode, userId);
|
|
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);
|
|
|
|
+ params.add("description", desc);
|
|
|
|
+ params.add("collaborativeType", collaborativeType + "");
|
|
|
|
+ params.add("threePageUrl", threePageUrl);
|
|
|
|
+ params.add("fileName", threePageUrl.substring(threePageUrl.lastIndexOf("/")+1));
|
|
|
|
+ RestTemplate restTemplate = new RestTemplate();
|
|
|
|
+ restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
|
|
|
|
+ ResponseEntity<String> responseEntity = restTemplate.postForEntity
|
|
|
|
+ ("http://" + "localhost:9004" + "/addCrowdTaskDefault", params, String.class);
|
|
|
|
+ if (responseEntity.getStatusCode().equals(HttpStatus.OK)){
|
|
|
|
+ String responseEntityBody = responseEntity.getBody();
|
|
|
|
+ Map<String, Object> resultMap = (Map<String, Object>) JSON.parse(responseEntityBody);
|
|
|
|
+ if((int)resultMap.get("status") == 200){
|
|
|
|
+ return resultMap.get("data").toString();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return "";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public TaskDetailsDTO updateTask(String projectCode, String taskCode, CrowdTestTaskCommand command, Long userId) {
|
|
public TaskDetailsDTO updateTask(String projectCode, String taskCode, CrowdTestTaskCommand command, Long userId) {
|
|
CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
|
|
CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
|