Explorar el Código

add: 获取热门众测

guo00guo hace 5 años
padre
commit
e8a70f98b0

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

@@ -1,6 +1,7 @@
 package com.mooctest.crowd.domain.dao;
 
 import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
+import com.mooctest.crowd.domain.model.FieldRankInfo;
 import com.mooctest.crowd.domain.model.RankInfo;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
@@ -43,6 +44,9 @@ public interface CrowdTestProjectDao extends CrudRepository<CrowdTestProjectPO,
     @Query(value = "SELECT new com.mooctest.crowd.domain.model.RankInfo(SUM(p.quotedPrice), p.userId) FROM CrowdTestProjectPO p where p.status>1 GROUP BY p.userId ORDER BY SUM(p.quotedPrice) DESC")
     List<RankInfo> findTotalPriceOfUser(Pageable pageable);
 
+    @Query(value = "SELECT new com.mooctest.crowd.domain.model.FieldRankInfo(COUNT(p.fieldType),0L ,p.fieldType) FROM CrowdTestProjectPO p where p.status=4 GROUP BY p.fieldType ORDER BY COUNT(p.fieldType) DESC")
+    List<FieldRankInfo> findTotalCountOfField(Pageable pageable);
+
     @Override
     void delete(CrowdTestProjectPO crowdTestProjectPO);
 

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

