Kaynağa Gözat

Merge branch 'feature-V1.0' into 'feature-V2.0'

Feature v1.0

See merge request crowd-2019/crowd-test-service-backend!55
郭超 5 yıl önce
ebeveyn
işleme
28d870bf7c

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

@@ -668,6 +668,7 @@ public class CrowdTestProject {
         }else{
             //结束项目时查看是否已结束任务
             if(this.getCrowdTestTaskList().stream().filter(task -> task.getStatus()!=CrowdTestTaskStatus.HAS_REJECTED)
+                    .filter(task -> task.getStatus() != CrowdTestTaskStatus.HAS_TIME_OUT)
                     .anyMatch(task -> task.getStatus()!=CrowdTestTaskStatus.HAS_FINISHED)){
                 throw new CrowdTestTaskException("存在未结束的任务,项目不能被提交");
             }

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

@@ -152,7 +152,6 @@ public class CrowdTestTask {
             throw new CrowdTestTaskException("当前状态不能提交任务");
         }
         this.setStatus(CrowdTestTaskStatus.HAS_COMMITED);
-        System.out.println(this.status);
         this.setEndTime(new Timestamp(System.currentTimeMillis()));
     }
 

+ 1 - 1
core/src/main/java/com/mooctest/crowd/domain/repository/CrowdTestProjectRepo.java

@@ -250,7 +250,7 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
      * @param crowdTestTaskCode
      * @return
      */
