Pārlūkot izejas kodu

增加对项目的一系列操作

guochao 6 gadi atpakaļ
vecāks
revīzija
4ac10802da
31 mainītis faili ar 931 papildinājumiem un 312 dzēšanām
  1. 6 0
      core/pom.xml
  2. 191 93
      core/src/main/java/com/mooctest/crowd/domain/controller/CrowdTestProjectController.java
  3. 0 0
      core/src/main/java/com/mooctest/crowd/domain/controller/TestUserController.java
  4. 30 0
      core/src/main/java/com/mooctest/crowd/domain/dao/EvaluationAgencyDao.java
  5. 30 0
      core/src/main/java/com/mooctest/crowd/domain/dao/RegionalDao.java
  6. 33 0
      core/src/main/java/com/mooctest/crowd/domain/dao/RegionalManagerDao.java
  7. 4 9
      core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProject.java
  8. 6 5
      core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProjectStatus.java
  9. 1 3
      core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestReport.java
  10. 3 3
      core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestReportStatus.java
  11. 3 3
      core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTask.java
  12. 5 5
      core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTaskStatus.java
  13. 2 26
      core/src/main/java/com/mooctest/crowd/domain/domainobject/EvaluationAgency.java
  14. 23 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/Regional.java
  15. 83 5
      core/src/main/java/com/mooctest/crowd/domain/domainobject/RegionalManager.java
  16. 182 50
      core/src/main/java/com/mooctest/crowd/domain/domainobject/User.java
  17. 0 2
      core/src/main/java/com/mooctest/crowd/domain/domainservice/RegisterDService.java
  18. 11 0
      core/src/main/java/com/mooctest/crowd/domain/exception/CrowdTestProjectCannotBeReceive.java
  19. 11 0
      core/src/main/java/com/mooctest/crowd/domain/exception/CrowdTestReportException.java
  20. 11 0
      core/src/main/java/com/mooctest/crowd/domain/exception/CrowdTestTaskException.java
  21. 8 0
      core/src/main/java/com/mooctest/crowd/domain/exception/EvaluationAgencyNotExistException.java
  22. 30 22
      core/src/main/java/com/mooctest/crowd/domain/model/CrowdTestProjectPO.java
  23. 7 7
      core/src/main/java/com/mooctest/crowd/domain/model/CrowdTestReportPO.java
  24. 23 17
      core/src/main/java/com/mooctest/crowd/domain/model/CrowdTestTaskPO.java
  25. 23 2
      core/src/main/java/com/mooctest/crowd/domain/model/RegionalManagerPO.java
  26. 34 0
      core/src/main/java/com/mooctest/crowd/domain/model/RegionalPO.java
  27. 1 0
      core/src/main/java/com/mooctest/crowd/domain/model/UserPO.java
  28. 0 1
      core/src/main/java/com/mooctest/crowd/domain/repository/CrowdTestProjectRepo.java
  29. 2 0
      core/src/main/java/com/mooctest/crowd/domain/repository/IUserRepo.java
  30. 159 58
      core/src/main/java/com/mooctest/crowd/domain/repository/UserRepo.java
  31. 9 1
      core/src/main/resources/application.yml

+ 6 - 0
core/pom.xml

@@ -95,6 +95,12 @@
             <artifactId>gson</artifactId>
             <version>2.8.5</version>
         </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+            <version>1.1.10</version>
+        </dependency>
     </dependencies>
     <build>
         <plugins>

+ 191 - 93
core/src/main/java/com/mooctest/crowd/domain/controller/CrowdTestProjectController.java

@@ -2,8 +2,8 @@ package com.mooctest.crowd.domain.controller;
 
 import com.google.gson.Gson;
 import com.mooctest.crowd.domain.domainobject.*;
-import com.mooctest.crowd.domain.factory.CrowdTestProjectFactory;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
+import com.mooctest.crowd.domain.repository.UserRepo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -27,6 +27,9 @@ public class CrowdTestProjectController {
     @Autowired
     private CrowdTestProjectRepo crowdTestProjectRepo;
 
+    @Autowired
+    private UserRepo userRepo;
+
     @RequestMapping(value = "findById/{crowdTestProjectId}", method = RequestMethod.GET)
     public String getCrowdTestProjectById(@PathVariable("crowdTestProjectId") Long crowdTestProjectId){
         CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(crowdTestProjectId);
@@ -73,96 +76,6 @@ public class CrowdTestProjectController {
         crowdTestProjectRepo.removeCrowdTestProjectList(crowdTestProjectList);
     }
 
-    @RequestMapping(value = "acceptTask/{agencyManagerId}/{crowdTestProjectCode}/{crowdTestTaskCode}", method = RequestMethod.GET)
-    public void deleteCrowdTestProjectByProjectCode(@PathVariable("agencyManagerId") Long agencyManagerId, @PathVariable("crowdTestProjectCode") String crowdTestProjectCode,
-                                                    @PathVariable("crowdTestTaskCode") String crowdTestTaskCode) {
-        CrowdTestProject crowdTestProject = CrowdTestProjectFactory.createCrowdTestProject();
-        crowdTestProject.acceptTask(agencyManagerId, crowdTestProjectCode, crowdTestTaskCode);
-
-    }
-
-    /**
-     * 新建项目
-     * @param userId
-     * @param regionalManagerId
-     * @param projectName
-     * @return
-     */
-    @RequestMapping(value = "createProject/{userId}/{regionalManagerId}/{projectName}", method = RequestMethod.GET)
-    public String createCrowdTestProject(@PathVariable("userId") Long userId,@PathVariable("regionalManagerId") Long regionalManagerId,@PathVariable("projectName") String projectName){
-        CrowdTestProject crowdTestProject = new CrowdTestProject();
-        crowdTestProject.setCode(projectName+"_"+System.currentTimeMillis());
-        crowdTestProject.setUserId(userId);
-        crowdTestProject.setName(projectName);
-        crowdTestProject.setRegionalManagerId(regionalManagerId);
-        crowdTestProject.setProjectDistributionTypeId(1L);
-        crowdTestProject.setLinkMan("郭超");
-        crowdTestProject.setLinkManMobile("13657094936");
-        crowdTestProject.setQuotedPrice(200.00);
-        crowdTestProject.setStatus(CrowdTestProjectStatus.CREATED);
-        crowdTestProject.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis())).getTime()));
-        crowdTestProject.setCreateTime(new Timestamp(System.currentTimeMillis()));
-        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProject);
-        return crowdTestProjectRepo.getByProjectCode(crowdTestProject.getCode()).toString();
-    }
-
-
-    /**
-     * 项目中新建任务
-     * @param crowdTestProjectCode
-     * @param taskName
-     * @return
-     */
-    @RequestMapping(value = "createTask/{crowdTestProjectCode}/{taskName}", method = RequestMethod.GET)
-    public String createCrowdTestTask(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("taskName") String taskName){
-        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
-
-        CrowdTestTask crowdTestTask = new CrowdTestTask();
-        crowdTestTask.setCode(crowdTestProjectCode+"_"+taskName+"_"+System.currentTimeMillis());
-        crowdTestTask.setName(taskName);
-        crowdTestTask.setCrowdTestProjectCode(crowdTestProjectCode);
-        crowdTestTask.setEvaluationAgencyId(1L);
-        crowdTestTask.setQuotedPrice(200.00);
-        crowdTestTask.setStatus(CrowdTestProjectStatus.CREATED);
-        crowdTestTask.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis())).getTime()));
-        crowdTestTask.setCreateTime(new Timestamp(System.currentTimeMillis()));
-
-        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
-        crowdTestTaskList.add(crowdTestTask);
-        crowdTestProject.setCrowdTestTaskList(crowdTestTaskList);
-
-        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProject);
-        return crowdTestProjectRepo.getByProjectCode(crowdTestProject.getCode()).toString();
-    }
-
-    /**
-     * 项目的任务中新建报告
-     * @param crowdTestProjectCode
-     * @param reportName
-     * @return
-     */
-    @RequestMapping(value = "createReport/{crowdTestProjectCode}/{crowdTestTaskCode}/{reportName}", method = RequestMethod.GET)
-    public String createCrowdTestReport(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("reportName") String reportName,
-                                        @PathVariable("crowdTestTaskCode") String crowdTestTaskCode){
-
-        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
-
-        for(CrowdTestTask crowdTestTask : crowdTestProject.getCrowdTestTaskList()){
-            if(crowdTestTask.getCode().equals(crowdTestTaskCode)){
-                List<CrowdTestReport> crowdTestReportList = crowdTestTask.getCrowdTestReportList();
-                CrowdTestReport crowdTestReport = new CrowdTestReport();
-                crowdTestReport.setCode(crowdTestProjectCode+crowdTestTaskCode+"_"+reportName+"_"+System.currentTimeMillis());
-                crowdTestReport.setName(reportName);
-                crowdTestReport.setCrowdTestTaskCode(crowdTestTaskCode);
-                crowdTestReport.setStatus(CrowdTestReportStatus.CREATED);
-                crowdTestReport.setCreateTime(new Timestamp(System.currentTimeMillis()));
-                crowdTestReportList.add(crowdTestReport);
-            }
-        }
-        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProject);
-        return crowdTestProjectRepo.getByProjectCode(crowdTestProject.getCode()).toString();
-    }
-
 
 
     /*对DO的操作*/
