Explorar o código

Merge branch 'feature-V2.0' of ssh://git.mooctest.com:1022/crowd-2019/crowd-test-service-backend into feature-V2.0

git %!s(int64=5) %!d(string=hai) anos
pai
achega
e06fb18a57

+ 1 - 2
core/pom.xml

@@ -47,7 +47,6 @@
             <version>1.7.3</version>
         </dependency>
 
-
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
@@ -153,7 +152,7 @@
       <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>fastjson</artifactId>
-        <version>1.2.66</version>
+        <version>1.2.58</version>
     </dependency>
         <dependency>
             <groupId>com.alibaba</groupId>

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

@@ -34,6 +34,9 @@ public class CrowdTestProjectCommand {
     @NotNull(message = "项目服务类型不可为空")
     private ArrayList<String> type;
 
+//    @NotNull(message = "项目描述不可为空")
+    private String valuationStandard;
+
     @NotNull(message = "项目描述不可为空")
     private String desc;
 
@@ -76,6 +79,7 @@ public class CrowdTestProjectCommand {
         crowdTestProject.setType(JSONObject.toJSONString(this.type));
         crowdTestProject.setApplicationType(this.platform);
         crowdTestProject.setDescription(this.desc);
+        crowdTestProject.setValuationStandard(this.valuationStandard);
         crowdTestProject.setRequirementFile(this.doc);
         crowdTestProject.setProjectFile(this.file);
         crowdTestProject.setProjectDistributionTypeId(this.resource);
@@ -88,6 +92,7 @@ public class CrowdTestProjectCommand {
         crowdTestProject.setQuotedPrice(this.budget);
         crowdTestProject.setRestPrice(this.budget);
         crowdTestProject.setFixedPrice(this.price);
+//        crowdTestProject.setCreateTime(new Timestamp(System.currentTimeMillis()));
         return crowdTestProject;
     }
 

+ 2 - 1
site/src/main/java/com/mooctest/crowd/site/controller/advice/ExceptionAdvice.java

@@ -70,7 +70,8 @@ public class ExceptionAdvice {
     @ResponseBody
     public String handleSystemException(Exception e){
         log.error("System Error: "+e.getMessage(), e);
-        return "系统异常 " + e.getMessage();
+//        return "系统异常 " + e.getMessage();
+        return e.getMessage();
     }
 
     @ExceptionHandler(Excel2ProjectException.class)

+ 5 - 0
site/src/main/java/com/mooctest/crowd/site/mediator/impl/OperationMediatorImpl.java

@@ -9,6 +9,8 @@ import com.mooctest.crowd.site.mediator.OperationMediator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.sql.Timestamp;
+
 /**
  * @author: Diors.Po
  * @Email: 171256175@qq.com
@@ -35,6 +37,9 @@ public class OperationMediatorImpl implements OperationMediator {
         updateProject.setId(project.getId());
         updateProject.setCode(project.getCode());
         updateProject.setStatus(project.getStatus());
+        if(updateProject.getCreateTime() == null){
+            updateProject.setCreateTime(new Timestamp(System.currentTimeMillis()));
+        }
         return updateProject;
     }
 }

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

@@ -18,22 +18,17 @@ import com.mooctest.crowd.site.data.dto.*;
 import com.mooctest.crowd.site.data.enums.RoleType;
 import com.mooctest.crowd.site.data.vo.*;
 import com.mooctest.crowd.site.mediator.ViewMediator;
-import com.mooctest.crowd.site.util.DataUtils;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
-import org.springframework.data.jpa.domain.Specification;
-import org.springframework.data.jpa.domain.Specifications;
 import org.springframework.stereotype.Component;
 import org.springframework.web.client.RestTemplate;
+
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -494,6 +489,12 @@ public class WebMediatorImpl implements ViewMediator {
         List<CrowdTaskVO> taskVOList = taskDao.findAllByIsDeleted(0).stream().map(crowdTestTaskPO -> {
             CrowdTestTask task = CrowdTestProjectFactory.defaultTask();
             BeanUtils.copyProperties(crowdTestTaskPO, task);
+            // 测试类型的转换
+            Optional<TestTypePO> testTypePO = testTypeDao.findByCode(task.getType());
+            if (!testTypePO.isPresent()) {
+                throw new HttpBadRequestException("请选择测试类型");
+            }
+            task.setType(testTypePO.get().getName());
             return task;
         }).collect(Collectors.toList()).stream().filter(crowdTestTask -> crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_RELEASED ||
                 (crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_RECEIVED && crowdTestTask.getFullStatus() == CrowdTestTaskAcceptStatus.NOT_FULL))
@@ -528,6 +529,10 @@ public class WebMediatorImpl implements ViewMediator {
                 EvaluationAgencyPO agencyPO = agencyDao.findByUserId(crowdTestTask.getEvaluationAgencyId());
                 crowdTaskVO.setInstitution(agencyPO == null ? "该机构已注销" : agencyPO.getEvaluationAgencyName());
             }
+
+            // 测试类型的转换
+            Optional<TestTypePO> testTypePO = testTypeDao.findByCode(crowdTaskVO.getServiceType());
+            crowdTaskVO.setServiceType(testTypePO.get().getName());
             taskVOList.add(crowdTaskVO);
         }
 
@@ -552,7 +557,7 @@ public class WebMediatorImpl implements ViewMediator {
         if(applicationTypePO.isPresent()){
             projectVO.setPlatform(applicationTypePO.get().getName());
         }else{
-            throw new HttpBadRequestException("不存在此应用类型");
+            throw new HttpBadRequestException("请选择应用类型");
         }
 
         // 领域类型值的转换
@@ -560,7 +565,7 @@ public class WebMediatorImpl implements ViewMediator {
         if(fieldPO.isPresent()){
             projectVO.setField(fieldPO.get().getName());
         }else{
-            throw new HttpBadRequestException("不存在此领域类型");
+            throw new HttpBadRequestException("请选择领域类型");
         }
 
         // 测试类型的转换
@@ -569,7 +574,7 @@ public class WebMediatorImpl implements ViewMediator {
             if (testTypePO.isPresent()) {
                 return testTypePO.get().getName();
             } else {
-                throw new HttpBadRequestException("不存在此测试类型");
+                throw new HttpBadRequestException("请选择测试类型");
             }
         }).collect(Collectors.toList());
         projectVO.setType(testStringList);
@@ -654,6 +659,13 @@ public class WebMediatorImpl implements ViewMediator {
         }
 
         CrowdTaskVO taskVO = new CrowdTaskVO(task.get());
+        // 测试类型的转换
+        Optional<TestTypePO> testTypePO = testTypeDao.findByCode(taskVO.getServiceType());
+        if (!testTypePO.isPresent()) {
+            throw new HttpBadRequestException("请选择测试类型");
+        }
+        taskVO.setServiceType(testTypePO.get().getName());
+
         System.out.println("renderTaskDetails userId:" + userId);
         if (userId == null) {
             taskDetailsDTO.setTaskOperationControl(this.initTaskPermission(project, task.get(), null));

+ 7 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdProjectServiceImpl.java

@@ -126,6 +126,10 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
         log.info("\n" + project.toString() + "\n");
         String projectCode = GenerateFlowCodeUtil.generateFlowCode("PROJ");
         project.setCode(projectCode);
+
+        if(project.getCreateTime() == null){
+            project.setCreateTime(new Timestamp(System.currentTimeMillis()));
+        }
         ProjectDetailsDTO projectDetailsDTO = new ProjectDetailsDTO();
         projectRepo.saveCrowdTestProject(project);
         projectDetailsDTO.setProjectDetails(new CrowdProjectVO(project));
@@ -140,6 +144,9 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
         if (!project.getUserId().equals(crowdTestProjectCommand.getUserId()))
             throw new BaseException("UserId不一致, newUserId: " + crowdTestProjectCommand.getUserId() + ", oldUserId: " + project.getUserId());
         //todo 后面需要加入是否有权限进行更新
+        if(project.getCreateTime() == null){
+            project.setCreateTime(new Timestamp(System.currentTimeMillis()));
+        }
         projectRepo.saveCrowdTestProject(operationMediator.updateProject(project, crowdTestProjectCommand));
         return getProjectDetails(projectCode, crowdTestProjectCommand.getUserId());
     }