@@ -26,6 +26,7 @@ public class CrowdTestProject {
     private String linkMan;
     private String linkManMobile;
     private String type;
+    private String fieldType;
     private String description;
     private String projectFile;
     private String requirementFile;
@@ -44,36 +45,6 @@ public class CrowdTestProject {
     private List<CrowdTestTask> crowdTestTaskList;
     private CrowdTestReport crowdTestReportForProject;
 
-    @Override
-    public String toString() {
-        return "CrowdTestProject{" +
-                "id=" + id +
-                ", name='" + name + '\'' +
-                ", code='" + code + '\'' +
-                ", userId=" + userId +
-                ", regionalManagerId=" + regionalManagerId +
-                ", projectDistributionTypeId=" + projectDistributionTypeId +
-                ", platform='" + platform + '\'' +
-                ", linkMan='" + linkMan + '\'' +
-                ", linkManMobile='" + linkManMobile + '\'' +
-                ", type='" + type + '\'' +
-                ", description='" + description + '\'' +
-                ", projectFile='" + projectFile + '\'' +
-                ", requirementFile='" + requirementFile + '\'' +
-                ", distributionProvince='" + distributionProvince + '\'' +
-                ", distributionCity='" + distributionCity + '\'' +
-                ", quotedPrice=" + quotedPrice +
-                ", fixedPrice=" + fixedPrice +
-                ", status=" + status +
-                ", deadTime=" + deadTime +
-                ", endTime=" + endTime +
-                ", isDeleted=" + isDeleted +
-                ", createTime=" + createTime +
-                ", crowdTestTaskList=" + crowdTestTaskList +
-                ", crowdTestReportForProject=" + crowdTestReportForProject +
-                '}';
-    }
-
     /**
      * 更新项目信息
      * @param crowdTestProjectModify

+ 3 - 0
core/src/main/java/com/mooctest/crowd/domain/model/CrowdTestProjectPO.java

@@ -47,6 +47,9 @@ public class CrowdTestProjectPO implements Serializable {
     @Column(name = "CTP_TYPE")
     private String type;
 
+    @Column(name = "CTP_FIELD_TYPE")
+    private String fieldType;
+
     @Column(name = "CTP_DESCRIPTION")
     private String description;
 

+ 19 - 0
core/src/main/java/com/mooctest/crowd/domain/model/FieldRankInfo.java

@@ -0,0 +1,19 @@
+package com.mooctest.crowd.domain.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author: Diors.Po
+ * @Email: 171256175@qq.com
+ * @date 2019-08-20 01:19
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class FieldRankInfo {
+    Long count;
+    Long entityId;
+    String name;
+}

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

@@ -99,7 +99,7 @@ public class CommonRepo {
         }
     }
 
-    public Field getFieldByAppCode(String code){
+    public Field getFieldByFieldCode(String code){
         Optional<FieldPO> fieldPO = fieldDao.findByCode(code);
         if(!fieldPO.isPresent()){
             throw new FieldNoExistException();

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

@@ -14,6 +14,7 @@ public class IndexInfoDTO {
 
     private List<TestTypeVO> testTypeList;
     private List<ApplicationTypeVO> applicationTypeList;
+    private List<FieldVO> fieldRank;
     private List<EvolutionAgencyVO> agencyRank;
     private List<UserVO> userRank;
     private List<FieldVO> fieldList;

+ 2 - 3
site/src/main/java/com/mooctest/crowd/site/data/vo/CrowdProjectVO.java

@@ -1,16 +1,13 @@
 package com.mooctest.crowd.site.data.vo;
 
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.TypeReference;
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
 import com.mooctest.crowd.domain.domainobject.CrowdTestProjectStatus;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.sql.Timestamp;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -29,6 +26,7 @@ public class CrowdProjectVO {
     private String contactPhone;
     private List<String> type;
     private List<String> platform;
+    private String fieldType;
     private String desc;
     private String doc;
     private String file;
@@ -54,6 +52,7 @@ public class CrowdProjectVO {
         this.contactPhone = project.getLinkManMobile();
         this.type = (List<String>)JSONArray.parse(project.getType());
         this.platform = (List<String>)JSONArray.parse(project.getPlatform());
+        this.fieldType = project.getFieldType();
         this.desc = project.getDescription();
         this.doc = project.getRequirementFile();
         this.file = project.getProjectFile();

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

@@ -12,6 +12,7 @@ public class FieldVO {
     private Long id;
     private String code;
     private String name;
+    private Long count;
 
     public FieldVO(Field field){
         id = field.getId();

+ 19 - 10
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -101,6 +101,14 @@ public class WebMediatorImpl implements ViewMediator {
         IndexInfoDTO indexInfoDTO = new IndexInfoDTO();
         Pageable pageable = PageRequest.of(0, 3);
         int top = 3;
+        //获取热门众测
+        List<FieldVO> fieldRanks = projectDao.findTotalCountOfField(pageable).stream().map(fieldRankInfo -> {
+            Field field = commonRepo.getFieldByFieldCode(fieldRankInfo.getName());
+            FieldVO fieldVO = new FieldVO(field);
+            fieldVO.setCount(fieldRankInfo.getCount());
+            return fieldVO;
+        }).filter(Objects::nonNull).collect(Collectors.toList());
+
         //获取机构排名
         String agencyName = agencyDao.findById(Long.parseLong(agencyId)).get().getEvaluationAgencyName();
         List<EvolutionAgencyVO> agencyRanks = taskToUserDao.findTotalCountOfUser().stream().map(rankInfo -> {
@@ -135,6 +143,16 @@ public class WebMediatorImpl implements ViewMediator {
             userRanks = userRanks.subList(0,top);
         }
 
+        // 获取大赛信息
+        List<Competition> competitionList = commonRepo.getAllCompetition();
+        if(competitionList.size() > top){
+            competitionList = competitionList.subList(0,top);
+        }
+        List<CompetitionVO> competitionVOS = competitionList.stream().map(competition -> {
+            CompetitionVO competitionVO = new CompetitionVO(competition);
+            return competitionVO;
+        }).sorted(Comparator.comparing(CompetitionVO::getStartTime).reversed()).collect(Collectors.toList());
+
         // 获取服务类型
         List<TestType> allTestType = commonRepo.getAllTestType();
         List<TestTypeVO> testTypeVOS = allTestType.stream().map(testType -> {
@@ -162,16 +180,6 @@ public class WebMediatorImpl implements ViewMediator {
             return fieldVO;
         }).collect(Collectors.toList());
 
-        // 获取大赛信息
-        List<Competition> competitionList = commonRepo.getAllCompetition();
-        if(competitionList.size() > top){
-            competitionList = competitionList.subList(0,top);
-        }
-        List<CompetitionVO> competitionVOS = competitionList.stream().map(competition -> {
-            CompetitionVO competitionVO = new CompetitionVO(competition);
-            return competitionVO;
-        }).sorted(Comparator.comparing(CompetitionVO::getStartTime).reversed()).collect(Collectors.toList());
-
         // 获取资源和工具
         List<Resource> resourceList = commonRepo.getAllResource();
         List<ResourceVO> resourceVOS = resourceList.stream().map(resource -> {
@@ -196,6 +204,7 @@ public class WebMediatorImpl implements ViewMediator {
 
 //        Page<CrowdTestProjectPO> all = projectDao.findAll(pageable);
 
+        indexInfoDTO.setFieldRank(fieldRanks);
         indexInfoDTO.setAgencyRank(agencyRanks);
         indexInfoDTO.setUserRank(userRanks);
         indexInfoDTO.setTestTypeList(testTypeVOS);