|
@@ -2,13 +2,17 @@ package com.mooctest.crowd.domain.controller;
|
|
|
|
|
|
import com.google.gson.Gson;
|
|
|
import com.mooctest.crowd.domain.domainobject.*;
|
|
|
+import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
|
|
|
import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
|
|
|
import com.mooctest.crowd.domain.repository.UserRepo;
|
|
|
+import com.mooctest.crowd.domain.util.Converter;
|
|
|
+import com.mooctest.crowd.domain.util.FileUtil;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.PathVariable;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import java.sql.Timestamp;
|
|
|
import java.util.ArrayList;
|
|
@@ -137,7 +141,7 @@ public class CrowdTestProjectController {
|
|
|
|
|
|
@RequestMapping(value = "modifyProject/{crowdTestProjectCode}/{linkMan}", method = RequestMethod.GET)
|
|
|
public void modifyCrowdTestProject(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("linkMan") String linkMan){
|
|
|
- CrowdTestProject crowdTestProjectModify = new CrowdTestProject();
|
|
|
+ CrowdTestProject crowdTestProjectModify;
|
|
|
|
|
|
CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
|
|
|
Gson gson = new Gson();
|
|
@@ -203,7 +207,7 @@ public class CrowdTestProjectController {
|
|
|
crowdTestProject.setLinkMan("郭超");
|
|
|
crowdTestProject.setLinkManMobile("13657094936");
|
|
|
crowdTestProject.setQuotedPrice(200.00);
|
|
|
- crowdTestProject.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis())).getTime()));
|
|
|
+ crowdTestProject.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis()),1).getTime()));
|
|
|
crowdTestProject.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
|
|
|
|
|
User user = userRepo.getByID(userId);
|
|
@@ -267,7 +271,7 @@ public class CrowdTestProjectController {
|
|
|
crowdTestTask.setName(taskName);
|
|
|
crowdTestTask.setCrowdTestProjectCode(crowdTestProjectCode);
|
|
|
crowdTestTask.setQuotedPrice(200.00);
|
|
|
- crowdTestTask.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis())).getTime()));
|
|
|
+ crowdTestTask.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis()),1).getTime()));
|
|
|
crowdTestTask.setCreateTime(new Timestamp(System.currentTimeMillis()));
|
|
|
|
|
|
//具体操作
|
|
@@ -446,18 +450,85 @@ public class CrowdTestProjectController {
|
|
|
return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过EXCEL向数据库中导入众包项目文件,并补全项目中任务和报告的数据
|
|
|
+ * @param file
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "projectListImportByExcel", method = RequestMethod.GET)
|
|
|
+ public String projectListImportByExcel(MultipartFile file){
|
|
|
+ //解析excel
|
|
|
+ List<CrowdTestProjectPO> crowdTestProjectPOList = FileUtil.importExcel(file,1,1,CrowdTestProjectPO.class);
|
|
|
+
|
|
|
+// List<CrowdTestProjectPO> crowdTestProjectPOList = new ArrayList<>();
|
|
|
+// CrowdTestProjectPO crowdTestProjectPO = new CrowdTestProjectPO();
|
|
|
+// crowdTestProjectPO.setName("途牛APP");
|
|
|
+// crowdTestProjectPO.setPlatform("[1,2]");
|
|
|
+// crowdTestProjectPO.setLinkMan("孙加辉");
|
|
|
+// crowdTestProjectPO.setLinkManMobile("13567908766");
|
|
|
+// crowdTestProjectPO.setType("[1]");
|
|
|
+// crowdTestProjectPO.setDescription("测试项目中存在的bug");
|
|
|
+// crowdTestProjectPOList.add(crowdTestProjectPO);
|
|
|
+
|
|
|
+ for(int i = 0; i < crowdTestProjectPOList.size(); i++){
|
|
|
+ CrowdTestProject crowdTestProject = Converter.convert(CrowdTestProject.class, crowdTestProjectPOList.get(i));
|
|
|
+ CrowdTestProject crowdTestProjectResult = crowdTestProject.setTaskAndReportData();
|
|
|
+ //TODO 保存数据库
|
|
|
+ crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
|
|
|
+
|
|
|
+ }
|
|
|
+ System.out.println("共导入数据【"+crowdTestProjectPOList.size()+"】行");
|
|
|
+ return "success";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过表单向数据库中导入众包项目文件,并补全项目中任务和报告的数据
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "projectListImportByForm", method = RequestMethod.GET)
|
|
|
+ public String projectListImportByForm(){
|
|
|
+
|
|
|
+ //数据准备
|
|
|
+ CrowdTestProject crowdTestProject = new CrowdTestProject();
|
|
|
+ crowdTestProject.setName("百度APP");
|
|
|
+ crowdTestProject.setPlatform("[1,2]");
|
|
|
+ crowdTestProject.setLinkMan("薛晓波");
|
|
|
+ crowdTestProject.setLinkManMobile("13567908766");
|
|
|
+ crowdTestProject.setType("[1]");
|
|
|
+ crowdTestProject.setDescription("测试项目中存在的bug");
|
|
|
+
|
|
|
+ //具体操作
|
|
|
+ CrowdTestProject crowdTestProjectResult = crowdTestProject.setTaskAndReportData();
|
|
|
+ //TODO 保存数据库
|
|
|
+ crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
|
|
|
+ return "success";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
- * 计算指定时间的下一天
|
|
|
- * @param date 指定时间
|
|
|
- * @return 指定时间的下一天
|
|
|
+ * 计算指定时间的后几天
|
|
|
*/
|
|
|
- private Date getNextDay(Date date){
|
|
|
+ private Date getNextDay(Date date, int day){
|
|
|
//计算相关的时间间隔
|
|
|
- long addTime=1;
|
|
|
- addTime*=1;
|
|
|
- addTime*=24*3600*1000;
|
|
|
+ long addTime = 24*3600*1000;
|
|
|
+ addTime *= day;
|
|
|
//把时间间隔转换为毫秒数
|
|
|
- Date nextDate=new Date(date.getTime()+addTime);
|
|
|
+ Date nextDate=new Date(date.getTime() + addTime);
|
|
|
return nextDate;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 计算指定时间的前几天
|
|
|
+ */
|
|
|
+ private Date getBeforeDay(Date date, int day){
|
|
|
+ //计算相关的时间间隔
|
|
|
+ long subTime = 24*3600*1000;
|
|
|
+ subTime *= day;
|
|
|
+ //把时间间隔转换为毫秒数
|
|
|
+ Date beforeDate=new Date(date.getTime() - subTime);
|
|
|
+ return beforeDate;
|
|
|
+ }
|
|
|
}
|