Browse Source

我的众测页面获取页面信息,查询方式修改,加快速度

xuexiaobo 6 years ago
parent
commit
e965735183

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

@@ -23,7 +23,6 @@ public interface CrowdTestTaskDao extends CrudRepository<CrowdTestTaskPO, Long>
     List<CrowdTestTaskPO> findByEvaluationAgencyIdAndIsDeleted(Long evaluationAgencyId, int isDeleted);
 
     List<CrowdTestTaskPO> findAllByIsDeleted(int isDeleted);
-
     @Override
     void delete(CrowdTestTaskPO crowdTestProjectPO);
 

+ 29 - 17
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -1,5 +1,7 @@
 package com.mooctest.crowd.site.mediator.impl;
 
+import com.mooctest.crowd.domain.dao.CrowdTestProjectDao;
+import com.mooctest.crowd.domain.dao.CrowdTestTaskDao;
 import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.AccountNotExistException;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
@@ -10,6 +12,7 @@ import com.mooctest.crowd.site.data.dto.*;
 import com.mooctest.crowd.site.data.vo.*;
 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.stereotype.Component;
 
@@ -34,8 +37,10 @@ public class WebMediatorImpl implements ViewMediator {
     private UserRepo userRepo;
 
     @Autowired
-    private EvaluationAgencyRepo agencyResourceRepo;
+    private CrowdTestTaskDao taskDao;
 
+    @Autowired
+    private CrowdTestProjectDao projectDao;
 
     @Override
     public UserDTO loginByMobileAndPwd(LoginCommand cmd) {
@@ -142,28 +147,35 @@ public class WebMediatorImpl implements ViewMediator {
     @Override
     public MyCrowdDTO renderMyCrowd(Long userId) {
         User user = userRepo.getByID(userId);
-        List<CrowdProjectVO> proejcts = projectRepo.getCrowdListByUserId(userId).stream()
-                .map(project -> new CrowdProjectVO(project)).collect(Collectors.toList());
-        UserVO userVO = new UserVO(userRepo.getByID(userId));
+        List<CrowdProjectVO> proejcts = projectDao.findByUserIdAndIsDeleted(userId, DeletedStatus.isNotDeleted)
+                .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.setUserVO(userVO);
 
         if (user.getEvaluationAgency() == null)
             return myCrowdDTO;
-
-        List<CrowdTaskVO> unfinishedTasks = new ArrayList<>();
-        List<CrowdTaskVO> finishedTasks = new ArrayList<>();
-        projectRepo.getAllCrowdTestProject().forEach(project -> {
-            project.getCrowdTestTaskList().forEach(crowdTestTask -> {
-                if (crowdTestTask.getEvaluationAgencyId() == user.getEvaluationAgency().getId())
-                    if (crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_FINISHED)
-                        finishedTasks.add(new CrowdTaskVO(crowdTestTask));
-                    else if (CrowdTestTaskStatus.HAS_RECEIVED<=crowdTestTask.getStatus() && crowdTestTask.getStatus() <CrowdTestTaskStatus.HAS_FINISHED)
-                        unfinishedTasks.add(new CrowdTaskVO(crowdTestTask));
-            });
-        });
-
+        List<CrowdTestTask> allTaskOfAgency = null;
+        List<CrowdTaskVO> unfinishedTasks = null;
+        List<CrowdTaskVO> finishedTasks = null;
+        if (user.getEvaluationAgency()!=null) {
+            allTaskOfAgency = taskDao.findByEvaluationAgencyIdAndIsDeleted(user.getEvaluationAgency().getId(), 0).stream()
+                    .map(crowdTestTaskPO -> {
+                        CrowdTestTask task = new CrowdTestTask();
+                        BeanUtils.copyProperties(crowdTestTaskPO, task);
+                        return task;
+                    }).collect(Collectors.toList());
+            unfinishedTasks = allTaskOfAgency.stream()
+                    .filter(crowdTestTask -> crowdTestTask.getStatus()<CrowdTestTaskStatus.HAS_FINISHED)
+                    .map(CrowdTaskVO::new).collect(Collectors.toList());
+            finishedTasks = allTaskOfAgency.stream()
+                    .filter(crowdTestTask -> crowdTestTask.getStatus()==CrowdTestTaskStatus.HAS_FINISHED)
+                    .map(CrowdTaskVO::new).collect(Collectors.toList());
+        }
         myCrowdDTO.setFinishedTasks(finishedTasks);
         myCrowdDTO.setUnfinishedTasks(unfinishedTasks);
         return myCrowdDTO;