Parcourir la source

修改新建任务传服务序列号

guo00guo il y a 5 ans
Parent
commit
1f1b729482

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

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

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

+ 9 - 10
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -958,12 +958,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);
             }
         }
@@ -1622,6 +1617,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 +1689,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);
+//                    }
                 }
             }
         }

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

@@ -151,6 +151,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);