|
@@ -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();
|
|
|
}
|