Pārlūkot izejas kodu

增加Code属性,完善对项目的操作

guochao 6 gadi atpakaļ
vecāks
revīzija
975c0e9521

+ 70 - 22
core/src/main/java/com/mooctest/crowd/domain/controller/CrowdTestProjectController.java

@@ -1,8 +1,6 @@
 package com.mooctest.crowd.domain.controller;
 
-import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
-import com.mooctest.crowd.domain.domainobject.CrowdTestProjectStatus;
-import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
+import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -11,7 +9,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.sql.Timestamp;
-import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -32,6 +30,12 @@ public class CrowdTestProjectController {
         return crowdTestProject.toString();
     }
 
+    @RequestMapping(value = "findByProjectCode/{crowdTestProjectCode}", method = RequestMethod.GET)
+    public String getCrowdTestProjectByProjectCode(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode){
+        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
+        return crowdTestProject.toString();
+    }
+
     @RequestMapping(value = "findByUserId/{userId}", method = RequestMethod.GET)
     public String getAllCrowdTestProjectByUserId(@PathVariable("userId") Long userId){
         List<CrowdTestProject> allCrowdTestProject = crowdTestProjectRepo.getCrowdListByUserId(userId);
@@ -50,42 +54,86 @@ public class CrowdTestProjectController {
         return allCrowdTestProject.toString();
     }
 
-    @RequestMapping(value = "createProject/{userId}/{regionalManagerId}", method = RequestMethod.GET)
-    public String createCrowdTestProject(@PathVariable("userId") Long userId,@PathVariable("regionalManagerId") Long regionalManagerId){
+    /**
+     * 新建项目
+     * @param userId
+     * @param regionalManagerId
+     * @param projectName
+     * @return
+     */
+    @RequestMapping(value = "createProject/{userId}/{regionalManagerId}/{projectName}", method = RequestMethod.GET)
+    public String createCrowdTestProject(@PathVariable("userId") Long userId,@PathVariable("regionalManagerId") Long regionalManagerId,@PathVariable("projectName") String projectName){
         CrowdTestProject crowdTestProject = new CrowdTestProject();
+        crowdTestProject.setCode(projectName+"_"+System.currentTimeMillis());
         crowdTestProject.setUserId(userId);
-        crowdTestProject.setName("众包项目");
+        crowdTestProject.setName(projectName);
         crowdTestProject.setRegionalManagerId(regionalManagerId);
         crowdTestProject.setProjectDistributionTypeId(1L);
+        crowdTestProject.setLinkMan("郭超");
+        crowdTestProject.setLinkManMobile("13657094936");
         crowdTestProject.setQuotedPrice(200.00);
         crowdTestProject.setStatus(CrowdTestProjectStatus.CREATED);
+        crowdTestProject.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis())).getTime()));
         crowdTestProject.setCreateTime(new Timestamp(System.currentTimeMillis()));
-//        CrowdTestProject saveResult = crowdTestProjectRepo.saveCreateCrowdTestProject(crowdTestProject);
-//        return saveResult.toString();
-
-        crowdTestProjectRepo.saveCrowdTestProjectAndCrowdTestTask(crowdTestProject);
-        return "success";
+        CrowdTestProject saveResult = crowdTestProjectRepo.saveCreateCrowdTestProject(crowdTestProject);
+        return saveResult.toString();
     }
 
 
-    @RequestMapping(value = "createTask/{crowdTestProjectId}/{taskName}", method = RequestMethod.GET)
-    public String createCrowdTestProject(@PathVariable("crowdTestProjectId") Long crowdTestProjectId,@PathVariable("taskName") String taskName){
-        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(crowdTestProjectId);
-
+    /**
+     * 项目中新建任务
+     * @param crowdTestProjectCode
+     * @param taskName
+     * @return
+     */
+    @RequestMapping(value = "createTask/{crowdTestProjectCode}/{taskName}", method = RequestMethod.GET)
+    public String createCrowdTestTask(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("taskName") String taskName){
         CrowdTestTask crowdTestTask = new CrowdTestTask();
+        crowdTestTask.setCode(crowdTestProjectCode+"_"+taskName+"_"+System.currentTimeMillis());
         crowdTestTask.setName(taskName);
-        crowdTestTask.setCrowdTestProjectId(crowdTestProjectId);
+        crowdTestTask.setCrowdTestProjectCode(crowdTestProjectCode);
         crowdTestTask.setEvaluationAgencyId(1L);
         crowdTestTask.setQuotedPrice(200.00);
         crowdTestTask.setStatus(CrowdTestProjectStatus.CREATED);
+        crowdTestTask.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis())).getTime()));
         crowdTestTask.setCreateTime(new Timestamp(System.currentTimeMillis()));
