Explorar el Código

Merge branch 'Test' into 'master'

Test

See merge request crowd-2019/crowd-test-service-backend!129
郭超 hace 5 años
padre
commit
025a7ed716

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

@@ -35,11 +35,11 @@ public interface CrowdTestProjectDao extends CrudRepository<CrowdTestProjectPO,
     List<CrowdTestProjectPO> findAll();
 
     //这个指定了查询条数 适用于众测广场首页 这样性能会高一点。
-    @Query(value = "SELECT * FROM crowd_test_project p WHERE CTP_STATUS =1 and CTP_PDT_ID = 2 and CTP_IS_DELETED = 0 ORDER BY CTP_JOIN_COUNT DESC ,CTP_CREATE_TIME LIMIT 6; ", nativeQuery = true)
+    @Query(value = "SELECT * FROM crowd_test_project p WHERE CTP_STATUS =1 and CTP_PDT_ID = 2 and CTP_IS_DELETED = 0 ORDER BY CTP_CREATE_TIME DESC LIMIT 6; ", nativeQuery = true)
     List<CrowdTestProjectPO> findindexProject();
 
 
-    @Query(value = "SELECT * FROM crowd_test_project p WHERE CTP_STATUS !=4 and CTP_STATUS !=5 and CTP_IS_DELETED = 0 ORDER BY CTP_JOIN_COUNT DESC ,CTP_CREATE_TIME; ", nativeQuery = true)
+    @Query(value = "SELECT * FROM crowd_test_project p WHERE CTP_STATUS !=4 and CTP_STATUS !=5 and CTP_IS_DELETED = 0 ORDER BY CTP_JOIN_COUNT DESC ,CTP_STATUS ASC, CTP_CREATE_TIME DESC; ", nativeQuery = true)
     List<CrowdTestProjectPO> findAllHotProject();
 
     //这个指定了查询条数 适用于众测广场首页 这样性能会高一点对应热门项目

+ 2 - 3
core/src/main/java/com/mooctest/crowd/domain/dao/CrowdTestTaskDao.java

@@ -33,8 +33,7 @@ public interface CrowdTestTaskDao extends CrudRepository<CrowdTestTaskPO, Long>,
     List<CrowdTestTaskPO> findindexTask();
 
 
-    //热门任务
-    @Query(value = "select * FROM crowd_test_task WHERE (CTT_STATUS =1 or (CTT_STATUS =2 and CTT_FULL_STATUS = 0)) and CTT_DISTRIBUTION_TYPE = 2 and CTT_IS_DELETED = 0 ORDER BY CTT_ACCEPTED_COUNT DESC,CTT_CREATE_TIME", nativeQuery = true)
+    @Query(value = "select * FROM crowd_test_task WHERE (CTT_STATUS =1 or (CTT_STATUS =2 and CTT_FULL_STATUS = 0)) and CTT_DISTRIBUTION_TYPE = 2 and CTT_IS_DELETED = 0 ORDER BY CTT_CREATE_TIME DESC", nativeQuery = true)
     List<CrowdTestTaskPO> findCanAcceptTask();
 
     //热门任务
@@ -42,7 +41,7 @@ public interface CrowdTestTaskDao extends CrudRepository<CrowdTestTaskPO, Long>,
     List<CrowdTestTaskPO> findMoreHotTasks();
 
     //热门任务
-    @Query(value = "select * FROM  crowd_test_task WHERE CTT_STATUS !=4 and CTT_STATUS !=5 and CTT_IS_DELETED = 0  ORDER BY CTT_ACCEPTED_COUNT DESC,CTT_CREATE_TIME", nativeQuery = true)
+    @Query(value = "select * FROM  crowd_test_task WHERE CTT_STATUS !=4 and CTT_STATUS !=5 and CTT_IS_DELETED = 0  ORDER BY CTT_ACCEPTED_COUNT DESC, CTT_STATUS ASC ,CTT_CREATE_TIME DESC", nativeQuery = true)
     List<CrowdTestTaskPO> findMoreHotTasksList();
 
     List<CrowdTestTaskPO> findByNameLike(String name);

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

@@ -9,4 +9,5 @@ public class EndPoint {
     private String taskCode;
     private String caseId;
     private String examId;
+    private String serverCode;
 }

+ 4 - 0
core/src/main/java/com/mooctest/crowd/domain/model/EndPointPO.java

@@ -27,4 +27,8 @@ public class EndPointPO {
     @Column(name = "EP_EXAMID")
     private String examId;
 
+    @Column(name = "EP_SERVER_CODE")
+    private String serverCode;
+
+
 }

