|
@@ -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;
|