Browse Source

add: 技术文章

weihanyu 5 years ago
parent
commit
247083cc16
57 changed files with 995 additions and 32 deletions
  1. 18 0
      core/src/main/java/com/mooctest/crowd/domain/dao/ApplicationTypeDao.java
  2. 18 0
      core/src/main/java/com/mooctest/crowd/domain/dao/ApplicationTypeToTestTypeDao.java
  3. 19 0
      core/src/main/java/com/mooctest/crowd/domain/dao/CompetitionDao.java
  4. 1 0
      core/src/main/java/com/mooctest/crowd/domain/dao/CrowdTestProjectDao.java
  5. 18 0
      core/src/main/java/com/mooctest/crowd/domain/dao/FieldDao.java
  6. 18 0
      core/src/main/java/com/mooctest/crowd/domain/dao/PartnerDao.java
  7. 18 0
      core/src/main/java/com/mooctest/crowd/domain/dao/ResidentAgencyDao.java
  8. 19 0
      core/src/main/java/com/mooctest/crowd/domain/dao/ResourceDao.java
  9. 18 0
      core/src/main/java/com/mooctest/crowd/domain/dao/TestTypeDao.java
  10. 17 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/ApplicationType.java
  11. 16 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/ApplicationTypeToTestType.java
  12. 18 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/Competition.java
  13. 1 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProject.java
  14. 0 1
      core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTask.java
  15. 14 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/Field.java
  16. 14 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/Partner.java
  17. 14 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/ResidentAgency.java
  18. 14 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/Resource.java
  19. 14 0
      core/src/main/java/com/mooctest/crowd/domain/domainobject/TestType.java
  20. 8 0
      core/src/main/java/com/mooctest/crowd/domain/exception/ApplicationTypeNoExistException.java
  21. 8 0
      core/src/main/java/com/mooctest/crowd/domain/exception/ApplicationTypeToTestTypeNoExistException.java
  22. 8 0
      core/src/main/java/com/mooctest/crowd/domain/exception/FieldNoExistException.java
  23. 8 0
      core/src/main/java/com/mooctest/crowd/domain/exception/ResourceNoExistException.java
  24. 8 0
      core/src/main/java/com/mooctest/crowd/domain/exception/TestTypeNoExistException.java
  25. 25 0
      core/src/main/java/com/mooctest/crowd/domain/model/ApplicationTypePO.java
  26. 24 0
      core/src/main/java/com/mooctest/crowd/domain/model/ApplicationTypeToTestTypePO.java
  27. 31 0
      core/src/main/java/com/mooctest/crowd/domain/model/CompetitionPO.java
  28. 24 0
      core/src/main/java/com/mooctest/crowd/domain/model/FieldPO.java
  29. 24 0
      core/src/main/java/com/mooctest/crowd/domain/model/PartnerPO.java
  30. 24 0
      core/src/main/java/com/mooctest/crowd/domain/model/ResidentAgencyPO.java
  31. 24 0
      core/src/main/java/com/mooctest/crowd/domain/model/ResourcePO.java
  32. 24 0
      core/src/main/java/com/mooctest/crowd/domain/model/TestTypePO.java
  33. 126 0
      core/src/main/java/com/mooctest/crowd/domain/repository/CommonRepo.java
  34. 1 1
      core/src/main/java/com/mooctest/crowd/domain/repository/CrowdTestProjectRepo.java
  35. 0 0
      site/src/main/java/com/mooctest/crowd/site/controller/CommonController.java
  36. 5 7
      site/src/main/java/com/mooctest/crowd/site/controller/CrowTestSquareController.java
  37. 23 2
      site/src/main/java/com/mooctest/crowd/site/controller/CrowdProjectController.java
  38. 16 4
      site/src/main/java/com/mooctest/crowd/site/controller/advice/ExceptionAdvice.java
  39. 21 5
      site/src/main/java/com/mooctest/crowd/site/data/dto/CrowdTestSquareIndexDTO.java
  40. 27 0
      site/src/main/java/com/mooctest/crowd/site/data/dto/IndexInfoDTO.java
  41. 12 4
      site/src/main/java/com/mooctest/crowd/site/data/enums/ProjectType.java
  42. 24 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/ApplicationTypeVO.java
  43. 27 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/CompetitionVO.java
  44. 7 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/EvolutionAgencyVO.java
  45. 21 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/FieldVO.java
  46. 21 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/PartnerVO.java
  47. 21 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/ResidentAgencyVO.java
  48. 21 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/ResourceVO.java
  49. 21 0
      site/src/main/java/com/mooctest/crowd/site/data/vo/TestTypeVO.java
  50. 7 2
      site/src/main/java/com/mooctest/crowd/site/mediator/ViewMediator.java
  51. 1 0
      site/src/main/java/com/mooctest/crowd/site/service/CommonService.java
  52. 8 0
      site/src/main/java/com/mooctest/crowd/site/service/CrowdProjectService.java
  53. 1 1
      site/src/main/java/com/mooctest/crowd/site/service/CrowdTaskService.java
  54. 1 2
      site/src/main/java/com/mooctest/crowd/site/service/impl/CommonServiceImpl.java
  55. 46 0
      site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdProjectServiceImpl.java
  56. 3 3
      site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdTaskServiceImpl.java
  57. 25 0
      site/src/main/resources/application.yml

