Преглед изворни кода

Merge branch 'Dev' into 'Test'

Dev

See merge request crowd-2019/crowd-test-service-backend!50
郭超 пре 5 година
родитељ
комит
b2db897993

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

@@ -245,7 +245,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){

+ 19 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CrowdProjectController.java

@@ -177,4 +177,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();
+    }
+
 }

+ 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();
 }

+ 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
@@ -213,6 +214,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<>();

+ 26 - 1
site/src/main/resources/application.yml

@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: dev-pre
   cache:
     guava:
       spec: expireAfterWrite=30s
@@ -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