@@ -214,18 +127,203 @@ public class CrowdTestProjectController {
             }
         }
         crowdTestReportModify.setName(reportName);
-        crowdTestReportModify.setStatus(CrowdTestReportStatus.COMMITED);
         CrowdTestProject updateCrowdTestProject = crowdTestProject.updateCrowdTestReport(crowdTestProject, crowdTestTaskCode, crowdTestReportCode, crowdTestReportModify);
         crowdTestProjectRepo.saveCrowdTestProject(updateCrowdTestProject);
     }
 
+    /*普通用户DO*/
+    /**
+     * 新建项目(普通用户)
+     * @param userId
+     * @param projectName
+     * @return
+     */
+    @RequestMapping(value = "createProject/{userId}/{projectName}", method = RequestMethod.GET)
+    public String createCrowdTestProject(@PathVariable("userId") Long userId,@PathVariable("projectName") String projectName){
+        //数据准备
+        CrowdTestProject crowdTestProject = new CrowdTestProject();
+        crowdTestProject.setCode("pro"+System.currentTimeMillis());
+        crowdTestProject.setName(projectName);
+        crowdTestProject.setProjectDistributionTypeId(1L);
+        crowdTestProject.setLinkMan("郭超");
+        crowdTestProject.setLinkManMobile("13657094936");
+        crowdTestProject.setQuotedPrice(200.00);
+        crowdTestProject.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis())).getTime()));
+        crowdTestProject.setCreateTime(new Timestamp(System.currentTimeMillis()));
+
+        User user = userRepo.getByID(userId);
+        CrowdTestProject crowdTestProjectResult = user.createCrowdTestProject(crowdTestProject);
+        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
+        return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
+    }
+
+    @RequestMapping(value = "releaseProject/{userId}/{crowdTestProjectCode}", method = RequestMethod.GET)
+    public String releaseCrowdTestProject(@PathVariable("userId") Long userId,@PathVariable("crowdTestProjectCode") String crowdTestProjectCode){
+        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
+        User user = userRepo.getByID(userId);
+        CrowdTestProject crowdTestProjectResult = user.releaseCrowdTestProject(crowdTestProject);
+        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
+        return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
+    }
+
+
+    /*区域管理员DO*/
+
+    /**
+     * 接收项目(区域管理员)
+     * @param regionalManagerId
+     * @param crowdTestProjectCode
+     * @return
+     */
+    @RequestMapping(value = "receiveProject/{regionalManagerId}/{crowdTestProjectCode}", method = RequestMethod.GET)
+    public String receiveTaskByProjectCode(@PathVariable("regionalManagerId") Long regionalManagerId, @PathVariable("crowdTestProjectCode") String crowdTestProjectCode) {
+        User userForRegionalManager = userRepo.getByID(regionalManagerId);
+        RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
+
+        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
+
+        CrowdTestProject crowdTestProjectResult = regionalManager.receiveProject(crowdTestProject);
+        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProject);
+        return crowdTestProjectResult.toString();
+
+    }
+
+    /**
+     * 项目中新建任务(区域管理员)
+     * @param crowdTestProjectCode
+     * @param taskName
+     * @return
+     */
+    @RequestMapping(value = "createTask/{regionalManagerId}/{crowdTestProjectCode}/{taskName}", method = RequestMethod.GET)
+    public String createCrowdTestTask(@PathVariable("regionalManagerId") Long regionalManagerId,@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("taskName") String taskName){
+        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
+
+        //数据准备
+        CrowdTestTask crowdTestTask = new CrowdTestTask();
+        crowdTestTask.setCode(crowdTestProjectCode+"_task"+System.currentTimeMillis());
+        crowdTestTask.setName(taskName);
+        crowdTestTask.setCrowdTestProjectCode(crowdTestProjectCode);
+        crowdTestTask.setQuotedPrice(200.00);
+        crowdTestTask.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis())).getTime()));
+        crowdTestTask.setCreateTime(new Timestamp(System.currentTimeMillis()));
+
+        //具体操作
+        User userForRegionalManager = userRepo.getByID(regionalManagerId);
+        RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
+
+        CrowdTestProject crowdTestProjectResult = regionalManager.createCrowdTestTask(crowdTestProject, crowdTestTask);
+        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
+        return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
+    }
+
+    /**
+     * 发布任务(区域管理员)
+     * @param crowdTestProjectCode
+     * @return
+     */
+    @RequestMapping(value = "releaseTask/{regionalManagerId}/{crowdTestProjectCode}/{crowdTestTaskCode}", method = RequestMethod.GET)
+    public String releaseCrowdTestTask(@PathVariable("regionalManagerId") Long regionalManagerId,@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,
+                                       @PathVariable("crowdTestTaskCode") String crowdTestTaskCode){
+        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
+        User userForRegionalManager = userRepo.getByID(regionalManagerId);
+        RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
+
+        CrowdTestProject crowdTestProjectResult = regionalManager.releaseCrowdTestTask(crowdTestProject, crowdTestTaskCode);
+        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
+        return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
+    }
+
+    /*测评机构PO*/
+
+    /**
+     * 接收任务(测评机构)
+     * @param userForAgencyManagerId
+     * @param crowdTestProjectCode
+     * @param crowdTestTaskCode
+     * @return
+     */
+    @RequestMapping(value = "receiveTask/{userForAgencyManagerId}/{crowdTestProjectCode}/{crowdTestTaskCode}", method = RequestMethod.GET)
+    public String receiveTaskByProjectCode(@PathVariable("userForAgencyManagerId") Long userForAgencyManagerId, @PathVariable("crowdTestProjectCode") String crowdTestProjectCode,
+                                                    @PathVariable("crowdTestTaskCode") String crowdTestTaskCode) {
+        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
+
+        User userForAgencyManager = userRepo.getByID(userForAgencyManagerId);
+        CrowdTestProject crowdTestProjectResult = userForAgencyManager.receiveTask(crowdTestProject, crowdTestTaskCode);
+        System.out.println(crowdTestProjectResult);
+        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
+        return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
+    }
+
+    /**
+     * 项目的任务中新建报告(测评机构)
+     * @param crowdTestProjectCode
+     * @param reportName
+     * @return
+     */
+    @RequestMapping(value = "createReport/{userForAgencyManagerId}/{crowdTestProjectCode}/{crowdTestTaskCode}/{reportName}", method = RequestMethod.GET)
+    public String createCrowdTestReport(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("userForAgencyManagerId") Long userForAgencyManagerId,
+                                        @PathVariable("reportName") String reportName, @PathVariable("crowdTestTaskCode") String crowdTestTaskCode){
+
+        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
+
+        //report数据准备
+        CrowdTestReport crowdTestReport = new CrowdTestReport();
+        crowdTestReport.setCode(crowdTestProjectCode+crowdTestTaskCode+"_rep"+System.currentTimeMillis());
+        crowdTestReport.setName(reportName);
+        crowdTestReport.setCrowdTestTaskCode(crowdTestTaskCode);
+        crowdTestReport.setCreateTime(new Timestamp(System.currentTimeMillis()));
+
+        User userForAgencyManager = userRepo.getByID(userForAgencyManagerId);
+        CrowdTestProject crowdTestProjectResult = userForAgencyManager.createCrowdTestReport(crowdTestProject, crowdTestTaskCode, crowdTestReport);
+        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
+        return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
+    }
+
+//    /**
+//     * 提交报告(测评机构)
+//     * @param crowdTestProjectCode
+//     * @param userForAgencyManagerId
+//     * @param crowdTestTaskCode
+//     * @param crowdTestReportCode
+//     * @return
+//     */
+//    @RequestMapping(value = "commitReport/{userForAgencyManagerId}/{crowdTestProjectCode}/{crowdTestTaskCode}/{crowdTestReportCode}", method = RequestMethod.GET)
+//    public String commitCrowdTestReport(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("userForAgencyManagerId") Long userForAgencyManagerId,
+//                                        @PathVariable("crowdTestTaskCode") String crowdTestTaskCode,@PathVariable("crowdTestReportCode") String crowdTestReportCode){
+//
+//        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
+//
+//        User userForAgencyManager = userRepo.getByID(userForAgencyManagerId);
+//        CrowdTestProject crowdTestProjectResult = userForAgencyManager.commitCrowdTestReport(crowdTestProject, crowdTestTaskCode, crowdTestReportCode);
+//        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
+//        return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
+//    }
+
+
+    /**
+     * 提交任务(测评机构)
+     * @param crowdTestProjectCode
+     * @param userForAgencyManagerId
+     * @param crowdTestTaskCode
+     * @return
+     */
+//    @RequestMapping(value = "commitTask/{userForAgencyManagerId}/{crowdTestProjectCode}/{crowdTestTaskCode}", method = RequestMethod.GET)
+//    public String commitCrowdTestReport(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("userForAgencyManagerId") Long userForAgencyManagerId,
+//                                        @PathVariable("crowdTestTaskCode") String crowdTestTaskCode){
+//
+//        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
+//        User userForAgencyManager = userRepo.getByID(userForAgencyManagerId);
+//        CrowdTestProject crowdTestProjectResult = userForAgencyManager.commitCrowdTestTask(crowdTestProject, crowdTestTaskCode);
+//        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
+//        return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
+//    }
 
     /**
      * 计算指定时间的下一天
      * @param date 指定时间
      * @return  指定时间的下一天
      */