+ 18 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/ApplicationTypeDao.java

@@ -0,0 +1,18 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.ApplicationTypePO;
+import org.springframework.data.repository.CrudRepository;
+
+import javax.transaction.Transactional;
+import java.util.List;
+import java.util.Optional;
+
+@Transactional
+public interface ApplicationTypeDao extends CrudRepository<ApplicationTypePO, Long>{
+
+    Optional<ApplicationTypePO> findByCode(String code);
+
+    Optional<ApplicationTypePO> findById(Long id);
+
+    List<ApplicationTypePO> findAll();
+}

+ 18 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/ApplicationTypeToTestTypeDao.java

@@ -0,0 +1,18 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.ApplicationTypeToTestTypePO;
+import org.springframework.data.repository.CrudRepository;
+
+import javax.transaction.Transactional;
+import java.util.List;
+import java.util.Optional;
+
+@Transactional
+public interface ApplicationTypeToTestTypeDao extends CrudRepository<ApplicationTypeToTestTypePO, Long>{
+
+    Optional<ApplicationTypeToTestTypePO> findById(Long id);
+
+    List<ApplicationTypeToTestTypePO> findByApplicationTypeCode(String applicationTypeCode);
+
+    List<ApplicationTypeToTestTypePO> findAll();
+}

+ 19 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/CompetitionDao.java

@@ -0,0 +1,19 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.CompetitionPO;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.repository.CrudRepository;
+
+import javax.transaction.Transactional;
+import java.util.List;
+import java.util.Optional;
+
+@Transactional
+public interface CompetitionDao extends CrudRepository<CompetitionPO, Long>{
+
+    Optional<CompetitionPO> findByIdAndIsDeleted(Long id, int isNotDeleted);
+
+    List<CompetitionPO> findAll();
+
+    List<CompetitionPO> findAll(Pageable pageable);
+}

+ 1 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/CrowdTestProjectDao.java

@@ -8,6 +8,7 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.CrudRepository;
 
 import javax.transaction.Transactional;
