Jelajahi Sumber

增加更新功能

guochao 6 tahun lalu
induk
melakukan
2673df72c4

+ 5 - 0
core/pom.xml

@@ -91,6 +91,11 @@
             <optional> true </optional>
         </dependency>
 
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.8.5</version>
+        </dependency>
     </dependencies>
     <build>
         <plugins>

+ 114 - 14
core/src/main/java/com/mooctest/crowd/domain/controller/CrowdTestProjectController.java

@@ -1,6 +1,8 @@
 package com.mooctest.crowd.domain.controller;
 
+import com.google.gson.Gson;
 import com.mooctest.crowd.domain.domainobject.*;
+import com.mooctest.crowd.domain.factory.CrowdTestProjectFactory;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PathVariable;
@@ -9,6 +11,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;
 
@@ -54,6 +57,30 @@ public class CrowdTestProjectController {
         return allCrowdTestProject.toString();
     }
 
+    @RequestMapping(value = "deleteByProjectCode/{crowdTestProjectCode}", method = RequestMethod.GET)
+    public void deleteCrowdTestProjectByProjectCode(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode) {
+        crowdTestProjectRepo.removeCrowdTestProject(crowdTestProjectCode);
+    }
+
+    @RequestMapping(value = "deleteListByProjectCode/{crowdTestProjectCode1}/{crowdTestProjectCode2}", method = RequestMethod.GET)
+    public void deleteCrowdTestProjectByProjectCode(@PathVariable("crowdTestProjectCode1") String crowdTestProjectCode1,
+                                                    @PathVariable("crowdTestProjectCode2") String crowdTestProjectCode2) {
+        CrowdTestProject crowdTestProject1 = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode1);
+        CrowdTestProject crowdTestProject2 = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode2);
+        List<CrowdTestProject> crowdTestProjectList = new ArrayList<>();
+        crowdTestProjectList.add(crowdTestProject1);
+        crowdTestProjectList.add(crowdTestProject2);
+        crowdTestProjectRepo.removeCrowdTestProjectList(crowdTestProjectList);
+    }
+
+    @RequestMapping(value = "acceptTask/{agencyManagerId}/{crowdTestProjectCode}/{crowdTestTaskCode}", method = RequestMethod.GET)
+    public void deleteCrowdTestProjectByProjectCode(@PathVariable("agencyManagerId") Long agencyManagerId, @PathVariable("crowdTestProjectCode") String crowdTestProjectCode,
+                                                    @PathVariable("crowdTestTaskCode") String crowdTestTaskCode) {
+        CrowdTestProject crowdTestProject = CrowdTestProjectFactory.createCrowdTestProject();
+        crowdTestProject.acceptTask(agencyManagerId, crowdTestProjectCode, crowdTestTaskCode);
+
+    }
+
     /**
      * 新建项目
      * @param userId
@@ -75,8 +102,8 @@ public class CrowdTestProjectController {
         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.saveCrowdTestProject(crowdTestProject);
+        return crowdTestProjectRepo.getByProjectCode(crowdTestProject.getCode()).toString();
     }
 
 
@@ -88,6 +115,8 @@ public class CrowdTestProjectController {
      */
     @RequestMapping(value = "createTask/{crowdTestProjectCode}/{taskName}", method = RequestMethod.GET)
     public String createCrowdTestTask(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("taskName") String taskName){
+        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
+
         CrowdTestTask crowdTestTask = new CrowdTestTask();
         crowdTestTask.setCode(crowdTestProjectCode+"_"+taskName+"_"+System.currentTimeMillis());
         crowdTestTask.setName(taskName);
@@ -97,8 +126,13 @@ public class CrowdTestProjectController {
         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";
+
+        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+        crowdTestTaskList.add(crowdTestTask);
+        crowdTestProject.setCrowdTestTaskList(crowdTestTaskList);
+
+        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProject);
+        return crowdTestProjectRepo.getByProjectCode(crowdTestProject.getCode()).toString();
     }
 
     /**
@@ -111,27 +145,93 @@ public class CrowdTestProjectController {
     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()));
+        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
 
-        crowdTestProjectRepo.saveCreateCrowdTestReport(crowdTestProjectCode,crowdTestTaskCode,crowdTestReport);
-        return "success";
+        for(CrowdTestTask crowdTestTask : crowdTestProject.getCrowdTestTaskList()){
+            if(crowdTestTask.getCode().equals(crowdTestTaskCode)){
+                List<CrowdTestReport> crowdTestReportList = crowdTestTask.getCrowdTestReportList();
+                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()));
+                crowdTestReportList.add(crowdTestReport);
+            }
+        }
+        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProject);
+        return crowdTestProjectRepo.getByProjectCode(crowdTestProject.getCode()).toString();
     }
 
+
+
+    /*对DO的操作*/
+
+    @RequestMapping(value = "modifyProject/{crowdTestProjectCode}/{linkMan}", method = RequestMethod.GET)
+    public void modifyCrowdTestProject(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("linkMan") String linkMan){
+        CrowdTestProject crowdTestProjectModify = new CrowdTestProject();
+
+        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
+        Gson gson = new Gson();
+        crowdTestProjectModify = gson.fromJson(gson.toJson(crowdTestProject), CrowdTestProject.class);
+        crowdTestProjectModify.setLinkMan(linkMan);
+        CrowdTestProject updateCrowdTestProject = crowdTestProject.updateCrowdTestProject(crowdTestProject, crowdTestProjectModify);
+        crowdTestProjectRepo.saveCrowdTestProject(updateCrowdTestProject);
+    }
+
+
+    @RequestMapping(value = "modifyTask/{crowdTestProjectCode}/{crowdTestTaskCode}/{taskName}", method = RequestMethod.GET)
+    public void modifyCrowdTestTask(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode, @PathVariable("crowdTestTaskCode") String crowdTestTaskCode,
+                                      @PathVariable("taskName") String taskName){
+        CrowdTestTask crowdTestTaskModify = new CrowdTestTask();
+        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
+        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+        for(CrowdTestTask crowdTestTaskSelect : crowdTestTaskList){
+            if(crowdTestTaskCode.equals(crowdTestTaskSelect.getCode())){
+                // 使用Gson序列化进行深拷贝
+                Gson gson = new Gson();
+                crowdTestTaskModify = gson.fromJson(gson.toJson(crowdTestTaskSelect), CrowdTestTask.class);
+            }
+        }
+        crowdTestTaskModify.setName(taskName);
+        CrowdTestProject updateCrowdTestProject = crowdTestProject.updateCrowdTestTask(crowdTestProject, crowdTestTaskCode, crowdTestTaskModify);
+        crowdTestProjectRepo.saveCrowdTestProject(updateCrowdTestProject);
+    }
+
+    @RequestMapping(value = "modifyReport/{crowdTestProjectCode}/{crowdTestTaskCode}/{crowdTestReportCode}/{reportName}", method = RequestMethod.GET)
+    public void modifyCrowdTestReport(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode, @PathVariable("crowdTestTaskCode") String crowdTestTaskCode,
+                                      @PathVariable("crowdTestReportCode") String crowdTestReportCode, @PathVariable("reportName") String reportName){
+        CrowdTestReport crowdTestReportModify = new CrowdTestReport();
+        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
+        for(CrowdTestTask crowdTestTask : crowdTestProject.getCrowdTestTaskList()){
+            if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
+                for(CrowdTestReport crowdTestReport : crowdTestTask.getCrowdTestReportList()){
+                    if(crowdTestReportCode.equals(crowdTestReport.getCode())){
+                        Gson gson = new Gson();
+                        crowdTestReportModify = gson.fromJson(gson.toJson(crowdTestReport), CrowdTestReport.class);
+                    }
+                }
+            }
+        }
+        crowdTestReportModify.setName(reportName);
+        crowdTestReportModify.setStatus(CrowdTestReportStatus.COMMITED);
+        CrowdTestProject updateCrowdTestProject = crowdTestProject.updateCrowdTestReport(crowdTestProject, crowdTestTaskCode, crowdTestReportCode, crowdTestReportModify);
+        crowdTestProjectRepo.saveCrowdTestProject(updateCrowdTestProject);
+    }
+
+
     /**
      * 计算指定时间的下一天
      * @param date 指定时间
      * @return  指定时间的下一天
      */
     private static Date getNextDay(Date date){
-        long addTime=1;							//计算相关的时间间隔
+        //计算相关的时间间隔
+        long addTime=1;
         addTime*=1;
         addTime*=24*3600*1000;
-        Date nextDate=new Date(date.getTime()+addTime);  //把时间间隔转换为毫秒数
+        //把时间间隔转换为毫秒数
+        Date nextDate=new Date(date.getTime()+addTime);
         return nextDate;
     }
 