-    private static Date getNextDay(Date date){
+    private Date getNextDay(Date date){
         //计算相关的时间间隔
         long addTime=1;
         addTime*=1;

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
core/src/main/java/com/mooctest/crowd/domain/controller/TestUserController.java


+ 30 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/EvaluationAgencyDao.java

@@ -0,0 +1,30 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.EvaluationAgencyPO;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+import javax.transaction.Transactional;
+import java.util.Optional;
+
+@Transactional
+public interface EvaluationAgencyDao extends PagingAndSortingRepository<EvaluationAgencyPO, Long>, JpaSpecificationExecutor<EvaluationAgencyPO> {
+
+    Optional<EvaluationAgencyPO> findById(Long Id);
+
+    EvaluationAgencyPO findByUserId(Long userId);
+
+    @Override
+    Iterable<EvaluationAgencyPO> findAllById(Iterable<Long> iterable);
+
+    @Override
+    Iterable<EvaluationAgencyPO> findAll();
+
+    @Override
+    void delete(EvaluationAgencyPO evaluationAgencyPO);
+
+    void deleteAll(Iterable<? extends EvaluationAgencyPO> iterable);
+
+    EvaluationAgencyPO save(EvaluationAgencyPO evaluationAgencyPO);
+
+}

+ 30 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/RegionalDao.java

@@ -0,0 +1,30 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.RegionalPO;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+import javax.transaction.Transactional;
+import java.util.Optional;
+
+@Transactional
+public interface RegionalDao extends PagingAndSortingRepository<RegionalPO, Long>, JpaSpecificationExecutor<RegionalPO> {
+
+    Optional<RegionalPO> findById(Long Id);
+
+    RegionalPO findByProvince(String province);
+
+    @Override
+    Iterable<RegionalPO> findAllById(Iterable<Long> iterable);
+
+    @Override
+    Iterable<RegionalPO> findAll();
+
+    @Override
+    void delete(RegionalPO regionalPO);
+
+    void deleteAll(Iterable<? extends RegionalPO> iterable);
+
+    RegionalPO save(RegionalPO regionalPO);
+
+}

+ 33 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/RegionalManagerDao.java

@@ -0,0 +1,33 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.RegionalManagerPO;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.repository.PagingAndSortingRepository;
+
+import javax.transaction.Transactional;
+import java.util.List;
+import java.util.Optional;
+
+@Transactional
+public interface RegionalManagerDao extends PagingAndSortingRepository<RegionalManagerPO, Long>, JpaSpecificationExecutor<RegionalManagerPO> {
+
+    Optional<RegionalManagerPO> findById(Long Id);
+
+    List<RegionalManagerPO> findByUserId(Long userId);
+
+    RegionalManagerPO findByRegionalId(Long regionalId);
+
+    @Override
+    Iterable<RegionalManagerPO> findAllById(Iterable<Long> iterable);
+
+    @Override
+    Iterable<RegionalManagerPO> findAll();
+
+    @Override
+    void delete(RegionalManagerPO regionalManagerPO);
+
+    void deleteAll(Iterable<? extends RegionalManagerPO> iterable);
+
+    RegionalManagerPO save(RegionalManagerPO regionalManagerPO);
+
+}

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

@@ -20,10 +20,10 @@ public class CrowdTestProject {
     private Long userId;
     private Long regionalManagerId;
     private Long projectDistributionTypeId;
-    private String platform;
+    private int platform;
     private String linkMan;
     private String linkManMobile;
-    private String type;
+    private int type;
     private String description;
     private String projectFile;
     private String requirementFile;
@@ -31,7 +31,7 @@ public class CrowdTestProject {
     private String distributionCity;
     private Double quotedPrice;
     private Double fixedPrice;
-    private String status;
+    private int status;
     private Timestamp deadTime;
     private Timestamp endTime;
     private Timestamp createTime;
@@ -66,6 +66,7 @@ public class CrowdTestProject {
                 '}';
     }
 
+
     /**
      * 更新项目信息
      * @param crowdTestProject
@@ -131,12 +132,6 @@ public class CrowdTestProject {
         return crowdTestProject;
     }
 
-    public void acceptTask(Long agencyManagerId, String crowdTestProjectCode, String crowdTestTaskCode) {
-
-    }
-
-
-
 //    public CrowdTestTask getCrowdTestTaskByTaskId(CrowdTestProject crowdTestProject, Long taskId) throws CrowdTestTaskNotExistException {
 //        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
 //        for (CrowdTestTask crowdTestTask : crowdTestTaskList) {

+ 6 - 5
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProjectStatus.java

@@ -5,9 +5,10 @@ package com.mooctest.crowd.domain.domainobject;
  * @date 2019/7/9 14:21
  */
 public class CrowdTestProjectStatus {
-    public static final String CREATED = "HAS_CREATED";
-    public static final String RELEASED = "HAS_RELEASED";
-    public static final String RECEIVED = "HAS_RECEIVED";
-    public static final String SPLITED = "HAS_SPLITED";
-    public static final String FINISHED = "HAS_FINISHED";
+    public static final int HAS_CREATED = 0;  //创建项目
+    public static final int HAS_RELEASED = 1; //发布项目
+    public static final int HAS_RECEIVED = 2; //接收项目
+    public static final int HAS_SPLITED = 3;  //拆分项目
+    public static final int HAS_COMMITED = 4; //提交项目
+    public static final int HAS_FINISHED = 5; //结束项目
 }

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

@@ -15,12 +15,11 @@ public class CrowdTestReport {
     private String name;
     private String code;
     private String crowdTestTaskCode;
-    private String type;
+    private int type;
     private String testObject;
     private String description;
     private String content;
     private String file;
-    private String status;
     private String conclusion;
     private Timestamp createTime;
 
@@ -36,7 +35,6 @@ public class CrowdTestReport {
                 ", description='" + description + '\'' +
                 ", content='" + content + '\'' +
                 ", file='" + file + '\'' +
-                ", status='" + status + '\'' +
                 ", conclusion='" + conclusion + '\'' +
                 ", createTime=" + createTime +
                 '}';

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

@@ -5,7 +5,7 @@ package com.mooctest.crowd.domain.domainobject;
  * @date 2019/7/9 14:21
  */
 public class CrowdTestReportStatus {
-    public static final String CREATED = "HAS_CREATED";
-    public static final String COMMITED = "HAS_COMMITED";
-    public static final String FINISHED = "HAS_FINISHED";
+    public static final int HAS_CREATED = 0;
+    public static final int HAS_COMMITED = 1;
+    public static final int HAS_FINISHED = 2;
 }

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

@@ -18,15 +18,15 @@ public class CrowdTestTask {
     private String code;
     private String crowdTestProjectCode;
     private Long evaluationAgencyId;
-    private String type;
+    private int type;
     private String description;
     private String requirementFile;
-    private String distributionType;
+    private int distributionType;
     private String distributionProvince;
     private String distributionCity;
     private Double quotedPrice;
     private Double fixedPrice;
-    private String status;
+    private int status;
     private Timestamp deadTime;
     private Timestamp endTime;
     private Timestamp createTime;

+ 5 - 5
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTaskStatus.java

@@ -5,9 +5,9 @@ package com.mooctest.crowd.domain.domainobject;
  * @date 2019/7/9 14:21
  */
 public class CrowdTestTaskStatus {
-    public static final String CREATED = "HAS_CREATED";
-    public static final String RELEASED = "HAS_RELEASED";
-    public static final String RECEIVED = "HAS_RECEIVED";
-    public static final String COMMITED = "HAS_COMMITED";
-    public static final String FINISHED = "HAS_FINISHED";
+    public static int HAS_CREATED = 0;
+    public static int HAS_RELEASED = 1;
+    public static int HAS_RECEIVED = 2;
+    public static int HAS_COMMITED = 3;
+    public static int HAS_FINISHED = 4;
 }

+ 2 - 26
core/src/main/java/com/mooctest/crowd/domain/domainobject/EvaluationAgency.java

@@ -9,7 +9,7 @@ import java.sql.Timestamp;
  * @date 2019/7/12 1:32
  */
 @Data
-public class EvaluationAgency extends User {
+public class EvaluationAgency {
     private Long id;
     private Long userId;
     private String evaluationAgencyName;
@@ -37,29 +37,5 @@ public class EvaluationAgency extends User {
                 '}';
     }
 
-//    @Override
-//    public Long getId() {
-//        return id;
-//    }
-//
-//    @Override
-//    public void setId(Long id) {
-//        this.id = id;
-//    }
-//
-//    public boolean updateCrowdTestTaskStatusByEvaluationAgency(Long projectId, Long taskId, Long evaluationAgencyId, String status) throws CrowdTestProjectNotExistException, CrowdTestTaskNotExistException, CrowdTestTaskNoPriceException {
-//        CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
-//        if (crowdTestProjectRepo.getByID(projectId) != null) {
-//            CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
-//            CrowdTestTask crowdTestTask = crowdTestProject.getCrowdTestTaskByTaskId(crowdTestProject, taskId);
-//            if (crowdTestTask.getQuotedPrice() > 0) {
-//                crowdTestTask.setEvaluationAgencyId(evaluationAgencyId);
-//                crowdTestTask.setStatus(status);
-//                return true;
-//            } else {
-//                throw new CrowdTestTaskNoPriceException();
-//            }
-//        }
-//        throw new CrowdTestProjectNotExistException();
-//    }
+
 }

+ 23 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/Regional.java

@@ -0,0 +1,23 @@
+package com.mooctest.crowd.domain.domainobject;
+
+import lombok.Data;
+
+/**
+ * @author guochao
+ * @date 2019-07-30 10:31
+ */
+@Data
+public class Regional {
+    private Long id;
+    private String province;
+    private String city;
+
+    @Override
+    public String toString() {
+        return "Regional{" +
+                "id=" + id +
+                ", province='" + province + '\'' +
+                ", city='" + city + '\'' +
+                '}';
+    }
+}

+ 83 - 5
core/src/main/java/com/mooctest/crowd/domain/domainobject/RegionalManager.java

@@ -1,5 +1,6 @@
 package com.mooctest.crowd.domain.domainobject;
 
+import com.mooctest.crowd.domain.exception.CrowdTestProjectCannotBeReceive;
 import com.mooctest.crowd.domain.exception.CrowdTestProjectNotExistException;
 import com.mooctest.crowd.domain.exception.CrowdTestTaskNotExistException;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
@@ -13,15 +14,94 @@ import java.util.List;
  * @date 2019/7/9 14:16
  */
 @Data
-public class RegionalManager extends User {
+public class RegionalManager {
     private Long id;
     private Long userId;
-    private String regional;
+//    private Long regionalId;
+
+//    private Regional regional;
+    private List<Regional> regionalList;
+
+    @Override
+    public String toString() {
+        return "RegionalManager{" +
+                "id=" + id +
+                ", userId=" + userId +
+                ", regionalList=" + regionalList +
+                '}';
+    }
+
+
+    /**
+     * 区域管理员接收项目
+     * @param crowdTestProject
+     * @return
+     */
+    public CrowdTestProject receiveProject(CrowdTestProject crowdTestProject) {
+        System.out.println(this);
+        List<Regional> regionalList = this.getRegionalList();
+        if(crowdTestProject.getRegionalManagerId() != null){
+            throw new CrowdTestProjectCannotBeReceive("项目已被接收");
+        }else{
+            boolean couldReceive = false;
+            for(Regional regional : regionalList){
+                if(crowdTestProject.getDistributionProvince().equals(regional.getProvince())&&crowdTestProject.getDistributionCity().equals(regional.getCity())){
+                    couldReceive = true;
+                }
+            }
+            if(!couldReceive){
+                throw new CrowdTestProjectCannotBeReceive("项目区域不符合区域管理员的要求");
+            }else{
+                crowdTestProject.setRegionalManagerId(this.getUserId());
+                crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_RECEIVED);
+            }
+        }
+        return crowdTestProject;
+    }
+
+    /**
+     * 创建测试任务
+     * @param crowdTestTask
+     * @return
+     */
+    public CrowdTestProject createCrowdTestTask(CrowdTestProject crowdTestProject, CrowdTestTask crowdTestTask) {
+        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+
+        //修改项目状态
+        if(CrowdTestProjectStatus.HAS_SPLITED != crowdTestProject.getStatus()){
+            crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_SPLITED);
+        }
+
+        crowdTestTask.setStatus(CrowdTestProjectStatus.HAS_CREATED);
+        crowdTestTask.setDistributionProvince(crowdTestProject.getDistributionProvince());
+        crowdTestTask.setDistributionCity(crowdTestProject.getDistributionCity());
+
+        //添加测试任务
+        crowdTestTaskList.add(crowdTestTask);
+        crowdTestProject.setCrowdTestTaskList(crowdTestTaskList);
+        return crowdTestProject;
+    }
+
+
+    public CrowdTestProject releaseCrowdTestTask(CrowdTestProject crowdTestProject, String crowdTestTaskCode) {
+        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+        //发布任务时修改任务状态
+        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+            if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
+                crowdTestTask.setStatus(CrowdTestProjectStatus.HAS_RELEASED);
+            }
+            crowdTestTaskListResult.add(crowdTestTask);
+        }
+
+        crowdTestProject.setCrowdTestTaskList(crowdTestTaskListResult);
+        return crowdTestProject;
+    }
 
     public List<CrowdTestTask> splitCrowdTestProjectToCrowdTestTaskList(Long projectId) throws CrowdTestProjectNotExistException {
         CrowdTestProjectRepo crowdTestProjectRepo = new CrowdTestProjectRepo();
         CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByID(projectId);
-        crowdTestProject.setStatus(CrowdTestProjectStatus.SPLITED);
+        crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_SPLITED);
         List<CrowdTestTask> crowdTestTaskList = new ArrayList<CrowdTestTask>();
         crowdTestProject.setCrowdTestTaskList(crowdTestTaskList);
         return crowdTestTaskList;
@@ -46,6 +126,4 @@ public class RegionalManager extends User {
         }
         throw new CrowdTestProjectNotExistException();
     }
-
-
 }

+ 182 - 50
core/src/main/java/com/mooctest/crowd/domain/domainobject/User.java

@@ -1,8 +1,10 @@
 package com.mooctest.crowd.domain.domainobject;
 
+import com.mooctest.crowd.domain.exception.CrowdTestTaskException;
 import lombok.Data;
 
 import java.sql.Timestamp;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -24,66 +26,196 @@ public class User {
     private int isDeleted;
     private Timestamp createTime;
 
+    private EvaluationAgency evaluationAgency;
+//    private List<RegionalManager> regionalManagerInfo;
+
+    private RegionalManager regionalManager;
     private List<Role> roleList;
 
-//    @Autowired
-//    private CrowdTestProjectRepo crowdTestProjectRepo;
-//
-//    public List<CrowdTestProject> getCrowdTestProjectByUserId(Long userId){
-//        List<CrowdTestProject> crowdTestProjectList = crowdTestProjectRepo.getCrowdListByUserId(userId);
-//        return crowdTestProjectList;
-//    }
+    @Override
+    public String toString() {
+        return "User{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", userName='" + userName + '\'' +
+                ", password='" + password + '\'' +
+                ", gender='" + gender + '\'' +
+                ", mobile='" + mobile + '\'' +
+                ", province='" + province + '\'' +
+                ", city='" + city + '\'' +
+                ", photoUrl='" + photoUrl + '\'' +
+                ", isAvailable=" + isAvailable +
+                ", isDeleted=" + isDeleted +
+                ", createTime=" + createTime +
+                ", evaluationAgency=" + evaluationAgency +
+                ", regionalManager=" + regionalManager +
+                ", roleList=" + roleList +
+                '}';
+    }
 
+    /**
+     * 创建测试项目(普通用户)
+     * @param crowdTestProject
+     * @return
+     */
+    public CrowdTestProject createCrowdTestProject(CrowdTestProject crowdTestProject) {
+        crowdTestProject.setUserId(this.getId());
+        crowdTestProject.setDistributionProvince(this.getProvince());
+        crowdTestProject.setDistributionCity(this.getCity());
+        crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_CREATED);
+        return crowdTestProject;
+    }
 
-//    @Autowired
-//    private UserRepo userRepo = new UserRepo();
-//
-//    @Autowired
-//    private RoleDao roleDao;
-//
-//    @Autowired
-//    private UserToRoleDao userToRoleDao;
-//
-//    private DefaultFeatureConfiguration defaultFeatureConfiguration = new DefaultFeatureConfiguration();
-//
-//    public UserToRole setDefaultRole(Long userId) {
-//        System.out.print(defaultFeatureConfiguration.getRole());
-//        RolePO rolePO = roleDao.findByName(defaultFeatureConfiguration.getRole());
-//        UserToRole userToRole = new UserToRole();
-//        userToRole.setUserId(userId);
-//        userToRole.setRoleId(rolePO.getId());
-//        userToRole.setCreateTime(new Timestamp(System.currentTimeMillis()));
-//        userToRoleDao.save(userToRole);
-//        return userToRole;
-//    }
-//
-//    public boolean login(String mobileNum,String password) throws PasswordErrorException, UserNotExistException {
+
+    /**
+     * 发布项目(普通用户)
+     * @param crowdTestProject
+     * @return
+     */
+    public CrowdTestProject releaseCrowdTestProject(CrowdTestProject crowdTestProject) {
+        crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_RELEASED);
+        return crowdTestProject;
+    }
+
+    /**
+     * 接收任务(测评机构)
+     * @param crowdTestProject
+     * @param crowdTestTaskCode  add judge
+     * @return
+     */
+    public CrowdTestProject receiveTask(CrowdTestProject crowdTestProject, String crowdTestTaskCode) {
+
+        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+            if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
+                if(CrowdTestTaskStatus.HAS_RECEIVED == crowdTestTask.getStatus()){
+                    throw new CrowdTestTaskException("任务已被其他机构接收,不能再次接收");
+                }else if(!(this.getProvince().equals(crowdTestTask.getDistributionProvince())&&this.getCity().equals(crowdTestTask.getDistributionCity()))){
+                    throw new CrowdTestTaskException("测评机构区域不符合任务区域的要求");
+                }else{
+                    crowdTestTask.setEvaluationAgencyId(this.getId());
+                    crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RECEIVED);
+                }
+            }
+            crowdTestTaskListResult.add(crowdTestTask);
+        }
+        crowdTestProject.setCrowdTestTaskList(crowdTestTaskList);
+        return crowdTestProject;
+
+    }
+
+    /**
+     * 创建测试报告(测评机构)
+     * @param crowdTestTaskCode
+     * @param crowdTestReport
+     * @return
+     */
+    public CrowdTestProject createCrowdTestReport(CrowdTestProject crowdTestProject,String crowdTestTaskCode, CrowdTestReport crowdTestReport) {
+        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+            if(crowdTestTask.getCode().equals(crowdTestTaskCode)){
+                List<CrowdTestReport> crowdTestReportList = crowdTestTask.getCrowdTestReportList();
+                crowdTestReportList.add(crowdTestReport);
+                crowdTestTask.setCrowdTestReportList(crowdTestReportList);
+            }
+            crowdTestTaskListResult.add(crowdTestTask);
+        }
+        crowdTestProject.setCrowdTestTaskList(crowdTestTaskListResult);
+        return crowdTestProject;
+    }
+
+//    /**
+//     * 提交测试报告(测评机构)
+//     * @param crowdTestProject
+//     * @param crowdTestTaskCode
+//     * @param crowdTestReportCode
+//     * @return
+//     */
+//    public CrowdTestProject commitCrowdTestReport(CrowdTestProject crowdTestProject, String crowdTestTaskCode, String crowdTestReportCode) {
+//        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+//        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+//        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+//            if(crowdTestTask.getCode().equals(crowdTestTaskCode)){
+//                List<CrowdTestReport> crowdTestReportList = crowdTestTask.getCrowdTestReportList();
+//                List<CrowdTestReport> crowdTestReportListResult = new ArrayList<>();
+//                for(CrowdTestReport crowdTestReport : crowdTestReportList){
+//                    if(crowdTestReportCode.equals(crowdTestReport.getCode())){
+//                        if(CrowdTestReportStatus.COMMITED.equals(crowdTestReport.getStatus())){
+//                            throw new CrowdTestReportException("报告已被提交,不能再次提交");
+//                        }else if(CrowdTestReportStatus.CREATED.equals(crowdTestReport.getStatus())){
+//                            crowdTestReport.setStatus(CrowdTestReportStatus.COMMITED);
+//                            crowdTestReportListResult.add(crowdTestReport);
+//                        }else{
+//                            throw new CrowdTestReportException("报告状态有误");
+//                        }
+//                    }
+//                }
 //