+ 35 - 12
core/src/main/java/com/mooctest/crowd/domain/repository/CommonRepo.java

@@ -2,13 +2,17 @@ package com.mooctest.crowd.domain.repository;
 
 import com.mooctest.crowd.domain.dao.*;
 import com.mooctest.crowd.domain.domainobject.*;
-import com.mooctest.crowd.domain.exception.*;
+import com.mooctest.crowd.domain.exception.ApplicationTypeNoExistException;
+import com.mooctest.crowd.domain.exception.BadRequestException;
+import com.mooctest.crowd.domain.exception.HttpBadRequestException;
+import com.mooctest.crowd.domain.exception.TestTypeNoExistException;
 import com.mooctest.crowd.domain.model.*;
 import com.mooctest.crowd.domain.util.Converter;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.data.jpa.domain.Specifications;
 import org.springframework.stereotype.Component;
@@ -17,6 +21,7 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Optional;
 import java.util.stream.Collectors;
@@ -199,27 +204,45 @@ public class CommonRepo {
         };
     }
 
-    public Page<CrowdTestProject> getProjectList(Pageable pageable, String code, String keyword) {
-        System.out.println("code " + code);
+    public List<CrowdTestProject> getProjectList(Pageable pageable, String code, String keyword) {
         Specifications<CrowdTestProjectPO> where = Specifications.where(getCode(code, keyword));
-        return crowdTestProjectDao.findAll(where, pageable).map(crowdTestProjectPO -> Converter.convert(CrowdTestProject.class, crowdTestProjectPO));
+        //添加排序
+        Sort sort = new Sort(Sort.Direction.ASC,"status");
+        return crowdTestProjectDao.findAll(where, sort).stream().map(crowdTestProjectPO -> Converter.convert(CrowdTestProject.class, crowdTestProjectPO)).collect(Collectors.toList());
     }
 
     private Specification<CrowdTestProjectPO> getCode(String code, String keyword) {
         return new Specification<CrowdTestProjectPO>() {
+//            @Override
+//            public Predicate toPredicate(Root<CrowdTestProjectPO> a, CriteriaQuery<?> q, CriteriaBuilder cb) {
+//                Predicate predicate = cb.conjunction();
+//                if (code != null) {
+//                    predicate.getExpressions().add(cb.equal(a.get("applicationType"), code));
+//                }
+//                if (keyword != null && keyword != "") {
+//                    predicate.getExpressions().add(
+//                            cb.like(a.<String>get("name"), "%" + StringUtils.trim(keyword) + "%")
+//                    );
+//                }
+////                q.orderBy(cb.desc(a.get("status").as(Integer.class)));
+//                return predicate;
+//            }
+
             @Override
-            public Predicate toPredicate(Root<CrowdTestProjectPO> a, CriteriaQuery<?> q, CriteriaBuilder cb) {
-                Predicate predicate = cb.conjunction();
+            public Predicate toPredicate(Root<CrowdTestProjectPO> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
+                //用于暂时存放查询条件的集合
+                List<Predicate> predicatesList = new ArrayList<>();
                 if (code != null) {
-                    predicate.getExpressions().add(cb.equal(a.get("applicationType"), code));
+                    Predicate codePredicate = cb.equal(root.get("applicationType"), code);
+                    predicatesList.add(codePredicate);
                 }
                 if (keyword != null && keyword != "") {
-                    predicate.getExpressions().add(
-                            cb.like(a.<String>get("name"), "%" + StringUtils.trim(keyword) + "%")
-                    );
+                    Predicate namePredicate = cb.like(root.get("name"), '%'+StringUtils.trim(keyword)+'%');
+                    predicatesList.add(namePredicate);
                 }
-//                q.orderBy(cb.desc(a.get("status").as(Integer.class)));
-                return predicate;
+                //最终将查询条件拼好然后return
+                Predicate[] predicates = new Predicate[predicatesList.size()];
+                return cb.and(predicatesList.toArray(predicates));
             }
         };
     }

+ 7 - 2
core/src/main/java/com/mooctest/crowd/domain/repository/CrowdTestProjectRepo.java

@@ -173,10 +173,15 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
                             endPointDao.save(addEndPointPO);
                         }else{
                             EndPointPO addEndPointPO = new EndPointPO();
-                            addEndPointPO.setCaseId(endPoint.getCaseId());
-                            addEndPointPO.setExamId(endPoint.getExamId());
+                            if(endPoint.getExamId() != null){
+                                addEndPointPO.setExamId(endPoint.getExamId());
+                            }
+                            if(endPoint.getCaseId() != null){
+                                addEndPointPO.setCaseId(endPoint.getCaseId());
+                            }
                             addEndPointPO.setProjectCode(crowdTestProject.getCode());
                             addEndPointPO.setTaskCode(crowdTestTask.getCode());
+                            addEndPointPO.setServerCode(endPoint.getServerCode());
                             endPointDao.save(addEndPointPO);
                         }
                     }

