git 5 years ago
parent
commit
6e6bb638ed

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

@@ -36,6 +36,16 @@ public interface CrowdTestProjectDao extends CrudRepository<CrowdTestProjectPO,
     @Query(value = "SELECT * FROM crowd_test_project p WHERE CTP_STATUS !=4 ORDER BY CTP_CREATE_TIME DESC", nativeQuery = true)
     List<CrowdTestProjectPO> findAll();
 
+    //这个指定了查询条数 适用于众测广场首页 这样性能会高一点。
+    @Query(value = "SELECT * FROM crowd_test_project p WHERE CTP_STATUS !=4 ORDER BY CTP_JOIN_COUNT DESC ,CTP_CREATE_TIME LIMIT 6; ", nativeQuery = true)
+    List<CrowdTestProjectPO> findindexProject();
+
+
+
+    //这个指定了查询条数 适用于众测广场首页 这样性能会高一点对应热门项目
+    @Query(value = "SELECT * FROM crowd_test_project p WHERE CTP_STATUS !=4 ORDER BY CTP_JOIN_COUNT DESC ,CTP_CREATE_TIME LIMIT 7; ", nativeQuery = true)
+    List<CrowdTestProjectPO> findall();
+
     Page<CrowdTestProjectPO> findAll(Specification<CrowdTestProjectPO> spec, Pageable pageable);
 
     CrowdTestProjectPO findByIdAndIsDeleted(Long id, int isDeleted);

+ 4 - 6
core/src/main/java/com/mooctest/crowd/domain/dao/CrowdTestTaskDao.java

@@ -29,14 +29,12 @@ public interface CrowdTestTaskDao extends CrudRepository<CrowdTestTaskPO, Long>,
          "CTT_STATUS,CTT_FULL_STATUS,CTT_DEAD_LINE,CTT_IS_DELETED,CTT_PARTICIPANT_COUNT,CTT_ACCEPTED_COUNT,CTT_PARTICIPANT_HAS_COMMITTED_COUNT,CTT_CREATE_TIME,CTT_END_TIME FROM  crowd_test_task t where CTT_STATUS=1 or CTT_STATUS=2 ORDER BY CTT_CREATE_TIME DESC",nativeQuery = true)
   List<CrowdTestTaskPO> findAll();
 
+   @Query(value = "select * FROM  crowd_test_task  ORDER BY CTT_CREATE_TIME DESC LIMIT 6 ",nativeQuery = true)
+   List<CrowdTestTaskPO> findindexTask();
 
 
-
-
- @Query(value = "select CTT_ID,CTT_CODE,CTT_NAME,CTT_CTP_CODE,CTT_EA_ID," +
-         "CTT_TYPE,CTT_DISTRIBUTION_TYPE,CTT_DISTRIBUTION_PROVINCE,CTT_DISTRIBUTION_CITY," +
-         "CTT_REQUIREMENT_FILE,CTT_DESCRIPTION,CTT_QUOTED_PRICE,CTT_FIXED_PRICE," +
-         "CTT_STATUS,CTT_FULL_STATUS,CTT_DEAD_LINE,CTT_IS_DELETED,CTT_PARTICIPANT_COUNT,CTT_ACCEPTED_COUNT,CTT_PARTICIPANT_HAS_COMMITTED_COUNT,CTT_CREATE_TIME,CTT_END_TIME FROM  crowd_test_task t ORDER BY CTT_CREATE_TIME DESC",nativeQuery = true)
+//热门任务
+ @Query(value = "select * FROM  crowd_test_task  ORDER BY CTT_ACCEPTED_COUNT DESC,CTT_CREATE_TIME DESC LIMIT 7",nativeQuery = true)
    List<CrowdTestTaskPO> findMoreHotTasks();
 
    List<CrowdTestTaskPO>  findByNameLike(String name);

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

