Browse Source

修改Type、Platform等属性为字符串类型

xuexiaobo 6 years ago
parent
commit
e000738f78

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

@@ -283,7 +283,7 @@ public class CrowdTestProject {
             crowdTestTask.setName(this.getName() + "-任务" + (j+1));
             crowdTestTask.setCrowdTestProjectCode(this.getCode());
             crowdTestTask.setEvaluationAgencyId(12L);
-            crowdTestTask.setType(0);
+            crowdTestTask.setType("接口测试");
             crowdTestTask.setDistributionType(this.getProjectDistributionTypeId());
             crowdTestTask.setDistributionProvince(this.getDistributionProvince());
             crowdTestTask.setDistributionCity(this.getDistributionCity());
@@ -304,7 +304,7 @@ public class CrowdTestProject {
                 crowdTestReport.setCode(crowdTestTask.getCode()+"REPO-报告"+(k+1));
                 crowdTestReport.setName(crowdTestTask.getName()+"-报告"+(k+1));
                 crowdTestReport.setDependencyCode(crowdTestTask.getCode());
-                crowdTestReport.setType(0);
+                crowdTestReport.setType("测试报告");
                 crowdTestReport.setScope(0);
                 crowdTestReport.setContent(crowdTestTask.getDescription()+"的第"+(k+1)+"的测试报告");
                 crowdTestReport.setConclusion("TEST SUCCESS");
@@ -320,7 +320,7 @@ public class CrowdTestProject {
         crowdTestReportForProject.setCode(this.getCode()+"-项目报告");
         crowdTestReportForProject.setName(this.getName()+"-项目报告");
         crowdTestReportForProject.setDependencyCode(this.getCode());
-        crowdTestReportForProject.setType(0);
+        crowdTestReportForProject.setType("项目可行性报告");
         crowdTestReportForProject.setScope(0);
         crowdTestReportForProject.setContent(this.getName()+"的项目报告");
         crowdTestReportForProject.setConclusion("PROJECT TEST SUCCESS");

+ 1 - 1
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestReport.java

@@ -15,7 +15,7 @@ public class CrowdTestReport {
     private String name;
     private String code;
     private String dependencyCode; //所依赖的项目或者任务
-    private int type;
+    private String type;
     private int scope;
     private String testObject;
     private String description;

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

@@ -18,7 +18,7 @@ public class CrowdTestTask {
     private String code;
     private String crowdTestProjectCode;
     private Long evaluationAgencyId;
-    private int type;
+    private String type;
     private String description;
     private String requirementFile;
     private Long distributionType;

+ 1 - 1
core/src/main/java/com/mooctest/crowd/domain/model/CrowdTestReportPO.java

@@ -29,7 +29,7 @@ public class CrowdTestReportPO {
     private String dependencyCode;
 
     @Column(name = "CTR_TYPE")
-    private int type;
+    private String type;
 
     @Column(name = "CTR_CONTENT")
     private String content;

+ 1 - 1
core/src/main/java/com/mooctest/crowd/domain/model/CrowdTestTaskPO.java

@@ -31,7 +31,7 @@ CrowdTestTaskPO {
     private Long evaluationAgencyId;
 
     @Column(name = "CTT_TYPE")
-    private int type;
+    private String type;
 
     @Column(name = "CTT_DESCRIPTION")
     private String description;

+ 6 - 5
site/src/main/java/com/mooctest/crowd/site/anticorruption/impl/UserAntiCorruptionImpl.java

@@ -3,6 +3,7 @@ package com.mooctest.crowd.site.anticorruption.impl;
 import com.alibaba.fastjson.JSONObject;
 import com.mooctest.crowd.domain.domainobject.Role;
 import com.mooctest.crowd.domain.domainobject.User;
+import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.exception.UserNotExistException;
 import com.mooctest.crowd.domain.factory.UserFactory;
 import com.mooctest.crowd.domain.repository.UserRepo;
@@ -12,10 +13,7 @@ import com.mooctest.crowd.site.util.EncryptionUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.MediaType;
+import org.springframework.http.*;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
 
@@ -53,7 +51,10 @@ public class UserAntiCorruptionImpl implements UserAntiCorruption {
         params.put("createTime", System.currentTimeMillis());
 
         HttpEntity<String> entity = new HttpEntity<>(params.toString() , httpHeaders);
-        UserInfo userInfo = restTemplate.exchange(userServiceUrl + "/api/user", HttpMethod.POST, entity, UserInfo.class).getBody();
+        ResponseEntity<UserInfo> responseEntity = restTemplate.exchange(userServiceUrl + "/api/user", HttpMethod.POST, entity, UserInfo.class);
+        if (!responseEntity.getStatusCode().is2xxSuccessful())
+            throw new BaseException("手机或邮箱已存在,请直接登录");
+        UserInfo userInfo = responseEntity.getBody();
         User user = UserFactory.createUser();
         user.setId(userInfo.getId());
         user.setName(userInfo.getName());

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

@@ -27,9 +27,9 @@ public class CrowdTestProjectCommand {
     private String name;
 
     @NotNull(message = "项目服务类型不可为空")
-    private ArrayList<Integer> type;
+    private ArrayList<String> type;
 
-    private ArrayList<Integer> platform;
+    private ArrayList<String> platform;
 
     @NotNull(message = "项目描述不可为空")
     private String desc;

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

@@ -21,7 +21,7 @@ public class CrowdTestReportCommand {
     private Integer scope;
 
     @NotNull(message = "请选择报告类型 ")
-    private Integer type;
+    private String type;
 
     private String dependencyCode;
 

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

@@ -23,7 +23,7 @@ public class CrowdTestTaskCommand {
     private String desc;
 
     @NotNull(message = "请填写任务类型")
-    private Integer type;
+    private String type;
 
     @NotNull(message = "请指定任务发布类型")
     private Long resource;

+ 3 - 3
site/src/main/java/com/mooctest/crowd/site/command/GenerateProjectCommand.java

@@ -27,9 +27,9 @@ public class GenerateProjectCommand {
     private String name;
 
     @NotNull(message = "项目服务类型不可为空")
-    private ArrayList<Integer> type;
+    private ArrayList<String> type;
 
-    private ArrayList<Integer> platform;
+    private ArrayList<String> platform;
 
     @NotNull(message = "项目描述不可为空")
     private String description;
@@ -59,7 +59,7 @@ public class GenerateProjectCommand {
 
     private String reportUrl;
 
-    private Integer reportType=6;
+    private String reportType="项目测试报告";
 
     public CrowdTestProject toCrowdProject() {
         CrowdTestProject crowdTestProject = CrowdTestProjectFactory.createCrowdTestProject();

+ 9 - 0
site/src/main/java/com/mooctest/crowd/site/data/enums/ProjectType.java

@@ -43,6 +43,15 @@ public enum ProjectType {
         return null;
     }
 
+    public static String getCode(String typeName) {
+        for (ProjectType pt : ProjectType.values()) {
+            if (pt.getTypeName() == typeName) {
+                return pt.getTypeCode();
+            }
+        }
+        return null;
+    }
+
     public String getTypeCode() {
         return typeCode;
     }

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

@@ -26,8 +26,8 @@ public class CrowdProjectVO {
     private String name;
     private String contactName;
     private String contactPhone;
-    private List<Integer> type;
-    private List<Integer> platform;
+    private List<String> type;
+    private List<String> platform;
     private String desc;
     private String doc;
     private String file;
@@ -44,8 +44,8 @@ public class CrowdProjectVO {
         this.name = project.getName();
         this.contactName = project.getLinkMan();
         this.contactPhone = project.getLinkManMobile();
-        this.type = (List<Integer>)JSONArray.parse(project.getType());
-        this.platform = (List<Integer>)JSONArray.parse(project.getPlatform());
+        this.type = (List<String>)JSONArray.parse(project.getType());
+        this.platform = (List<String>)JSONArray.parse(project.getPlatform());
         this.desc = project.getDescription();
         this.doc = project.getRequirementFile();
         this.file = project.getProjectFile();

+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdReportVO.java

@@ -19,7 +19,7 @@ public class CrowdReportVO {
     private String name;
     private Long crowdTestTaskId;
     private int scope;
-    private int type;
+    private String type;
     private String description;
     private String content;
     private String file;

+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdTaskVO.java

@@ -30,7 +30,7 @@ public class CrowdTaskVO {
     private Long resource;
     private Map<String, String> location;
     private Long institution;
-    private int serviceType;
+    private String serviceType;
     private int status;
     private Timestamp datetime;
 

+ 14 - 8
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdProjectServiceImpl.java

@@ -1,6 +1,7 @@
 package com.mooctest.crowd.site.service.impl;
 
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
 import com.mooctest.crowd.domain.domainobject.CrowdTestProjectStatus;
 import com.mooctest.crowd.domain.domainobject.CrowdTestReport;
@@ -96,15 +97,15 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
         CrowdTestProject project = command.toCrowdProject();
         project.setCode(GenerateFlowCodeUtil.generateProjCode());
         List<CrowdTestTask> tasks = new ArrayList<>();
-        command.getType().forEach(integer -> {
+        command.getType().forEach(type -> {
             CrowdTestTask task = CrowdTestProjectFactory.defaultFinishedCrowdTask();
-            task.setType(integer);
-            task.setCode(GenerateFlowCodeUtil.generateTaskCode(ProjectType.getCode(integer)));
+            task.setType(type);
+            task.setCode(GenerateFlowCodeUtil.generateTaskCode(ProjectType.getCode(type)));
             task.setCrowdTestProjectCode(project.getCode());
             task.setEndTime(command.getDatetime());
             task.setDeadTime(command.getDatetime());
             task.setRequirementFile(command.getFile());
-            task.setName(command.getName()+"-"+ProjectType.getName(integer));
+            task.setName(command.getName()+"-"+type);
             task.setQuotedPrice(command.getPrice()/command.getType().size());
             task.setFixedPrice(command.getPrice()/command.getType().size());
             tasks.add(task);
@@ -130,19 +131,20 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
         return dtos;
     }
 
+    @Override
     public List<CrowdTestProject> generateProjectByExcel(MultipartFile file){
         List<CrowdTestProject> projects = transferExcel2Projects(file);
         projects.forEach(project -> {
             project.setCode(GenerateFlowCodeUtil.generateProjCode());
             List<CrowdTestTask> tasks = new ArrayList<>();
             CrowdTestTask task = CrowdTestProjectFactory.defaultFinishedCrowdTask();
-            task.setType(((List<Integer>) JSONArray.parse(project.getType())).get(0));
+            task.setType(((List<String>) JSONArray.parse(project.getType())).get(0));
             task.setCode(GenerateFlowCodeUtil.generateTaskCode(ProjectType.getCode(task.getType())));
             task.setCrowdTestProjectCode(project.getCode());
             task.setEndTime(project.getEndTime());
             task.setDeadTime(project.getDeadTime());
             task.setRequirementFile(project.getRequirementFile());
-            task.setName(project.getName()+"-"+ProjectType.getName(task.getType()));
+            task.setName(project.getName()+"-"+task.getType());
             task.setQuotedPrice(project.getQuotedPrice());
             task.setFixedPrice(project.getFixedPrice());
             tasks.add(task);
@@ -204,7 +206,9 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
                             logList.add("错误 - 行: " + (i + 1) + "; 列: " + (j + 1) + "; 原因: " + "测试平台数据不合法:"+cell.getStringCellValue());
                             break;
                         }
-                        project.setPlatform("["+cell.getStringCellValue().trim()+"]");
+                        List<String> platforms = new ArrayList<>();
+                        platforms.add(cell.getStringCellValue().trim());
+                        project.setPlatform(JSONObject.toJSONString(platforms));
                         break;
                     case 2:
                         project.setLinkMan(cell.getStringCellValue().trim());
@@ -221,7 +225,9 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
                             logList.add("错误 - 行: " + (i + 1) + "; 列: " + (j + 1) + "; 原因: " + "错误的测试服务类型:"+cell.getStringCellValue());
                             break;
                         }
-                        project.setType("["+cell.getStringCellValue().trim()+"]");
+                        List<String> types = new ArrayList<>();
+                        types.add(cell.getStringCellValue().trim());
+                        project.setType(JSONObject.toJSONString(types));
                         break;
                     case 5:
                         project.setDescription(cell.getStringCellValue().trim());