-//        User user = userRepo.getByMobileNum(mobileNum);
-//        if(user!=null){
-//            if (user.getPassword().equals(EncryptionUtil.encryptMD5(password))) {
-//                return true;
-//            }
-//            else {
-//                throw new PasswordErrorException();
+//                crowdTestTask.setCrowdTestReportList(crowdTestReportListResult);
 //            }
+//            crowdTestTaskListResult.add(crowdTestTask);
 //        }
-//        else{
-//            throw new UserNotExistException();
-//        }
-//
+//        crowdTestProject.setCrowdTestTaskList(crowdTestTaskListResult);
+//        return crowdTestProject;
 //    }
 //
-//    public User modifyPassword(String mobileNum,String password,String oldPassword) throws PasswordErrorException, UserNotExistException {
+//    /**
+//     * 提交所有测试报告(测评机构)
+//     * @param crowdTestProject
+//     * @param crowdTestTaskCode
+//     * @return
+//     */
+//    public CrowdTestProject commitAllCrowdTestReport(CrowdTestProject crowdTestProject, String crowdTestTaskCode) {
+//        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+//        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+//        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+//            if(crowdTestTask.getCode().equals(crowdTestTaskCode)){
+//                List<CrowdTestReport> crowdTestReportList = crowdTestTask.getCrowdTestReportList();
+//                List<CrowdTestReport> crowdTestReportListResult = new ArrayList<>();
+//                for(CrowdTestReport crowdTestReport : crowdTestReportList){
+//                    if(CrowdTestReportStatus.COMMITED.equals(crowdTestReport.getStatus())){
+//                        throw new CrowdTestReportException("报告已被提交,不能再次提交");
+//                    }else if(CrowdTestReportStatus.CREATED.equals(crowdTestReport.getStatus())){
+//                        crowdTestReport.setStatus(CrowdTestReportStatus.COMMITED);
+//                        crowdTestReportListResult.add(crowdTestReport);
+//                    }else{
+//                        throw new CrowdTestReportException("报告状态有误");
+//                    }
+//                }
 //