+import java.util.Collection;
 import java.util.List;
 
 /**

+ 18 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/FieldDao.java

@@ -0,0 +1,18 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.FieldPO;
+import org.springframework.data.repository.CrudRepository;
+
+import javax.transaction.Transactional;
+import java.util.List;
+import java.util.Optional;
+
+@Transactional
+public interface FieldDao extends CrudRepository<FieldPO, Long>{
+
+    Optional<FieldPO> findByCode(String code);
+
+    Optional<FieldPO> findById(Long id);
+
+    List<FieldPO> findAll();
+}

+ 18 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/PartnerDao.java

@@ -0,0 +1,18 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.PartnerPO;
+import org.springframework.data.repository.CrudRepository;
+
+import javax.transaction.Transactional;
+import java.util.List;
+import java.util.Optional;
+
+@Transactional
+public interface PartnerDao extends CrudRepository<PartnerPO, Long>{
+
+    Optional<PartnerPO> findByName(String name);
+
+    Optional<PartnerPO> findById(Long id);
+
+    List<PartnerPO> findAll();
+}

+ 18 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/ResidentAgencyDao.java

@@ -0,0 +1,18 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.ResidentAgencyPO;
+import org.springframework.data.repository.CrudRepository;
+
+import javax.transaction.Transactional;
+import java.util.List;
+import java.util.Optional;
+
+@Transactional
+public interface ResidentAgencyDao extends CrudRepository<ResidentAgencyPO, Long>{
+
+    Optional<ResidentAgencyPO> findByAgencyId(Long agencyId);
+
+    Optional<ResidentAgencyPO> findById(Long id);
+
+    List<ResidentAgencyPO> findAll();
+}

+ 19 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/ResourceDao.java

@@ -0,0 +1,19 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.ResourcePO;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.repository.CrudRepository;
+
+import javax.transaction.Transactional;
+import java.util.List;
+import java.util.Optional;
+
+@Transactional
+public interface ResourceDao extends CrudRepository<ResourcePO, Long>{
+
+    Optional<ResourcePO> findByCode(String code);
+
+    Optional<ResourcePO> findById(Long id);
+
+    List<ResourcePO> findAll();
+}

+ 18 - 0
core/src/main/java/com/mooctest/crowd/domain/dao/TestTypeDao.java

@@ -0,0 +1,18 @@
+package com.mooctest.crowd.domain.dao;
+
+import com.mooctest.crowd.domain.model.TestTypePO;
+import org.springframework.data.repository.CrudRepository;
+
+import javax.transaction.Transactional;
+import java.util.List;
+import java.util.Optional;
+
+@Transactional
+public interface TestTypeDao extends CrudRepository<TestTypePO, Long>{
+
+    Optional<TestTypePO> findByCode(String code);
+
+    Optional<TestTypePO> findById(Long id);
+
+    List<TestTypePO> findAll();
+}

+ 17 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/ApplicationType.java

@@ -0,0 +1,17 @@
+package com.mooctest.crowd.domain.domainobject;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+public class ApplicationType {
+    private Long id;
+    private String code;
+    private String name;
+    private List<TestType> testTypeList;
+}

+ 16 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/ApplicationTypeToTestType.java

@@ -0,0 +1,16 @@
+package com.mooctest.crowd.domain.domainobject;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+public class ApplicationTypeToTestType {
+    private Long id;
+    private String applicationTypeCode;
+    private String testTypeCode;
+}

+ 18 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/Competition.java

@@ -0,0 +1,18 @@
+package com.mooctest.crowd.domain.domainobject;
+
+import lombok.Data;
+
+import java.sql.Timestamp;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+public class Competition {
+    private Long id;
+    private String name;
+    private String linkUrl;
+    private Timestamp startTime;
+    private int isDeleted;
+}

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

+ 14 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/Field.java

@@ -0,0 +1,14 @@
+package com.mooctest.crowd.domain.domainobject;
+
+import lombok.Data;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+public class Field {
+    private Long id;
+    private String code;
+    private String name;
+}

+ 14 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/Partner.java

@@ -0,0 +1,14 @@
+package com.mooctest.crowd.domain.domainobject;
+
+import lombok.Data;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+public class Partner {
+    private Long id;
+    private String name;
+    private String imageUrl;
+}

+ 14 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/ResidentAgency.java

@@ -0,0 +1,14 @@
+package com.mooctest.crowd.domain.domainobject;
+
+import lombok.Data;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+public class ResidentAgency {
+    private Long id;
+    private Long agencyId;
+    private Long userId;
+}

+ 14 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/Resource.java

@@ -0,0 +1,14 @@
+package com.mooctest.crowd.domain.domainobject;
+
+import lombok.Data;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+public class Resource {
+    private Long id;
+    private String code;
+    private String name;
+}

+ 14 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/TestType.java

@@ -0,0 +1,14 @@
+package com.mooctest.crowd.domain.domainobject;
+
+import lombok.Data;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+public class TestType {
+    private Long id;
+    private String code;
+    private String name;
+}

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

@@ -0,0 +1,8 @@
+package com.mooctest.crowd.domain.exception;
+
+/**
+ * @author guochao
+ * @date 2019/7/16 9:23
+ */
+public class ApplicationTypeNoExistException extends BaseException {
+}

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

@@ -0,0 +1,8 @@
+package com.mooctest.crowd.domain.exception;
+
+/**
+ * @author guochao
+ * @date 2019/7/16 9:23
+ */
+public class ApplicationTypeToTestTypeNoExistException extends BaseException {
+}

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

@@ -0,0 +1,8 @@
+package com.mooctest.crowd.domain.exception;
+
+/**
+ * @author guochao
+ * @date 2019/7/16 9:23
+ */
+public class FieldNoExistException extends BaseException {
+}

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

@@ -0,0 +1,8 @@
+package com.mooctest.crowd.domain.exception;
+
+/**
+ * @author guochao
+ * @date 2019/7/16 9:23
+ */
+public class ResourceNoExistException extends BaseException {
+}

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

@@ -0,0 +1,8 @@
+package com.mooctest.crowd.domain.exception;
+
+/**
+ * @author guochao
+ * @date 2019/7/16 9:23
+ */
+public class TestTypeNoExistException extends BaseException {
+}

+ 25 - 0
core/src/main/java/com/mooctest/crowd/domain/model/ApplicationTypePO.java

