|
@@ -2,8 +2,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 com.mooctest.crowd.domain.repository.UserRepo;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.PathVariable;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
@@ -27,6 +27,9 @@ public class CrowdTestProjectController {
|
|
|
@Autowired
|
|
|
private CrowdTestProjectRepo crowdTestProjectRepo;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private UserRepo userRepo;
|
|
|
+
|
|
|
@RequestMapping(value = "findById/{crowdTestProjectId}", method = RequestMethod.GET)
|
|
|
public String getCrowdTestProjectById(@PathVariable("crowdTestProjectId") Long crowdTestProjectId){
|
|
|
CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(crowdTestProjectId);
|
|
@@ -73,96 +76,6 @@ public class CrowdTestProjectController {
|
|
|
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
|
|
|
- * @param regionalManagerId
|
|
|
- * @param projectName
|
|
|
- * @return
|
|
|
- */
|
|
|
- @RequestMapping(value = "createProject/{userId}/{regionalManagerId}/{projectName}", method = RequestMethod.GET)
|
|
|
- public String createCrowdTestProject(@PathVariable("userId") Long userId,@PathVariable("regionalManagerId") Long regionalManagerId,@PathVariable("projectName") String projectName){
|
|
|
- CrowdTestProject crowdTestProject = new CrowdTestProject();
|
|
|
- crowdTestProject.setCode(projectName+"_"+System.currentTimeMillis());
|
|
|
- crowdTestProject.setUserId(userId);
|
|
|
- crowdTestProject.setName(projectName);
|
|
|
- crowdTestProject.setRegionalManagerId(regionalManagerId);
|
|
|
- crowdTestProject.setProjectDistributionTypeId(1L);
|
|
|
- crowdTestProject.setLinkMan("郭超");
|
|
|
- crowdTestProject.setLinkManMobile("13657094936");
|
|
|
- crowdTestProject.setQuotedPrice(200.00);
|
|
|
- crowdTestProject.setStatus(CrowdTestProjectStatus.CREATED);
|
|
|
- crowdTestProject.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis())).getTime()));
|
|
|
- crowdTestProject.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
|
|
- crowdTestProjectRepo.saveCrowdTestProject(crowdTestProject);
|
|
|
- return crowdTestProjectRepo.getByProjectCode(crowdTestProject.getCode()).toString();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 项目中新建任务
|
|
|
- * @param crowdTestProjectCode
|
|
|
- * @param taskName
|
|
|
- * @return
|
|
|
- */
|
|
|
- @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);
|
|
|
- crowdTestTask.setCrowdTestProjectCode(crowdTestProjectCode);
|
|
|
- crowdTestTask.setEvaluationAgencyId(1L);
|
|
|
- crowdTestTask.setQuotedPrice(200.00);
|
|
|
- crowdTestTask.setStatus(CrowdTestProjectStatus.CREATED);
|
|
|
- crowdTestTask.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis())).getTime()));
|
|
|
- crowdTestTask.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
|
|
-
|
|
|
- List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
|
|
|
- crowdTestTaskList.add(crowdTestTask);
|
|
|
- crowdTestProject.setCrowdTestTaskList(crowdTestTaskList);
|
|
|
-
|
|
|
- crowdTestProjectRepo.saveCrowdTestProject(crowdTestProject);
|
|
|
- return crowdTestProjectRepo.getByProjectCode(crowdTestProject.getCode()).toString();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 项目的任务中新建报告
|
|
|
- * @param crowdTestProjectCode
|
|
|
- * @param reportName
|
|
|
- * @return
|
|
|
- */
|
|
|
- @RequestMapping(value = "createReport/{crowdTestProjectCode}/{crowdTestTaskCode}/{reportName}", method = RequestMethod.GET)
|
|
|
- public String createCrowdTestReport(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("reportName") String reportName,
|
|
|
- @PathVariable("crowdTestTaskCode") String crowdTestTaskCode){
|
|
|
-
|
|
|
- CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
|
|
|
-
|
|
|
- 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的操作*/
|
|
@@ -214,18 +127,203 @@ public class CrowdTestProjectController {
|
|
|
}
|
|
|
}
|
|
|
crowdTestReportModify.setName(reportName);
|
|
|
- crowdTestReportModify.setStatus(CrowdTestReportStatus.COMMITED);
|
|
|
CrowdTestProject updateCrowdTestProject = crowdTestProject.updateCrowdTestReport(crowdTestProject, crowdTestTaskCode, crowdTestReportCode, crowdTestReportModify);
|
|
|
crowdTestProjectRepo.saveCrowdTestProject(updateCrowdTestProject);
|
|
|
}
|
|
|
|
|
|
+ /*普通用户DO*/
|
|
|
+ /**
|
|
|
+ * 新建项目(普通用户)
|
|
|
+ * @param userId
|
|
|
+ * @param projectName
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "createProject/{userId}/{projectName}", method = RequestMethod.GET)
|
|
|
+ public String createCrowdTestProject(@PathVariable("userId") Long userId,@PathVariable("projectName") String projectName){
|
|
|
+ //数据准备
|
|
|
+ CrowdTestProject crowdTestProject = new CrowdTestProject();
|
|
|
+ crowdTestProject.setCode("pro"+System.currentTimeMillis());
|
|
|
+ crowdTestProject.setName(projectName);
|
|
|
+ crowdTestProject.setProjectDistributionTypeId(1L);
|
|
|
+ crowdTestProject.setLinkMan("郭超");
|
|
|
+ crowdTestProject.setLinkManMobile("13657094936");
|
|
|
+ crowdTestProject.setQuotedPrice(200.00);
|
|
|
+ crowdTestProject.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis())).getTime()));
|
|
|
+ crowdTestProject.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
|
|
+
|
|
|
+ User user = userRepo.getByID(userId);
|
|
|
+ CrowdTestProject crowdTestProjectResult = user.createCrowdTestProject(crowdTestProject);
|
|
|
+ crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
|
|
|
+ return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value = "releaseProject/{userId}/{crowdTestProjectCode}", method = RequestMethod.GET)
|
|
|
+ public String releaseCrowdTestProject(@PathVariable("userId") Long userId,@PathVariable("crowdTestProjectCode") String crowdTestProjectCode){
|
|
|
+ CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
|
|
|
+ User user = userRepo.getByID(userId);
|
|
|
+ CrowdTestProject crowdTestProjectResult = user.releaseCrowdTestProject(crowdTestProject);
|
|
|
+ crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
|
|
|
+ return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /*区域管理员DO*/
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 接收项目(区域管理员)
|
|
|
+ * @param regionalManagerId
|
|
|
+ * @param crowdTestProjectCode
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "receiveProject/{regionalManagerId}/{crowdTestProjectCode}", method = RequestMethod.GET)
|
|
|
+ public String receiveTaskByProjectCode(@PathVariable("regionalManagerId") Long regionalManagerId, @PathVariable("crowdTestProjectCode") String crowdTestProjectCode) {
|
|
|
+ User userForRegionalManager = userRepo.getByID(regionalManagerId);
|
|
|
+ RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
|
|
|
+
|
|
|
+ CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
|
|
|
+
|
|
|
+ CrowdTestProject crowdTestProjectResult = regionalManager.receiveProject(crowdTestProject);
|
|
|
+ crowdTestProjectRepo.saveCrowdTestProject(crowdTestProject);
|
|
|
+ return crowdTestProjectResult.toString();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 项目中新建任务(区域管理员)
|
|
|
+ * @param crowdTestProjectCode
|
|
|
+ * @param taskName
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "createTask/{regionalManagerId}/{crowdTestProjectCode}/{taskName}", method = RequestMethod.GET)
|
|
|
+ public String createCrowdTestTask(@PathVariable("regionalManagerId") Long regionalManagerId,@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("taskName") String taskName){
|
|
|
+ CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
|
|
|
+
|
|
|
+ //数据准备
|
|
|
+ CrowdTestTask crowdTestTask = new CrowdTestTask();
|
|
|
+ crowdTestTask.setCode(crowdTestProjectCode+"_task"+System.currentTimeMillis());
|
|
|
+ crowdTestTask.setName(taskName);
|
|
|
+ crowdTestTask.setCrowdTestProjectCode(crowdTestProjectCode);
|
|
|
+ crowdTestTask.setQuotedPrice(200.00);
|
|
|
+ crowdTestTask.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis())).getTime()));
|
|
|
+ crowdTestTask.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
|
|
+
|
|
|
+ //具体操作
|
|
|
+ User userForRegionalManager = userRepo.getByID(regionalManagerId);
|
|
|
+ RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
|
|
|
+
|
|
|
+ CrowdTestProject crowdTestProjectResult = regionalManager.createCrowdTestTask(crowdTestProject, crowdTestTask);
|
|
|
+ crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
|
|
|
+ return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发布任务(区域管理员)
|
|
|
+ * @param crowdTestProjectCode
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "releaseTask/{regionalManagerId}/{crowdTestProjectCode}/{crowdTestTaskCode}", method = RequestMethod.GET)
|
|
|
+ public String releaseCrowdTestTask(@PathVariable("regionalManagerId") Long regionalManagerId,@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,
|
|
|
+ @PathVariable("crowdTestTaskCode") String crowdTestTaskCode){
|
|
|
+ CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
|
|
|
+ User userForRegionalManager = userRepo.getByID(regionalManagerId);
|
|
|
+ RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
|
|
|
+
|
|
|
+ CrowdTestProject crowdTestProjectResult = regionalManager.releaseCrowdTestTask(crowdTestProject, crowdTestTaskCode);
|
|
|
+ crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
|
|
|
+ return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ /*测评机构PO*/
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 接收任务(测评机构)
|
|
|
+ * @param userForAgencyManagerId
|
|
|
+ * @param crowdTestProjectCode
|
|
|
+ * @param crowdTestTaskCode
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "receiveTask/{userForAgencyManagerId}/{crowdTestProjectCode}/{crowdTestTaskCode}", method = RequestMethod.GET)
|
|
|
+ public String receiveTaskByProjectCode(@PathVariable("userForAgencyManagerId") Long userForAgencyManagerId, @PathVariable("crowdTestProjectCode") String crowdTestProjectCode,
|
|
|
+ @PathVariable("crowdTestTaskCode") String crowdTestTaskCode) {
|
|
|
+ CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
|
|
|
+
|
|
|
+ User userForAgencyManager = userRepo.getByID(userForAgencyManagerId);
|
|
|
+ CrowdTestProject crowdTestProjectResult = userForAgencyManager.receiveTask(crowdTestProject, crowdTestTaskCode);
|
|
|
+ System.out.println(crowdTestProjectResult);
|
|
|
+ crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
|
|
|
+ return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 项目的任务中新建报告(测评机构)
|
|
|
+ * @param crowdTestProjectCode
|
|
|
+ * @param reportName
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "createReport/{userForAgencyManagerId}/{crowdTestProjectCode}/{crowdTestTaskCode}/{reportName}", method = RequestMethod.GET)
|
|
|
+ public String createCrowdTestReport(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("userForAgencyManagerId") Long userForAgencyManagerId,
|
|
|
+ @PathVariable("reportName") String reportName, @PathVariable("crowdTestTaskCode") String crowdTestTaskCode){
|
|
|
+
|
|
|
+ CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
|
|
|
+
|
|
|
+ //report数据准备
|
|
|
+ CrowdTestReport crowdTestReport = new CrowdTestReport();
|
|
|
+ crowdTestReport.setCode(crowdTestProjectCode+crowdTestTaskCode+"_rep"+System.currentTimeMillis());
|
|
|
+ crowdTestReport.setName(reportName);
|
|
|
+ crowdTestReport.setCrowdTestTaskCode(crowdTestTaskCode);
|
|
|
+ crowdTestReport.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
|
|
+
|
|
|
+ User userForAgencyManager = userRepo.getByID(userForAgencyManagerId);
|
|
|
+ CrowdTestProject crowdTestProjectResult = userForAgencyManager.createCrowdTestReport(crowdTestProject, crowdTestTaskCode, crowdTestReport);
|
|
|
+ crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
|
|
|
+ return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+// /**
|
|
|
+// * 提交报告(测评机构)
|
|
|
+// * @param crowdTestProjectCode
|
|
|
+// * @param userForAgencyManagerId
|
|
|
+// * @param crowdTestTaskCode
|
|
|
+// * @param crowdTestReportCode
|
|
|
+// * @return
|
|
|
+// */
|
|
|
+// @RequestMapping(value = "commitReport/{userForAgencyManagerId}/{crowdTestProjectCode}/{crowdTestTaskCode}/{crowdTestReportCode}", method = RequestMethod.GET)
|
|
|
+// public String commitCrowdTestReport(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("userForAgencyManagerId") Long userForAgencyManagerId,
|
|
|
+// @PathVariable("crowdTestTaskCode") String crowdTestTaskCode,@PathVariable("crowdTestReportCode") String crowdTestReportCode){
|
|
|
+//
|
|
|
+// CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
|
|
|
+//
|
|
|
+// User userForAgencyManager = userRepo.getByID(userForAgencyManagerId);
|
|
|
+// CrowdTestProject crowdTestProjectResult = userForAgencyManager.commitCrowdTestReport(crowdTestProject, crowdTestTaskCode, crowdTestReportCode);
|
|
|
+// crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
|
|
|
+// return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 提交任务(测评机构)
|
|
|
+ * @param crowdTestProjectCode
|
|
|
+ * @param userForAgencyManagerId
|
|
|
+ * @param crowdTestTaskCode
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+// @RequestMapping(value = "commitTask/{userForAgencyManagerId}/{crowdTestProjectCode}/{crowdTestTaskCode}", method = RequestMethod.GET)
|
|
|
+// public String commitCrowdTestReport(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("userForAgencyManagerId") Long userForAgencyManagerId,
|
|
|
+// @PathVariable("crowdTestTaskCode") String crowdTestTaskCode){
|
|
|
+//
|
|
|
+// CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
|
|
|
+// User userForAgencyManager = userRepo.getByID(userForAgencyManagerId);
|
|
|
+// CrowdTestProject crowdTestProjectResult = userForAgencyManager.commitCrowdTestTask(crowdTestProject, crowdTestTaskCode);
|
|
|
+// crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
|
|
|
+// return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
|
|
|
+// }
|
|
|
|
|
|
/**
|
|
|
* 计算指定时间的下一天
|
|
|
* @param date 指定时间
|
|
|
* @return 指定时间的下一天
|
|
|
*/
|
|
|
- private static Date getNextDay(Date date){
|
|
|
+ private Date getNextDay(Date date){
|
|
|
//计算相关的时间间隔
|
|
|
long addTime=1;
|
|
|
addTime*=1;
|