Parcourir la source

增加了 项目和任务模糊查询的方法。

xuxuan il y a 5 ans
Parent
commit
03c4400f68

+ 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.CrowdTestReportPO;
 import com.mooctest.crowd.domain.model.FieldRankInfo;
 import com.mooctest.crowd.domain.model.RankInfo;
 import org.springframework.data.domain.Page;
@@ -24,6 +25,9 @@ import java.util.List;
 public interface CrowdTestProjectDao extends CrudRepository<CrowdTestProjectPO, Long>, JpaRepository<CrowdTestProjectPO,Long>, PagingAndSortingRepository<CrowdTestProjectPO,Long>, JpaSpecificationExecutor<CrowdTestProjectPO> {
     //    @Override
 //    Optional<CrowdTestProjectPO> findById(Long id);
+
+    List<CrowdTestProjectPO> findByNameLike(String name);
+
     List<CrowdTestProjectPO> findAll();
 
     Page<CrowdTestProjectPO> findAll(Specification<CrowdTestProjectPO> spec,Pageable pageable);

+ 1 - 5
core/src/main/java/com/mooctest/crowd/domain/dao/CrowdTestTaskDao.java

@@ -1,9 +1,6 @@
 package com.mooctest.crowd.domain.dao;
 
-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.domain.model.RankInfo;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.jpa.domain.Specification;
@@ -11,7 +8,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.CrudRepository;
 import org.springframework.data.repository.PagingAndSortingRepository;
-
 import javax.transaction.Transactional;
 import java.util.List;
 
@@ -23,7 +19,7 @@ import java.util.List;
 @Transactional
 public interface CrowdTestTaskDao extends CrudRepository<CrowdTestTaskPO, Long>, JpaRepository<CrowdTestTaskPO, Long>, PagingAndSortingRepository<CrowdTestTaskPO, Long> {
 
-
+   List<CrowdTestTaskPO>  findByNameLike(String name);
 
     Page<CrowdTestTaskPO> findAll(Specification specification, Pageable pageable);
 

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

@@ -48,27 +48,33 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
     private UserDao userDao;
 
     @Override
-    public Page<CrowdTestProjectPO> findAll(Specification specification,Pageable pageable) {
-         return  crowdTestProjectDao.findAll(specification,pageable);
+    public Page<CrowdTestProjectPO> findAll(Specification specification, Pageable pageable) {
+        return crowdTestProjectDao.findAll(specification, pageable);
     }
 
     @Override
-    public List<CrowdTestProjectPO> findAll(){
+    public List<CrowdTestProjectPO> findAll() {
         return crowdTestProjectDao.findAll();
     }
 
     @Override
-    public Page<CrowdTestProject> findAllByPage(Pageable pageable, String keyword, int deletedStatus){
-        Specifications<CrowdTestProjectPO> where =  Specifications.where(getProjectByIsNotDeleted(keyword, deletedStatus));
+    public List<CrowdTestProjectPO> findByNameLike(String name) {
+        return     crowdTestProjectDao.findByNameLike("%" + name + "%");
+    }
+
+    @Override
+    public Page<CrowdTestProject> findAllByPage(Pageable pageable, String keyword, int deletedStatus) {
+        Specifications<CrowdTestProjectPO> where = Specifications.where(getProjectByIsNotDeleted(keyword, deletedStatus));
         return crowdTestProjectDao.findAll(where, pageable).map(crowdTestProjectPO -> Converter.convert(CrowdTestProject.class, crowdTestProjectPO));
     }
-  //搜索
+
+    //搜索
     private Specification<CrowdTestProjectPO> getProjectByIsNotDeleted(String keyword, int deletedStatus) {
         return new Specification<CrowdTestProjectPO>() {
             @Override
             public Predicate toPredicate(Root<CrowdTestProjectPO> a, CriteriaQuery<?> q, CriteriaBuilder cb) {
                 Predicate predicate = cb.conjunction();
-                if(keyword != null) {
+                if (keyword != null) {
                     predicate.getExpressions().add(
                             cb.like(a.<String>get("name"), "%" + StringUtils.trim(keyword) + "%")
                     );
@@ -85,7 +91,7 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
         CrowdTestProjectPO crowdTestProjectPO = crowdTestProjectDao.findByIdAndIsDeleted(crowdTestProjectId, DeletedStatus.isNotDeleted);
         if (crowdTestProjectPO == null) {
             throw new CrowdTestProjectNotExistException();
-        }else{
+        } else {
             CrowdTestProject crowdTestProjectResult = getCrowdTestProjectAndTaskAndReportByCrowdTestProjectPO(crowdTestProjectPO);
             return crowdTestProjectResult;
         }
@@ -96,7 +102,7 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
         CrowdTestProjectPO crowdTestProjectPO = crowdTestProjectDao.findByCodeAndIsDeleted(crowdTestProjectCode, DeletedStatus.isNotDeleted);
         if (crowdTestProjectPO == null) {
             throw new CrowdTestProjectNotExistException();
-        }else{
+        } else {
             CrowdTestProject crowdTestProjectResult = getCrowdTestProjectAndTaskAndReportByCrowdTestProjectPO(crowdTestProjectPO);
             return crowdTestProjectResult;
         }
@@ -110,13 +116,13 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
 
     @Override
     public List<CrowdTestProject> getCrowdListByRegionalManagerId(Long regionalManagerId) {
-        List<CrowdTestProjectPO> crowdTestProjectPOList = crowdTestProjectDao.findByRegionalManagerIdAndIsDeleted(regionalManagerId,DeletedStatus.isNotDeleted);
+        List<CrowdTestProjectPO> crowdTestProjectPOList = crowdTestProjectDao.findByRegionalManagerIdAndIsDeleted(regionalManagerId, DeletedStatus.isNotDeleted);
         return getCrowdTestProjects(crowdTestProjectPOList);
     }
 
 
     @Override
-    public List<CrowdTestProject> getAllCrowdTestProject(){
+    public List<CrowdTestProject> getAllCrowdTestProject() {
         List<CrowdTestProjectPO> crowdTestProjectPOList = crowdTestProjectDao.findAllByIsDeleted(DeletedStatus.isNotDeleted);
         return getCrowdTestProjects(crowdTestProjectPOList);
     }
@@ -127,15 +133,15 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
         crowdTestProjectDao.save(crowdTestProjectPO);
 
         List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
-        if(crowdTestTaskList != null){
-            for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+        if (crowdTestTaskList != null) {
+            for (CrowdTestTask crowdTestTask : crowdTestTaskList) {
                 CrowdTestTaskPO crowdTestTaskPO = Converter.convert(CrowdTestTaskPO.class, crowdTestTask);
                 List<TaskToUser> acceptedUserList = crowdTestTask.getAcceptedUserList();
-                for(TaskToUser taskToUser : acceptedUserList){
+                for (TaskToUser taskToUser : acceptedUserList) {
                     taskToUserDao.save(Converter.convert(TaskToUserPO.class, taskToUser));
                     // 保存报告信息
                     List<CrowdTestReport> crowdTestReportList = taskToUser.getCrowdTestReportList();
-                    for(CrowdTestReport crowdTestReport : crowdTestReportList){
+                    for (CrowdTestReport crowdTestReport : crowdTestReportList) {
                         CrowdTestReportPO crowdTestReportPO = Converter.convert(CrowdTestReportPO.class, crowdTestReport);
                         crowdTestReportDao.save(crowdTestReportPO);
                     }
@@ -147,7 +153,7 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
             }
         }
         // 保存项目报告
-        if (crowdTestProject.getCrowdTestReportForProject() != null){
+        if (crowdTestProject.getCrowdTestReportForProject() != null) {
             CrowdTestReport reportForProject = crowdTestProject.getCrowdTestReportForProject();
             CrowdTestReportPO crowdTestReportPO = Converter.convert(CrowdTestReportPO.class, reportForProject);
             crowdTestReportDao.save(crowdTestReportPO);
@@ -162,7 +168,7 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
 
     public void removeCrowdTestProjectList(List<CrowdTestProject> crowdTestProjectList) {
         List<CrowdTestProjectPO> crowdTestProjectPOList = new ArrayList<>();
-        for(CrowdTestProject crowdTestProject : crowdTestProjectList){
+        for (CrowdTestProject crowdTestProject : crowdTestProjectList) {
             CrowdTestProjectPO crowdTestProjectPO = Converter.convert(CrowdTestProjectPO.class, crowdTestProject);
             crowdTestProjectPOList.add(crowdTestProjectPO);
         }
@@ -213,10 +219,11 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
 
     /**
      * 根据projectId删除Project
+     *
      * @param projectId
      * @return boolean
      */
-    public void deleteByProjectId(Long projectId){
+    public void deleteByProjectId(Long projectId) {
         Optional<CrowdTestProjectPO> project = crowdTestProjectDao.findById(projectId);
         if (!project.isPresent())
             throw new CrowdTestProjectNotExistException();
@@ -225,6 +232,7 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
 
     /**
      * 通过项目信息获取项目-任务-报告信息
+     *
      * @param crowdTestProjectPO
      * @return
      */
@@ -233,7 +241,7 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
         List<CrowdTestTaskPO> crowdTestTaskPOList = crowdTestTaskDao.findByCrowdTestProjectCodeAndIsDeleted(crowdTestProjectPO.getCode(), DeletedStatus.isNotDeleted);
 
         List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
-        for(CrowdTestTaskPO crowdTestTaskPO : crowdTestTaskPOList){
+        for (CrowdTestTaskPO crowdTestTaskPO : crowdTestTaskPOList) {
             CrowdTestTask crowdTestTaskResult = Converter.convert(CrowdTestTask.class, crowdTestTaskPO);
             // 检索任务中的所有已接收任务的人员信息
             List<TaskToUserPO> taskToUserPOList = taskToUserDao.findByTaskCode(crowdTestTaskResult.getCode());
@@ -241,9 +249,9 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
                 TaskToUser taskToUser = Converter.convert(TaskToUser.class, taskToUserPO);
                 // 获取人员详细信息
                 Optional<UserPO> userPOOptional = userDao.findById(taskToUser.getUserId());
-                if(userPOOptional.isPresent()){
+                if (userPOOptional.isPresent()) {
                     taskToUser.setUser(Converter.convert(User.class, userPOOptional.get()));
-                }else{
+                } else {
                     throw new HttpBadRequestException("无此人员的信息");
                 }
                 // 获取每个人员的报告信息
@@ -262,7 +270,7 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
 
         //检索出项目报告
         List<CrowdTestReportPO> crowdTestProjectReportPOList = crowdTestReportDao.findByDependencyCodeAndIsDeleted(crowdTestProjectResult.getCode(), DeletedStatus.isNotDeleted);
-        if(crowdTestProjectReportPOList.size() != 0){
+        if (crowdTestProjectReportPOList.size() != 0) {
             CrowdTestReportPO crowdTestProjectReportPO = crowdTestProjectReportPOList.get(0);
             CrowdTestReport crowdTestProjectReport = Converter.convert(CrowdTestReport.class, crowdTestProjectReportPO);
             crowdTestProjectResult.setCrowdTestReportForProject(crowdTestProjectReport);
@@ -272,6 +280,7 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
 
     /**
      * 通过任务code和人员id获取报告列表
+     *
      * @param taskCode
      * @param userId
      * @return
@@ -283,13 +292,14 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
 
     /**
      * 通过任务信息获取报告信息
+     *
      * @param crowdTestTaskCode
      * @return
      */
     public List<CrowdTestReport> getCrowdTestReportByCrowdTestTask(String crowdTestTaskCode) {
         List<CrowdTestReportPO> crowdTestReportPOList = crowdTestReportDao.findByDependencyCodeAndIsDeleted(crowdTestTaskCode, DeletedStatus.isNotDeleted);
         List<CrowdTestReport> crowdTestReportListResult = new ArrayList<>();
-        for(CrowdTestReportPO crowdTestReportPO : crowdTestReportPOList){
+        for (CrowdTestReportPO crowdTestReportPO : crowdTestReportPOList) {
             CrowdTestReport crowdTestReportResult = Converter.convert(CrowdTestReport.class, crowdTestReportPO);
             crowdTestReportListResult.add(crowdTestReportResult);
         }
@@ -298,6 +308,7 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
 
     /**
      * 根据项目列表获取项目-任务-报告信息
+     *
      * @param crowdTestProjectPOList
      * @return
      */
@@ -310,15 +321,15 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
         return crowdTestProjectListResult;
     }
 
-    public long getAllProjectNum(){
+    public long getAllProjectNum() {
         return crowdTestProjectDao.count();
     }
 
-    public long getAllTaskNum(){
+    public long getAllTaskNum() {
         return crowdTestTaskDao.count();
     }
 
-    public long getAllReportNum(){
+    public long getAllReportNum() {
         return crowdTestReportDao.count();
     }
 }

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

@@ -1,5 +1,4 @@
 package com.mooctest.crowd.domain.repository;
-
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
 import com.mooctest.crowd.domain.exception.CrowdTestProjectNotExistException;
 import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
@@ -14,6 +13,9 @@ import java.util.List;
  * @date 2019/7/6 19:10
  */
 public interface ICrowdTestProjectRepo {
+    List<CrowdTestProjectPO> findByNameLike(String name);
+
+
     Page<CrowdTestProject> findAllByPage(Pageable pageable, String keyword, int deletedStatus);
     Page<CrowdTestProjectPO> findAll(Specification specification,Pageable pageable);
 

+ 20 - 9
site/src/main/java/com/mooctest/crowd/site/controller/CrowTestSquareController.java

@@ -1,25 +1,26 @@
 package com.mooctest.crowd.site.controller;
 
-import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
-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.ProjectAndTaskDTO;
+import com.mooctest.crowd.site.data.response.ResponseVO;
 import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
 import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
 import com.mooctest.crowd.site.data.vo.CrowdTestProjectVO;
 import com.mooctest.crowd.site.service.CommonService;
 import com.mooctest.crowd.site.service.CrowdProjectService;
 import com.mooctest.crowd.site.service.CrowdTaskService;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.*;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Iterator;
 import java.util.List;
+import java.util.function.Function;
+
 
 /**
  * @author:xx
@@ -30,6 +31,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/api/square")
 public class CrowTestSquareController {
+
     @Autowired
     private CrowdProjectService crowdProjectService;
     @Autowired
@@ -73,17 +75,26 @@ public class CrowTestSquareController {
     public Page<CrowdTaskVO> getAllTaskByPage(
             @RequestParam("pageNum") int pageNum, @RequestParam("pageSize") int pageSize) {
         Pageable pageable = PageRequest.of(pageNum - 1, pageSize);
-        Page<CrowdTaskVO> page = commonService.getTaskInfo(pageable, null, 0);
+        Page<CrowdTaskVO> page = commonService.getTaskinfo(pageable, null, 0);
         return page;
-
     }
+
     /**
-     *  搜索框模糊查询
+     * 搜索框模糊查询接口
      */
+    @GetMapping("search/list")
+    public ResponseVO<Page<ProjectAndTaskDTO>> findByNameLike(@RequestParam("name") String name){
+        ProjectAndTaskDTO projectAndTaskDTO = new ProjectAndTaskDTO();
+        List<CrowdTestProjectVO> list = crowdProjectService.findByNameLike(name);
+        List<CrowdTaskVO> taskVOList = crowdTaskService.findByNameLike(name);
+        projectAndTaskDTO.setCrowdTaskVOList(taskVOList);
+        projectAndTaskDTO.setProjectVOList(list);
 
 
 
+        return null;
 
+    }
 
 
 }

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

@@ -31,7 +31,7 @@ public class CrowdTestSquareIndexDTO {
     /**
      * 初始化热门任务 ,热门项目
      */
-    public void initHotTaskAndProject(){
+    public void initHotTaskAndProject() {
         List<CrowdTestProjectVO> projectVOS = this.crowdTestProjectVOs.stream().sorted(Comparator.comparing(CrowdTestProjectVO::getCreateTime)).collect(Collectors.toList());
         this.crowdTestProjectVOs = projectVOS;
         //根据参与人数和创建时间进行排序

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

@@ -13,7 +13,7 @@ import java.util.List;
  * @Date: 2019.7.15 20:15
  */
 @Data
-public class IndexDTO {
+public class IndexDTO{
     private List<String> imgList;
     private List<CrowdTaskVO> hotTaskList;
     private List<EvolutionAgencyVO> agencyRank;

+ 20 - 0
site/src/main/java/com/mooctest/crowd/site/data/dto/ProjectAndTaskDTO.java

@@ -0,0 +1,20 @@
+package com.mooctest.crowd.site.data.dto;
+
+import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
+import com.mooctest.crowd.site.data.vo.CrowdTestProjectVO;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author:xx
+ * @date:2020/6/24
+ * @description:搜索框搜索返回数据类
+ */
+
+@Data
+public class ProjectAndTaskDTO {
+    private List<CrowdTestProjectVO> projectVOList;
+    private List<CrowdTaskVO>      crowdTaskVOList;
+}
+

+ 8 - 0
site/src/main/java/com/mooctest/crowd/site/mediator/ViewMediator.java

@@ -55,6 +55,14 @@ public interface ViewMediator {
 
     List<TechnicalArticlesVO> technicalArticles(Pageable pageable);
 
+    // 项目模糊查询
+    List<CrowdTestProjectVO>     findByNameLike(String name);
+
+    //任务模糊查询
+    List<CrowdTaskVO>  findTaskByNameLike(String name);
+
+
+
     List<CrowdTestProjectVO>   crowdTestProjects();
 
     List<CrowdTaskVO>    crowdTaskVos();

+ 22 - 0
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -681,6 +681,28 @@ public class WebMediatorImpl implements ViewMediator {
         return results;
     }
 
+    @Override
+    public List<CrowdTestProjectVO> findByNameLike(String name) {
+        List<CrowdTestProjectVO> authingList = new ArrayList<>();
+        authingList.addAll(projectDao.findByNameLike("%"+name+"%").stream().map(crowdTestProjectPO -> {
+            CrowdTestProject crowdTestProject = new CrowdTestProject();
+            BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
+            return new CrowdTestProjectVO(crowdTestProject);
+        }).collect(Collectors.toList()));
+        return authingList;
+    }
+
+    @Override
+    public List<CrowdTaskVO> findTaskByNameLike(String name) {
+        List<CrowdTaskVO> authingList = new ArrayList<>();
+        authingList.addAll(taskDao.findByNameLike("%"+name+"%").stream().map(crowdTestTaskPO -> {
+            CrowdTestTask crowdTestTask = new CrowdTestTask();
+            BeanUtils.copyProperties(crowdTestTaskPO, crowdTestTask);
+            return new CrowdTaskVO(crowdTestTask);
+        }).collect(Collectors.toList()));
+        return authingList;
+    }
+
 
     public List<CrowdTestProjectVO> crowdTestProjects() {
         List<CrowdTestProjectVO> authingList = new ArrayList<>();

+ 7 - 4
site/src/main/java/com/mooctest/crowd/site/service/CommonService.java

@@ -3,10 +3,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 com.mooctest.crowd.site.data.vo.AgencyVO;
-import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
-import com.mooctest.crowd.site.data.vo.ExpertVO;
-import com.mooctest.crowd.site.data.vo.ResourceVO;
+import com.mooctest.crowd.site.data.vo.*;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
@@ -21,9 +18,15 @@ public interface CommonService {
 
     Page<CrowdProjectVO> getProjectInfo(Pageable pageable, String keyword, int deletedStatus);
 
+    Page<CrowdTaskVO> getTaskinfo(Pageable pageable, String keyword, int deletedStatus);
+
     Page<AgencyVO> getAgencyInfo(Pageable pageable, String keyword, int deletedStatus);
 
     Page<ResourceVO> getResourceInfo(Pageable pageable, String keyword);
 
     Page<ExpertVO> getExpertInfo(Pageable pageable, String keyword);
+
+
+
+
 }

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

@@ -21,6 +21,7 @@ import java.util.List;
  * @date 2019-07-29 10:49
  */
 public interface CrowdProjectService {
+    List<CrowdTestProjectVO> findByNameLike(String name);
 
     Page<CrowdTestProject> findAll(Pageable pageable);
 

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

@@ -5,6 +5,7 @@ import com.mooctest.crowd.site.command.CrowdTestTaskCommand;
 import com.mooctest.crowd.site.data.dto.TaskDetailsDTO;
 import com.mooctest.crowd.site.data.dto.TaskSquareDTO;
 import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
+import com.mooctest.crowd.site.data.vo.CrowdTestProjectVO;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import java.util.List;
@@ -16,9 +17,9 @@ import java.util.List;
  */
 public interface CrowdTaskService {
 
-
      List<CrowdTaskVO> findAll();
 
+     List<CrowdTaskVO> findByNameLike(String name);
 
     TaskDetailsDTO getTaskDetails(String projectCode, String taskCode, Long userId);
 

+ 9 - 4
site/src/main/java/com/mooctest/crowd/site/service/impl/CommonServiceImpl.java

@@ -2,14 +2,12 @@ package com.mooctest.crowd.site.service.impl;
 
 import com.mooctest.crowd.domain.repository.CommonRepo;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
+import com.mooctest.crowd.domain.repository.CrowdTestTaskRepo;
 import com.mooctest.crowd.domain.repository.EvaluationAgencyRepo;
 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.data.vo.AgencyVO;
-import com.mooctest.crowd.site.data.vo.CrowdProjectVO;
-import com.mooctest.crowd.site.data.vo.ExpertVO;
-import com.mooctest.crowd.site.data.vo.ResourceVO;
+import com.mooctest.crowd.site.data.vo.*;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.service.CommonService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +18,8 @@ import org.springframework.stereotype.Service;
 
 @Service
 public class CommonServiceImpl implements CommonService {
+    @Autowired
+    private CrowdTestTaskRepo taskRepo;
 
     @Autowired
     @Qualifier("WebMediator")
@@ -55,6 +55,11 @@ public class CommonServiceImpl implements CommonService {
     }
 
     @Override
+    public Page<CrowdTaskVO> getTaskinfo(Pageable pageable, String keyword, int deletedStatus) {
+        return   taskRepo.findAllByPage(pageable,keyword,deletedStatus).map(crowdTestTask -> new CrowdTaskVO(crowdTestTask));
+    }
+
+    @Override
     public Page<AgencyVO> getAgencyInfo(Pageable pageable, String keyword, int deletedStatus) {
         return agencyRepo.findAllByPage(pageable, keyword, deletedStatus).map(agency -> new AgencyVO(agency));
     }

+ 11 - 10
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdProjectServiceImpl.java

@@ -64,6 +64,14 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
     private OperationMediator operationMediator;
 
 
+    @Override
+    public List<CrowdTestProjectVO> findByNameLike(String name) {
+
+       return  viewMediator.findByNameLike(name);
+
+
+    }
+
     /**
      * 众测项目分页查询服务,过滤掉已完成的。
      *
@@ -73,19 +81,12 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
     @Override
     public Page<CrowdTestProject> findAll(Pageable pageable) {
 
-        Specification<CrowdTestProject> queryContion = new Specification<CrowdTestProject>() {
-            @Override
-            public Predicate toPredicate(Root<CrowdTestProject> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
-                Path<Object> custName = root.get("status");
-                Predicate predicate = cb.notEqual(custName, CrowdTestProjectStatus.HAS_FINISHED);
-
-                return predicate;
-            }
-        };
-
         return  projectRepo.findAllByPage(pageable,null,0);
     }
 
+
+
+
     @Override
     public List<CrowdTestProjectVO> findAll() {
         return viewMediator.crowdTestProjects();

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

@@ -15,13 +15,12 @@ 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.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 
 
@@ -63,6 +62,13 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     }
 
     @Override
+    public List<CrowdTaskVO> findByNameLike(String name) {
+
+       return  viewMediator.findTaskByNameLike(name);
+
+    }
+
+    @Override
     public TaskDetailsDTO getTaskDetails(String projectCode, String taskCode, Long userId) {
         return viewMediator.renderTaskDetails(projectCode, taskCode, userId);
     }