Bladeren bron

Merge branch 'Dev' into 'Test'

Dev

See merge request crowd-2019/crowd-test-service-backend!93
郭超 5 jaren geleden
bovenliggende
commit
4301e1497c
17 gewijzigde bestanden met toevoegingen van 212 en 68 verwijderingen
  1. 6 3
      core/src/main/java/com/mooctest/crowd/domain/dao/CrowdTestProjectDao.java
  2. 16 12
      core/src/main/java/com/mooctest/crowd/domain/dao/CrowdTestTaskDao.java
  3. 34 1
      site/src/main/java/com/mooctest/crowd/site/controller/CrowTestSquareController.java
  4. 0 19
      site/src/main/java/com/mooctest/crowd/site/data/dto/CrowdTestSquareIndexDTO.java
  5. 7 3
      site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java
  6. 4 0
      site/src/main/java/com/mooctest/crowd/site/service/CrowdProjectService.java
  7. 3 4
      site/src/main/java/com/mooctest/crowd/site/service/CrowdTaskService.java
  8. 1 0
      site/src/main/java/com/mooctest/crowd/site/service/ThemeStatusService.java
  9. 7 0
      site/src/main/java/com/mooctest/crowd/site/service/ThemeStatusTaskService.java
  10. 27 1
      site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdProjectServiceImpl.java
  11. 18 4
      site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdTaskServiceImpl.java
  12. 1 1
      site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdTestSquareServiceImpl.java
  13. 17 3
      site/src/main/java/com/mooctest/crowd/site/service/impl/ThemeStatusServiceImpl.java
  14. 31 0
      site/src/main/java/com/mooctest/crowd/site/service/impl/ThemeStatusTaskServiceImpl.java
  15. 0 0
      site/src/main/java/com/mooctest/crowd/site/service/impl/UserServiceImpl.java
  16. 1 1
      site/src/main/java/com/mooctest/crowd/site/util/DataUtils.java
  17. 39 16
      site/src/test/java/com/mooctest/crowd/site/SiteApplicationTests.java

+ 6 - 3
core/src/main/java/com/mooctest/crowd/domain/dao/CrowdTestProjectDao.java

@@ -27,23 +27,26 @@ public interface CrowdTestProjectDao extends CrudRepository<CrowdTestProjectPO,
     //    @Override
 //    Optional<CrowdTestProjectPO> findById(Long id);
 
+
     List<CrowdTestProjectPO> findByNameLike(String name);
 
     @Query(value = "SELECT * FROM crowd_test_project ORDER BY CTP_CREATE_TIME DESC", nativeQuery = true)
     List<CrowdTestProjectPO> findMoreHotProjects();
 
 
-    @Query(value = "SELECT * FROM crowd_test_project p WHERE CTP_STATUS !=4 ORDER BY CTP_CREATE_TIME DESC", nativeQuery = true)
+    @Query(value = "SELECT * FROM crowd_test_project p WHERE CTP_STATUS !=4 and CTP_STATUS !=5 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)
+    @Query(value = "SELECT * FROM crowd_test_project p WHERE CTP_STATUS !=4 and CTP_STATUS !=5 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 and CTP_STATUS !=5 ORDER BY CTP_JOIN_COUNT DESC ,CTP_CREATE_TIME; ", nativeQuery = true)
+    List<CrowdTestProjectPO> findAllHotProject();
 
     //这个指定了查询条数 适用于众测广场首页 这样性能会高一点对应热门项目
-    @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)
+    @Query(value = "SELECT * FROM crowd_test_project p WHERE CTP_STATUS !=4 and CTP_STATUS !=5 ORDER BY CTP_JOIN_COUNT DESC ,CTP_CREATE_TIME LIMIT 7; ", nativeQuery = true)
     List<CrowdTestProjectPO> findall();
 
     Page<CrowdTestProjectPO> findAll(Specification<CrowdTestProjectPO> spec, Pageable pageable);

+ 16 - 12
core/src/main/java/com/mooctest/crowd/domain/dao/CrowdTestTaskDao.java

