brynhild 2 жил өмнө
parent
commit
4e51630b36

+ 12 - 0
src/main/java/com/main/caller/GoServiceCaller.java

@@ -1,8 +1,10 @@
 package com.main.caller;
 
 import com.main.config.RPCApiConfig;
+import com.main.entity.Task;
 import com.main.tag.caller.RPCConsumer;
 import com.main.transfer.rpc.bo.GoResult;
+import com.main.transfer.rpc.bo.PlagExec;
 import com.main.transfer.rpc.bo.QueryTextResult;
 import lombok.RequiredArgsConstructor;
 import org.brynhild.common.transfer.util.HttpURLBuilder;
@@ -31,4 +33,14 @@ public class GoServiceCaller {
         String url=rpcApiConfig.getDeleteFile()+fileId;
         restTemplate.delete(url);
     }
+
+    public GoResult plagExec(Task task){
+        final PlagExec plagExec = new PlagExec(task);
+        if(plagExec.getHomeworkType()==null){
+            return null;
+        }
+        final GoResult result = restTemplate.postForObject(rpcApiConfig.getPlagExec(), plagExec, GoResult.class);
+        System.out.println(result);
+        return result;
+    }
 }

+ 2 - 0
src/main/java/com/main/config/RPCApiConfig.java

@@ -19,4 +19,6 @@ public class RPCApiConfig {
     private String queryFileText;
 
     private String deleteFile;
+
+    private String plagExec;
 }

+ 3 - 0
src/main/java/com/main/service/impl/TeacherServiceImpl.java

@@ -299,6 +299,9 @@ public class TeacherServiceImpl implements ITeacherService , IReviewTaskService
         if(task.getTaskType()==TaskConstant.OTHER){
             return otherTaskTypeHandlerMap.getOrDefault(task.getState(),otherTaskTypeErrorStateHandler).handle(task);
         }
+        if(task.getSubmitType().equals(TaskConstant.PICTURE_TYPE)||task.getSubmitType().equals(TaskConstant.TEXT_TYPE)){
+            goServiceCaller.plagExec(task);
+        }
 
         if (task.getSubmitType() == TaskConstant.PICTURE_TYPE) {
             return pictureHandlerMap.getOrDefault(task.getState(), pictureErrorStateHandler).handle(task);

+ 1 - 1
src/main/java/com/main/service/internal/IReviewTaskService.java

@@ -4,5 +4,5 @@ import com.main.entity.Task;
 import org.brynhild.common.transfer.dto.Result;
 
 public interface IReviewTaskService {
-    public Result tryReview(Task task) throws InterruptedException;
+    Result tryReview(Task task) throws InterruptedException;
 }

+ 27 - 0
src/main/java/com/main/transfer/rpc/bo/PlagExec.java

@@ -0,0 +1,27 @@
+package com.main.transfer.rpc.bo;
+
+import com.main.constant.TaskConstant;
+import com.main.entity.Task;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PlagExec {
+    private Long taskId;
+    private Integer threshold;
+    private String homeworkType;
+
+    public PlagExec(Task task){
+        this.taskId=task.getId();
+        this.threshold=task.getCriticalValue();
+        if(task.getSubmitType().equals(TaskConstant.TEXT_TYPE)){
+            homeworkType="文本作业";
+        }
+        if(task.getSubmitType().equals(TaskConstant.PICTURE_TYPE)){
+            homeworkType="图片作业";
+        }
+    }
+}

+ 1 - 0
src/main/resources/application.yaml

@@ -27,6 +27,7 @@ rpc:
     queryStudentName: http://101.42.226.88:8080/rpc/student/name/
     queryFileText: http://101.42.226.88:8080/file/
     deleteFile: http://101.42.226.88:8080/rpc/file/
+    plagExec: http://101.42.226.88:8080/rpc/plag/exec
 
 brynhild:
   common: