|
|
@@ -428,7 +428,6 @@ public class CrowdTestProject {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 接收任务(测评机构)
|
|
|
* @return
|
|
|
@@ -437,45 +436,60 @@ public class CrowdTestProject {
|
|
|
//判断是否为测评机构
|
|
|
EvaluationAgency evaluationAgency = user.getEvaluationAgency();
|
|
|
if(evaluationAgency == null){
|
|
|
- throw new UserNotExistException("当前用户不是测评机构,没有权限接收任务");
|
|
|
+ throw new UnauthorizedException("当前用户不是测评机构,没有权限接收任务");
|
|
|
}
|
|
|
-
|
|
|
- List<CrowdTestTask> crowdTestTaskList = this.getCrowdTestTaskList();
|
|
|
- List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
|
|
|
- for(CrowdTestTask crowdTestTask : crowdTestTaskList){
|
|
|
- if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
|
|
|
- //判断任务状态
|
|
|
- if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_RECEIVED - 1)){
|
|
|
- throw new CrowdTestTaskException("任务当前状态不能被接收,当前状态为:"+crowdTestTask.getStatus());
|
|
|
- }else{
|
|
|
- //任务是定向发布
|
|
|
- if(crowdTestTask.getDistributionType() == 0){
|
|
|
- if(!crowdTestTask.getEvaluationAgencyId().equals(user.getId())){
|
|
|
- throw new CrowdTestTaskException("当前用户没有权限接收此定向发布的任务!");
|
|
|
- }else{
|
|
|
- crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RECEIVED);
|
|
|
- }
|
|
|
- }
|
|
|
- //任务是区域发布
|
|
|
- else if(crowdTestTask.getDistributionType() == 1){
|
|
|
- //判断测评机构的区域是否符合要求
|
|
|
- if(!crowdTestTask.getDistributionCity().equals(user.getCity())){
|
|
|
- throw new CrowdTestTaskException("任务发布的区域不符合当前测评机构的区域!");
|
|
|
- }else{
|
|
|
- crowdTestTask.setEvaluationAgencyId(user.getId());
|
|
|
- crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RECEIVED);
|
|
|
- }
|
|
|
- }
|
|
|
- //任务是广场发布
|
|
|
- else{
|
|
|
- crowdTestTask.setEvaluationAgencyId(user.getId());
|
|
|
- crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RECEIVED);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- crowdTestTaskListResult.add(crowdTestTask);
|
|
|
- }
|
|
|
- this.setCrowdTestTaskList(crowdTestTaskList);
|
|
|
+ Optional<CrowdTestTask> taskOp = this.getCrowdTestTaskList().stream().filter(task -> task.getCode().equals(crowdTestTaskCode)).findFirst();
|
|
|
+ //任务是否不存在
|
|
|
+ if (!taskOp.isPresent())
|
|
|
+ throw new CrowdTestTaskNotExistException();
|
|
|
+ CrowdTestTask task = taskOp.get();
|
|
|
+ //任务当前状态
|
|
|
+ if (task.getStatus()!=CrowdTestTaskStatus.HAS_RELEASED)
|
|
|
+ throw new CrowdTestTaskException("任务当前状态不能被接收,当前状态为:"+task.getStatus());
|
|
|
+ //定向发布类型
|
|
|
+ if (task.getDistributionType() == 0) {
|
|
|
+ if (!task.getEvaluationAgencyId().equals(user.getId()))
|
|
|
+ throw new CrowdTestTaskException("当前用户没有权限接收此定向发布的任务!");
|
|
|
+ }
|
|
|
+ task.setEvaluationAgencyId(user.getId());
|
|
|
+ task.setStatus(CrowdTestTaskStatus.HAS_RECEIVED);
|
|
|
+//
|
|
|
+// List<CrowdTestTask> crowdTestTaskList = this.getCrowdTestTaskList();
|
|
|
+// List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
|
|
|
+// for(CrowdTestTask crowdTestTask : crowdTestTaskList){
|
|
|
+// if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
|
|
|
+// //判断任务状态
|
|
|
+// if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_RECEIVED - 1)){
|
|
|
+// throw new CrowdTestTaskException("任务当前状态不能被接收,当前状态为:"+crowdTestTask.getStatus());
|
|
|
+// }else{
|
|
|
+// //任务是定向发布
|
|
|
+// if(crowdTestTask.getDistributionType() == 0){
|
|
|
+// if(!crowdTestTask.getEvaluationAgencyId().equals(user.getId())){
|
|
|
+// throw new CrowdTestTaskException("当前用户没有权限接收此定向发布的任务!");
|
|
|
+// }else{
|
|
|
+// crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RECEIVED);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// //任务是区域发布
|
|
|
+// else if(crowdTestTask.getDistributionType() == 1){
|
|
|
+// //判断测评机构的区域是否符合要求
|
|
|
+// if(!crowdTestTask.getDistributionCity().equals(user.getCity())){
|
|
|
+// throw new CrowdTestTaskException("任务发布的区域不符合当前测评机构的区域!");
|
|
|
+// }else{
|
|
|
+// crowdTestTask.setEvaluationAgencyId(user.getId());
|
|
|
+// crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RECEIVED);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// //任务是广场发布
|
|
|
+// else{
|
|
|
+// crowdTestTask.setEvaluationAgencyId(user.getId());
|
|
|
+// crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RECEIVED);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// crowdTestTaskListResult.add(crowdTestTask);
|
|
|
+// }
|
|
|
+// this.setCrowdTestTaskList(crowdTestTaskList);
|
|
|
return this;
|
|
|
|
|
|
}
|