@@ -23,21 +23,25 @@ import java.util.List;
 public interface CrowdTestTaskDao extends CrudRepository<CrowdTestTaskPO, Long>, JpaRepository<CrowdTestTaskPO, Long>, PagingAndSortingRepository<CrowdTestTaskPO, Long> {
 
 
- @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 where CTT_STATUS=1 or CTT_STATUS=2 ORDER BY CTT_CREATE_TIME DESC",nativeQuery = true)
-  List<CrowdTestTaskPO> findAll();
+    @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 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 * FROM  crowd_test_task  ORDER BY CTT_CREATE_TIME DESC LIMIT 6 ", nativeQuery = true)
+    List<CrowdTestTaskPO> findindexTask();
 
 
-//热门任务
- @Query(value = "select * FROM  crowd_test_task  ORDER BY CTT_ACCEPTED_COUNT DESC,CTT_CREATE_TIME DESC LIMIT 7",nativeQuery = true)
-   List<CrowdTestTaskPO> findMoreHotTasks();
+    //热门任务
+    @Query(value = "select * FROM  crowd_test_task WHERE CTT_STATUS !=4 and CTT_STATUS !=5  ORDER BY CTT_ACCEPTED_COUNT DESC,CTT_CREATE_TIME DESC LIMIT 7", nativeQuery = true)
+    List<CrowdTestTaskPO> findMoreHotTasks();
 
-   List<CrowdTestTaskPO>  findByNameLike(String name);
+    //热门任务
+    @Query(value = "select * FROM  crowd_test_task WHERE CTT_STATUS !=4 and CTT_STATUS !=5  ORDER BY CTT_ACCEPTED_COUNT DESC,CTT_CREATE_TIME", nativeQuery = true)
+    List<CrowdTestTaskPO> findMoreHotTasksList();
+
+    List<CrowdTestTaskPO> findByNameLike(String name);
 
     Page<CrowdTestTaskPO> findAll(Specification specification, Pageable pageable);
 
@@ -67,6 +71,6 @@ public interface CrowdTestTaskDao extends CrudRepository<CrowdTestTaskPO, Long>,
     <S extends CrowdTestTaskPO> S save(S s);
 
     @Modifying
-    @Query(nativeQuery = true,value="update crowd_test_task set CTT_STATUS= ?1 where CTT_CODE=?2")
+    @Query(nativeQuery = true, value = "update crowd_test_task set CTT_STATUS= ?1 where CTT_CODE=?2")
     void updateStatusById(@Param("status") int status, @Param("code") String code);
 }

+ 34 - 1
site/src/main/java/com/mooctest/crowd/site/controller/CrowTestSquareController.java

@@ -1,8 +1,11 @@
 package com.mooctest.crowd.site.controller;
 
+import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
+import com.mooctest.crowd.domain.domainobject.CrowdTestProjectStatus;
 import com.mooctest.crowd.site.data.dto.CrowdTestSquareIndexDTO;
 import com.mooctest.crowd.site.data.response.ResponseVO;
 import com.mooctest.crowd.site.data.response.ServerCode;