+        crowdTestProjectRepo.saveCreateCrowdTestTask(crowdTestProjectCode, crowdTestTask);
+        return "success";
+    }
 
-        ArrayList<CrowdTestTask> crowdTestTasks = new ArrayList<>();
-        crowdTestTasks.add(crowdTestTask);
-
-        crowdTestProject.setCrowdTestTaskList(crowdTestTasks);
-        crowdTestProjectRepo.saveCrowdTestProjectAndCrowdTestTask(crowdTestProject);
+    /**
+     * 项目的任务中新建报告
+     * @param crowdTestProjectCode
+     * @param reportName
+     * @return
+     */
+    @RequestMapping(value = "createReport/{crowdTestProjectCode}/{crowdTestTaskCode}/{reportName}", method = RequestMethod.GET)
+    public String createCrowdTestReport(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("reportName") String reportName,
+                                        @PathVariable("crowdTestTaskCode") String crowdTestTaskCode){
+
+        CrowdTestReport crowdTestReport = new CrowdTestReport();
+        crowdTestReport.setCode(crowdTestProjectCode+crowdTestTaskCode+"_"+reportName+"_"+System.currentTimeMillis());
+        crowdTestReport.setName(reportName);
+        crowdTestReport.setCrowdTestTaskCode(crowdTestTaskCode);
+        crowdTestReport.setStatus(CrowdTestReportStatus.CREATED);
+        crowdTestReport.setCreateTime(new Timestamp(System.currentTimeMillis()));
+
+        crowdTestProjectRepo.saveCreateCrowdTestReport(crowdTestProjectCode,crowdTestTaskCode,crowdTestReport);
         return "success";
     }
 
+    /**
+     * 计算指定时间的下一天
+     * @param date 指定时间
+     * @return  指定时间的下一天
+     */
+    private static Date getNextDay(Date date){
+        long addTime=1;							//计算相关的时间间隔
+        addTime*=1;
+        addTime*=24*3600*1000;
+        Date nextDate=new Date(date.getTime()+addTime);  //把时间间隔转换为毫秒数
+        return nextDate;
+    }
+
+
 }

+ 2 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/CrowdTestProjectDao.java

@@ -18,6 +18,8 @@ public interface CrowdTestProjectDao extends CrudRepository<CrowdTestProjectPO,
     @Override
     Optional<CrowdTestProjectPO> findById(Long id);
 
+    CrowdTestProjectPO findByCode(String code);
+
     List<CrowdTestProjectPO> findByUserId(Long userId);
 
     List<CrowdTestProjectPO> findAll();

+ 3 - 1
core/src/main/java/com/mooctest/crowd/domain/dao/CrowdTestReportDao.java

@@ -18,7 +18,9 @@ public interface CrowdTestReportDao extends CrudRepository<CrowdTestReportPO, Lo
     @Override
     Optional<CrowdTestReportPO> findById(Long id);
 
-    List<CrowdTestReportPO> findByCrowdTestTaskId(Long crowdTestTaskId);
+    CrowdTestReportPO findByCode(String code);
+
+    List<CrowdTestReportPO> findByCrowdTestTaskCode(String crowdTestTaskCode);
 
     List<CrowdTestReportPO> findAll();
 

+ 3 - 1
core/src/main/java/com/mooctest/crowd/domain/dao/CrowdTestTaskDao.java

@@ -18,7 +18,9 @@ public interface CrowdTestTaskDao extends CrudRepository<CrowdTestTaskPO, Long>
     @Override
     Optional<CrowdTestTaskPO> findById(Long id);
 
