Forráskód Böngészése

增加展示众测案例的接口

guo00guo 4 éve
szülő
commit
aba7de4d0a

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

@@ -12,4 +12,5 @@ public class EndPoint {
     private String serverCode;
     private String url;
     private String token;
+    private int isShowed;
 }

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

@@ -35,4 +35,7 @@ public class EndPointPO {
 
     @Column(name = "EP_TOKEN")
     private String token;
+
+    @Column(name = "EP_IS_SHOWED")
+    private int isShowed;
 }

+ 13 - 1
core/src/main/java/com/mooctest/crowd/domain/repository/CrowdTestTaskRepo.java

@@ -1,8 +1,10 @@
 package com.mooctest.crowd.domain.repository;
 
 import com.mooctest.crowd.domain.dao.CrowdTestTaskDao;
+import com.mooctest.crowd.domain.dao.EndPointDao;
 import com.mooctest.crowd.domain.dao.TaskToUserDao;
 import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
+import com.mooctest.crowd.domain.domainobject.EndPoint;
 import com.mooctest.crowd.domain.domainobject.TaskToUser;
 import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
 import com.mooctest.crowd.domain.model.TaskToUserPO;
@@ -20,6 +22,8 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author:xx
@@ -29,13 +33,16 @@ import javax.persistence.criteria.Root;
 
 @Slf4j
 @Component
-public class CrowdTestTaskRepo  implements  ICrowdTaskRepo{
+public class CrowdTestTaskRepo implements ICrowdTaskRepo{
     @Autowired
     private CrowdTestTaskDao taskDao;
 
     @Autowired
     private TaskToUserDao taskToUserDao;
 
+    @Autowired
+    private EndPointDao endPointDao;
+
     @Override
     public Page<CrowdTestTask> findAllByPage(Pageable pageable, String keyword, int deletedStatus){
         Specifications<CrowdTestProjectPO> where =  Specifications.where(getProjectByIsNotDeleted(keyword, deletedStatus));
@@ -63,4 +70,9 @@ public class CrowdTestTaskRepo  implements  ICrowdTaskRepo{
         taskToUserDao.delete(Converter.convert(TaskToUserPO.class, taskToUser));
     }
 
+    @Override
+    public List<EndPoint> getEndPointShowList() {
+        return endPointDao.findAll().stream().filter(endPointPO -> endPointPO.getIsShowed() == 1).map(endPointPO -> Converter.convert(EndPoint.class, endPointPO)).collect(Collectors.toList());
+    }
+
 }

+ 4 - 0
core/src/main/java/com/mooctest/crowd/domain/repository/ICrowdTaskRepo.java

@@ -1,14 +1,18 @@
 package com.mooctest.crowd.domain.repository;
 
 import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
+import com.mooctest.crowd.domain.domainobject.EndPoint;
 import com.mooctest.crowd.domain.domainobject.TaskToUser;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 
+import java.util.List;
+
 public interface ICrowdTaskRepo {
 
      Page<CrowdTestTask> findAllByPage(Pageable pageable, String keyword, int deletedStatus);
 
      void deleteTaskToUser(TaskToUser taskToUser);
 
+     List<EndPoint> getEndPointShowList();
 }

+ 8 - 0
site/src/main/java/com/mooctest/crowd/site/controller/CrowdTaskController.java

@@ -6,6 +6,7 @@ import com.mooctest.crowd.site.annotation.LoginRequired;
 import com.mooctest.crowd.site.command.CrowdTestTaskCommand;
 import com.mooctest.crowd.site.data.dto.TaskDetailsDTO;
 import com.mooctest.crowd.site.data.dto.TaskSquareDTO;
+import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
 import com.mooctest.crowd.site.service.CrowdTaskService;
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
@@ -15,6 +16,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpSession;
+import java.util.List;
 
 /**
  * @author: Diors.Po
@@ -59,6 +61,12 @@ public class CrowdTaskController{
         return taskService.getAllTasks();
     }
 
+
+    @RequestMapping(value = "/task/case", method = RequestMethod.GET)
+    public List<CrowdTaskVO> getTaskCase(){
+        return taskService.getAllTaskCases();
+    }
+
     @LoginRequired
     @RequestMapping(value = "/project/{projectCode}/task/{taskCode}", method = RequestMethod.PUT)
     public TaskDetailsDTO updateTask(@PathVariable("projectCode") String projectCode,

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/mediator/ViewMediator.java

@@ -64,6 +64,8 @@ public interface ViewMediator {
 
     TaskDetailsDTO renderTaskDetails(String projectCode, String taskCode, Long userId);
 
+    CrowdTaskVO renderTaskDetailsByTourist(String projectCode, String taskCode);
+
     UserDTO renderUser(User user);
 
     List<RegionalManagerVO> renderRegionManagerList();

+ 16 - 0
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -990,6 +990,22 @@ public class WebMediatorImpl implements ViewMediator {
     }
 
     @Override
+    public CrowdTaskVO renderTaskDetailsByTourist(String projectCode, String taskCode) {
+        CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
+        Optional<CrowdTestTask> task = project.getCrowdTestTaskList().stream().filter(crowdTestTask -> crowdTestTask.getCode().equals(taskCode)).findFirst();
+        if (!task.isPresent())
+            throw new CrowdTestTaskNotExistException();
+
+        CrowdTaskVO crowdTaskVO = new CrowdTaskVO(task.get());
+        // 判断否存在配置项
+        Optional<EndPointPO> endPointPO = endPointDao.findByTaskCode(taskCode);
+        if(endPointPO.isPresent()){
+            crowdTaskVO.setEndPointVO(new EndPointVO(Converter.convert(EndPoint.class, endPointPO.get())));
+        }
+        return crowdTaskVO;
+    }
+
+    @Override
     public UserDTO renderUser(User user) {
         UserDTO userDTO = new UserDTO();
         userDTO.setRoleList(user.getRoleList().stream().map(Role::getName).collect(Collectors.toList()));

+ 2 - 0
site/src/main/java/com/mooctest/crowd/site/service/CrowdTaskService.java

@@ -41,4 +41,6 @@ public interface CrowdTaskService {
     void  jumpPublicTesting(String projectCode, String taskCode, Long userId);
 
     TaskDetailsDTO addToken(String projectCode, String taskCode, Long userId, String token);
+
+    List<CrowdTaskVO> getAllTaskCases();
 }

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

@@ -2,10 +2,7 @@ package com.mooctest.crowd.site.service.impl;
 
 import com.mooctest.crowd.domain.dao.CrowdTestTaskDao;
 import com.mooctest.crowd.domain.dao.EndPointDao;
-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.domainobject.DistributeType;
+import com.mooctest.crowd.domain.domainobject.*;
 import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.exception.CrowdTestTaskNotExistException;
 import com.mooctest.crowd.domain.exception.UnauthorizedException;
@@ -153,6 +150,13 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
     }
 
     @Override
+    public List<CrowdTaskVO> getAllTaskCases() {
+        List<EndPoint> endPointShowList = crowdTestTaskRepo.getEndPointShowList();
+        List<CrowdTaskVO> crowdTaskVOS = endPointShowList.stream().map(endPoint -> viewMediator.renderTaskDetailsByTourist(endPoint.getProjectCode(), endPoint.getTaskCode())).collect(Collectors.toList());
+        return crowdTaskVOS;
+    }
+
+    @Override
     public TaskDetailsDTO acceptTask(String projectCode, String taskCode, Long userId) {
         CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
         // 项目发起者