瀏覽代碼

我的众测页面,获取三类项目列表

xuexiaobo 6 年之前
父節點
當前提交
c7250e0741

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

@@ -31,6 +31,9 @@ public interface CrowdTestProjectDao extends CrudRepository<CrowdTestProjectPO,
 
     List<CrowdTestProjectPO> findByRegionalManagerIdAndIsDeleted(Long regionalManagerId, int isDeleted);
 
+    List<CrowdTestProjectPO> findAllByStatusLessThanAndProjectDistributionTypeId(Integer status, Long distribution);
+
+    List<CrowdTestProjectPO> findByStatusLessThanAndProjectDistributionTypeIdAndDistributionCity(Integer status, Long distributionType, String cityCode);
 
     @Query(value = "SELECT new com.mooctest.crowd.domain.model.RankInfo(SUM(p.quotedPrice), p.userId) FROM CrowdTestProjectPO p GROUP BY p.userId ORDER BY SUM(p.quotedPrice) DESC")
     List<RankInfo> findTotalPriceOfUser(Pageable pageable);

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

@@ -16,5 +16,8 @@ public class MyCrowdDTO {
     private UserVO userVO;
     private List<CrowdTaskVO> unfinishedTasks;
     private List<CrowdTaskVO> finishedTasks;
-    private List<CrowdProjectVO> crowdProjectVOList;
+    private List<CrowdProjectVO> myProjects;
+    private List<CrowdProjectVO> handlingProjects;
+    private List<CrowdProjectVO> acceptableProjects;
+
 }

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

@@ -3,6 +3,7 @@ package com.mooctest.crowd.site.mediator.impl;
 import com.mooctest.crowd.domain.dao.*;
 import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.AccountNotExistException;
+import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
 import com.mooctest.crowd.domain.model.EvaluationAgencyPO;
 import com.mooctest.crowd.domain.model.RegionalManagerPO;
 import com.mooctest.crowd.domain.model.UserPO;
@@ -16,6 +17,7 @@ import com.mooctest.crowd.site.mediator.ViewMediator;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Component;
@@ -115,15 +117,36 @@ public class WebMediatorImpl implements ViewMediator {
 
     @Override
     public MyCrowdDTO renderMyCrowd(Long userId) {
+        MyCrowdDTO myCrowdDTO = new MyCrowdDTO();
         User user = userRepo.getByID(userId);
-        List<CrowdProjectVO> proejcts = projectDao.findByUserIdAndIsDeleted(userId, DeletedStatus.isNotDeleted)
+        //我的众测 - 项目相关信息
+        //获取我创建的项目列表
+        List<CrowdProjectVO> myProejcts = projectDao.findByUserIdAndIsDeleted(userId, DeletedStatus.isNotDeleted)
                 .stream().map(crowdTestProjectPO -> {
                             CrowdTestProject project = new CrowdTestProject();
                             BeanUtils.copyProperties(crowdTestProjectPO, project);
                             return new CrowdProjectVO(project);}).collect(Collectors.toList());
+        //对于区域管理员
+        if (user.getRegionalManager() != null){
+            //获取区域管理员正在处理中的项目列表
+            myCrowdDTO.setHandlingProjects(projectDao.findByRegionalManagerIdAndIsDeleted(userId, DeletedStatus.isNotDeleted)
+                    .stream().map(crowdTestProjectPO -> {
+                CrowdTestProject project = new CrowdTestProject();
+                BeanUtils.copyProperties(crowdTestProjectPO, project);
+                return new CrowdProjectVO(project); }).collect(Collectors.toList()));
+            //获取区域管理员可以接收领取的项目列表
+            List<CrowdTestProjectPO> acceptableProject = new ArrayList<>();
+            acceptableProject.addAll(projectDao.findAllByStatusLessThanAndProjectDistributionTypeId(CrowdTestProjectStatus.HAS_RECEIVED, 2L));
+            for (Regional regional : user.getRegionalManager().getRegionalList()) {
+                acceptableProject.addAll(projectDao.findByStatusLessThanAndProjectDistributionTypeIdAndDistributionCity(CrowdTestProjectStatus.HAS_RECEIVED, 1L, regional.getId()+""));
+            }
+            myCrowdDTO.setAcceptableProjects(acceptableProject.stream().map(crowdTestProjectPO -> {
+                CrowdTestProject project = new CrowdTestProject();
+                BeanUtils.copyProperties(crowdTestProjectPO, project);
+                return new CrowdProjectVO(project); }).collect(Collectors.toList()));
+        }
         UserVO userVO = new UserVO(user);
-        MyCrowdDTO myCrowdDTO = new MyCrowdDTO();
-        myCrowdDTO.setCrowdProjectVOList(proejcts);
+        myCrowdDTO.setMyProjects(myProejcts);
         myCrowdDTO.setUserVO(userVO);
 
         if (user.getEvaluationAgency() == null)