Browse Source

Merge branch 'feature-domain-implement' of ssh://git.mooctest.com:1022/crowd-2019/crowd-test-service-backend into feature-domain-implement

guochao 6 years ago
parent
commit
dbf657aecc

+ 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);
 

+ 0 - 1
core/src/main/java/com/mooctest/crowd/domain/domainobject/User.java

@@ -221,7 +221,6 @@ public class User {
                 }
             }
             crowdTestTaskListResult.add(crowdTestTask);
-
         }
         crowdTestProject.setCrowdTestTaskList(crowdTestTaskListResult);
         return crowdTestProject;

+ 5 - 0
core/src/main/java/com/mooctest/crowd/domain/factory/CrowdTestProjectFactory.java

@@ -51,4 +51,9 @@ public class CrowdTestProjectFactory {
         report.setIsDeleted(0);
         return report;
     }
+
+    public static CrowdTestTask defaultTask() {
+        CrowdTestTask task = new CrowdTestTask();
+        return task;
+    }
 }

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

+ 13 - 5
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdTaskServiceImpl.java

@@ -1,10 +1,12 @@
 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.domain.domainobject.CrowdTestTaskStatus;
 import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.exception.CrowdTestTaskNotExistException;
+import com.mooctest.crowd.domain.factory.CrowdTestProjectFactory;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
 import com.mooctest.crowd.site.command.CrowdTestTaskCommand;
 import com.mooctest.crowd.site.data.dto.TaskDetailsDTO;
@@ -14,6 +16,7 @@ import com.mooctest.crowd.site.data.vo.CrowdReportVO;
 import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
 import com.mooctest.crowd.site.service.CrowdTaskService;
 import com.mooctest.crowd.site.util.GenerateFlowCodeUtil;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -33,6 +36,9 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     @Autowired
     CrowdTestProjectRepo projectRepo;
 
+    @Autowired
+    CrowdTestTaskDao taskDao;
+
 //    @Autowired
 //    GenerateFlowCodeUtil codeUtil;
 
@@ -56,7 +62,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     public TaskDetailsDTO createTask(String projectCode, CrowdTestTaskCommand command) {
         CrowdTestTask task = command.toCrowdTask(projectCode);
         CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
-        String taskCode = GenerateFlowCodeUtil.generateFlowCode("TASK-"+ ProjectType.getCode(new Integer(command.getType())));
+        String taskCode = GenerateFlowCodeUtil.generateFlowCode("TASK-"+ command.getType());
         task.setCode(taskCode);
         task.setStatus(CrowdTestTaskStatus.HAS_CREATED);
         project.addTask(task);
@@ -86,10 +92,12 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
 
     @Override
     public TaskSquareDTO getAllTasks() {
-        List<CrowdTaskVO> taskVOList = new ArrayList<>();
-        projectRepo.getAllCrowdTestProject().stream().forEach(project -> {
-            taskVOList.addAll(project.getCrowdTestTaskList().stream().filter(crowdTestTask -> crowdTestTask.getStatus()==CrowdTestTaskStatus.HAS_RELEASED).map(crowdTestTask -> new CrowdTaskVO(crowdTestTask)).collect(Collectors.toList()));
-        });
+        List<CrowdTaskVO> taskVOList = taskDao.findAllByIsDeleted(0).stream().map(crowdTestTaskPO -> {
+            CrowdTestTask task = CrowdTestProjectFactory.defaultTask();
+            BeanUtils.copyProperties(crowdTestTaskPO, task);
+            return task;
+        }).collect(Collectors.toList()).stream().filter(crowdTestTask -> crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_RELEASED)
+                .map(CrowdTaskVO::new).collect(Collectors.toList());
         TaskSquareDTO taskSquareDTO = new TaskSquareDTO();
         taskSquareDTO.setCrowdTaskVOList(taskVOList);
         return taskSquareDTO;