Explorar el Código

增加配置任务token的接口

guo00guo hace 4 años
padre
commit
c8616c7484

+ 9 - 0
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestTask.java

@@ -199,6 +199,15 @@ public class CrowdTestTask {
 
     }
 
+    public void addToken(String token) {
+        // 具有配置项,管理员可以配置token
+        EndPoint endPoint = this.getEndPoint();
+        if(endPoint != null){
+            endPoint.setToken(token);
+            this.setEndPoint(endPoint);
+        }
+    }
+
     public void create(String taskCode) {
         this.setCode(taskCode);
         this.setStatus(CrowdTestTaskStatus.HAS_RELEASED);

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

@@ -11,4 +11,5 @@ public class EndPoint {
     private String examId;
     private String serverCode;
     private String url;
+    private String token;
 }

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

@@ -32,4 +32,7 @@ public class EndPointPO {
 
     @Column(name = "EP_URL")
     private String url;
+
+    @Column(name = "EP_TOKEN")
+    private String token;
 }

+ 3 - 0
core/src/main/java/com/mooctest/crowd/domain/repository/CrowdTestProjectRepo.java

@@ -170,6 +170,9 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
                             addEndPointPO.setId(endPointPO.get().getId());
                             addEndPointPO.setProjectCode(crowdTestProject.getCode());
                             addEndPointPO.setTaskCode(crowdTestTask.getCode());
+                            if(endPoint.getToken() != null && endPoint.getToken() != ""){
+                                addEndPointPO.setToken(endPoint.getToken());
+                            }
                             endPointDao.save(addEndPointPO);
                         }else{
                             EndPointPO addEndPointPO = new EndPointPO();

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

@@ -107,6 +107,22 @@ public class CrowdTaskController{
         return taskService.confirmFinish(projectCode, taskCode, userId);
     }
 
+    /**
+     * 存储众测给的token
+     * @param projectCode
+     * @param taskCode
+     * @param token
+     * @param session
+     * @return
+     */
+    @LoginRequired
+    @RequestMapping(value = "/project/{projectCode}/task/{taskCode}/addToken/{token}", method = RequestMethod.PUT)
+    public TaskDetailsDTO confirmFinishTask(@PathVariable("projectCode") String projectCode, @PathVariable("taskCode") String taskCode,
+                                            @PathVariable("token") String token, HttpSession session){
+        Long userId = Long.parseLong((String)session.getAttribute("userId"));
+        return taskService.addToken(projectCode, taskCode, userId, token);
+    }
+
 
     @RequestMapping(value = "/jump/{projectCode}/{taskCode}/{userId}", method = RequestMethod.GET)
     public void jumpPublicTesting(@PathVariable("projectCode") String projectCode, @PathVariable("taskCode") String taskCode,

+ 3 - 0
site/src/main/java/com/mooctest/crowd/site/data/TaskOperationControl.java

@@ -20,6 +20,7 @@ public class TaskOperationControl {
     private boolean finish = false;
     private boolean confirmFinish = false;
     private boolean writeReport = false;
+    private boolean taskDemonstrate = false;
 
     public void hasAll(){
         this.receive = true;
@@ -28,6 +29,7 @@ public class TaskOperationControl {
         this.update = true;
         this.finish = true;
         this.uploadReport = true;
+        this.taskDemonstrate = true;
     }
 
     public void noAll(){
@@ -38,5 +40,6 @@ public class TaskOperationControl {
         this.finish = false;
         this.uploadReport = false;
         this.writeReport = false;
+        this.taskDemonstrate = false;
     }
 }

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

@@ -13,6 +13,7 @@ import org.springframework.beans.BeanUtils;
 @Data
 public class EndPointVO {
     private String serverCode;
+    private String token;
 
     public EndPointVO(EndPoint endPoint){
         BeanUtils.copyProperties(endPoint, this);

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

@@ -1660,6 +1660,9 @@ public class WebMediatorImpl implements ViewMediator {
                     taskOperationControl.setWriteReport(true);
                     taskOperationControl.setUploadReport(true);
                     taskOperationControl.setConfirmFinish(true);
+                    if(endPointPOOptional.get().getToken() != null &&  endPointPOOptional.get().getToken() != ""){
+                        taskOperationControl.setTaskDemonstrate(true);
+                    }
                 }
             }
 

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

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

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

@@ -215,4 +215,17 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
         projectRepo.saveCrowdTestProject(project);
         return getTaskDetails(projectCode, taskCode, userId);
     }
+
+    @Override
+    public TaskDetailsDTO addToken(String projectCode, String taskCode, Long userId, String token) {
+        CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
+        if (!project.getRegionalManagerId().equals(userId))
+            throw new UnauthorizedException("无权限对此任务进行此操作");
+        CrowdTestTask task = project.getTask(taskCode);
+        task.addToken(token);
+        projectRepo.saveCrowdTestProject(project);
+        return getTaskDetails(projectCode, taskCode, userId);
+    }
+
 }
+