@@ -0,0 +1,25 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+import java.sql.Timestamp;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+@Entity(name = "application_type")
+public class ApplicationTypePO {
+    @Id
+    @Column(name = "AT_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "AT_CODE")
+    private String code;
+
+    @Column(name = "AT_NAME")
+    private String name;
+}

+ 24 - 0
core/src/main/java/com/mooctest/crowd/domain/model/ApplicationTypeToTestTypePO.java

@@ -0,0 +1,24 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+@Entity(name = "application_type_to_test_type")
+public class ApplicationTypeToTestTypePO {
+    @Id
+    @Column(name = "ATTTT_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "ATTTT_AT_CODE")
+    private String applicationTypeCode;
+
+    @Column(name = "ATTTT_TT_CODE")
+    private String testTypeCode;
+}

+ 31 - 0
core/src/main/java/com/mooctest/crowd/domain/model/CompetitionPO.java

@@ -0,0 +1,31 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+import java.sql.Timestamp;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+@Entity(name = "competition")
+public class CompetitionPO {
+    @Id
+    @Column(name = "C_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "C_NAME")
+    private String name;
+
+    @Column(name = "C_LINK_URL")
+    private String linkUrl;
+
+    @Column(name = "C_START_TIME")
+    private Timestamp startTime;
+
+    @Column(name = "C_IS_DELETED")
+    private int isDeleted;
+}

+ 24 - 0
core/src/main/java/com/mooctest/crowd/domain/model/FieldPO.java

@@ -0,0 +1,24 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+@Entity(name = "field")
+public class FieldPO {
+    @Id
+    @Column(name = "F_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "F_CODE")
+    private String code;
+
+    @Column(name = "F_NAME")
+    private String name;
+}

+ 24 - 0
core/src/main/java/com/mooctest/crowd/domain/model/PartnerPO.java

@@ -0,0 +1,24 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+@Entity(name = "partner")
+public class PartnerPO {
+    @Id
+    @Column(name = "P_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "P_NAME")
+    private String name;
+
+    @Column(name = "P_IMAGE")
+    private String imageUrl;
+}

+ 24 - 0
core/src/main/java/com/mooctest/crowd/domain/model/ResidentAgencyPO.java

@@ -0,0 +1,24 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+@Entity(name = "resident_agency")
+public class ResidentAgencyPO {
+    @Id
+    @Column(name = "RA_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "RA_EA_ID")
+    private Long agencyId;
+
+    @Column(name = "RA_EA_U_ID")
+    private Long userId;
+}

+ 24 - 0
core/src/main/java/com/mooctest/crowd/domain/model/ResourcePO.java

@@ -0,0 +1,24 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+@Entity(name = "resource")
+public class ResourcePO {
+    @Id
+    @Column(name = "R_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "R_CODE")
+    private String code;
+
+    @Column(name = "R_NAME")
+    private String name;
+}

+ 24 - 0
core/src/main/java/com/mooctest/crowd/domain/model/TestTypePO.java

@@ -0,0 +1,24 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.Data;
+
+import javax.persistence.*;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+@Entity(name = "test_type")
+public class TestTypePO {
+    @Id
+    @Column(name = "TT_ID")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    @Column(name = "TT_CODE")
+    private String code;
+
+    @Column(name = "TT_NAME")
+    private String name;
+}

+ 126 - 0
core/src/main/java/com/mooctest/crowd/domain/repository/CommonRepo.java

@@ -0,0 +1,126 @@
+package com.mooctest.crowd.domain.repository;
+
+import com.mooctest.crowd.domain.dao.*;
+import com.mooctest.crowd.domain.domainobject.*;
+import com.mooctest.crowd.domain.exception.ApplicationTypeNoExistException;
+import com.mooctest.crowd.domain.exception.FieldNoExistException;
+import com.mooctest.crowd.domain.exception.TestTypeNoExistException;
+import com.mooctest.crowd.domain.model.*;
+import com.mooctest.crowd.domain.util.Converter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Pageable;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+/**
+ * @author guochao
+ * @date 2020-06-22 17:23
+ */
+@Component
+public class CommonRepo {
+    @Autowired
+    private TestTypeDao testTypeDao;
+
+    @Autowired
+    private ApplicationTypeDao applicationTypeDao;
+
+    @Autowired
+    private ApplicationTypeToTestTypeDao applicationTypeToTestTypeDao;
+
+    @Autowired
+    private FieldDao fieldDao;
+
+    @Autowired
+    private ResourceDao resourceDao;
+
+    @Autowired
+    private CompetitionDao competitionDao;
+
+    @Autowired
+    private ResidentAgencyDao residentAgencyDao;
+
+    @Autowired
+    private PartnerDao partnerDao;
+
+    public List<TestType> getAllTestType(){
+        return testTypeDao.findAll().stream().map(testTypePO -> Converter.convert(TestType.class, testTypePO)).collect(Collectors.toList());
+    }
+
+    public List<ApplicationType> getAllApplicationType(){
+        return applicationTypeDao.findAll().stream().map(applicationTypePO -> Converter.convert(ApplicationType.class, applicationTypePO)).collect(Collectors.toList());
+    }
+
+    public List<Field> getAllFieldType(){
+        return fieldDao.findAll().stream().map(fieldPO -> Converter.convert(Field.class, fieldPO)).collect(Collectors.toList());
+    }
+
+    public List<Resource> getAllResource(){
+        return resourceDao.findAll().stream().map(resourcePO -> Converter.convert(Resource.class, resourcePO)).collect(Collectors.toList());
+    }
+
+    public List<Competition> getAllCompetitionTop3(Pageable pageable){
+        List<CompetitionPO> competitionPOS = competitionDao.findAll(pageable);
+        return competitionPOS.stream().map(competitionPO -> Converter.convert(Competition.class, competitionPO))
+                .filter(competition -> competition.getIsDeleted() == DeletedStatus.isNotDeleted).collect(Collectors.toList());
+    }
+
+    public List<Competition> getAllCompetition(){
+        return competitionDao.findAll().stream()
+                .map(competitionPO -> Converter.convert(Competition.class, competitionPO))
+                .filter(competition -> competition.getIsDeleted() == DeletedStatus.isNotDeleted).collect(Collectors.toList());
+    }
+
+    public List<Partner> getAllPartner(){
+        return partnerDao.findAll().stream().map(partnerPO -> Converter.convert(Partner.class, partnerPO)).collect(Collectors.toList());
+    }
+
+    public List<ResidentAgency> getAllResidentAgency(){
+        return residentAgencyDao.findAll().stream().map(residentAgencyPO -> Converter.convert(ResidentAgency.class, residentAgencyPO)).collect(Collectors.toList());
+    }
+
+    public ApplicationType getApplicationTypeByAppCode(String appCode){
+        Optional<ApplicationTypePO> applicationTypePO = applicationTypeDao.findByCode(appCode);
+        if(!applicationTypePO.isPresent()){
+            throw new ApplicationTypeNoExistException();
+        }else {
+            return Converter.convert(ApplicationType.class, applicationTypePO.get());
+        }
+
+    }
+
+    public TestType getTestTypeByAppCode(String typeCode){
+        Optional<TestTypePO> testTypePO = testTypeDao.findByCode(typeCode);
+        if(!testTypePO.isPresent()){
+            throw new TestTypeNoExistException();
+        }else {
+            return Converter.convert(TestType.class, testTypePO.get());
+        }
+    }
+
+    public Field getFieldByAppCode(String code){
+        Optional<FieldPO> fieldPO = fieldDao.findByCode(code);
+        if(!fieldPO.isPresent()){
+            throw new FieldNoExistException();
+        }else {
+            return Converter.convert(Field.class, fieldPO.get());
+        }
+    }
+
+    public List<ApplicationTypeToTestType> getAppToTypeByAppCode(String appCode){
+        List<ApplicationTypeToTestTypePO> appToTypeList = applicationTypeToTestTypeDao.findByApplicationTypeCode(appCode);
+        return appToTypeList.stream().map(applicationTypeToTestTypePO -> Converter.convert(ApplicationTypeToTestType.class, applicationTypeToTestTypePO)).collect(Collectors.toList());
+    }
+
+    public List<TestType> getTestTypeListByAppCode(String appTypeCode){
+        List<ApplicationTypeToTestType> appToTypeList = getAppToTypeByAppCode(appTypeCode);
+        List<TestType> testTypeList = appToTypeList.stream().map(applicationTypeToTestType -> {
+            TestType testTypeByAppCode = getTestTypeByAppCode(applicationTypeToTestType.getTestTypeCode());
+            return testTypeByAppCode;
+        }).collect(Collectors.toList());
+        return testTypeList;
+    }
+
+}

+ 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){

File diff suppressed because it is too large
+ 0 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CommonController.java


+ 5 - 7
site/src/main/java/com/mooctest/crowd/site/controller/CrowTestSquareController.java

@@ -1,11 +1,8 @@
 package com.mooctest.crowd.site.controller;
 
-import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
-import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
 import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
 import com.mooctest.crowd.domain.model.CrowdTestTaskPO;
 import com.mooctest.crowd.site.data.dto.CrowdTestSquareIndexDTO;
-import com.mooctest.crowd.site.data.dto.TaskSquareDTO;
 import com.mooctest.crowd.site.service.CrowdProjectService;
 import com.mooctest.crowd.site.service.CrowdTaskService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,22 +24,23 @@ public class CrowTestSquareController {
     @Autowired
     private CrowdProjectService crowdProjectService;
     @Autowired
-    private CrowdTaskService  crowdTaskService;
+    private CrowdTaskService crowdTaskService;
 
 
     /**
-     * 获取众测广场首页所有的数据包装到CrowdTestSquareIndexDTO里面
+     * 获取众测广场首页所有的数据,包装到CrowdTestSquareIndexDTO里面
      *
      * @return
      */
 
     @GetMapping("/list")
-    public CrowdTestSquareIndexDTO getAll(){
+    public CrowdTestSquareIndexDTO getAll() {
         CrowdTestSquareIndexDTO crowdTestSquareIndexDTO = new CrowdTestSquareIndexDTO();
         List<CrowdTestProjectPO> list = crowdProjectService.findAll();
-        List<CrowdTestTaskPO> crowdTestTasks= crowdTaskService.getAll();
+        List<CrowdTestTaskPO> crowdTestTasks = crowdTaskService.findAll();
         crowdTestSquareIndexDTO.setCowdTestProjects(list);
         crowdTestSquareIndexDTO.setCrowdTestTaskPOS(crowdTestTasks);
+        crowdTestSquareIndexDTO.initHotTaskAndProject();
         return crowdTestSquareIndexDTO;
     }
 

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

+ 16 - 4
site/src/main/java/com/mooctest/crowd/site/controller/advice/ExceptionAdvice.java

@@ -1,12 +1,14 @@
 package com.mooctest.crowd.site.controller.advice;
 
-import com.mooctest.crowd.site.constants.ResponseConstant;
-import com.mooctest.crowd.site.data.ResponseMessage;
 import com.mooctest.crowd.domain.exception.*;
+import com.mooctest.crowd.site.constants.ResponseConstant;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.HttpRequestMethodNotSupportedException;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
 
 /**
  * @author: Diors.Po
@@ -33,6 +35,16 @@ public class ExceptionAdvice {
             return "项目未设置价格";
         } else if (e instanceof PasswordErrorException){
             return "密码错误";
+        } else if (e instanceof ApplicationTypeNoExistException){
+            return "应用类型不存在";
+        } else if (e instanceof TestTypeNoExistException){
+            return "服务类型不存在";
+        } else if (e instanceof ApplicationTypeToTestTypeNoExistException){
+            return "应用类型对应的测试类型不存在";
+        } else if (e instanceof FieldNoExistException){
+            return "领域不存在";
+        } else if (e instanceof ResourceNoExistException){
+            return "资源不存在";
         } else
             return e.getMessage();
     }
@@ -56,7 +68,7 @@ public class ExceptionAdvice {
     @ResponseBody
     public String handleSystemException(Exception e){
         log.error("System Error: "+e.getMessage(), e);
-        return "There is a system error: "+e.getMessage();
+        return "系统异常 " + e.getMessage();
     }
 
     @ExceptionHandler(Excel2ProjectException.class)

+ 21 - 5
site/src/main/java/com/mooctest/crowd/site/data/dto/CrowdTestSquareIndexDTO.java

@@ -1,20 +1,19 @@
 package com.mooctest.crowd.site.data.dto;
 
-import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
-import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
+import com.mooctest.crowd.domain.domainobject.CrowdTestTaskStatus;
 import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
 import com.mooctest.crowd.domain.model.CrowdTestTaskPO;
 import lombok.Data;
 
+import java.util.Comparator;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author:xx
  * @date:2020/6/20
  * @description:众测广场首页所有数据
  */
-
-
 @Data
 public class CrowdTestSquareIndexDTO {
 
@@ -22,13 +21,30 @@ public class CrowdTestSquareIndexDTO {
     private List<CrowdTestProjectPO> cowdTestProjects;
 
     //众测任务
-    private List<CrowdTestTaskPO>  crowdTestTaskPOS;
+    private List<CrowdTestTaskPO> crowdTestTaskPOS;
 
 
+    //热门项目
+    private List<CrowdTestProjectPO> hotCrowdTestProject;
 
+    //热门任务
+    private List<CrowdTestTaskPO> hotCrowdTask;
 
 
+    /**
+     * 初始化热门任务 ,热门项目
+     */
+    public void initHotTaskAndProject() {
 
+        //根据参与人数和创建时间进行排序
+        List<CrowdTestProjectPO> list1 = this.cowdTestProjects.stream().sorted(Comparator.comparing(CrowdTestProjectPO::getCreateTime).reversed().thenComparing(Comparator.comparing(CrowdTestProjectPO::getJoinCount).reversed())).collect(Collectors.toList());
+        this.hotCrowdTestProject = list1;
+        List<CrowdTestTaskPO> tasklist1 = crowdTestTaskPOS.stream().sorted(Comparator.comparing(CrowdTestTaskPO::getAcceptedCount).reversed()).collect(Collectors.toList());
+        List<CrowdTestTaskPO> tasklist2 = tasklist1.stream().sorted(Comparator.comparing(CrowdTestTaskPO::getCreateTime).reversed()).collect(Collectors.toList());
+        //过滤掉已完成的
+        tasklist2.stream().filter(ct -> ct.getStatus() != CrowdTestTaskStatus.HAS_FINISHED);
+        this.hotCrowdTask = tasklist2;
+    }
 
 
 }

+ 27 - 0
site/src/main/java/com/mooctest/crowd/site/data/dto/IndexInfoDTO.java

@@ -0,0 +1,27 @@
+package com.mooctest.crowd.site.data.dto;
+
+import com.mooctest.crowd.site.data.vo.*;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author: xuexb
+ * @Date: 2019.7.15 20:15
+ */
+@Data
+public class IndexInfoDTO {
+
+    private List<TestTypeVO> testTypeList;
+    private List<ApplicationTypeVO> applicationTypeList;
+    private List<EvolutionAgencyVO> agencyRank;
+    private List<UserVO> userRank;
+    private List<FieldVO> fieldList;
+    private List<CompetitionVO> competitionList;
+    private List<ResourceVO> resourceList;
+    private List<EvolutionAgencyVO> residentAgencyList;
+    private List<PartnerVO> partnerList;
+//    private List<String> imgList;
+//    private List<CrowdTaskVO> hotTaskList;
+//    private List<PieChartDataVO> systemStatistics;
+}

+ 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;

+ 24 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/ApplicationTypeVO.java

@@ -0,0 +1,24 @@
+package com.mooctest.crowd.site.data.vo;
+
+import com.mooctest.crowd.domain.domainobject.ApplicationType;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+public class ApplicationTypeVO {
+    private Long id;
+    private String code;
+    private String name;
+    private List<TestTypeVO> testTypeList;
+
+    public ApplicationTypeVO(ApplicationType applicationType){
+        id = applicationType.getId();
+        code = applicationType.getCode();
+        name = applicationType.getName();
+    }
+}

+ 27 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/CompetitionVO.java

@@ -0,0 +1,27 @@
+package com.mooctest.crowd.site.data.vo;
+
+import com.mooctest.crowd.domain.domainobject.Competition;
+import lombok.Data;
+
+import java.sql.Timestamp;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+public class CompetitionVO {
+    private Long id;
+    private String name;
+    private String linkUrl;
+    private Timestamp startTime;
+    private int isDeleted;
+
+    public CompetitionVO(Competition competition){
+        id = competition.getId();
+        name = competition.getName();
+        linkUrl = competition.getLinkUrl();
+        startTime = competition.getStartTime();
+        isDeleted = competition.getIsDeleted();
+    }
+}

+ 7 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/EvolutionAgencyVO.java

@@ -1,5 +1,6 @@
 package com.mooctest.crowd.site.data.vo;
 
+import com.mooctest.crowd.domain.domainobject.EvaluationAgency;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -16,4 +17,10 @@ public class EvolutionAgencyVO {
     private String logo;
     private String name;
     private Double allTaskPrice;
+
+    public EvolutionAgencyVO(EvaluationAgency evaluationAgency){
+        id = evaluationAgency.getId();
+        logo = evaluationAgency.getAgencyPhoto();
+        name = evaluationAgency.getEvaluationAgencyName();
+    }
 }

+ 21 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/FieldVO.java

@@ -0,0 +1,21 @@
+package com.mooctest.crowd.site.data.vo;
+
+import com.mooctest.crowd.domain.domainobject.Field;
+import lombok.Data;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+public class FieldVO {
+    private Long id;
+    private String code;
+    private String name;
+
+    public FieldVO(Field field){
+        id = field.getId();
+        code = field.getCode();
+        name = field.getName();
+    }
+}

+ 21 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/PartnerVO.java

@@ -0,0 +1,21 @@
+package com.mooctest.crowd.site.data.vo;
+
+import com.mooctest.crowd.domain.domainobject.Partner;
+import lombok.Data;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+public class PartnerVO {
+    private Long id;
+    private String name;
+    private String imageUrl;
+
+    public PartnerVO(Partner partner){
+        id = partner.getId();
+        name = partner.getName();
+        imageUrl = partner.getImageUrl();
+    }
+}

+ 21 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/ResidentAgencyVO.java

@@ -0,0 +1,21 @@
+package com.mooctest.crowd.site.data.vo;
+
+import com.mooctest.crowd.domain.domainobject.ResidentAgency;
+import lombok.Data;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+public class ResidentAgencyVO {
+    private Long id;
+    private Long agencyId;
+    private Long userId;
+
+    public ResidentAgencyVO(ResidentAgency residentAgency){
+        id = residentAgency.getId();
+        agencyId = residentAgency.getAgencyId();
+        userId = residentAgency.getUserId();
+    }
+}

+ 21 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/ResourceVO.java

@@ -0,0 +1,21 @@
+package com.mooctest.crowd.site.data.vo;
+
+import com.mooctest.crowd.domain.domainobject.Resource;
+import lombok.Data;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+public class ResourceVO {
+    private Long id;
+    private String code;
+    private String name;
+
+    public ResourceVO(Resource resource){
+        id = resource.getId();
+        code = resource.getCode();
+        name = resource.getName();
+    }
+}

+ 21 - 0
site/src/main/java/com/mooctest/crowd/site/data/vo/TestTypeVO.java

@@ -0,0 +1,21 @@
+package com.mooctest.crowd.site.data.vo;
+
+import com.mooctest.crowd.domain.domainobject.TestType;
+import lombok.Data;
+
+/**
+ * @author guochao
+ * @date 2019/7/6 17:54
+ */
+@Data
+public class TestTypeVO {
+    private Long id;
+    private String code;
+    private String name;
+
+    public TestTypeVO(TestType testType){
+        id = testType.getId();
+        code = testType.getCode();
+        name = testType.getName();
+    }
+}

+ 7 - 2
site/src/main/java/com/mooctest/crowd/site/mediator/ViewMediator.java

@@ -2,13 +2,18 @@ package com.mooctest.crowd.site.mediator;
 
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
 import com.mooctest.crowd.domain.domainobject.User;
-import com.mooctest.crowd.site.command.*;
-import com.mooctest.crowd.site.data.dto.*;
 import com.mooctest.crowd.domain.exception.AccountNotExistException;
 import com.mooctest.crowd.domain.exception.BadRequestException;
 import com.mooctest.crowd.domain.exception.PasswordErrorException;
 import com.mooctest.crowd.site.data.vo.*;
 import org.springframework.data.domain.Pageable;
+import com.mooctest.crowd.site.command.LoginCommand;
+import com.mooctest.crowd.site.command.RegisterCommand;
+import com.mooctest.crowd.site.data.dto.*;
+import com.mooctest.crowd.site.data.vo.BaseAuthVO;
+import com.mooctest.crowd.site.data.vo.EvolutionAgencyVO;
+import com.mooctest.crowd.site.data.vo.RegionalManagerVO;
+
 
 import java.util.List;
 

+ 1 - 0
site/src/main/java/com/mooctest/crowd/site/service/CommonService.java

@@ -1,6 +1,7 @@
 package com.mooctest.crowd.site.service;
 
 import com.mooctest.crowd.site.data.dto.IndexDTO;
+import com.mooctest.crowd.site.data.dto.IndexInfoDTO;
 import com.mooctest.crowd.site.data.dto.MyCrowdDTO;
 import org.springframework.stereotype.Service;
 

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

@@ -6,6 +6,8 @@ import com.mooctest.crowd.site.command.CrowdTestProjectCommand;
 import com.mooctest.crowd.site.command.GenerateProjectCommand;
 import com.mooctest.crowd.site.data.dto.ProjectDetailsDTO;
 import com.mooctest.crowd.site.data.vo.RegionalManagerVO;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
@@ -16,7 +18,9 @@ import java.util.List;
  * @date 2019-07-29 10:49
  */
 public interface CrowdProjectService {
+
     List<CrowdTestProjectPO> findAll();
+
     ProjectDetailsDTO getProjectDetails(String projectCode, Long userId);
 
     ProjectDetailsDTO createCrowdProject(CrowdTestProjectCommand command);
@@ -40,4 +44,8 @@ public interface CrowdProjectService {
     ProjectDetailsDTO commitProject(String projectCode, Long userId);
 
     ProjectDetailsDTO confirmFinished(String projectCode, Long userId);
+
+    boolean modifyData(String projectCode);
+
+    boolean modifyAllData();
 }

+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/service/CrowdTaskService.java

@@ -14,7 +14,7 @@ import java.util.List;
  * @date 2019-07-29 18:47
  */
 public interface CrowdTaskService {
-    List<CrowdTestTaskPO> getAll();
+    List<CrowdTestTaskPO> findAll();
 
     TaskDetailsDTO getTaskDetails(String projectCode, String taskCode, Long userId);
 

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

@@ -1,6 +1,7 @@
 package com.mooctest.crowd.site.service.impl;
 
 import com.mooctest.crowd.site.data.dto.IndexDTO;
+import com.mooctest.crowd.site.data.dto.IndexInfoDTO;
 import com.mooctest.crowd.site.data.dto.MyCrowdDTO;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.service.CommonService;
@@ -15,8 +16,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<>();

+ 3 - 3
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdTaskServiceImpl.java

@@ -48,12 +48,12 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     @Autowired
     private EvaluationAgencyDao agencyDao;
 
-//    @Autowired
-//    GenerateFlowCodeUtil codeUtil;
+
 
 
     @Override
-    public List<CrowdTestTaskPO> getAll() {
+    public List<CrowdTestTaskPO> findAll() {
+
         return  taskDao.findAllByIsDeleted(0);
     }
 

+ 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

Some files were not shown because too many files changed in this diff