浏览代码

修改报价信息

guo00guo 5 年之前
父节点
当前提交
099f36244e

+ 11 - 3
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProject.java

@@ -33,6 +33,7 @@ public class CrowdTestProject {
     private String distributionCity;
     private Double quotedPrice;
     private Double fixedPrice;
+    private Double restPrice;
     private int status;
     private Timestamp deadTime;
     private Timestamp endTime;
@@ -255,8 +256,8 @@ public class CrowdTestProject {
     public void addTask(CrowdTestTask task){
         if (!(this.getStatus() >= CrowdTestProjectStatus.HAS_RECEIVED || this.getStatus()<=CrowdTestTaskStatus.HAS_COMMITED))
             throw new BaseException("当前阶段不允许创建新任务");
-        if (this.getQuotedPrice() < task.getQuotedPrice()){
-            throw new BaseException("任务的报价不能超过项目的剩余价格,项目的剩余价格为:" + this.getQuotedPrice());
+        if (this.getRestPrice() < task.getQuotedPrice()){
+            throw new BaseException("任务的报价不能超过项目的剩余价格,项目的剩余价格为:" + this.getRestPrice());
         }
         if (this.getDeadTime().getTime() < task.getDeadTime().getTime()){
             throw new BaseException("任务截止时间不能超过项目的截止时间,项目的截止时间为:" + this.getDeadTime());
@@ -264,10 +265,16 @@ public class CrowdTestProject {
         if (task.getDeadTime().getTime() < System.currentTimeMillis()){
             throw new BaseException("任务截止时间不能小于当前时间");
         }
-
+        this.setRestPrice(this.getRestPrice() - task.getQuotedPrice());
         this.getCrowdTestTaskList().add(task);
     }
 
+
+    public void removeTask(CrowdTestTask task) {
+        this.setRestPrice(this.getRestPrice() + task.getQuotedPrice());
+        this.getCrowdTestTaskList().remove(task);
+    }
+
     public CrowdTestTask getTask(String taskCode){
         Optional<CrowdTestTask> testTask = this.getCrowdTestTaskList().stream().filter(crowdTestTask -> crowdTestTask.getCode().equals(taskCode)).findFirst();
         if (!testTask.isPresent())
@@ -704,4 +711,5 @@ public class CrowdTestProject {
         }
         this.setStatus(CrowdTestProjectStatus.HAS_REJECTED);
     }
+
 }

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

@@ -69,6 +69,9 @@ public class CrowdTestProjectPO implements Serializable {
     @Column(name = "CTP_FIXED_PRICE")
     private Double fixedPrice;
 
+    @Column(name = "CTP_REST_PRICE")
+    private Double restPrice;
+
     @Column(name = "CTP_STATUS")
     private int status;
 

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdProjectVO.java

@@ -39,6 +39,7 @@ public class CrowdProjectVO {
     private Timestamp datetime;
     private Double price;
     private Double budget;
+    private Double restPrice;
     private String usage;
     private Integer status;
     private int joinCount;
@@ -64,6 +65,7 @@ public class CrowdProjectVO {
         this.datetime = project.getDeadTime();
         this.budget = project.getQuotedPrice();
         this.price = project.getFixedPrice();
+        this.restPrice = project.getRestPrice();
         this.usage = null;
         this.status = project.getStatus();
         this.joinCount = project.getJoinCount();

+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -172,7 +172,7 @@ public class WebMediatorImpl implements ViewMediator {
         //对于区域管理员
         if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("RegionalManager"))){
             List<CrowdTestProjectPO> crowdTestProjectPOList = projectDao.findByRegionalManagerIdAndIsDeleted(userId, DeletedStatus.isNotDeleted)
-                    .stream().sorted(Comparator.comparing(CrowdTestProjectPO::getCreateTime).reversed().thenComparing(CrowdTestProjectPO::getStatus).reversed()).collect(Collectors.toList());
+                    .stream().sorted(Comparator.comparing(CrowdTestProjectPO::getCreateTime).thenComparing(CrowdTestProjectPO::getStatus).reversed()).collect(Collectors.toList());
             //获取区域管理员正在处理中的项目列表
             myCrowdDTO.setHandlingProjects(crowdTestProjectPOList.stream().filter(crowdTestProjectPO -> crowdTestProjectPO.getStatus()>CrowdTestProjectStatus.HAS_RELEASED).map(crowdTestProjectPO -> {
                 CrowdTestProject project = new CrowdTestProject();

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

@@ -82,7 +82,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         updateTask.setCreateTime(task.get().getCreateTime());
         updateTask.setRequirementFile(task.get().getRequirementFile());
         updateTask.setStatus(task.get().getStatus());
-        project.getCrowdTestTaskList().remove(task);
+        project.removeTask(task.get());
         project.addTask(updateTask);
         projectRepo.saveCrowdTestProject(project);
         return getTaskDetails(projectCode, taskCode, userId);