Преглед изворни кода

修改拒绝项目的问题

guo00guo пре 5 година
родитељ
комит
fc5dc7c0fc

+ 23 - 3
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTask.java

@@ -8,6 +8,7 @@ import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 /**
  * @author guochao
@@ -113,9 +114,17 @@ public class CrowdTestTask {
 //        }else if(this.getDistributionType().equals(DistributeType.SQUARE.getId())){
 //            // 广场发布类型
 //        }
-        TaskToUser taskToUser = new TaskToUser();
-        taskToUser.setValue(this.code, user.getId(), 0, this.getDistributionType(), 1, new Timestamp(System.currentTimeMillis()));
-        this.getAcceptedUserList().add(taskToUser);
+        if (this.getDistributionType() == DistributeType.DIRECT.getId()){
+            this.getAcceptedUserList().stream().map(taskToUser -> {
+                taskToUser.setIsAccepted(1);
+                taskToUser.setAcceptTime(new Timestamp(System.currentTimeMillis()));
+                return taskToUser;
+            }).collect(Collectors.toList());
+        }else{
+            TaskToUser taskToUser = new TaskToUser();
+            taskToUser.setValue(this.code, user.getId(), 0, this.getDistributionType(), 1, new Timestamp(System.currentTimeMillis()));
+            this.getAcceptedUserList().add(taskToUser);
+        }
         this.setAcceptedUserList(acceptedUserList);
         this.setAcceptedCount(this.acceptedCount+1);
         if (this.getAcceptedCount() == this.getParticipantCount()){
@@ -181,4 +190,15 @@ public class CrowdTestTask {
         this.setEndTime(new Timestamp(System.currentTimeMillis()));
     }
 
+    public void create(String taskCode) {
+        this.setCode(taskCode);
+        this.setStatus(CrowdTestTaskStatus.HAS_RELEASED);
+        if (this.getDistributionType() == DistributeType.DIRECT.getId()){
+            this.setParticipantCount(1);
+            TaskToUser taskToUser = new TaskToUser();
+            taskToUser.setValue(this.code, this.getEvaluationAgencyId(), 0, this.getDistributionType(), 0, null);
+            this.getAcceptedUserList().add(taskToUser);
+            this.setAcceptedUserList(acceptedUserList);
+        }
+    }
 }

+ 1 - 0
site/src/main/java/com/mooctest/crowd/site/command/CrowdTestProjectCommand.java

@@ -81,6 +81,7 @@ public class CrowdTestProjectCommand {
         crowdTestProject.setRegionalManagerId(this.getInstitution());
         crowdTestProject.setDeadTime(this.datetime);
         crowdTestProject.setQuotedPrice(this.budget);
+        crowdTestProject.setRestPrice(this.budget);
         crowdTestProject.setFixedPrice(this.price);
         return crowdTestProject;
     }

+ 7 - 5
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdTaskServiceImpl.java

@@ -2,9 +2,7 @@ package com.mooctest.crowd.site.service.impl;
 
 import com.mooctest.crowd.domain.dao.CrowdTestTaskDao;
 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.*;
 import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.exception.CrowdTestTaskNotExistException;
 import com.mooctest.crowd.domain.exception.UnauthorizedException;
@@ -22,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.sql.Timestamp;
 import java.util.Optional;
 
 /**
@@ -61,8 +60,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         CrowdTestTask task = command.toCrowdTask(projectCode);
         CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
         String taskCode = GenerateFlowCodeUtil.generateFlowCode("TASK-"+ ProjectType.getCode(command.getType()));
-        task.setCode(taskCode);
-        task.setStatus(CrowdTestTaskStatus.HAS_RELEASED);
+        task.create(taskCode);
         project.addTask(task);
         projectRepo.saveCrowdTestProject(project);
         return getTaskDetails(projectCode, taskCode, userId);
@@ -82,6 +80,9 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         updateTask.setCreateTime(task.get().getCreateTime());
         updateTask.setRequirementFile(task.get().getRequirementFile());
         updateTask.setStatus(task.get().getStatus());
+        if (updateTask.getDistributionType() == DistributeType.DIRECT.getId()){
+            updateTask.setParticipantCount(1);
+        }
         project.removeTask(task.get());
         project.addTask(updateTask);
         projectRepo.saveCrowdTestProject(project);
@@ -108,6 +109,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
         CrowdTestTask task = project.getTask(taskCode);
         task.reject(userId);
+        project.setRestPrice(project.getRestPrice()+task.getQuotedPrice());
         projectRepo.saveCrowdTestProject(project);
     }