-    List<CrowdTestTaskPO> findByCrowdTestProjectId(Long crowdTestProjectId);
+    CrowdTestTaskPO findByCode(String code);
+
+    List<CrowdTestTaskPO> findByCrowdTestProjectCode(String crowdTestProjectCode);
 
     List<CrowdTestTaskPO> findByEvaluationAgencyId(Long evaluationAgencyId);
 

+ 22 - 2
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProject.java

@@ -29,6 +29,17 @@ public class CrowdTestProject {
     private Double fixedPrice;
     private String status;
     private Timestamp createTime;
+
+    private String platform;
+    private String linkMan;
+    private String linkManMobile;
+    private String type;
+    private String distributionProvince;
+    private String distributionCity;
+    private Timestamp deadTime;
+    private Timestamp endTime;
+    private String code;
+
     private List<CrowdTestTask> crowdTestTaskList;
 
     @Override
@@ -40,12 +51,21 @@ public class CrowdTestProject {
                 ", regionalManagerId=" + regionalManagerId +
                 ", projectDistributionTypeId=" + projectDistributionTypeId +
                 ", description='" + description + '\'' +
-                ", projectFile=" + projectFile +
-                ", requirementFile=" + requirementFile +
+                ", projectFile='" + projectFile + '\'' +
+                ", requirementFile='" + requirementFile + '\'' +
                 ", quotedPrice=" + quotedPrice +
                 ", fixedPrice=" + fixedPrice +
                 ", status='" + status + '\'' +
                 ", createTime=" + createTime +
+                ", platform='" + platform + '\'' +
+                ", linkMan='" + linkMan + '\'' +
+                ", linkManMobile='" + linkManMobile + '\'' +
+                ", type='" + type + '\'' +
+                ", distributionProvince='" + distributionProvince + '\'' +
+                ", distributionCity='" + distributionCity + '\'' +
+                ", deadTime=" + deadTime +
+                ", endTime=" + endTime +
+                ", code='" + code + '\'' +
                 ", crowdTestTaskList=" + crowdTestTaskList +
                 '}';
     }

+ 13 - 4
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestReport.java

@@ -13,24 +13,33 @@ public class CrowdTestReport {
 
     private Long id;
     private String name;
-    private Long crowdTestTaskId;
+    private String crowdTestTaskCode;
     private String type;
     private String description;
     private String content;
     private String status;
     private Timestamp createTime;
 
+    private String testObject;
+    private String conclusion;
+    private String file;
+    private String code;
+
     @Override
     public String toString() {
         return "CrowdTestReport{" +
                 "id=" + id +
-                ", name=" + name +
-                ", crowdTestTaskId=" + crowdTestTaskId +
-                ", type=" + type +
+                ", name='" + name + '\'' +
+                ", crowdTestTaskCode=" + crowdTestTaskCode +
+                ", type='" + type + '\'' +
                 ", description='" + description + '\'' +
                 ", content='" + content + '\'' +
                 ", status='" + status + '\'' +
                 ", createTime=" + createTime +
+                ", testObject='" + testObject + '\'' +
+                ", conclusion='" + conclusion + '\'' +
+                ", file='" + file + '\'' +
+                ", code='" + code + '\'' +
                 '}';
     }
 }

+ 17 - 4
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTask.java

@@ -15,7 +15,7 @@ import java.util.List;
 public class CrowdTestTask {
     private Long id;
     private String name;
-    private Long crowdTestProjectId;
+    private String crowdTestProjectCode;
     private Long evaluationAgencyId;
     private String type;
     private String description;
@@ -26,22 +26,35 @@ public class CrowdTestTask {
     private Timestamp createTime;
     private List<CrowdTestReport> crowdTestReportList;
 
+    private String distributionType;
+    private String distributionProvince;
+    private String distributionCity;
+    private Timestamp deadTime;
+    private Timestamp endTime;
+    private String code;
+
 
     @Override
     public String toString() {
         return "CrowdTestTask{" +
                 "id=" + id +
                 ", name='" + name + '\'' +
-                ", crowdTestProjectId=" + crowdTestProjectId +
+                ", crowdTestProjectCode=" + crowdTestProjectCode +
                 ", evaluationAgencyId=" + evaluationAgencyId +
-                ", type=" + type +
+                ", type='" + type + '\'' +
                 ", description='" + description + '\'' +
-                ", requirementFile=" + requirementFile +
+                ", requirementFile='" + requirementFile + '\'' +
                 ", quotedPrice=" + quotedPrice +
                 ", fixedPrice=" + fixedPrice +
                 ", status='" + status + '\'' +
                 ", createTime=" + createTime +
                 ", crowdTestReportList=" + crowdTestReportList +
+                ", distributionType='" + distributionType + '\'' +
+                ", distributionProvince='" + distributionProvince + '\'' +
+                ", distributionCity='" + distributionCity + '\'' +
+                ", deadTime=" + deadTime +
+                ", endTime=" + endTime +
+                ", code='" + code + '\'' +
                 '}';
     }
 

+ 28 - 0
core/src/main/java/com/mooctest/crowd/domain/model/CrowdTestProjectPO.java

@@ -19,6 +19,9 @@ public class CrowdTestProjectPO {
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
 
+    @Column(name = "CTP_CODE")
+    private String code;
+
     @Column(name = "CTP_NAME")
     private String name;
 
@@ -52,6 +55,31 @@ public class CrowdTestProjectPO {
     @Column(name = "CTP_CREATE_TIME")
     private Timestamp createTime;
 
+    @Column(name = "CTP_PLATFORM")
+    private String platform;
+
+    @Column(name = "CTP_LINK_MAN")
+    private String linkMan;
+
+    @Column(name = "CTP_Link_MAN_MOBILE")
+    private String linkManMobile;
+
+    @Column(name = "CTP_TYPE")
+    private String type;
+
+    @Column(name = "CTP_DISTRIBUTION_PROVINCE")
+    private String distributionProvince;
+
+    @Column(name = "CTP_DISTRIBUTION_CITY")
+    private String distributionCity;
+
+    @Column(name = "CTP_DEAD_LINE")
+    private Timestamp deadTime;
+
+    @Column(name = "CTP_END_TIME")
+    private Timestamp endTime;
+
+
     @Override
     public String toString() {
         return "CrowdTestProject{" +

+ 16 - 3
core/src/main/java/com/mooctest/crowd/domain/model/CrowdTestReportPO.java

@@ -21,8 +21,12 @@ public class CrowdTestReportPO {
     @Column(name = "CTR_NAME")
     private String name;
 
-    @Column(name = "CTR_CTT_ID")
-    private Long crowdTestTaskId;
+    @Column(name = "CTR_CODE")
+    private String code;
+
+
+    @Column(name = "CTR_CTT_CODE")
+    private String crowdTestTaskCode;
 
     @Column(name = "CTR_TYPE")
     private String type;
@@ -39,12 +43,21 @@ public class CrowdTestReportPO {
     @Column(name = "CTR_CREATE_TIME")
     private Timestamp createTime;
 
+    @Column(name = "CTR_TEST_OBJECT")
+    private String testObject;
+
+    @Column(name = "CTR_CONCLUSION")
+    private String conclusion;
+
+    @Column(name = "CTR_FILE")
+    private String file;
+
     @Override
     public String toString() {
         return "CrowdTestReportPO{" +
                 "id=" + id +
                 ", name='" + name + '\'' +
-                ", crowdTestTaskId=" + crowdTestTaskId +
+                ", crowdTestTaskCode=" + crowdTestTaskCode +
                 ", type='" + type + '\'' +
                 ", description='" + description + '\'' +
                 ", content='" + content + '\'' +

+ 21 - 3
core/src/main/java/com/mooctest/crowd/domain/model/CrowdTestTaskPO.java

@@ -18,11 +18,14 @@ CrowdTestTaskPO {
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
 
+    @Column(name = "CTT_CODE")
+    private String code;
+
     @Column(name = "CTT_NAME")
     private String name;
 
-    @Column(name = "CTT_CTP_ID")
-    private Long crowdTestProjectId;
+    @Column(name = "CTT_CTP_CODE")
+    private String crowdTestProjectCode;
 
     @Column(name = "CTT_EA_ID")
     private Long evaluationAgencyId;
@@ -48,12 +51,27 @@ CrowdTestTaskPO {
     @Column(name = "CTT_CREATE_TIME")
     private Timestamp createTime;
 
+    @Column(name = "CTT_DISTRIBUTION_TYPE")
+    private String distributionType;
+
+    @Column(name = "CTT_DISTRIBUTION_PROVINCE")
+    private String distributionProvince;
+
+    @Column(name = "CTT_DISTRIBUTION_CITY")
+    private String distributionCity;
+
+    @Column(name = "CTT_DEAD_LINE")
+    private Timestamp deadTime;
+
+    @Column(name = "CTT_END_TIME")
+    private Timestamp endTime;
+
     @Override
     public String toString() {
         return "CrowdTestTaskPO{" +
                 "id=" + id +
                 ", name='" + name + '\'' +
-                ", crowdTestProjectId=" + crowdTestProjectId +
+                ", crowdTestProjectCode=" + crowdTestProjectCode +
                 ", evaluationAgencyId=" + evaluationAgencyId +
                 ", type='" + type + '\'' +
                 ", description='" + description + '\'' +

+ 39 - 15
core/src/main/java/com/mooctest/crowd/domain/repository/CrowdTestProjectRepo.java

@@ -49,6 +49,17 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
     }
 
     @Override
+    public CrowdTestProject getByProjectCode(String crowdTestProjectCode) throws CrowdTestProjectNotExistException {
+        CrowdTestProjectPO crowdTestProjectPO = crowdTestProjectDao.findByCode(crowdTestProjectCode);
+        if (crowdTestProjectPO == null) {
+            throw new CrowdTestProjectNotExistException();
+        }else{
+            CrowdTestProject crowdTestProjectResult = getCrowdTestProjectAndTaskAndReportByCrowdTestProjectPO(crowdTestProjectPO);
+            return crowdTestProjectResult;
+        }
+    }
+
+    @Override
     public List<CrowdTestProject> getAllCrowdTestProject() {
         List<CrowdTestProjectPO> crowdTestProjectPOList = crowdTestProjectDao.findAll();
         return getCrowdTestProjects(crowdTestProjectPOList);
@@ -67,6 +78,11 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
         return getCrowdTestProjects(crowdTestProjectPOList);
     }
 
+    /**
+     * 新建项目
+     * @param crowdTestProject
+     * @return
+     */
     @Override
     public CrowdTestProject saveCreateCrowdTestProject(CrowdTestProject crowdTestProject) {
         CrowdTestProjectPO crowdTestProjectPO = Converter.convert(CrowdTestProjectPO.class, crowdTestProject);
@@ -76,24 +92,32 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
 
     /**
      * 在项目上新建一个任务进行保存
-     * @param crowdTestProject
+     * @param crowdTestProjectCode, crowdTestTask
      * @return
      */
     @Override
-    public boolean saveCrowdTestProjectAndCrowdTestTask(CrowdTestProject crowdTestProject) {
-        CrowdTestProjectPO crowdTestProjectPO = Converter.convert(CrowdTestProjectPO.class, crowdTestProject);
-        crowdTestProjectDao.save(crowdTestProjectPO);
+    public boolean saveCreateCrowdTestTask(String crowdTestProjectCode,CrowdTestTask crowdTestTask) {
+//        CrowdTestProject crowdTestProject = getByProjectCode(crowdTestProjectCode);
+        CrowdTestTaskPO crowdTestTaskPO = Converter.convert(CrowdTestTaskPO.class, crowdTestTask);
+        crowdTestTaskDao.save(crowdTestTaskPO);
+        return true;
+    }
+
+
+    @Override
+    public boolean saveCreateCrowdTestReport(String crowdTestProjectCode, String crowdTestTaskCode, CrowdTestReport crowdTestReport) {
+        CrowdTestProject crowdTestProject = getByProjectCode(crowdTestProjectCode);
         List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
-        if(crowdTestTaskList != null){
-            for(CrowdTestTask crowdTestTask : crowdTestTaskList){
-                CrowdTestTaskPO crowdTestTaskPO = Converter.convert(CrowdTestTaskPO.class, crowdTestTask);
-                crowdTestTaskDao.save(crowdTestTaskPO);
+        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+            if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
+                CrowdTestReportPO crowdTestReportPO = Converter.convert(CrowdTestReportPO.class, crowdTestReport);
+                crowdTestReportDao.save(crowdTestReportPO);
             }
         }
+
         return true;
     }
 
-
     /**
      * 通过项目信息获取项目-任务-报告信息
      * @param crowdTestProjectPO
@@ -101,13 +125,13 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
      */
     private CrowdTestProject getCrowdTestProjectAndTaskAndReportByCrowdTestProjectPO(CrowdTestProjectPO crowdTestProjectPO) {
         CrowdTestProject crowdTestProjectResult = Converter.convert(CrowdTestProject.class, crowdTestProjectPO);
-        List<CrowdTestTaskPO> crowdTestTaskPOList = crowdTestTaskDao.findByCrowdTestProjectId(crowdTestProjectResult.getId());
+        List<CrowdTestTaskPO> crowdTestTaskPOList = crowdTestTaskDao.findByCrowdTestProjectCode(crowdTestProjectPO.getCode());
 
         List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
         for(CrowdTestTaskPO crowdTestTaskPO : crowdTestTaskPOList){
             CrowdTestTask crowdTestTaskResult = Converter.convert(CrowdTestTask.class, crowdTestTaskPO);
-            // 检索任务中的所有报告
-            List<CrowdTestReport> crowdTestReportListResult = getCrowdTestReportByCrowdTestTask(crowdTestTaskResult.getId());
+            // 检索任务中的所有报告
+            List<CrowdTestReport> crowdTestReportListResult = getCrowdTestReportByCrowdTestTask(crowdTestTaskPO.getCode());
             crowdTestTaskResult.setCrowdTestReportList(crowdTestReportListResult);
             crowdTestTaskListResult.add(crowdTestTaskResult);
         }
@@ -117,11 +141,11 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
 
     /**
      * 通过任务信息获取报告信息
-     * @param crowdTestTaskId
+     * @param crowdTestTaskCode
      * @return
      */
-    private List<CrowdTestReport> getCrowdTestReportByCrowdTestTask(Long crowdTestTaskId) {
-        List<CrowdTestReportPO> crowdTestReportPOList = crowdTestReportDao.findByCrowdTestTaskId(crowdTestTaskId);
+    private List<CrowdTestReport> getCrowdTestReportByCrowdTestTask(String crowdTestTaskCode) {
+        List<CrowdTestReportPO> crowdTestReportPOList = crowdTestReportDao.findByCrowdTestTaskCode(crowdTestTaskCode);
         List<CrowdTestReport> crowdTestReportListResult = new ArrayList<>();
         for(CrowdTestReportPO crowdTestReportPO : crowdTestReportPOList){
             CrowdTestReport crowdTestReportResult = Converter.convert(CrowdTestReport.class, crowdTestReportPO);

+ 7 - 1
core/src/main/java/com/mooctest/crowd/domain/repository/ICrowdTestProjectRepo.java

@@ -1,6 +1,8 @@
 package com.mooctest.crowd.domain.repository;
 
 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.exception.CrowdTestProjectNotExistException;
 
 import java.util.List;
@@ -12,6 +14,8 @@ import java.util.List;
 public interface ICrowdTestProjectRepo {
     CrowdTestProject getByID(Long id) throws CrowdTestProjectNotExistException;
 
+    CrowdTestProject getByProjectCode(String crowdTestProjectCode);
+
     List<CrowdTestProject> getAllCrowdTestProject();
 
     List<CrowdTestProject> getCrowdListByUserId(Long userId);
@@ -20,7 +24,9 @@ public interface ICrowdTestProjectRepo {
 
     CrowdTestProject saveCreateCrowdTestProject(CrowdTestProject crowdTestProject);
 
-    boolean saveCrowdTestProjectAndCrowdTestTask(CrowdTestProject crowdTestProject);
+    boolean saveCreateCrowdTestTask(String crowdTestProjectCode, CrowdTestTask crowdTestTask);
+
+    boolean saveCreateCrowdTestReport(String crowdTestProjectCode, String crowdTestTaskCode, CrowdTestReport crowdTestReport);
 
 //    List<CrowdTestProject> getByIDList(String[] ids);
 //