+ 17 - 3
site/src/main/java/com/mooctest/crowd/site/command/CrowdTestTaskCommand.java

@@ -44,7 +44,7 @@ public class CrowdTestTaskCommand {
 
     private int participantCount;
 
-    private EndPoint endpoint;
+    private EndPoint endPoint;
 
     public boolean isLegal(){
         if (this.resource == 1 && this.location == null)
@@ -72,9 +72,23 @@ public class CrowdTestTaskCommand {
         crowdTestTask.setRequirementFile(requirementFile);
         crowdTestTask.setParticipantCount(participantCount);
 
-        if(endpoint != null && endpoint.getCaseId() != null && endpoint.getExamId() != null){
-            crowdTestTask.setEndPoint(endpoint);
+        //http://59.42.10.17:8081/report/detail/examId_50/caseId_50/userId
+        if(endPoint.getServerCode() != null && endPoint.getServerCode() != ""){
+            String serverCode = endPoint.getServerCode();
+            if(serverCode.contains("examId_")){
+                endPoint.setExamId(serverCode.split("examId_")[1].split("/")[0]);
+                serverCode = serverCode.replaceFirst("examId_","");
+            }
+            if(serverCode.contains("caseId_")){
+                endPoint.setCaseId(serverCode.split("caseId_")[1].split("/")[0]);
+                serverCode = serverCode.replaceFirst("caseId_","");
+            }
+            endPoint.setServerCode(serverCode);
+            crowdTestTask.setEndPoint(endPoint);
         }
+//        if(endpoint != null && endpoint.getCaseId() != null && endpoint.getExamId() != null){
+//            crowdTestTask.setEndPoint(endpoint);
+//        }
         return crowdTestTask;
     }
 

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CommonController.java


+ 1 - 2
site/src/main/java/com/mooctest/crowd/site/data/vo/EndPointVO.java

@@ -12,8 +12,7 @@ import org.springframework.beans.BeanUtils;
  **/
 @Data
 public class EndPointVO {
-    private String caseId;
-    private String examId;
+    private String serverCode;
 
     public EndPointVO(EndPoint endPoint){
         BeanUtils.copyProperties(endPoint, this);

+ 31 - 28
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,25 +575,25 @@ 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().sorted(Comparator.comparing(CrowdTestProjectPO::getCreateTime).thenComparing(CrowdTestProjectPO::getStatus).reversed()).collect(Collectors.toList());
+                    .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 -> {
                 CrowdTestProject project = new CrowdTestProject();
@@ -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;
@@ -897,8 +901,8 @@ public class WebMediatorImpl implements ViewMediator {
 
         CrowdTaskVO taskVO = new CrowdTaskVO(task.get());
         // 测试类型的转换
-        String typeName = commonRepo.getTypeNameByCode(taskVO.getServiceType());
-        taskVO.setServiceType(typeName);
+//        String typeName = commonRepo.getTypeNameByCode(taskVO.getServiceType());
+//        taskVO.setServiceType(typeName);
 
         System.out.println("renderTaskDetails userId:" + userId);
         if (userId == null) {
@@ -958,12 +962,7 @@ public class WebMediatorImpl implements ViewMediator {
             // 判断是否具有配置项,提供跳转url
             if(endPointPOOptional.isPresent()){
                 // 获取测试类型对应的跳转url
-                TestType testType = commonRepo.getTestTypeByAppCode(task.get().getType());
-                String url = testType.getUrl();
-                String reportUrl = url.replace("examId", endPointPOOptional.get().getExamId())
-                        .replace("caseId", endPointPOOptional.get().getCaseId())
-                        .replace("userId", String.valueOf(userId));
-
+                String reportUrl = endPointPOOptional.get().getServerCode().replace("userId", String.valueOf(userId));
                 taskVO.setWriteReportUrl(reportUrl);
             }
         }
@@ -1080,7 +1079,7 @@ public class WebMediatorImpl implements ViewMediator {
             CrowdTestProject crowdTestProject = new CrowdTestProject();
             BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
             return new CrowdTestProjectVO(crowdTestProject);
-        }).collect(Collectors.toList()));
+        }).collect(Collectors.toList()).stream().sorted(Comparator.comparing(CrowdTestProjectVO::getCreateTime).reversed()).collect(Collectors.toList()));
         return authingList;
     }
 
@@ -1094,7 +1093,7 @@ public class WebMediatorImpl implements ViewMediator {
             BeanUtils.copyProperties(crowdTestTaskPO, crowdTestTask);
             crowdTestTask.setType(serviceType.get().getName());
             return new CrowdTaskVO(crowdTestTask);
-        }).collect(Collectors.toList()));
+        }).collect(Collectors.toList()).stream().sorted(Comparator.comparing(CrowdTaskVO::getCreateTime).reversed()).collect(Collectors.toList()));
         return authingList;
     }
 