@@ -45,13 +45,14 @@ public class CrowTestSquareController extends BaseSearchController {
      * @return
      */
     @GetMapping("/list")
-    public ResponseVO getAll() {
+    public ResponseVO getAll(){
         CrowdTestSquareIndexDTO crowdTestSquareIndexDTO = new CrowdTestSquareIndexDTO();
-        List<CrowdTestProjectVO> list = crowdProjectService.findAll();
+        List<CrowdTestProjectVO> list = crowdProjectService.findIndexProject();
         List<CrowdTaskVO> crowdTestTasks = crowdTaskService.findAll();
-        crowdTestSquareIndexDTO.setCrowdTestProjectVOs(list);
-        crowdTestSquareIndexDTO.setCrowdTestTaskVOS(crowdTestTasks);
-        crowdTestSquareIndexDTO.initHotTaskAndProject();
+        crowdTestSquareIndexDTO.setCrowdTestProjectVOs(list);//众测项目
+        crowdTestSquareIndexDTO.setCrowdTestTaskVOS(crowdTestTasks);//众测任务
+        crowdTestSquareIndexDTO.setHotCrowdTaskVOs(crowdTaskService.findMoreHotTasks());
+        crowdTestSquareIndexDTO.setHotCrowdTestProjectVOs(crowdProjectService.findAllMoreHotProjects());
         return new ResponseVO(ServerCode.SUCCESS, crowdTestSquareIndexDTO);
     }
 

+ 11 - 1
site/src/main/java/com/mooctest/crowd/site/mediator/ViewMediator.java

@@ -21,6 +21,9 @@ import java.util.List;
  * @Date: 2019.7.16 20:25
  */
 public interface ViewMediator {
+     List<CrowdTestProjectVO>   crowdTestProjects();
+
+    List<CrowdTaskVO> findIndexTask();
 
     void saveEnterpriseRole(User user, ApplyEnterpriseAuthCommand applyEnterpriseAuthCommand);
 
@@ -77,7 +80,14 @@ public interface ViewMediator {
     //任务模糊查询
     List<CrowdTaskVO> findTaskByNameLike(String name);
 
-    List<CrowdTestProjectVO> crowdTestProjects();
+
+List<CrowdTestProjectVO>   AllByPage();
+
+    //热门项目
+    List<CrowdTestProjectVO>  hotCrowdTestProjects();
+
+
+    List<CrowdTestProjectVO> indexCrowdTestProjects();
 
     List<CrowdTaskVO> crowdTaskVos();
 

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

@@ -124,6 +124,29 @@ public class WebMediatorImpl implements ViewMediator {
     @Autowired
     private ThemeStatusService themeStatusService;
 
+
+    @Override
+    public List<CrowdTestProjectVO> crowdTestProjects() {
+        List<CrowdTestProjectVO> authingList = new ArrayList<>();
+        authingList.addAll(projectDao.findAll().stream().map(crowdTestProjectPO -> {
+            CrowdTestProject crowdTestProject = new CrowdTestProject();
+            BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
+            return new CrowdTestProjectVO(crowdTestProject);
+        }).collect(Collectors.toList()));
+        return authingList;
+    }
+
+    @Override
+    public List<CrowdTaskVO> findIndexTask() {
+        List<CrowdTaskVO> authingList = new ArrayList<>();
+        authingList.addAll(taskDao.findindexTask().stream().map(crowdTestProjectPO -> {
+            CrowdTestTask crowdTestTask = new CrowdTestTask();
+            BeanUtils.copyProperties(crowdTestProjectPO, crowdTestTask);
+            return new CrowdTaskVO(crowdTestTask);
+        }).collect(Collectors.toList()));
+        return authingList;
+    }
+
     @Override
     public void saveEnterpriseRole(User user, ApplyEnterpriseAuthCommand applyEnterpriseAuthCommand) {
         //如果是研发机构那么能发包
@@ -215,7 +238,6 @@ public class WebMediatorImpl implements ViewMediator {
 
     @Override
     public List<CrowdTaskVO> findMoreHotTasks() {
-        List<CrowdTestTaskPO> list = taskDao.findMoreHotTasks();//已经根据创建时间排序好了。
         List<CrowdTaskVO> hotMoreTestprojects = taskDao.findMoreHotTasks().stream().map(crowdTestTaskPO -> {
             CrowdTestTask task = new CrowdTestTask();
             BeanUtils.copyProperties(crowdTestTaskPO, task);
@@ -1050,11 +1072,42 @@ public class WebMediatorImpl implements ViewMediator {
     }
 
     @Override
-    public List<CrowdTestProjectVO> crowdTestProjects() {
+    public List<CrowdTestProjectVO> AllByPage() {
         List<CrowdTestProjectVO> authingList = new ArrayList<>();
         authingList.addAll(projectDao.findAll().stream().map(crowdTestProjectPO -> {
             CrowdTestProject crowdTestProject = new CrowdTestProject();
             BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
+            return new CrowdTestProjectVO(crowdTestProject);
+        }).collect(Collectors.toList()));
+        return authingList;
+    }
+
+    @Override
+    public List<CrowdTestProjectVO> hotCrowdTestProjects() {
+        List<CrowdTestProjectVO> authingList = new ArrayList<>();
+        authingList.addAll(projectDao.findall().stream().map(crowdTestProjectPO -> {
+            CrowdTestProject crowdTestProject = new CrowdTestProject();
+            BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
+            // 应用类型值的转换
+            Optional<ApplicationTypePO> applicationTypePO = applicationTypeDao.findByCode(crowdTestProject.getApplicationType());
+            if (applicationTypePO.isPresent()) {
+                crowdTestProject.setApplicationType(applicationTypePO.get().getName());
+            } else {
+                throw new HttpBadRequestException("请选择应用类型");
+            }
+            return new CrowdTestProjectVO(crowdTestProject);
+
+        }).collect(Collectors.toList()));
+        return authingList;
+    }
+
+    @Override
+    //众测广场首页6条项目
+    public List<CrowdTestProjectVO>  indexCrowdTestProjects() {
+        List<CrowdTestProjectVO> authingList = new ArrayList<>();
+        authingList.addAll(projectDao.findindexProject().stream().map(crowdTestProjectPO -> {
+            CrowdTestProject crowdTestProject = new CrowdTestProject();
+            BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
             // 应用类型值的转换
             Optional<ApplicationTypePO> applicationTypePO = applicationTypeDao.findByCode(crowdTestProject.getApplicationType());
             if (applicationTypePO.isPresent()) {
@@ -1088,9 +1141,9 @@ public class WebMediatorImpl implements ViewMediator {
     }
 
     @Override
-    public List<CrowdTaskVO> crowdTaskVos() {
+    public List<CrowdTaskVO> crowdTaskVos(){
         List<CrowdTaskVO> authingList = new ArrayList<>();
-        authingList.addAll(taskDao.findAll().stream().map(crowdTestTaskPO -> {
+        authingList.addAll(taskDao.findindexTask().stream().map(crowdTestTaskPO -> {
             //根据code值查询出来该任务的type
             Optional<TestTypePO> serviceType = testTypeDao.findByCode(crowdTestTaskPO.getType());
             CrowdTestTask crowdTestTask = new CrowdTestTask();

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

@@ -18,6 +18,7 @@ import java.util.List;
  */
 public interface CrowdProjectService {
 
+    List<CrowdTestProjectVO>    findIndexProject();
     List<CrowdTestProjectVO>  findAllMoreHotProjects();
 
     List<CrowdTestProjectVO> findByNameLike(String name);

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

@@ -16,8 +16,13 @@ import java.util.List;
  * @date 2019-07-29 18:47
  */
 public interface CrowdTaskService {
+
+List<CrowdTaskVO> findIndexCrwodTasks();
+
     List<CrowdTaskVO> findMoreHotTasks();
 
+    List<CrowdTaskVO> findIndexTask();
+
      List<CrowdTaskVO> findAll();
 
      List<CrowdTaskVO> findByNameLike(String name);

+ 18 - 8
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdProjectServiceImpl.java

@@ -29,6 +29,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
@@ -54,6 +55,8 @@ import java.util.stream.Collectors;
 @Service
 public class CrowdProjectServiceImpl implements CrowdProjectService {
     @Autowired
+    private  CrowdTestProjectDao projectDao;
+    @Autowired
     private RoleDao roleDao;
     @Autowired
 
@@ -87,20 +90,27 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
     private ThemeSchedulerService themeSchedulerService;
 
     @Override
+    public List<CrowdTestProjectVO> findIndexProject() {
+        List<CrowdTestProjectVO> authingList = new ArrayList<>();
+        authingList.addAll(projectDao.findindexProject().stream().map(crowdTestProjectPO -> {
+            CrowdTestProject crowdTestProject = new CrowdTestProject();
+            BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
+            return new CrowdTestProjectVO(crowdTestProject);
+        }).collect(Collectors.toList()));
+        return authingList;
+    }
+
+    @Override
     public List<CrowdTestProjectVO> findAllMoreHotProjects() {
-        List<CrowdTestProjectVO> list = viewMediator.findMoreHotProjects();//根据创建时间已经倒叙排序好
-        //根据参与人数倒叙排序
-        List<CrowdTestProjectVO> moreHotProjects = list.stream().sorted(Comparator.comparing(CrowdTestProjectVO::getJoinCount).reversed()).collect(Collectors.toList());
-        return moreHotProjects;
+        return viewMediator.hotCrowdTestProjects();
     }
 
     @Override
     public List<CrowdTestProjectVO> findByNameLike(String name) {
-        if (name == null || name.trim().equals("")) {
-            return viewMediator.crowdTestProjectsWaitingAccept().stream().sorted(Comparator.comparing(CrowdTestProjectVO::getCreateTime).reversed()).collect(Collectors.toList());
+        if (name == null || name.trim().equals("")){
+            return viewMediator.AllByPage();
         }
-        return viewMediator.findByNameLike(name).stream().sorted(Comparator.comparing(CrowdTestProjectVO::getCreateTime).reversed()).collect(Collectors.toList());
-
+        return viewMediator.findByNameLike(name);
 
     }
 

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

@@ -15,14 +15,17 @@ import com.mooctest.crowd.site.data.dto.TaskSquareDTO;
 import com.mooctest.crowd.site.data.enums.ProjectType;
 import com.mooctest.crowd.site.data.enums.RoleType;
 import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
+import com.mooctest.crowd.site.data.vo.CrowdTestProjectVO;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.service.CrowdTaskService;
 import com.mooctest.crowd.site.util.GenerateFlowCodeUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 
+import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Optional;
@@ -56,12 +59,28 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     @Autowired
     private EvaluationAgencyDao agencyDao;
 
+
+
+
+    @Override
+    public List<CrowdTaskVO> findIndexCrwodTasks() {
+        return  viewMediator.findIndexTask();
+    }
+
     @Override
     public List<CrowdTaskVO> findMoreHotTasks(){
-        List<CrowdTaskVO> list=viewMediator.findMoreHotTasks();//根据创建时间已经倒叙排序好
-        //根据参与人数倒叙排序
-        List<CrowdTaskVO>  morehotTasks=list.stream().sorted(Comparator.comparing(CrowdTaskVO::getAcceptedCount).reversed()).collect(Collectors.toList());
-        return   morehotTasks;
+           return  viewMediator.findMoreHotTasks();
+    }
+
+    @Override
+    public List<CrowdTaskVO> findIndexTask() {
+        List<CrowdTaskVO> authingList = new ArrayList<>();
+        authingList.addAll(taskDao.findindexTask().stream().map(crowdTestProjectPO -> {
+            CrowdTestTask crowdTestTask = new CrowdTestTask();
+            BeanUtils.copyProperties(crowdTestProjectPO, crowdTestTask);
+            return new CrowdTaskVO(crowdTestTask);
+        }).collect(Collectors.toList()));
+        return authingList;
     }
 
     @Override
@@ -72,11 +91,12 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     @Override
     public List<CrowdTaskVO> findByNameLike(String name) {
         if(name==null||name.trim().equals("")){
-            return  viewMediator.crowdTaskVos().stream().sorted(Comparator.comparing(CrowdTaskVO::getCreateTime).reversed()).collect(Collectors.toList());
+            log.info("没有关键字");
+            return  viewMediator.crowdTaskVos();
+        }else if(name!=null) {
+            return viewMediator.findTaskByNameLike(name);
         }
-       return  viewMediator.findTaskByNameLike(name).stream().sorted(Comparator.comparing(CrowdTaskVO::getCreateTime).reversed()).collect(Collectors.toList());
-
-
+        return null;
     }
 
     @Override

+ 6 - 12
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdTestSquareServiceImpl.java

@@ -43,23 +43,17 @@ public class CrowdTestSquareServiceImpl implements CrowdTestSquareService {
         Map<String, String> extraCondition = searchConditionVO.getColumnFilters() == null ? new HashMap<>() : this.getExtraCondition(searchConditionVO);
         Pageable pageable = this.getPageable(searchConditionVO);
         String keyword = searchConditionVO.getKeyword();
-        ProjectAndTaskDTO projectAndTaskDTO = new ProjectAndTaskDTO();
-        List<CrowdTestProjectVO> list = crowdProjectService.findByNameLike(keyword);
-        List<CrowdTaskVO> taskVOList = crowdTaskService.findByNameLike(keyword);
-        projectAndTaskDTO.setCrowdTaskVOList(taskVOList);
-        projectAndTaskDTO.setProjectVOList(list);
         List projectAndTaskDTOList = new ArrayList<>();
-        projectAndTaskDTOList.addAll(list);
-        projectAndTaskDTOList.addAll(taskVOList);
-        Page<ProjectAndTaskDTO> projectAndTaskDTOPage = DataUtils.listToPage(projectAndTaskDTOList, pageable);
-        Page<CrowdTestProjectVO> projectVOPage = DataUtils.listToPage(list, pageable);
-        Page<CrowdTaskVO> crowdTaskVOPage = DataUtils.listToPage(taskVOList, pageable);
         if (searchConditionVO.getColumnFilters().get(0).getType().equals("project")) {
+            List<CrowdTestProjectVO> list = crowdProjectService.findByNameLike(keyword);
+            Page<CrowdTestProjectVO> projectVOPage = DataUtils.listToPage(list, pageable);
             return new ResponseVO<>(ServerCode.SUCCESS, projectVOPage);
-        } else if (searchConditionVO.getColumnFilters().get(0).getType().equals("task")) {
+        } else if (searchConditionVO.getColumnFilters().get(0).getType().equals("task")){
+            List<CrowdTaskVO> taskVOList = crowdTaskService.findByNameLike(keyword);
+            Page<CrowdTaskVO> crowdTaskVOPage = DataUtils.listToPage(taskVOList, pageable);
             return new ResponseVO(ServerCode.SUCCESS, crowdTaskVOPage);
         }
-        return new ResponseVO<>(ServerCode.SUCCESS, projectAndTaskDTOPage);
+ return null;
     }