+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.data.vo.SearchConditionVO;
@@ -45,7 +48,7 @@ public class CrowTestSquareController extends BaseSearchController {
      * @return
      */
     @GetMapping("/list")
-    public ResponseVO getAll(){
+    public ResponseVO getAll() {
         CrowdTestSquareIndexDTO crowdTestSquareIndexDTO = new CrowdTestSquareIndexDTO();
         List<CrowdTestProjectVO> list = crowdProjectService.findIndexProject();
         List<CrowdTaskVO> crowdTestTasks = crowdTaskService.findAll();
@@ -81,6 +84,21 @@ public class CrowTestSquareController extends BaseSearchController {
     }
 
     /**
+     * 更多热门项目列表
+     *
+     * @param searchConditionVO
+     * @return
+     */
+
+    @PostMapping("/hotProject/list")
+    public ResponseVO findMoreHotProjectLists(@RequestBody SearchConditionVO searchConditionVO) {
+        Pageable pageable = this.getPageable(searchConditionVO);
+        List<CrowdProjectVO> crowdTestProjectVOList = crowdProjectService.findAllMoreHotProjectList(searchConditionVO.getKeyword());
+        Page<CrowdProjectVO> projectVOPage = DataUtils.listToPage(crowdTestProjectVOList, pageable);
+        return new ResponseVO(ServerCode.SUCCESS, projectVOPage);
+    }
+
+    /**
      * 获取更多热门任务
      *
      * @param searchConditionVO
@@ -96,6 +114,21 @@ public class CrowTestSquareController extends BaseSearchController {
 
     }
 
+    /**
+     * 更多热门任务列表
+     *
+     * @param searchConditionVO
+     * @return
+     */
+
+    @PostMapping("/hotTasks/list")
+    public ResponseVO findMoreHotTasksList(@RequestBody SearchConditionVO searchConditionVO) {
+        Pageable pageable = this.getPageable(searchConditionVO);
+        List<CrowdTaskVO> crowdTestProjectVOList = crowdTaskService.findMoreHotTasksList(searchConditionVO.getKeyword());
+        Page<CrowdTaskVO> taskVOPage = DataUtils.listToPage(crowdTestProjectVOList, pageable);
+        return new ResponseVO(ServerCode.SUCCESS, taskVOPage);
+    }
+
 
     @Override
     public Page<?> search(String searchCondition) {

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

@@ -23,23 +23,4 @@ public class CrowdTestSquareIndexDTO {
     private List<CrowdTestProjectVO> hotCrowdTestProjectVOs;
     //热门任务
     private List<CrowdTaskVO> hotCrowdTaskVOs;
-
-
-    /**
-     * 初始化热门任务 ,热门项目
-     */
-    public void initHotTaskAndProject(){
-        List<CrowdTestProjectVO> projectVOS = this.crowdTestProjectVOs;
-        this.crowdTestProjectVOs = projectVOS.size() <= 6 ? projectVOS : projectVOS.subList(0, 6);
-        
-
-        //根据参与人数和创建时间进行排序
-        List<CrowdTestProjectVO> list1 = projectVOS.stream().sorted(Comparator.comparing(CrowdTestProjectVO::getJoinCount).reversed()).collect(Collectors.toList());
-        //截取前七条
-        this.hotCrowdTestProjectVOs = list1.size() <= 7 ? list1 :list1.subList(0, 7);
-        List<CrowdTaskVO> tasklist1 = crowdTestTaskVOS.size() <= 6 ? crowdTestTaskVOS : crowdTestTaskVOS.subList(0, 6);
-        List<CrowdTaskVO> tasklist2 = crowdTestTaskVOS.stream().sorted(Comparator.comparing(CrowdTaskVO::getAcceptedCount).reversed()).collect(Collectors.toList());
-        this.hotCrowdTaskVOs = tasklist2.size() <= 7 ? tasklist2 : tasklist2.subList(0, 7);
-        this.crowdTestTaskVOS = tasklist1;
-    }
 }

+ 7 - 3
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -23,6 +23,7 @@ import com.mooctest.crowd.site.data.enums.RoleType;
 import com.mooctest.crowd.site.data.vo.*;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.service.ThemeStatusService;
+import com.mooctest.crowd.site.service.ThemeStatusTaskService;
 import lombok.extern.slf4j.Slf4j;
 import org.codehaus.jettison.json.JSONException;
 import org.jetbrains.annotations.NotNull;
@@ -124,6 +125,9 @@ public class WebMediatorImpl implements ViewMediator {
     @Autowired
     private ThemeStatusService themeStatusService;
 
+    @Autowired
+    private ThemeStatusTaskService themeStatusTaskService;
+
 
     @Override
     public List<CrowdTestProjectVO> crowdTestProjects() {
@@ -623,7 +627,6 @@ public class WebMediatorImpl implements ViewMediator {
                             if (crowdTestTaskPO != null) {
                                 CrowdTestTask task = new CrowdTestTask();
                                 BeanUtils.copyProperties(crowdTestTaskPO, task);
-
                                 // 测试类型的转换
                                 Optional<TestTypePO> testTypePO = testTypeDao.findByCode(task.getType());
                                 if (!testTypePO.isPresent()) {
@@ -1072,11 +1075,12 @@ public class WebMediatorImpl implements ViewMediator {
     }
 
     @Override
-    public List<CrowdTestProjectVO> AllByPage() {
+    public List<CrowdTestProjectVO> AllByPage(){
         List<CrowdTestProjectVO> authingList = new ArrayList<>();
-        authingList.addAll(projectDao.findAll().stream().map(crowdTestProjectPO -> {
+        authingList.addAll(projectDao.findAll().stream().map(crowdTestProjectPO ->{
             CrowdTestProject crowdTestProject = new CrowdTestProject();
             BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
+            themeStatusService.updateStatus(crowdTestProject);
             return new CrowdTestProjectVO(crowdTestProject);
         }).collect(Collectors.toList()));
         return authingList;

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

@@ -4,6 +4,7 @@ import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
 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.CrowdProjectVO;
 import com.mooctest.crowd.site.data.vo.CrowdTestProjectVO;
 import com.mooctest.crowd.site.data.vo.RegionalManagerVO;
 import org.springframework.data.domain.Pageable;
@@ -19,8 +20,11 @@ import java.util.List;
 public interface CrowdProjectService {
 
     List<CrowdTestProjectVO>    findIndexProject();
+
     List<CrowdTestProjectVO>  findAllMoreHotProjects();
 
+    List<CrowdProjectVO>  findAllMoreHotProjectList(String keyword);
+
     List<CrowdTestProjectVO> findByNameLike(String name);
 
     List<CrowdTestProjectVO> findAll(Pageable pageable);

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

@@ -1,13 +1,10 @@
 package com.mooctest.crowd.site.service;
 
-import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
 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;
 
 /**
@@ -42,4 +39,6 @@ List<CrowdTaskVO> findIndexCrwodTasks();
     TaskDetailsDTO commitTask(String projectCode, String taskCode, Long userId);
 
     TaskDetailsDTO confirmFinish(String projectCode, String taskCode, Long userId);
+
+    List<CrowdTaskVO> findMoreHotTasksList(String keyword);
 }

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

@@ -1,5 +1,6 @@
 package com.mooctest.crowd.site.service;
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
+import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
 
 
 public interface ThemeStatusService {

+ 7 - 0
site/src/main/java/com/mooctest/crowd/site/service/ThemeStatusTaskService.java

@@ -0,0 +1,7 @@
+package com.mooctest.crowd.site.service;
+import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
+
+
+public interface ThemeStatusTaskService {
+    Integer updateStatus(CrowdTestTask crowdTestTask);
+}

+ 27 - 1
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdProjectServiceImpl.java

@@ -6,7 +6,9 @@ import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.BadRequestException;
 import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.exception.Excel2ProjectException;
+import com.mooctest.crowd.domain.exception.HttpBadRequestException;
 import com.mooctest.crowd.domain.factory.CrowdTestProjectFactory;
+import com.mooctest.crowd.domain.model.ApplicationTypePO;
 import com.mooctest.crowd.domain.model.UserTaskCountPO;
 import com.mooctest.crowd.domain.model.UserToRolePO;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
@@ -24,6 +26,7 @@ import com.mooctest.crowd.site.mediator.OperationMediator;
 import com.mooctest.crowd.site.mediator.ViewMediator;
 import com.mooctest.crowd.site.service.CrowdProjectService;
 import com.mooctest.crowd.site.service.ThemeSchedulerService;
+import com.mooctest.crowd.site.service.ThemeStatusService;
 import com.mooctest.crowd.site.util.GenerateFlowCodeUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -38,7 +41,6 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.IOException;
 import java.sql.Timestamp;
 import java.util.ArrayList;
-import java.util.Comparator;
 import java.util.List;
 import java.util.Optional;
 import java.util.regex.Matcher;
@@ -55,6 +57,8 @@ import java.util.stream.Collectors;
 @Service
 public class CrowdProjectServiceImpl implements CrowdProjectService {
     @Autowired
+    private ThemeStatusService themeStatusService;
+    @Autowired
     private  CrowdTestProjectDao projectDao;
     @Autowired
     private RoleDao roleDao;
@@ -106,10 +110,32 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
     }
 
     @Override
+    public List<CrowdProjectVO> findAllMoreHotProjectList(String keyword){
+        List<CrowdProjectVO> crowdProjectVOS = projectDao.findAllHotProject().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 CrowdProjectVO(crowdTestProject);
+        }).collect(Collectors.toList());
+        if(keyword != null && keyword != ""){
+            crowdProjectVOS = crowdProjectVOS.stream().filter(crowdProjectVO -> crowdProjectVO.getName().contains(keyword)).collect(Collectors.toList());
+        }
+        return crowdProjectVOS;
+    }
+
+    @Override
     public List<CrowdTestProjectVO> findByNameLike(String name) {
         if (name == null || name.trim().equals("")){
+            System.out.println("进来进来");
             return viewMediator.AllByPage();
         }
+
         return viewMediator.findByNameLike(name);
 
     }

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

@@ -2,7 +2,10 @@ package com.mooctest.crowd.site.service.impl;
 
 import com.mooctest.crowd.domain.dao.CrowdTestTaskDao;
 import com.mooctest.crowd.domain.dao.EvaluationAgencyDao;
-import com.mooctest.crowd.domain.domainobject.*;
+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.domainobject.DistributeType;
 import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.exception.CrowdTestTaskNotExistException;
 import com.mooctest.crowd.domain.exception.UnauthorizedException;
@@ -15,7 +18,6 @@ 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;
@@ -24,9 +26,7 @@ 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;
 import java.util.stream.Collectors;
@@ -73,6 +73,20 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     }
 
     @Override
+    public List<CrowdTaskVO> findMoreHotTasksList(String keyword){
+        List<CrowdTaskVO> crowdTaskVOS = taskDao.findMoreHotTasksList().stream().map(crowdTestTaskPO -> {
+            CrowdTestTask task = new CrowdTestTask();
+            BeanUtils.copyProperties(crowdTestTaskPO, task);
+            return new CrowdTaskVO(task);
+        }).collect(Collectors.toList());
+        if(keyword != null && keyword != ""){
+            crowdTaskVOS = crowdTaskVOS.stream().filter(crowdTaskVO -> crowdTaskVO.getTitle().contains(keyword)).collect(Collectors.toList());
+        }
+        return crowdTaskVOS;
+    }
+
+
+    @Override
     public List<CrowdTaskVO> findIndexTask() {
         List<CrowdTaskVO> authingList = new ArrayList<>();
         authingList.addAll(taskDao.findindexTask().stream().map(crowdTestProjectPO -> {

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

@@ -39,7 +39,7 @@ public class CrowdTestSquareServiceImpl implements CrowdTestSquareService {
     private CrowdTaskService crowdTaskService;
 
     @Override
-    public ResponseVO findByNameLike(SearchConditionVO searchConditionVO) {
+    public ResponseVO findByNameLike(SearchConditionVO searchConditionVO){
         Map<String, String> extraCondition = searchConditionVO.getColumnFilters() == null ? new HashMap<>() : this.getExtraCondition(searchConditionVO);
         Pageable pageable = this.getPageable(searchConditionVO);
         String keyword = searchConditionVO.getKeyword();

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

@@ -2,16 +2,26 @@ package com.mooctest.crowd.site.service.impl;
 
 import com.mooctest.crowd.domain.dao.CrowdTestProjectDao;
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
+import com.mooctest.crowd.domain.domainobject.CrowdTestProjectStatus;
+import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
 import com.mooctest.crowd.site.service.ThemeStatusService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.sql.Timestamp;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Optional;
+
 /**
  * @program: crowd
  * @author: hanyuwei
  * @create: 2020-07-13 13:11
  **/
 @Service
+@Slf4j
 public class ThemeStatusServiceImpl implements ThemeStatusService {
 
     @Autowired
@@ -19,12 +29,16 @@ public class ThemeStatusServiceImpl implements ThemeStatusService {
 
     @Override
     public Integer updateStatus(CrowdTestProject crowdTestProject) {
+
         int status = 0;
+
         long curr = System.currentTimeMillis();
-        if (crowdTestProject.getDeadTime().getTime() < curr) {
-            status = CrowdTestProject.HAS_TIME_OUT;
+        if ((crowdTestProject.getDeadTime().before(new Timestamp(System.currentTimeMillis())))) {
+           Optional<CrowdTestProjectPO> crowdTestProjectPO =crowdTestProjectDao.findById(crowdTestProject.getId());
+           CrowdTestProjectPO crowdTestProjectPO1=crowdTestProjectPO.get();
+            crowdTestProjectPO1.setStatus(CrowdTestProjectStatus.HAS_TIME_OUT);
+            crowdTestProjectDao.save(crowdTestProjectPO1);
         }
-        crowdTestProjectDao.updateStatusById(status,crowdTestProject.getCode());
         return status;
     }
 }

+ 31 - 0
site/src/main/java/com/mooctest/crowd/site/service/impl/ThemeStatusTaskServiceImpl.java

@@ -0,0 +1,31 @@
+package com.mooctest.crowd.site.service.impl;
+
+import com.mooctest.crowd.domain.dao.CrowdTestTaskDao;
+import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
+import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
+import com.mooctest.crowd.site.service.ThemeStatusTaskService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @program: crowd
+ * @author: hanyuwei
+ * @create: 2020-07-13 13:11
+ **/
+@Service
+public class ThemeStatusTaskServiceImpl implements ThemeStatusTaskService {
+
+    @Autowired
+    private CrowdTestTaskDao crowdTestTaskDao;
+
+    @Override
+    public Integer updateStatus(CrowdTestTask crowdTestTask) {
+        int status = 0;
+        long curr = System.currentTimeMillis();
+        if (crowdTestTask.getDeadTime().getTime() < curr) {
+            status = CrowdTestProject.HAS_TIME_OUT;
+        }
+        crowdTestTaskDao.updateStatusById(status,crowdTestTask.getCode());
+        return status;
+    }
+}

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


+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/util/DataUtils.java

@@ -61,7 +61,7 @@ public class DataUtils {
     }
 
     private static <T> PageImpl<T> getRealSubList(int pageStart, int expectPageEnd, List<T> list, Pageable pageable) {
-        int realPageEnd = (list.size() > expectPageEnd || list.size() == expectPageEnd) ? expectPageEnd + 1 : list.size();
+        int realPageEnd = (list.size() > expectPageEnd) ? expectPageEnd + 1 : list.size();
         return new PageImpl<>(list.subList(pageStart, realPageEnd), pageable, list.size());
     }
 

+ 39 - 16
site/src/test/java/com/mooctest/crowd/site/SiteApplicationTests.java

@@ -1,16 +1,39 @@
-//package com.mooctest.crowd.site;
-//
-//import com.mooctest.crowd.site.service.AgencyService;
-//import org.junit.runner.RunWith;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.boot.test.context.SpringBootTest;
-//import org.springframework.test.context.junit4.SpringRunner;
-//
-//@RunWith(SpringRunner.class)
-//@SpringBootTest
-//public class SiteApplicationTests {
-//    @Autowired
-//    private AgencyService agencyService;
-//
-//
-//}
+package com.mooctest.crowd.site;
+
+import com.mooctest.crowd.domain.dao.CrowdTestProjectDao;
+import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
+import com.mooctest.crowd.site.service.AgencyService;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.Optional;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class SiteApplicationTests {
+    @Autowired
+    private CrowdTestProjectDao  crowdTestProjectDao;
+
+    @Test
+    public  void test(){
+        Optional<CrowdTestProjectPO> crowdTestProjectPO=crowdTestProjectDao.findById(223l);
+         CrowdTestProjectPO crowdTestProjectPO1=crowdTestProjectPO.get();
+         crowdTestProjectPO1.setStatus(5);
+         crowdTestProjectDao.save(crowdTestProjectPO1);
+
+
+
+
+
+    }
+
+
+
+
+
+
+
+}

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