-    private List<CrowdTestReport> getCrowdTestReportByCrowdTestTask(String crowdTestTaskCode) {
+    public List<CrowdTestReport> getCrowdTestReportByCrowdTestTask(String crowdTestTaskCode) {
         List<CrowdTestReportPO> crowdTestReportPOList = crowdTestReportDao.findByDependencyCodeAndIsDeleted(crowdTestTaskCode, DeletedStatus.isNotDeleted);
         List<CrowdTestReport> crowdTestReportListResult = new ArrayList<>();
         for(CrowdTestReportPO crowdTestReportPO : crowdTestReportPOList){

+ 23 - 2
site/src/main/java/com/mooctest/crowd/site/controller/CrowdProjectController.java

@@ -44,7 +44,8 @@ public class CrowdProjectController {
         if (result.hasErrors())
             throw new BaseException(result.getFieldErrors().toString());
         else if (!crowdTestProjectCommand.isLegal())
-            throw new BaseException("信息不合法,项目可见性存在问题");
+            throw new BaseException("信息不合法,项目可见性必须选择指定的市");
+//            throw new BaseException("信息不合法,项目可见性存在问题");
         return projectService.createCrowdProject(crowdTestProjectCommand);
     }
 
@@ -85,7 +86,8 @@ public class CrowdProjectController {
         if (result.hasErrors())
             throw new BaseException(result.getFieldErrors().toString());
         else if (!crowdTestProjectCommand.isLegal())
-            throw new BaseException("信息不合法,项目可见性存在问题");
+            throw new BaseException("信息不合法,项目可见性必须选择指定的市");
+//            throw new BaseException("信息不合法,项目可见性存在问题");
         return projectService.updateProject(projectCode, crowdTestProjectCommand);
     }
 
@@ -177,4 +179,23 @@ public class CrowdProjectController {
         return projectService.getRegionalManagerList();
     }
 
+    /**
+     * 修正数据库信息
+     * @param projectCode
+     * @return
+     */
+    @RequestMapping(value = "/api/modify/{projectCode}", method = RequestMethod.GET)
+    public boolean modifyData(@PathVariable("projectCode") String projectCode){
+        return projectService.modifyData(projectCode);
+    }
+
+    /**
+     * 修正数据库信息
+     * @return
+     */
+    @RequestMapping(value = "/api/modify", method = RequestMethod.GET)
+    public boolean modifyData(){
+        return projectService.modifyAllData();
+    }
+
 }

+ 12 - 4
site/src/main/java/com/mooctest/crowd/site/data/enums/ProjectType.java

@@ -7,12 +7,20 @@ package com.mooctest.crowd.site.data.enums;
  */
 public enum ProjectType {
     JKCS("JKCS", "接口测试",0),
-    LDSM("LDSM", "安全漏洞扫描", 1),
-    FXPG("FXPG","风险评估", 2),
-    YMAQSJ("YMAQSJ", "源代码安全审计", 3),
+    JRXCE("JRXCE", "兼容性测试", 1),
+    KKXCS("KKXCS","可靠性测试", 2),
+    WDXCS("WDXCS", "稳定性测试", 3),
     GNCS("GNCS", "功能测试", 4),
     XNCS("XNCS", "性能测试", 5),
-    GNYYXCS("GNYYXCS", "功能和易用性测试", 6);
+    AQCS("AQCS", "安全测试", 6),
+    YYXCS("YYXCS", "易用性测试", 7),
+    YYGGZD("YYGGZD", "应用故障诊断", 8),
+    YYLDSM("YYLDSM", "应用漏洞扫描", 9),
+    DMAQSJ("DMAQSJ", "代码安全审计", 10),
+    FXPG("FXPG", "风险评估", 11),
+    DBCP("DBCP", "等保测评", 12),
+    PGPJ("PGPJ", "评估评价", 13),
+    DZCS("DZCS", "定制测试", 14);
 
     private String typeCode;
     private String typeName;

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

@@ -194,7 +194,8 @@ public class WebMediatorImpl implements ViewMediator {
             acceptableProject.addAll(projectDao.findByStatusLessThanAndProjectDistributionTypeId(CrowdTestProjectStatus.HAS_RECEIVED, 1L)
                     .stream().filter(crowdTestProjectPO -> user.getRegionalManager().getRegionalList().stream()
                             .anyMatch(reg -> (reg.getProvince().equals("*") || reg.getProvince().equals(crowdTestProjectPO.getDistributionProvince())) && (reg.getCity().equals("*")||reg.getCity().equals(crowdTestProjectPO.getDistributionCity())))).collect(Collectors.toList()));
-            myCrowdDTO.setAcceptableProjects(acceptableProject.stream().map(crowdTestProjectPO -> {
+            myCrowdDTO.setAcceptableProjects(acceptableProject.stream().sorted(Comparator.comparing(CrowdTestProjectPO::getCreateTime).thenComparing(CrowdTestProjectPO::getStatus).reversed())
+                    .map(crowdTestProjectPO -> {
                 CrowdTestProject project = new CrowdTestProject();
                 BeanUtils.copyProperties(crowdTestProjectPO, project);
                 return new CrowdProjectVO(project); }).collect(Collectors.toList()));
@@ -214,7 +215,7 @@ public class WebMediatorImpl implements ViewMediator {
         if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("evaluationAgency"))) {
             List<TaskToUserPO> taskToUserPOS = taskToUserDao.findByUserId(user.getId());
             if(taskToUserPOS != null && taskToUserPOS.size() > 0){
-                allTaskOfAgency = taskToUserPOS.stream()
+                allTaskOfAgency = taskToUserPOS.stream().sorted(Comparator.comparing(TaskToUserPO::getAcceptTime))
                         .map(taskToUserPO -> {
                             CrowdTestTaskPO crowdTestTaskPO = taskDao.findByCodeAndIsDeleted(taskToUserPO.getTaskCode(), DeletedStatus.isNotDeleted);
                             if(crowdTestTaskPO != null){
@@ -558,6 +559,7 @@ public class WebMediatorImpl implements ViewMediator {
                     }
                     if (project.getCrowdTestReportForProject()!=null){
                         operationControl.setFinish(true);
+                        operationControl.setUploadReport(false);
                     }
                 } else if (project.getStatus() == CrowdTestProjectStatus.HAS_COMMITED){
                     operationControl.setCreateTask(false);

+ 4 - 0
site/src/main/java/com/mooctest/crowd/site/service/CrowdProjectService.java

@@ -40,4 +40,8 @@ public interface CrowdProjectService {
     ProjectDetailsDTO commitProject(String projectCode, Long userId);
 
     ProjectDetailsDTO confirmFinished(String projectCode, Long userId);
+
+    boolean modifyData(String projectCode);
+
+    boolean modifyAllData();
 }

+ 0 - 2
site/src/main/java/com/mooctest/crowd/site/service/impl/CommonServiceImpl.java

@@ -15,8 +15,6 @@ public class CommonServiceImpl implements CommonService {
     @Qualifier("WebMediator")
     private ViewMediator viewMediator;
 
-
-
     @Override
     public IndexDTO getIndexInfo() {
         return viewMediator.renderIndex();

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

@@ -34,6 +34,7 @@ import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.regex.PatternSyntaxException;
+import java.util.stream.Collectors;
 
 /**
  * @author: Diors.Po
@@ -215,6 +216,51 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
         return getProjectDetails(projectCode, userId);
     }
 
+    @Override
+    public boolean modifyData(String projectCode) {
+        CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
+        if(project.getStatus() == CrowdTestProjectStatus.HAS_FINISHED && project.getLinkMan().contains("先生")){
+            project.setRestPrice(0.00);
+            project.setJoinCount(1);
+            project.getCrowdTestTaskList().stream()
+                    .filter(crowdTestTask -> crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_FINISHED)
+                    .map(crowdTestTask -> {
+                crowdTestTask.setParticipantCount(1);
+                crowdTestTask.setAcceptedCount(1);
+                crowdTestTask.setParticipantHasCommittedCount(1);
+                crowdTestTask.setFullStatus(1);
+                TaskToUser taskToUser = new TaskToUser();
+                taskToUser.setValue(crowdTestTask.getCode(), crowdTestTask.getEvaluationAgencyId(), crowdTestTask.getQuotedPrice(),
+                        1,crowdTestTask.getDistributionType(), 1, crowdTestTask.getCreateTime());
+                taskToUser.setCommitReportTime(crowdTestTask.getCreateTime());
+                taskToUser.setIsCommitted(1);
+                taskToUser.setCommitTaskTime(crowdTestTask.getCreateTime());
+                List<CrowdTestReport> reportList = projectRepo.getCrowdTestReportByCrowdTestTask(crowdTestTask.getCode());
+                List<CrowdTestReport> testReportList = reportList.stream().peek(crowdTestReport -> crowdTestReport.setUserId(crowdTestTask.getEvaluationAgencyId())).collect(Collectors.toList());
+                taskToUser.setCrowdTestReportList(testReportList);
+                crowdTestTask.getAcceptedUserList().add(taskToUser);
+                return crowdTestTask;
+            }).collect(Collectors.toList());
+            List<CrowdTestReport> reportList = projectRepo.getCrowdTestReportByCrowdTestTask(project.getCode()).stream().peek(crowdTestReport -> crowdTestReport.setUserId(project.getRegionalManagerId())).collect(Collectors.toList());
+            project.setCrowdTestReportForProject(reportList.get(0));
+
+        }else{
+            project.setIsDeleted(1);
+            project.getCrowdTestTaskList().stream().peek(crowdTestTask -> crowdTestTask.setIsDeleted(1)).collect(Collectors.toList());
+        }
+        projectRepo.saveCrowdTestProject(project);
+        return true;
+    }
+
+    @Override
+    public boolean modifyAllData(){
+        List<CrowdTestProject> projectList = projectRepo.getAllCrowdTestProject();
+        for(CrowdTestProject crowdTestProject : projectList){
+            modifyData(crowdTestProject.getCode());
+        }
+        return true;
+    }
+
     private List<CrowdTestProject> transferExcel2Projects(MultipartFile file){
         List<String> logList = new ArrayList<>();
         List<CrowdTestProject> projects = new ArrayList<>();

+ 25 - 0
site/src/main/resources/application.yml

@@ -82,6 +82,31 @@ website:
 
 ---
 spring:
+  profiles: dev-pre
+  datasource:
+    url: jdbc:mysql://101.37.175.111:3306/crowd-test-service-pre?useSSL=false&useUnicode=yes&characterEncoding=UTF-8
+    username: mooctest
+    password: secr3t!
+  redis:
+    host: 59.42.10.53
+    pool: 6379
+    password: '#2019@callforttest@!'
+    jedis:
+      pool:
+        max-active: 8
+        max-idle: 8
+        max-wait: -1
+        min-idle: 0
+    database: 6
+user:
+  service:
+    baseUrl: http://59.42.10.53:8081
+
+website:
+  domain: mooctest.net
+
+---
+spring:
   profiles: pre
   datasource:
     url: jdbc:mysql://101.37.175.111:3306/crowd-test-service?useSSL=false&useUnicode=yes&characterEncoding=UTF-8