-//        User user = userRepo.getByMobileNum(mobileNum);
-//        if (user.getPassword().equals(EncryptionUtil.encryptMD5(oldPassword))) {
-//            user.setPassword(password);
-//            User updateUser = userRepo.updateUser(user);
-//            return updateUser;
-//        }
-//        else {
-//            throw new PasswordErrorException();
+//                crowdTestTask.setCrowdTestReportList(crowdTestReportListResult);
+//            }
+//            crowdTestTaskListResult.add(crowdTestTask);
 //        }
+//        crowdTestProject.setCrowdTestTaskList(crowdTestTaskListResult);
+//        return crowdTestProject;
 //    }
+
+    /**
+     * 提交测试任务
+     * @param crowdTestProject
+     * @param crowdTestTaskCode
+     * @return
+     */
+    public CrowdTestProject commitCrowdTestTask(CrowdTestProject crowdTestProject, String crowdTestTaskCode) {
+        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+            if(crowdTestTask.getCode().equals(crowdTestTaskCode)){
+                if(CrowdTestTaskStatus.HAS_COMMITED == crowdTestTask.getStatus()){
+                    throw new CrowdTestTaskException("任务已被提交,不能再次提交");
+                }else if(CrowdTestTaskStatus.HAS_RECEIVED == crowdTestTask.getStatus()){
+                    crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_COMMITED);
+                }else{
+                    throw new CrowdTestTaskException("任务状态有误,无法提交,任务状态为:"+crowdTestTask.getStatus());
+                }
+            }
+            crowdTestTaskListResult.add(crowdTestTask);
+        }
+        crowdTestProject.setCrowdTestTaskList(crowdTestTaskListResult);
+        return crowdTestProject;
+    }
+
 }

