Browse Source

修改生成项目接口,允许一个项目对应一个任务对应一个报告

xuexiaobo 6 năm trước cách đây
mục cha
commit
320f05b98f

+ 8 - 0
core/src/main/java/com/mooctest/crowd/domain/factory/CrowdTestProjectFactory.java

@@ -1,6 +1,7 @@
 package com.mooctest.crowd.domain.factory;
 
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
+import com.mooctest.crowd.domain.domainobject.CrowdTestReport;
 import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
 import com.mooctest.crowd.domain.domainobject.CrowdTestTaskStatus;
 import org.springframework.stereotype.Component;
@@ -25,4 +26,11 @@ public class CrowdTestProjectFactory {
         task.setDistributionCity("南京");
         return task;
     }
+
+    public static CrowdTestReport defaultProjectReport() {
+        CrowdTestReport report = new CrowdTestReport();
+        report.setScope(0);
+        report.setIsDeleted(0);
+        return report;
+    }
 }

+ 22 - 0
site/src/main/java/com/mooctest/crowd/site/command/GenerateProjectCommand.java

@@ -3,6 +3,7 @@ package com.mooctest.crowd.site.command;
 import com.alibaba.fastjson.JSONObject;
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
 import com.mooctest.crowd.domain.domainobject.CrowdTestProjectStatus;
+import com.mooctest.crowd.domain.domainobject.CrowdTestReport;
 import com.mooctest.crowd.domain.domainobject.ProjectDistributeType;
 import com.mooctest.crowd.domain.factory.CrowdTestProjectFactory;
 import lombok.Data;
@@ -51,6 +52,15 @@ public class GenerateProjectCommand {
     @NotNull(message = "请填写价格")
     private Double price;
 
+    //报告信息
+    private String reportContent;
+
+    private String reportConclusion;
+
+    private String reportUrl;
+
+    private Integer reportType=6;
+
     public CrowdTestProject toCrowdProject() {
         CrowdTestProject crowdTestProject = CrowdTestProjectFactory.createCrowdTestProject();
         crowdTestProject.setName(this.name);
@@ -74,4 +84,16 @@ public class GenerateProjectCommand {
         crowdTestProject.setFixedPrice(this.price);
         return crowdTestProject;
     }
+
+    public CrowdTestReport getReport() {
+        CrowdTestReport report = CrowdTestProjectFactory.defaultProjectReport();
+        report.setName(this.name + "-测试报告");
+        report.setType(this.reportType);
+        report.setFile(this.reportUrl);
+        report.setDescription("");
+        report.setContent(this.reportContent);
+        report.setConclusion(this.reportConclusion);
+        report.setTestObject("");
+        return report;
+    }
 }

+ 8 - 10
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -1,10 +1,7 @@
 package com.mooctest.crowd.site.mediator.impl;
 
 import com.mooctest.crowd.domain.dao.EvaluationAgencyDao;
-import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
-import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
-import com.mooctest.crowd.domain.domainobject.CrowdTestTaskStatus;
-import com.mooctest.crowd.domain.domainobject.User;
+import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.AccountNotExistException;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
 import com.mooctest.crowd.domain.repository.UserRepo;
@@ -17,6 +14,7 @@ import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.Iterator;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -152,14 +150,14 @@ public class WebMediatorImpl implements ViewMediator {
         List<CrowdTaskVO> taskVOList = project.getCrowdTestTaskList().stream().map(crowdTestTask -> {
             return new CrowdTaskVO(crowdTestTask);
         }).collect(Collectors.toList());
-//        List<CrowdReportVO> reportVOList = project.getCrowdTestReportListByProjectId(projectId, taskVOList.get(0).getId())
-//                .stream()
-//                .map(crowdTestReport -> {
-//            return new CrowdReportVO(crowdTestReport);
-//        }).collect(Collectors.toList());
+        List<CrowdReportVO> reportVOList = null;
+        if (project.getCrowdTestReportForProject() != null) {
+            reportVOList = new ArrayList<>();
+            reportVOList.add(new CrowdReportVO(project.getCrowdTestReportForProject()));
+        }
         projectDetailsDTO.setProjectDetails(new CrowdProjectVO(project));
         projectDetailsDTO.setTaskList(taskVOList);
-//        projectDetailsDTO.setCrowdReportVOList(reportVOList);
+        projectDetailsDTO.setReportList(reportVOList);
         return projectDetailsDTO;
     }
 

+ 6 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdProjectServiceImpl.java

@@ -2,6 +2,7 @@ package com.mooctest.crowd.site.service.impl;
 
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
 import com.mooctest.crowd.domain.domainobject.CrowdTestProjectStatus;
+import com.mooctest.crowd.domain.domainobject.CrowdTestReport;
 import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
 import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.factory.CrowdTestProjectFactory;
@@ -100,6 +101,11 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
             task.setFixedPrice(command.getPrice()/command.getType().size());
             tasks.add(task);
         });
+
+        CrowdTestReport report = command.getReport();
+        report.setDependencyCode(project.getCode());
+        report.setCode(GenerateFlowCodeUtil.generateReportCode());
+        project.setCrowdTestReportForProject(report);
         project.setCrowdTestTaskList(tasks);
         projectRepo.saveCrowdTestProject(project);
         log.info(project.toString());