@@ -1622,6 +1621,10 @@ public class WebMediatorImpl implements ViewMediator {
                 || (user.getRegionalManager() != null && user.getId().equals(project.getRegionalManagerId()))) {
             if (task.getStatus() < CrowdTestTaskStatus.HAS_RECEIVED) {
                 taskOperationControl.setUpdate(true);
+                // 具有配置项,需要在第三方进行填写报告
+                if(endPointPOOptional.isPresent()){
+                    taskOperationControl.setWriteReport(true);
+                }
             }
             else{
                 if ((task.getParticipantHasCommittedCount() == task.getAcceptedCount() && task.getStatus() == CrowdTestTaskStatus.HAS_RECEIVED) || (task.getParticipantHasCommittedCount() == task.getParticipantCount() && task.getStatus() == CrowdTestTaskStatus.HAS_COMMITED)) {
@@ -1690,10 +1693,10 @@ public class WebMediatorImpl implements ViewMediator {
             } else if (task.getDistributionType() == 2) {
                 if (task.getStatus() == CrowdTestTaskStatus.HAS_RELEASED) {
                     taskOperationControl.setReceive(true);
-                    // 项目发起者
-                    if (project.getUserId().equals(user.getId())) {
-                        taskOperationControl.setReceive(false);
-                    }
+//                    // 项目发起者
+//                    if (project.getUserId().equals(user.getId())) {
+//                        taskOperationControl.setReceive(false);
+//                    }
                 }
             }
         }

+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/service/CommonService.java

@@ -34,7 +34,7 @@ public interface CommonService {
 
     Page<CompetitionVO> getCompetition(Pageable pageable,String keyword);
 
-    Page<CrowdProjectVO> getProjectList(Pageable pageable,String code,String keyword);
+    List<CrowdProjectVO> getProjectList(Pageable pageable,String code,String keyword);
 
     List<ResourceVO>  getResource();
 

+ 9 - 3
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;
@@ -149,13 +150,18 @@ public class CommonServiceImpl implements CommonService {
     }
 
     @Override
-    public Page<CrowdProjectVO> getProjectList(Pageable pageable, String code,String keyword) {
-        return commonRepo.getProjectList(pageable,code,keyword).map(project->{
+    public List<CrowdProjectVO> getProjectList(Pageable pageable, String code,String keyword) {
+        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 != "") {

+ 9 - 1
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 != "") {
@@ -125,7 +129,7 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
             throw new CrowdTestTaskNotExistException();
         if (task.get().getStatus() == CrowdTestTaskStatus.HAS_FINISHED)
             throw new BaseException("禁止修改已结束的任务!");
-        command.setType(commonRepo.getTypeCodeByName(command.getType()));
+//        command.setType(commonRepo.getTypeCodeByName(command.getType()));
         CrowdTestTask updateTask = command.toCrowdTask(projectCode);
         // 定向任务被拒绝,更新时需要删除任务中的taskToUser  acceptedUserList
         if (task.get().getDistributionType().equals(DistributeType.DIRECT.getId())) {
@@ -151,6 +155,10 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     @Override
     public TaskDetailsDTO acceptTask(String projectCode, String taskCode, Long userId) {
         CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
+        // 项目发起者
+        if (project.getUserId().equals(userId)) {
+            throw new BaseException("您是项目发起者,不可接收自己项目下的测试任务!");
+        }
         CrowdTestTask task = project.getTask(taskCode);
         task.receive(userRepo.getByID(userId));
         project.setJoinCount(project.getJoinCount() + 1);

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio