|
@@ -1,10 +1,7 @@
|
|
|
package com.mooctest.crowd.domain.domainobject;
|
|
|
|
|
|
import com.mooctest.crowd.domain.exception.CrowdTestProjectException;
|
|
|
-import com.mooctest.crowd.domain.exception.CrowdTestProjectNotExistException;
|
|
|
import com.mooctest.crowd.domain.exception.CrowdTestTaskException;
|
|
|
-import com.mooctest.crowd.domain.exception.CrowdTestTaskNotExistException;
|
|
|
-import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
|
|
|
import lombok.Data;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
@@ -69,32 +66,38 @@ public class RegionalManager {
|
|
|
public CrowdTestProject createCrowdTestTask(CrowdTestProject crowdTestProject, CrowdTestTask crowdTestTask) {
|
|
|
List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
|
|
|
|
|
|
- //修改项目状态
|
|
|
- if(CrowdTestProjectStatus.HAS_SPLITED != crowdTestProject.getStatus()){
|
|
|
- crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_SPLITED);
|
|
|
- }
|
|
|
-
|
|
|
- crowdTestTask.setStatus(CrowdTestProjectStatus.HAS_SPLITED);
|
|
|
+ crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_CREATED);
|
|
|
crowdTestTask.setDistributionProvince(crowdTestProject.getDistributionProvince());
|
|
|
crowdTestTask.setDistributionCity(crowdTestProject.getDistributionCity());
|
|
|
|
|
|
//添加测试任务
|
|
|
crowdTestTaskList.add(crowdTestTask);
|
|
|
+
|
|
|
+ //修改项目状态
|
|
|
+ if(CrowdTestProjectStatus.HAS_SPLITED != crowdTestProject.getStatus()){
|
|
|
+ crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_SPLITED);
|
|
|
+ }
|
|
|
crowdTestProject.setCrowdTestTaskList(crowdTestTaskList);
|
|
|
return crowdTestProject;
|
|
|
}
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 发布任务
|
|
|
+ * @param crowdTestProject
|
|
|
+ * @param crowdTestTaskCode
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public CrowdTestProject releaseCrowdTestTask(CrowdTestProject crowdTestProject, String crowdTestTaskCode) {
|
|
|
List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
|
|
|
List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
|
|
|
//发布任务时修改任务状态
|
|
|
for(CrowdTestTask crowdTestTask : crowdTestTaskList){
|
|
|
if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
|
|
|
- if(crowdTestTask.getStatus() != (CrowdTestProjectStatus.HAS_RELEASED-1)){
|
|
|
+ if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_RELEASED-1)){
|
|
|
throw new CrowdTestTaskException("当前任务不能被发布,当前状态为:"+crowdTestTask.getStatus());
|
|
|
}else{
|
|
|
- crowdTestTask.setStatus(CrowdTestProjectStatus.HAS_RELEASED);
|
|
|
+ crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RELEASED);
|
|
|
}
|
|
|
}
|
|
|
crowdTestTaskListResult.add(crowdTestTask);
|
|
@@ -104,32 +107,46 @@ public class RegionalManager {
|
|
|
return crowdTestProject;
|
|
|
}
|
|
|
|
|
|
- public List<CrowdTestTask> splitCrowdTestProjectToCrowdTestTaskList(Long projectId) throws CrowdTestProjectNotExistException {
|
|
|
- CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
|
|
|
- CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
|
|
|
- crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_SPLITED);
|
|
|
- List<CrowdTestTask> crowdTestTaskList = new ArrayList<CrowdTestTask>();
|
|
|
- crowdTestProject.setCrowdTestTaskList(crowdTestTaskList);
|
|
|
- return crowdTestTaskList;
|
|
|
+ /**
|
|
|
+ * 结束任务
|
|
|
+ * @param crowdTestProject
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public CrowdTestProject finishCrowdTestTask(CrowdTestProject crowdTestProject) {
|
|
|
+ List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
|
|
|
+ List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
|
|
|
+ //结束任务时修改任务状态为"已结束"
|
|
|
+ for(CrowdTestTask crowdTestTask : crowdTestTaskList){
|
|
|
+ if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_FINISHED-1)){
|
|
|
+ throw new CrowdTestTaskException("存在任务不能被结束,状态为:"+crowdTestTask.getStatus());
|
|
|
+ }else{
|
|
|
+ crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_FINISHED);
|
|
|
+ }
|
|
|
+ crowdTestTaskListResult.add(crowdTestTask);
|
|
|
+ }
|
|
|
+
|
|
|
+ crowdTestProject.setCrowdTestTaskList(crowdTestTaskListResult);
|
|
|
+ return crowdTestProject;
|
|
|
}
|
|
|
|
|
|
- public CrowdTestProject fixedPriceForCrowdTestTask(Long projectId, Long taskId, Double price) throws CrowdTestProjectNotExistException, CrowdTestTaskNotExistException {
|
|
|
- CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
|
|
|
- boolean flag = false;
|
|
|
- if (crowdTestProjectRepo.getByID(projectId) != null) {
|
|
|
- CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
|
|
|
- List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
|
|
|
- for (CrowdTestTask crowdTestTask : crowdTestTaskList) {
|
|
|
- if (crowdTestTask.getId().equals(taskId)) {
|
|
|
- crowdTestTask.setQuotedPrice(price);
|
|
|
- flag = true;
|
|
|
- return crowdTestProject;
|
|
|
+ /**
|
|
|
+ * 提交项目
|
|
|
+ * @param crowdTestProject
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public CrowdTestProject commitCrowdTestProject(CrowdTestProject crowdTestProject) {
|
|
|
+ List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
|
|
|
+ //结束项目时查看是否已结束任务
|
|
|
+ if(crowdTestProject.getStatus() != (CrowdTestProjectStatus.HAS_COMMITED - 1)){
|
|
|
+ throw new CrowdTestProjectException("项目不能被结束,状态为:"+crowdTestProject.getStatus());
|
|
|
+ }else{
|
|
|
+ for(CrowdTestTask crowdTestTask : crowdTestTaskList){
|
|
|
+ if(crowdTestTask.getStatus() != CrowdTestTaskStatus.HAS_FINISHED){
|
|
|
+ throw new CrowdTestTaskException("存在未结束的任务,项目不能被提交");
|
|
|
}
|
|
|
}
|
|
|
- if (!flag) {
|
|
|
- throw new CrowdTestTaskNotExistException();
|
|
|
- }
|
|
|
}
|
|
|
- throw new CrowdTestProjectNotExistException();
|
|
|
+ crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_COMMITED);
|
|
|
+ return crowdTestProject;
|
|
|
}
|
|
|
}
|