File diff ditekan karena terlalu besar
+ 0 - 0
core/src/main/java/com/mooctest/crowd/domain/controller/UserController.java


+ 183 - 114
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProject.java

@@ -1,13 +1,10 @@
 package com.mooctest.crowd.domain.domainobject;
 
-import com.mooctest.crowd.domain.exception.CrowdTestProjectNotExistException;
-import com.mooctest.crowd.domain.exception.CrowdTestReportNotExistException;
-import com.mooctest.crowd.domain.exception.CrowdTestTaskNoPriceException;
-import com.mooctest.crowd.domain.exception.CrowdTestTaskNotExistException;
-import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
+import com.google.gson.Gson;
 import lombok.Data;
 
 import java.sql.Timestamp;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -19,26 +16,25 @@ public class CrowdTestProject {
 
     private Long id;
     private String name;
+    private String code;
     private Long userId;
     private Long regionalManagerId;
     private Long projectDistributionTypeId;
-    private String description;
-    private String projectFile;
-    private String requirementFile;
-    private Double quotedPrice;
-    private Double fixedPrice;
-    private String status;
-    private Timestamp createTime;
-
     private String platform;
     private String linkMan;
     private String linkManMobile;
     private String type;
+    private String description;
+    private String projectFile;
+    private String requirementFile;
     private String distributionProvince;
     private String distributionCity;
+    private Double quotedPrice;
+    private Double fixedPrice;
+    private String status;
     private Timestamp deadTime;
     private Timestamp endTime;
-    private String code;
+    private Timestamp createTime;
 
     private List<CrowdTestTask> crowdTestTaskList;
 
@@ -47,135 +43,208 @@ public class CrowdTestProject {
         return "CrowdTestProject{" +
                 "id=" + id +
                 ", name='" + name + '\'' +
+                ", code='" + code + '\'' +
                 ", userId=" + userId +
                 ", regionalManagerId=" + regionalManagerId +
                 ", projectDistributionTypeId=" + projectDistributionTypeId +
-                ", description='" + description + '\'' +
-                ", projectFile='" + projectFile + '\'' +
-                ", requirementFile='" + requirementFile + '\'' +
-                ", quotedPrice=" + quotedPrice +
-                ", fixedPrice=" + fixedPrice +
-                ", status='" + status + '\'' +
-                ", createTime=" + createTime +
                 ", platform='" + platform + '\'' +
                 ", linkMan='" + linkMan + '\'' +
                 ", linkManMobile='" + linkManMobile + '\'' +
                 ", type='" + type + '\'' +
+                ", description='" + description + '\'' +
+                ", projectFile='" + projectFile + '\'' +
+                ", requirementFile='" + requirementFile + '\'' +
                 ", distributionProvince='" + distributionProvince + '\'' +
                 ", distributionCity='" + distributionCity + '\'' +
+                ", quotedPrice=" + quotedPrice +
+                ", fixedPrice=" + fixedPrice +
+                ", status='" + status + '\'' +
                 ", deadTime=" + deadTime +
                 ", endTime=" + endTime +
-                ", code='" + code + '\'' +
+                ", createTime=" + createTime +
                 ", crowdTestTaskList=" + crowdTestTaskList +
                 '}';
     }
 
-    public CrowdTestTask getCrowdTestTaskByTaskId(CrowdTestProject crowdTestProject, Long taskId) throws CrowdTestTaskNotExistException {
-        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
-        for (CrowdTestTask crowdTestTask : crowdTestTaskList) {
-            if (crowdTestTask.getId().equals(taskId)) {
-                return crowdTestTask;
-            }
-        }
-        throw new CrowdTestTaskNotExistException();
-    }
-
-    public CrowdTestProject updateCrowdTestReportStatus(Long projectId, Long taskId, Long reportId, String status) throws CrowdTestTaskNoPriceException, CrowdTestTaskNotExistException, CrowdTestProjectNotExistException, CrowdTestReportNotExistException {
-        CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
-        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
-        CrowdTestTask crowdTestTask = crowdTestProject.getCrowdTestTaskByTaskId(crowdTestProject, taskId);
-        CrowdTestReport crowdTestReport = crowdTestTask.getCrowdTestReportByReportId(crowdTestTask, reportId);
-        crowdTestReport.setStatus(status);
+    /**
+     * 更新项目信息
+     * @param crowdTestProject
+     * @param crowdTestProjectModify
+     * @return
+     */
+    public CrowdTestProject updateCrowdTestProject(CrowdTestProject crowdTestProject, CrowdTestProject crowdTestProjectModify){
+        Gson gson = new Gson();
+        crowdTestProject = gson.fromJson(gson.toJson(crowdTestProjectModify),CrowdTestProject.class);
         return crowdTestProject;
     }
 
-    /** Task */
-
-    public boolean updateCrowdTestTaskStatus(Long projectId, Long taskId, String status) throws CrowdTestProjectNotExistException, CrowdTestTaskNotExistException, CrowdTestTaskNoPriceException {
-        CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
-        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
-        CrowdTestTask crowdTestTask = crowdTestProject.getCrowdTestTaskByTaskId(crowdTestProject, taskId);
-        boolean flag = true;
-        if (crowdTestTask.getQuotedPrice() > 0) {
-            crowdTestTask.setStatus(status);
-            return true;
-        } else {
-            throw new CrowdTestTaskNoPriceException();
-        }
-    }
-
-    public boolean modifyCrowdTestTaskStatusToCommit(Long taskId, String status) throws CrowdTestTaskNotExistException {
-        CrowdTestTask crowdTestTask = this.getCrowdTestTaskByTaskId(this, taskId);
-        boolean flag = true;
-        List<CrowdTestReport> crowdTestReportList = crowdTestTask.getCrowdTestReportList();
-        for (CrowdTestReport crowdTestReport : crowdTestReportList) {
-            if (!crowdTestReport.getStatus().equals(CrowdTestReportStatus.COMMITED)) {
-                flag = false;
+    /**
+     * 更新项目中的指定任务信息
+     * @param crowdTestProject
+     * @param crowdTestTaskCode
+     * @param crowdTestTaskModify
+     * @return
+     */
+    public CrowdTestProject updateCrowdTestTask(CrowdTestProject crowdTestProject, String crowdTestTaskCode, CrowdTestTask crowdTestTaskModify){
+        List<CrowdTestTask> crowdTestTaskListNew = new ArrayList<>();
+        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+        for(CrowdTestTask crowdTestTaskSelect : crowdTestTaskList){
+            List<CrowdTestReport> crowdTestReportList = crowdTestTaskSelect.getCrowdTestReportList();
+            if(crowdTestTaskCode.equals(crowdTestTaskSelect.getCode())){
+                Gson gson = new Gson();
+                crowdTestTaskSelect = gson.fromJson(gson.toJson(crowdTestTaskModify), CrowdTestTask.class);
             }
+            crowdTestTaskSelect.setCrowdTestReportList(crowdTestReportList);
+            crowdTestTaskListNew.add(crowdTestTaskSelect);
         }
-        if (flag) {
-            crowdTestTask.setStatus(status);
-            return true;
-        } else {
-            return flag;
-        }
+        crowdTestProject.setCrowdTestTaskList(crowdTestTaskListNew);
+        return crowdTestProject;
     }
 
-    public boolean updateCrowdTestTaskStatusNoPrice(Long projectId, Long taskId, String status) throws CrowdTestProjectNotExistException, CrowdTestTaskNotExistException, CrowdTestTaskNoPriceException {
-        CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
-        if (crowdTestProjectRepo.getByID(projectId) != null) {
-            CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
-            CrowdTestTask crowdTestTask = crowdTestProject.getCrowdTestTaskByTaskId(crowdTestProject, taskId);
-            crowdTestTask.setQuotedPrice(0.0);
-            if (crowdTestTask.getQuotedPrice() > 0) {
-                crowdTestTask.setStatus(status);
-                return true;
-            } else {
-                throw new CrowdTestTaskNoPriceException();
+    /**
+     * 更新项目中任务的指定报告信息
+     * @param crowdTestProject
+     * @param crowdTestTaskCode
+     * @param crowdTestReportCode
+     * @param crowdTestReportModify
+     * @return
+     */
+    public CrowdTestProject updateCrowdTestReport(CrowdTestProject crowdTestProject, String crowdTestTaskCode, String crowdTestReportCode, CrowdTestReport crowdTestReportModify) {
+        List<CrowdTestTask> crowdTestTaskListNew = new ArrayList<>();
+        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+        for(CrowdTestTask crowdTestTaskSelect : crowdTestTaskList){
+            List<CrowdTestReport> crowdTestReportListNew = new ArrayList<>();
+            if(crowdTestTaskCode.equals(crowdTestTaskSelect.getCode())){
+                List<CrowdTestReport> crowdTestReportList = crowdTestTaskSelect.getCrowdTestReportList();
+                for(CrowdTestReport crowdTestReportSelect : crowdTestReportList){
+                    if(crowdTestReportCode.equals(crowdTestReportSelect.getCode())){
+                        Gson gson = new Gson();
+                        crowdTestReportSelect = gson.fromJson(gson.toJson(crowdTestReportModify), CrowdTestReport.class);
+                    }
+                    crowdTestReportListNew.add(crowdTestReportSelect);
+                }
             }
+            crowdTestTaskSelect.setCrowdTestReportList(crowdTestReportListNew);
+            crowdTestTaskListNew.add(crowdTestTaskSelect);
         }
-        throw new CrowdTestProjectNotExistException();
+        crowdTestProject.setCrowdTestTaskList(crowdTestTaskListNew);
+        return crowdTestProject;
     }
 
-    public List<CrowdTestTask> updateCrowdTestTaskListStatus(Long projectId, String status) throws CrowdTestProjectNotExistException {
-        CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
-        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
-        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
-        for (CrowdTestTask crowdTestTask : crowdTestTaskList) {
-            crowdTestTask.setStatus(status);
-        }
-        return crowdTestTaskList;
+    public void acceptTask(Long agencyManagerId, String crowdTestProjectCode, String crowdTestTaskCode) {
+
     }
 
 
-    /** Project */
-    public CrowdTestReport getCrowdTestReportByProjectId(Long projectId, Long taskId, Long reportId) throws CrowdTestTaskNoPriceException, CrowdTestTaskNotExistException, CrowdTestProjectNotExistException, CrowdTestReportNotExistException {
-        CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
-        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
-        CrowdTestTask crowdTestTask = crowdTestProject.getCrowdTestTaskByTaskId(crowdTestProject, taskId);
-        CrowdTestReport crowdTestReport = crowdTestTask.getCrowdTestReportByReportId(crowdTestTask, reportId);
-        return crowdTestReport;
-    }
 
-    public List<CrowdTestReport> getCrowdTestReportListByProjectId(Long projectId, Long taskId) throws CrowdTestTaskNoPriceException, CrowdTestTaskNotExistException, CrowdTestProjectNotExistException, CrowdTestReportNotExistException {
-        CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
-        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
-        CrowdTestTask crowdTestTask = crowdTestProject.getCrowdTestTaskByTaskId(crowdTestProject, taskId);
-        return crowdTestTask.getCrowdTestReportList();
-    }
+//    public CrowdTestTask getCrowdTestTaskByTaskId(CrowdTestProject crowdTestProject, Long taskId) throws CrowdTestTaskNotExistException {
+//        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+//        for (CrowdTestTask crowdTestTask : crowdTestTaskList) {
+//            if (crowdTestTask.getId().equals(taskId)) {
+//                return crowdTestTask;
+//            }
+//        }
+//        throw new CrowdTestTaskNotExistException();
+//    }
+//
+//    public CrowdTestProject updateCrowdTestReportStatus(Long projectId, Long taskId, Long reportId, String status) throws CrowdTestTaskNoPriceException, CrowdTestTaskNotExistException, CrowdTestProjectNotExistException, CrowdTestReportNotExistException {
+//        CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
+//        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
+//        CrowdTestTask crowdTestTask = crowdTestProject.getCrowdTestTaskByTaskId(crowdTestProject, taskId);
+//        CrowdTestReport crowdTestReport = crowdTestTask.getCrowdTestReportByReportId(crowdTestTask, reportId);
+//        crowdTestReport.setStatus(status);
+//        return crowdTestProject;
+//    }
+//
+//    /** Task */
+//
+//    public boolean updateCrowdTestTaskStatus(Long projectId, Long taskId, String status) throws CrowdTestProjectNotExistException, CrowdTestTaskNotExistException, CrowdTestTaskNoPriceException {
+//        CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
+//        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
+//        CrowdTestTask crowdTestTask = crowdTestProject.getCrowdTestTaskByTaskId(crowdTestProject, taskId);
+//        boolean flag = true;
+//        if (crowdTestTask.getQuotedPrice() > 0) {
+//            crowdTestTask.setStatus(status);
+//            return true;
+//        } else {
+//            throw new CrowdTestTaskNoPriceException();
+//        }
+//    }
+//
+//    public boolean modifyCrowdTestTaskStatusToCommit(Long taskId, String status) throws CrowdTestTaskNotExistException {
+//        CrowdTestTask crowdTestTask = this.getCrowdTestTaskByTaskId(this, taskId);
+//        boolean flag = true;
+//        List<CrowdTestReport> crowdTestReportList = crowdTestTask.getCrowdTestReportList();
+//        for (CrowdTestReport crowdTestReport : crowdTestReportList) {
+//            if (!crowdTestReport.getStatus().equals(CrowdTestReportStatus.COMMITED)) {
+//                flag = false;
+//            }
+//        }
+//        if (flag) {
+//            crowdTestTask.setStatus(status);
+//            return true;
+//        } else {
+//            return flag;
+//        }
+//    }
+//
+//    public boolean updateCrowdTestTaskStatusNoPrice(Long projectId, Long taskId, String status) throws CrowdTestProjectNotExistException, CrowdTestTaskNotExistException, CrowdTestTaskNoPriceException {
+//        CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
+//        if (crowdTestProjectRepo.getByID(projectId) != null) {
+//            CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
+//            CrowdTestTask crowdTestTask = crowdTestProject.getCrowdTestTaskByTaskId(crowdTestProject, taskId);
+//            crowdTestTask.setQuotedPrice(0.0);
+//            if (crowdTestTask.getQuotedPrice() > 0) {
+//                crowdTestTask.setStatus(status);
+//                return true;
+//            } else {
+//                throw new CrowdTestTaskNoPriceException();
+//            }
+//        }
+//        throw new CrowdTestProjectNotExistException();
+//    }
+//
+//    public List<CrowdTestTask> updateCrowdTestTaskListStatus(Long projectId, String status) throws CrowdTestProjectNotExistException {
+//        CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
+//        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
+//        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+//        for (CrowdTestTask crowdTestTask : crowdTestTaskList) {
+//            crowdTestTask.setStatus(status);
+//        }
+//        return crowdTestTaskList;
+//    }
+//
+//
+//    /** Project */
+//    public CrowdTestReport getCrowdTestReportByProjectId(Long projectId, Long taskId, Long reportId) throws CrowdTestTaskNoPriceException, CrowdTestTaskNotExistException, CrowdTestProjectNotExistException, CrowdTestReportNotExistException {
+//        CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
+//        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
+//        CrowdTestTask crowdTestTask = crowdTestProject.getCrowdTestTaskByTaskId(crowdTestProject, taskId);
+//        CrowdTestReport crowdTestReport = crowdTestTask.getCrowdTestReportByReportId(crowdTestTask, reportId);
+//        return crowdTestReport;
+//    }
+//
+//    public List<CrowdTestReport> getCrowdTestReportListByProjectId(Long projectId, Long taskId) throws CrowdTestTaskNoPriceException, CrowdTestTaskNotExistException, CrowdTestProjectNotExistException, CrowdTestReportNotExistException {
+//        CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
+//        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
+//        CrowdTestTask crowdTestTask = crowdTestProject.getCrowdTestTaskByTaskId(crowdTestProject, taskId);
+//        return crowdTestTask.getCrowdTestReportList();
+//    }
+//
+//    public CrowdTestProject updateCrowdTestProjectStatusToFinish(Long projectId, String status) throws CrowdTestProjectNotExistException {
+//        CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
+//        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
+//        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+//        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+//            List<CrowdTestReport> crowdTestReportList = crowdTestTask.getCrowdTestReportList();
+//            for(CrowdTestReport crowdTestReport : crowdTestReportList){
+//                crowdTestReport.setStatus(status);
+//            }
+//            crowdTestTask.setStatus(status);
+//        }
+//        crowdTestProject.setStatus(status);
+//        return crowdTestProject;
+//    }
+
 
-    public CrowdTestProject updateCrowdTestProjectStatusToFinish(Long projectId, String status) throws CrowdTestProjectNotExistException {
-        CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
-        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
-        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
-        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
-            List<CrowdTestReport> crowdTestReportList = crowdTestTask.getCrowdTestReportList();
-            for(CrowdTestReport crowdTestReport : crowdTestReportList){
-                crowdTestReport.setStatus(status);
-            }
-            crowdTestTask.setStatus(status);
-        }
-        crowdTestProject.setStatus(status);
-        return crowdTestProject;
-    }
 }

+ 1 - 1
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProjectStatus.java

@@ -8,6 +8,6 @@ public class CrowdTestProjectStatus {
     public static final String CREATED = "HAS_CREATED";
     public static final String RELEASED = "HAS_RELEASED";
     public static final String RECEIVED = "HAS_RECEIVED";
-    public static final String splited = "HAS_SPLITED";
+    public static final String SPLITED = "HAS_SPLITED";
     public static final String FINISHED = "HAS_FINISHED";
 }

+ 9 - 10
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestReport.java

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

+ 13 - 15
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTask.java

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

+ 1 - 1
core/src/main/java/com/mooctest/crowd/domain/domainobject/RegionalManager.java

@@ -21,7 +21,7 @@ public class RegionalManager extends User {
     public List<CrowdTestTask> splitCrowdTestProjectToCrowdTestTaskList(Long projectId) throws CrowdTestProjectNotExistException {
         CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
         CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
-        crowdTestProject.setStatus(CrowdTestProjectStatus.splited);
+        crowdTestProject.setStatus(CrowdTestProjectStatus.SPLITED);
         List<CrowdTestTask> crowdTestTaskList = new ArrayList<CrowdTestTask>();
         crowdTestProject.setCrowdTestTaskList(crowdTestTaskList);
         return crowdTestTaskList;

+ 5 - 1
core/src/main/java/com/mooctest/crowd/domain/domainobject/User.java

@@ -26,8 +26,12 @@ public class User {
 
     private List<Role> roleList;
 
-//    private boolean registerBecomeEvalutionAgency(User user, EvaluationAgency evaluationAgency){
+//    @Autowired
+//    private CrowdTestProjectRepo crowdTestProjectRepo;
 //
+//    public List<CrowdTestProject> getCrowdTestProjectByUserId(Long userId){
+//        List<CrowdTestProject> crowdTestProjectList = crowdTestProjectRepo.getCrowdListByUserId(userId);
+//        return crowdTestProjectList;
 //    }
 
 

+ 73 - 43
core/src/main/java/com/mooctest/crowd/domain/repository/CrowdTestProjectRepo.java

@@ -60,13 +60,6 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
     }
 
     @Override
-    public List<CrowdTestProject> getAllCrowdTestProject() {
-        List<CrowdTestProjectPO> crowdTestProjectPOList = crowdTestProjectDao.findAll();
-        return getCrowdTestProjects(crowdTestProjectPOList);
-    }
-
-
-    @Override
     public List<CrowdTestProject> getCrowdListByUserId(Long userId) {
         List<CrowdTestProjectPO> crowdTestProjectPOList = crowdTestProjectDao.findByUserId(userId);
         return getCrowdTestProjects(crowdTestProjectPOList);
@@ -78,46 +71,91 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
         return getCrowdTestProjects(crowdTestProjectPOList);
     }
 
-    /**
-     * 新建项目
-     * @param crowdTestProject
-     * @return
-     */
-    @Override
-    public CrowdTestProject saveCreateCrowdTestProject(CrowdTestProject crowdTestProject) {
-        CrowdTestProjectPO crowdTestProjectPO = Converter.convert(CrowdTestProjectPO.class, crowdTestProject);
-        CrowdTestProjectPO saveResult = crowdTestProjectDao.save(crowdTestProjectPO);
-        return Converter.convert(CrowdTestProject.class, saveResult);
-    }
 
-    /**
-     * 在项目上新建一个任务进行保存
-     * @param crowdTestProjectCode, crowdTestTask
-     * @return
-     */
     @Override
-    public boolean saveCreateCrowdTestTask(String crowdTestProjectCode,CrowdTestTask crowdTestTask) {
-//        CrowdTestProject crowdTestProject = getByProjectCode(crowdTestProjectCode);
-        CrowdTestTaskPO crowdTestTaskPO = Converter.convert(CrowdTestTaskPO.class, crowdTestTask);
-        crowdTestTaskDao.save(crowdTestTaskPO);
-        return true;
+    public List<CrowdTestProject> getAllCrowdTestProject() {
+        List<CrowdTestProjectPO> crowdTestProjectPOList = crowdTestProjectDao.findAll();
+        return getCrowdTestProjects(crowdTestProjectPOList);
     }
 
 
     @Override
-    public boolean saveCreateCrowdTestReport(String crowdTestProjectCode, String crowdTestTaskCode, CrowdTestReport crowdTestReport) {
-        CrowdTestProject crowdTestProject = getByProjectCode(crowdTestProjectCode);
+    public void saveCrowdTestProject(CrowdTestProject crowdTestProject) {
+        CrowdTestProjectPO crowdTestProjectPO = Converter.convert(CrowdTestProjectPO.class, crowdTestProject);
+        crowdTestProjectDao.save(crowdTestProjectPO);
         List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
-        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
-            if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
-                CrowdTestReportPO crowdTestReportPO = Converter.convert(CrowdTestReportPO.class, crowdTestReport);
-                crowdTestReportDao.save(crowdTestReportPO);
+        if(crowdTestTaskList != null){
+            for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+                CrowdTestTaskPO crowdTestTaskPO = Converter.convert(CrowdTestTaskPO.class, crowdTestTask);
+                crowdTestTaskDao.save(crowdTestTaskPO);
+                List<CrowdTestReport> crowdTestReportList = crowdTestTask.getCrowdTestReportList();
+                if(crowdTestReportList != null){
+                    for(CrowdTestReport crowdTestReport : crowdTestReportList){
+                        CrowdTestReportPO crowdTestReportPO = Converter.convert(CrowdTestReportPO.class, crowdTestReport);
+                        crowdTestReportDao.save(crowdTestReportPO);
+                    }
+                }
             }
         }
+    }
+
+    @Override
+    public void removeCrowdTestProject(String crowdTestProjectCode){
+        CrowdTestProject crowdTestProject = getByProjectCode(crowdTestProjectCode);
+        crowdTestProjectDao.delete(Converter.convert(CrowdTestProjectPO.class, crowdTestProject));
+    }
 
-        return true;
+    public void removeCrowdTestProjectList(List<CrowdTestProject> crowdTestProjectList) {
+        List<CrowdTestProjectPO> crowdTestProjectPOList = new ArrayList<>();
+        for(CrowdTestProject crowdTestProject : crowdTestProjectList){
+            CrowdTestProjectPO crowdTestProjectPO = Converter.convert(CrowdTestProjectPO.class, crowdTestProject);
+            crowdTestProjectPOList.add(crowdTestProjectPO);
+        }
+        crowdTestProjectDao.deleteAll(crowdTestProjectPOList);
     }
 
+
+//    /**
+//     * 新建项目
+//     * @param crowdTestProject
+//     * @return
+//     */
+//    @Override
+//    public CrowdTestProject saveCreateCrowdTestProject(CrowdTestProject crowdTestProject) {
+//        CrowdTestProjectPO crowdTestProjectPO = Converter.convert(CrowdTestProjectPO.class, crowdTestProject);
+//        CrowdTestProjectPO saveResult = crowdTestProjectDao.save(crowdTestProjectPO);
+//        return Converter.convert(CrowdTestProject.class, saveResult);
+//    }
+//
+//    /**
+//     * 在项目上新建一个任务进行保存
+//     * @param crowdTestProjectCode, crowdTestTask
+//     * @return
+//     */
+//    @Override
+//    public boolean saveCreateCrowdTestTask(String crowdTestProjectCode,CrowdTestTask crowdTestTask) {
+//        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();
+//        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+//            if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
+//                CrowdTestReportPO crowdTestReportPO = Converter.convert(CrowdTestReportPO.class, crowdTestReport);
+//                crowdTestReportDao.save(crowdTestReportPO);
+//            }
+//        }
+//
+//        return true;
+//    }
+
+
     /**
      * 通过项目信息获取项目-任务-报告信息
      * @param crowdTestProjectPO
@@ -167,7 +205,6 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
         }
         return crowdTestProjectListResult;
     }
-
 //    @Override
 //    public List<CrowdTestProject> getByIDList(String[] ids) {
 //        return null;
@@ -181,13 +218,6 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
 //        log.error("用户{}创建项目失败,失败时间:{},失败原因:{}",new Object[]{testProjectName,df.format(date), reason});
 //    }
 //
-//    @Override
-//    public boolean removeCrowdTestProject(CrowdTestProject crowdTestProject) throws CrowdTestProjectNotExistException {
-//        if(crowdTestProject.getId().equals(1L)){
-//            return true;
-//        }
-//        throw new CrowdTestProjectNotExistException();
-//    }
 //
 //    @Override
 //    public CrowdTestProject updateCrowdTestProject(CrowdTestProject crowdTestProject) throws CrowdTestProjectNotExistException {

+ 8 - 5
core/src/main/java/com/mooctest/crowd/domain/repository/ICrowdTestProjectRepo.java

@@ -1,8 +1,6 @@
 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;
@@ -22,11 +20,16 @@ public interface ICrowdTestProjectRepo {
 
     List<CrowdTestProject> getCrowdListByRegionalManagerId(Long regionalManagerId);
 
-    CrowdTestProject saveCreateCrowdTestProject(CrowdTestProject crowdTestProject);
+    void saveCrowdTestProject(CrowdTestProject crowdTestProject);
 
-    boolean saveCreateCrowdTestTask(String crowdTestProjectCode, CrowdTestTask crowdTestTask);
+    void removeCrowdTestProject(String crowdTestProjectCode) throws CrowdTestProjectNotExistException;
+
+//    CrowdTestProject saveCreateCrowdTestProject(CrowdTestProject crowdTestProject);
+//
+//    boolean saveCreateCrowdTestTask(String crowdTestProjectCode, CrowdTestTask crowdTestTask);
+//
+//    boolean saveCreateCrowdTestReport(String crowdTestProjectCode, String crowdTestTaskCode, CrowdTestReport crowdTestReport);
 
-    boolean saveCreateCrowdTestReport(String crowdTestProjectCode, String crowdTestTaskCode, CrowdTestReport crowdTestReport);
 
 //    List<CrowdTestProject> getByIDList(String[] ids);
 //

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini