Parcourir la source

MOOC-36 修复项目、任务时间截止但状态显示有误问题。

guo00guo il y a 5 ans
Parent
commit
b3dd2c4810

+ 0 - 1
core/src/main/java/com/mooctest/crowd/domain/repository/CommonRepo.java

@@ -205,7 +205,6 @@ public class CommonRepo {
     }
 
     public List<CrowdTestProject> getProjectList(Pageable pageable, String code, String keyword) {
-        System.out.println("code " + code);
         Specifications<CrowdTestProjectPO> where = Specifications.where(getCode(code, keyword));
         //添加排序
         Sort sort = new Sort(Sort.Direction.ASC,"status");

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

@@ -566,7 +566,7 @@ public class WebMediatorImpl implements ViewMediator {
         //我的众测 - 项目相关信息
         //获取我创建的项目列表
         List<CrowdProjectVO> myProejcts = projectDao.findByUserIdAndIsDeleted(userId, DeletedStatus.isNotDeleted)
-                .stream().sorted(Comparator.comparing(CrowdTestProjectPO::getCreateTime).thenComparing(CrowdTestProjectPO::getStatus).reversed()).map(crowdTestProjectPO -> {
+                .stream().map(crowdTestProjectPO -> {
                     CrowdTestProject project = new CrowdTestProject();
                     BeanUtils.copyProperties(crowdTestProjectPO, project);
                     CrowdProjectVO projectVO = new CrowdProjectVO(project);
@@ -575,24 +575,24 @@ public class WebMediatorImpl implements ViewMediator {
                         projectVO.setNeedHandle(true);
                     // 应用类型值的转换
                     projectVO = changeApplicationType(projectVO);
+                    // 判断项目是否截止
+                    if (projectVO.getDatetime().getTime() <= System.currentTimeMillis() && project.getStatus() < CrowdTestProjectStatus.HAS_FINISHED) {
+                        project.setStatus(CrowdTestProjectStatus.HAS_TIME_OUT);
+                    }
                     return projectVO;
-                }).collect(Collectors.toList());
+                }).collect(Collectors.toList()).stream().sorted(Comparator.comparing(CrowdProjectVO::getCreateTime).thenComparing(CrowdProjectVO::getStatus).reversed()).collect(Collectors.toList());
         myCrowdDTO.setMyProjects(myProejcts);
-//        List<CrowdProjectVO> myProject=new ArrayList<>();
-//        List<CrowdProjectVO> finishedProjects=new ArrayList<>();
-//        for(int i=0;i<myProejcts.size();i++){
-//            if(myProejcts.get(i).getStatus()<CrowdTestProjectStatus.HAS_FINISHED){
-//                myProject.add(myProejcts.get(i));
-//                myCrowdDTO.setMyProjects(myProject);
-//            }else if(myProejcts.get(i).getStatus()>=CrowdTestProjectStatus.HAS_FINISHED){
-//                finishedProjects.add(myProejcts.get(i));
-//                myCrowdDTO.setFinishedProjects(finishedProjects);
-//            }
-//        }
 
         //对于区域管理员crowdTestProjectPO -> crowdTestProjectPO.getStatus() > CrowdTestProjectStatus.HAS_RELEASED
         if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("RegionalManager"))) {
             List<CrowdTestProjectPO> crowdTestProjectPOList = projectDao.findByRegionalManagerIdAndIsDeleted(userId, DeletedStatus.isNotDeleted)
+                    .stream().map(crowdTestProjectPO -> {
+                        // 判断项目是否截止
+                        if (crowdTestProjectPO.getDeadTime().getTime() <= System.currentTimeMillis() && crowdTestProjectPO.getStatus() < CrowdTestProjectStatus.HAS_FINISHED) {
+                            crowdTestProjectPO.setStatus(CrowdTestProjectStatus.HAS_TIME_OUT);
+                        }
+                        return crowdTestProjectPO;
+                    }).collect(Collectors.toList())
                     .stream().sorted(Comparator.comparing(CrowdTestProjectPO::getStatus).reversed().thenComparing(CrowdTestProjectPO::getCreateTime).reversed()).collect(Collectors.toList());
             //获取区域管理员正在处理中的项目列表
             myCrowdDTO.setHandlingProjects(crowdTestProjectPOList.stream().filter(crowdTestProjectPO -> crowdTestProjectPO.getStatus() > CrowdTestProjectStatus.HAS_RELEASED).map(crowdTestProjectPO -> {
@@ -649,6 +649,10 @@ public class WebMediatorImpl implements ViewMediator {
                                 // 测试类型的转换
                                 String typeName = commonRepo.getTypeNameByCode(task.getType());
                                 task.setType(typeName);
+                                // 判断任务是否截止
+                                if (task.getDeadTime().getTime() <= System.currentTimeMillis() && task.getStatus() < CrowdTestTaskStatus.HAS_FINISHED) {
+                                    task.setStatus(CrowdTestTaskStatus.HAS_TIME_OUT);
+                                }
                                 return task;
                             }
                             return null;

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

@@ -3,6 +3,7 @@ package com.mooctest.crowd.site.service.impl;
 import com.mooctest.crowd.domain.dao.CrowdTestProjectDao;
 import com.mooctest.crowd.domain.dao.ResourceTypeDao;
 import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
+import com.mooctest.crowd.domain.domainobject.CrowdTestProjectStatus;
 import com.mooctest.crowd.domain.domainobject.User;
 import com.mooctest.crowd.domain.exception.HaveNotAgencyAuthException;
 import com.mooctest.crowd.domain.exception.HaveNotPartAuthException;
@@ -150,12 +151,17 @@ public class CommonServiceImpl implements CommonService {
 
     @Override
     public List<CrowdProjectVO> getProjectList(Pageable pageable, String code,String keyword) {
-        return commonRepo.getProjectList(pageable,code,keyword).stream().map(project->{
+        List<CrowdProjectVO> crowdProjectVOS = commonRepo.getProjectList(pageable, code, keyword).stream().map(project -> {
+            // 判断项目是否截止
+            if (project.getDeadTime().getTime() <= System.currentTimeMillis() && project.getStatus() < CrowdTestProjectStatus.HAS_FINISHED) {
+                project.setStatus(CrowdTestProjectStatus.HAS_TIME_OUT);
+            }
             CrowdProjectVO crowdProjectVO = new CrowdProjectVO(project);
             String applicationName = commonRepo.getApplicationNameByCode(crowdProjectVO.getPlatform());
             crowdProjectVO.setPlatform(applicationName);
             return crowdProjectVO;
         }).collect(Collectors.toList());
+        return crowdProjectVOS;
     }
 
     @Override

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

@@ -129,6 +129,10 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
             // 应用类型值的转换
             String applicationName = commonRepo.getApplicationNameByCode(crowdTestProject.getApplicationType());
             crowdTestProject.setApplicationType(applicationName);
+            // 判断项目是否截止
+            if (crowdTestProject.getDeadTime().getTime() <= System.currentTimeMillis() && crowdTestProject.getStatus() < CrowdTestProjectStatus.HAS_FINISHED) {
+                crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_TIME_OUT);
+            }
             return new CrowdProjectVO(crowdTestProject);
         }).collect(Collectors.toList());
         if (keyword != null && keyword != "") {

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

@@ -73,6 +73,10 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
             BeanUtils.copyProperties(crowdTestTaskPO, task);
             String typeName = commonRepo.getTypeNameByCode(task.getType());
             task.setType(typeName);
+            // 判断任务是否截止
+            if (task.getDeadTime().getTime() <= System.currentTimeMillis() && task.getStatus() < CrowdTestTaskStatus.HAS_FINISHED) {
+                task.setStatus(CrowdTestTaskStatus.HAS_TIME_OUT);
+            }
             return new CrowdTaskVO(task);
         }).collect(Collectors.toList());
         if (keyword != null && keyword != "") {