+ 0 - 2
core/src/main/java/com/mooctest/crowd/domain/domainservice/RegisterDService.java

@@ -28,8 +28,6 @@ public class RegisterDService {
         user.setIsAvailable(1);
         user.setIsDeleted(0);
         user.setCreateTime(new Timestamp(System.currentTimeMillis()));
-//        System.out.println(defaultFeatureConfiguration.getRole());
-//        role.setName(defaultFeatureConfiguration.getRole());
         List<Role> roleList = new ArrayList<Role>();
         Role role = new Role();
         role.setName("generalUser");

+ 11 - 0
core/src/main/java/com/mooctest/crowd/domain/exception/CrowdTestProjectCannotBeReceive.java

@@ -0,0 +1,11 @@
+package com.mooctest.crowd.domain.exception;
+
+/**
+ * @author guochao
+ * @date 2019-07-30 15:04
+ */
+public class CrowdTestProjectCannotBeReceive extends BaseException {
+    public CrowdTestProjectCannotBeReceive(String msg){
+        super(msg);
+    }
+}

+ 11 - 0
core/src/main/java/com/mooctest/crowd/domain/exception/CrowdTestReportException.java

@@ -0,0 +1,11 @@
+package com.mooctest.crowd.domain.exception;
+
+/**
+ * @author guochao
+ * @date 2019-07-30 17:24
+ */
+public class CrowdTestReportException extends BaseException {
+    public CrowdTestReportException(String msg) {
+        super(msg);
+    }
+}

+ 11 - 0
core/src/main/java/com/mooctest/crowd/domain/exception/CrowdTestTaskException.java

@@ -0,0 +1,11 @@
+package com.mooctest.crowd.domain.exception;
+
+/**
+ * @author guochao
+ * @date 2019-07-30 16:25
+ */
+public class CrowdTestTaskException extends BaseException {
+    public CrowdTestTaskException(String msg){
+        super(msg);
+    }
+}

+ 8 - 0
core/src/main/java/com/mooctest/crowd/domain/exception/EvaluationAgencyNotExistException.java

@@ -0,0 +1,8 @@
+package com.mooctest.crowd.domain.exception;
+
+/**
+ * @author guochao
+ * @date 2019-07-30 09:15
+ */
+public class EvaluationAgencyNotExistException extends BaseException {
+}

+ 30 - 22
core/src/main/java/com/mooctest/crowd/domain/model/CrowdTestProjectPO.java

@@ -37,26 +37,8 @@ public class CrowdTestProjectPO {
     @Column(name = "CTP_DESCRIPTION")
     private String description;
 
-    @Column(name = "CTP_PROJECT_FILE")
-    private String projectFile;
-
-    @Column(name = "CTP_REQUIREMENT_FILE")
-    private String requirementFile;
-
-    @Column(name = "CTP_QUOTED_PRICE")
-    private Double quotedPrice;
-
-    @Column(name = "CTP_FIXED_PRICE")
-    private Double fixedPrice;
-
-    @Column(name = "CTP_STATUS")
-    private String status;
-
-    @Column(name = "CTP_CREATE_TIME")
-    private Timestamp createTime;
-
     @Column(name = "CTP_PLATFORM")
-    private String platform;
+    private int platform;
 
     @Column(name = "CTP_LINK_MAN")
     private String linkMan;
@@ -65,7 +47,7 @@ public class CrowdTestProjectPO {
     private String linkManMobile;
 
     @Column(name = "CTP_TYPE")
-    private String type;
+    private int type;
 
     @Column(name = "CTP_DISTRIBUTION_PROVINCE")
     private String distributionProvince;
@@ -73,27 +55,53 @@ public class CrowdTestProjectPO {
     @Column(name = "CTP_DISTRIBUTION_CITY")
     private String distributionCity;
 
+    @Column(name = "CTP_PROJECT_FILE")
+    private String projectFile;
+
+    @Column(name = "CTP_REQUIREMENT_FILE")
+    private String requirementFile;
+
+    @Column(name = "CTP_QUOTED_PRICE")
+    private Double quotedPrice;
+
+    @Column(name = "CTP_FIXED_PRICE")
+    private Double fixedPrice;
+
+    @Column(name = "CTP_STATUS")
+    private int status;
+
     @Column(name = "CTP_DEAD_LINE")
     private Timestamp deadTime;
 
     @Column(name = "CTP_END_TIME")
     private Timestamp endTime;
 
+    @Column(name = "CTP_CREATE_TIME")
+    private Timestamp createTime;
 
     @Override
     public String toString() {
-        return "CrowdTestProject{" +
+        return "CrowdTestProjectPO{" +
                 "id=" + id +
+                ", code='" + code + '\'' +
                 ", name='" + name + '\'' +
                 ", userId=" + userId +
                 ", regionalManagerId=" + regionalManagerId +
                 ", projectDistributionTypeId=" + projectDistributionTypeId +
                 ", description='" + description + '\'' +
+                ", platform=" + platform +
+                ", linkMan='" + linkMan + '\'' +
+                ", linkManMobile='" + linkManMobile + '\'' +
+                ", type=" + type +
+                ", distributionProvince='" + distributionProvince + '\'' +
+                ", distributionCity='" + distributionCity + '\'' +
                 ", projectFile='" + projectFile + '\'' +
                 ", requirementFile='" + requirementFile + '\'' +
                 ", quotedPrice=" + quotedPrice +
                 ", fixedPrice=" + fixedPrice +
-                ", status='" + status + '\'' +
+                ", status=" + status +
+                ", deadTime=" + deadTime +
+                ", endTime=" + endTime +
                 ", createTime=" + createTime +
                 '}';
     }

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

@@ -29,7 +29,7 @@ public class CrowdTestReportPO {
     private String crowdTestTaskCode;
 
     @Column(name = "CTR_TYPE")
-    private String type;
+    private int type;
 
     @Column(name = "CTR_DESCRIPTION")
     private String description;
@@ -37,9 +37,6 @@ public class CrowdTestReportPO {
     @Column(name = "CTR_CONTENT")
     private String content;
 
-    @Column(name = "CTR_STATUS")
-    private String status;
-
     @Column(name = "CTR_CREATE_TIME")
     private Timestamp createTime;
 
@@ -57,12 +54,15 @@ public class CrowdTestReportPO {
         return "CrowdTestReportPO{" +
                 "id=" + id +
                 ", name='" + name + '\'' +
-                ", crowdTestTaskCode=" + crowdTestTaskCode +
-                ", type='" + type + '\'' +
+                ", code='" + code + '\'' +
+                ", crowdTestTaskCode='" + crowdTestTaskCode + '\'' +
+                ", type=" + type +
                 ", description='" + description + '\'' +
                 ", content='" + content + '\'' +
-                ", status='" + status + '\'' +
                 ", createTime=" + createTime +
+                ", testObject='" + testObject + '\'' +
+                ", conclusion='" + conclusion + '\'' +
+                ", file='" + file + '\'' +
                 '}';
     }
 }

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

@@ -31,7 +31,7 @@ CrowdTestTaskPO {
     private Long evaluationAgencyId;
 
     @Column(name = "CTT_TYPE")
-    private String type;
+    private int type;
 
     @Column(name = "CTT_DESCRIPTION")
     private String description;
@@ -39,20 +39,8 @@ CrowdTestTaskPO {
     @Column(name = "CTT_REQUIREMENT_FILE")
     private String requirementFile;
 
-    @Column(name = "CTT_QUOTED_PRICE")
-    private Double quotedPrice;
-
-    @Column(name = "CTT_FIXED_PRICE")
-    private Double fixedPrice;
-
-    @Column(name = "CTT_STATUS")
-    private String status;
-
-    @Column(name = "CTT_CREATE_TIME")
-    private Timestamp createTime;
-
     @Column(name = "CTT_DISTRIBUTION_TYPE")
-    private String distributionType;
+    private int distributionType;
 
     @Column(name = "CTT_DISTRIBUTION_PROVINCE")
     private String distributionProvince;
@@ -60,25 +48,43 @@ CrowdTestTaskPO {
     @Column(name = "CTT_DISTRIBUTION_CITY")
     private String distributionCity;
 
+    @Column(name = "CTT_QUOTED_PRICE")
+    private Double quotedPrice;
+
+    @Column(name = "CTT_FIXED_PRICE")
+    private Double fixedPrice;
+
+    @Column(name = "CTT_STATUS")
+    private int status;
+
     @Column(name = "CTT_DEAD_LINE")
     private Timestamp deadTime;
 
     @Column(name = "CTT_END_TIME")
     private Timestamp endTime;
 
+    @Column(name = "CTT_CREATE_TIME")
+    private Timestamp createTime;
+
     @Override
     public String toString() {
         return "CrowdTestTaskPO{" +
                 "id=" + id +
+                ", code='" + code + '\'' +
                 ", name='" + name + '\'' +
-                ", crowdTestProjectCode=" + crowdTestProjectCode +
+                ", crowdTestProjectCode='" + crowdTestProjectCode + '\'' +
                 ", evaluationAgencyId=" + evaluationAgencyId +
-                ", type='" + type + '\'' +
+                ", type=" + type +
                 ", description='" + description + '\'' +
                 ", requirementFile='" + requirementFile + '\'' +
+                ", distributionType=" + distributionType +
+                ", distributionProvince='" + distributionProvince + '\'' +
+                ", distributionCity='" + distributionCity + '\'' +
                 ", quotedPrice=" + quotedPrice +
                 ", fixedPrice=" + fixedPrice +
-                ", status='" + status + '\'' +
+                ", status=" + status +
+                ", deadTime=" + deadTime +
+                ", endTime=" + endTime +
                 ", createTime=" + createTime +
                 '}';
     }

+ 23 - 2
core/src/main/java/com/mooctest/crowd/domain/model/RegionalManagerPO.java

@@ -2,13 +2,34 @@ package com.mooctest.crowd.domain.model;
 
 import lombok.Data;
 
+import javax.persistence.*;
+
 /**
  * @author guochao
  * @date 2019/7/9 14:16
  */
 @Data
-public class RegionalManagerPO extends UserPO {
+@Entity
+@Table(name = "regional_manager_to_regional")
+public class RegionalManagerPO {
+
+    @Id
+    @Column(name = "RM_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
+
+    @Column(name = "RM_U_ID")
     private Long userId;
-    private String regional;
+
+    @Column(name = "RM_RL_ID")
+    private Long regionalId;
+
+    @Override
+    public String toString() {
+        return "RegionalManagerPO{" +
+                "id=" + id +
+                ", userId=" + userId +
+                ", regionalId='" + regionalId + '\'' +
+                '}';
+    }
 }

+ 34 - 0
core/src/main/java/com/mooctest/crowd/domain/model/RegionalPO.java

@@ -0,0 +1,34 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+/**
+ * @author guochao
+ * @date 2019-07-30 10:31
+ */
+@Data
+@Entity
+@Table(name = "regional")
+public class RegionalPO {
+    @Id
+    @Column(name = "RL_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "RL_PROVINCE")
+    private String province;
+
+    @Column(name = "RL_CITY")
+    private String city;
+
+    @Override
+    public String toString() {
+        return "Regional{" +
+                "id=" + id +
+                ", province='" + province + '\'' +
+                ", city='" + city + '\'' +
+                '}';
+    }
+}

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

@@ -54,4 +54,5 @@ public class UserPO {
 
     @Column(name = "U_CREATE_TIME")
     private Timestamp createTime;
+
 }

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

@@ -78,7 +78,6 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
         return getCrowdTestProjects(crowdTestProjectPOList);
     }
 
-
     @Override
     public void saveCrowdTestProject(CrowdTestProject crowdTestProject) {
         CrowdTestProjectPO crowdTestProjectPO = Converter.convert(CrowdTestProjectPO.class, crowdTestProject);

+ 2 - 0
core/src/main/java/com/mooctest/crowd/domain/repository/IUserRepo.java

@@ -20,6 +20,8 @@ public interface IUserRepo {
 
     List<User> getAllUser() throws RoleNotFoundException;
 
+//    User getByEvaluationAgencyByUserId(Long userId) throws UserNotExistException, com.mooctest.crowd.domain.exception.RoleNotFoundException;
+
     void removeUser(User user);
 
     void removeUserList(List<User> userList);

+ 159 - 58
core/src/main/java/com/mooctest/crowd/domain/repository/UserRepo.java

@@ -2,9 +2,7 @@ package com.mooctest.crowd.domain.repository;
 
 import com.google.common.collect.Lists;
 import com.mooctest.crowd.domain.dao.*;
-import com.mooctest.crowd.domain.domainobject.Permission;
-import com.mooctest.crowd.domain.domainobject.Role;
-import com.mooctest.crowd.domain.domainobject.User;
+import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.PermissionNotFoundException;
 import com.mooctest.crowd.domain.exception.RoleNotFoundException;
 import com.mooctest.crowd.domain.exception.UserNotExistException;
@@ -41,6 +39,15 @@ public class UserRepo implements IUserRepo {
     @Autowired
     private RoleToPermissionDao roleToPermissionDao;
 
+    @Autowired
+    private EvaluationAgencyDao evaluationAgencyDao;
+
+    @Autowired
+    private RegionalManagerDao regionalManagerDao;
+
+    @Autowired
+    private RegionalDao regionalDao;
+
     private Timestamp currentTime = new Timestamp(System.currentTimeMillis());
 
     @Override
@@ -66,41 +73,6 @@ public class UserRepo implements IUserRepo {
     }
 
     @Override
-    public User saveUserAndRole(User user) {
-        UserPO userPO = userDao.save(Converter.convert(UserPO.class, user));
-        User saveResultUser = Converter.convert(User.class, userPO);
-        List<Role> roleList = user.getRoleList();
-
-        // 存储从数据库中取出的User的Role数据
-        List<Role> roleListResult = new ArrayList<>();
-
-        System.out.println(roleList);
-        for(Role role : roleList){
-            RolePO rolePO = roleDao.findByName(role.getName());
-            Role roleConvert = Converter.convert(Role.class, rolePO);
-
-            UserToRolePO userToRolePO = new UserToRolePO();
-            userToRolePO.setRoleId(roleConvert.getId());
-            userToRolePO.setUserId(saveResultUser.getId());
-            userToRolePO.setCreateTime(currentTime);
-            userToRoleDao.save(userToRolePO);
-
-            Role roleResult = getPermissionByRole(roleConvert);
-            roleListResult.add(roleResult);
-        }
-        saveResultUser.setRoleList(roleListResult);
-        return saveResultUser;
-    }
-
-    @Override
-    public User saveUser(User user) throws RoleNotFoundException {
-        UserPO userPO = userDao.save(Converter.convert(UserPO.class, user));
-        User userAndRoleByUserPO = getUserAndRoleAndPermissionByUserPO(userPO);
-        System.out.println(userAndRoleByUserPO);
-        return userAndRoleByUserPO;
-    }
-
-    @Override
     public List<User> getByIdList(List<Long> ids) throws RoleNotFoundException {
         Iterable<UserPO> allUserPOById = userDao.findAllById(ids);
         ArrayList<UserPO> userPOArrayList = Lists.newArrayList(allUserPOById);
@@ -116,6 +88,28 @@ public class UserRepo implements IUserRepo {
         return userListByIds;
     }
 
+
+    //add
+//    @Override
+//    public User getByEvaluationAgencyByUserId(Long userId) throws UserNotExistException, RoleNotFoundException {
+//
+//        EvaluationAgencyPO evaluationAgencyPO = evaluationAgencyDao.findByUserId(userId);
+//        if(evaluationAgencyPO == null){
+//            throw new EvaluationAgencyNotExistException();
+//        }else{
+//            Optional<UserPO> userPOOptional = userDao.findById(userId);
+//            if (!userPOOptional.isPresent()) {
+//                throw new UserNotExistException();
+//            }else {
+//                UserPO userPO = userPOOptional.get();
+//                User user = getUserAndRoleAndPermissionByUserPO(userPO);
+//                user.setEvaluationAgency(evaluationAgencyResult);
+//                return user;
+//            }
+//        }
+//
+//    }
+
     @Override
     public void removeUser(User user) {
         UserPO userPO = Converter.convert(UserPO.class, user);
@@ -129,34 +123,77 @@ public class UserRepo implements IUserRepo {
             UserPO userPO = Converter.convert(UserPO.class, user);
             userPOList.add(userPO);
         }
-        System.out.println(userPOList.toString());
         userDao.deleteAll(userPOList);
     }
 
+    /**
+     * 注册用户时默认为普通用户,分配角色后存入数据库
+     * @param user
+     * @return
+     */
+    @Override
+    public User saveUserAndRole(User user) {
+        UserPO userPO = userDao.save(Converter.convert(UserPO.class, user));
+        User saveResultUser = Converter.convert(User.class, userPO);
+        List<Role> roleList = user.getRoleList();
+
+        // 存储从数据库中取出的User的Role数据
+        List<Role> roleListResult = new ArrayList<>();
+
+        for(Role role : roleList){
+            RolePO rolePO = roleDao.findByName(role.getName());
+            Role roleConvert = Converter.convert(Role.class, rolePO);
+
+            UserToRolePO userToRolePO = new UserToRolePO();
+            userToRolePO.setRoleId(roleConvert.getId());
+            userToRolePO.setUserId(saveResultUser.getId());
+            userToRolePO.setCreateTime(currentTime);
+            userToRoleDao.save(userToRolePO);
+
+            Role roleResult = getPermissionByRole(roleConvert);
+            roleListResult.add(roleResult);
+        }
+        saveResultUser.setRoleList(roleListResult);
+        return saveResultUser;
+    }
+
+    /**
+     * 保存用户相关的所有信息(包括测评机构信息、角色信息、权限信息)
+     * @param user
+     * @return
+     * @throws RoleNotFoundException
+     */
+    @Override
+    public User saveUser(User user) throws RoleNotFoundException {
+        User userAndRoleByUser = saveRoleAndPermissionAndEvaluationAgencyByUser(user);
+        return userAndRoleByUser;
+    }
+
 
     /**
-     * 通过用户信息获取用户-角色-权限信息
-     * @param userPO
+     *保存用户信息(包括测评机构信息、角色信息、权限信息)
+     * @param user
      * @return
      * @throws RoleNotFoundException
      */
-    private User getUserAndRoleAndPermissionByUserPO(UserPO userPO) throws RoleNotFoundException {
-        User userResult = Converter.convert(User.class, userPO);
-        List<UserToRolePO> userToRolePOList = userToRoleDao.findByUserId(userResult.getId());
-        List<Role> roleResultList = new ArrayList<>();
-        for (UserToRolePO userToRolePO : userToRolePOList) {
-            Optional<RolePO> rolePOOptional = roleDao.findById(userToRolePO.getRoleId());
-            if(rolePOOptional.isPresent()){
-                RolePO rolePO = rolePOOptional.get();
-                // 权限
-                Role roleResult = getPermissionByRole(Converter.convert(Role.class, rolePO));
-                roleResultList.add(roleResult);
-            }else{
-                throw new RoleNotFoundException();
+    private User saveRoleAndPermissionAndEvaluationAgencyByUser(User user) throws RoleNotFoundException {
+        userDao.save(Converter.convert(UserPO.class, user));
+        List<Role> roleList = user.getRoleList();
+        for(Role role : roleList){
+            RolePO rolePO = Converter.convert(RolePO.class, role);
+            roleDao.save(rolePO);
+            List<Permission> permissionList = role.getPermissionList();
+            for(Permission permission : permissionList){
+                PermissionPO permissionPO = Converter.convert(PermissionPO.class, permission);
+                permissionDao.save(permissionPO);
             }
         }
-        userResult.setRoleList(roleResultList);
-        return userResult;
+        EvaluationAgency evaluationAgency = user.getEvaluationAgency();
+        if(evaluationAgency != null){
+            EvaluationAgencyPO evaluationAgencyPO = Converter.convert(EvaluationAgencyPO.class, evaluationAgency);
+            evaluationAgencyDao.save(evaluationAgencyPO);
+        }
+        return user;
     }
 
     /**
@@ -180,8 +217,13 @@ public class UserRepo implements IUserRepo {
         roleResult.setPermissionList(permissionResultList);
         return roleResult;
     }
-    
-    /*通过UsePOList获取用户-角色-权限信息*/
+
+    /**
+     * 通过UsePOList获取用户-角色-权限信息
+     * @param userPOList
+     * @return
+     * @throws RoleNotFoundException
+     */
     private List<User> getUserAndRoleAndPermissionListByUserPOList(List<UserPO> userPOList) throws RoleNotFoundException {
         List<User> userList = new ArrayList<>();
         for(UserPO userPO : userPOList){
@@ -190,4 +232,63 @@ public class UserRepo implements IUserRepo {
         }
         return userList;
     }
+
+    /**
+     * 通过用户信息获取用户-角色-权限信息
+     * @param userPO
+     * @return
+     * @throws RoleNotFoundException
+     */
+    private User getUserAndRoleAndPermissionByUserPO(UserPO userPO) throws RoleNotFoundException {
+        User userResult = Converter.convert(User.class, userPO);
+        List<UserToRolePO> userToRolePOList = userToRoleDao.findByUserId(userResult.getId());
+        List<Role> roleResultList = new ArrayList<>();
+        for (UserToRolePO userToRolePO : userToRolePOList) {
+            Optional<RolePO> rolePOOptional = roleDao.findById(userToRolePO.getRoleId());
+            if(rolePOOptional.isPresent()){
+                RolePO rolePO = rolePOOptional.get();
+                // 权限
+                Role roleResult = getPermissionByRole(Converter.convert(Role.class, rolePO));
+                roleResultList.add(roleResult);
+            }else{
+                throw new RoleNotFoundException();
+            }
+        }
+        userResult.setRoleList(roleResultList);
+
+        /*获取测评机构信息*/
+        EvaluationAgencyPO evaluationAgencyPO = evaluationAgencyDao.findByUserId(userPO.getId());
+        if(evaluationAgencyPO != null){
+            EvaluationAgency evaluationAgencyResult = Converter.convert(EvaluationAgency.class, evaluationAgencyPO);
+            userResult.setEvaluationAgency(evaluationAgencyResult);
+        }
+
+        /*获取区域管理员信息*/
+        List<RegionalManagerPO> regionalManagerPOList = regionalManagerDao.findByUserId(userPO.getId());
+//        List<RegionalManager> regionalManagerListResult = new ArrayList<>();
+        List<Regional> regionalList = new ArrayList<>();
+        RegionalManager regionalManager = new RegionalManager();
+        regionalManager.setUserId(userPO.getId());
+        for(RegionalManagerPO regionalManagerPO : regionalManagerPOList){
+
+            if(regionalManagerPO != null){
+                /*获取区域管理员管理的区域信息*/
+                RegionalManager regionalManagerResult = Converter.convert(RegionalManager.class, regionalManagerPO);
+                Optional<RegionalPO> regionalPOOptional = regionalDao.findById(regionalManagerPO.getRegionalId());
+                if(regionalPOOptional.isPresent()){
+                    RegionalPO regionalPO = regionalPOOptional.get();
+                    Regional regionalResult = Converter.convert(Regional.class, regionalPO);
+                    regionalList.add(regionalResult);
+//                    regionalManagerResult.setRegional(regionalResult);
+                }
+//                regionalManagerListResult.add(regionalManagerResult);
+            }
+
+        }
+
+        regionalManager.setRegionalList(regionalList);
+//        userResult.setRegionalManagerInfo(regionalManagerListResult);
+        userResult.setRegionalManager(regionalManager);
+        return userResult;
+    }
 }

+ 9 - 1
core/src/main/resources/application.yml

@@ -3,13 +3,21 @@ spring:
     guava:
       spec: expireAfterWrite=30s
   datasource:
+#    type: com.alibaba.druid.pool.DruidDataSource
+#    druid:
+#      initial-size: 5
+#      max-active: 20
     driver-class-name: com.mysql.jdbc.Driver
     url: jdbc:mysql://101.37.175.111:3306/crowd-test-service?useSSL=false&useUnicode=yes&characterEncoding=UTF-8
     username: mooctest
     password: secr3t!
-    # Keep the connection alive if idle for a long time (needed in production)
+    initialPoolSize: 5
+      # Keep the connection alive if idle for a long time (needed in production)
     testWhileIdle: true
     validationQuery: SELECT 1
+
+    minPoolSize: 5
+    maxPoolSize: 1000
   # Show or not log for each sql query
   jpa:
     show-sql: true

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels