Kaynağa Gözat

加入若干新功能

brynhild 2 yıl önce
ebeveyn
işleme
d1d62b909a

+ 1 - 0
.idea/compiler.xml

@@ -2,6 +2,7 @@
 <project version="4">
   <component name="CompilerConfiguration">
     <annotationProcessing>
+      <profile default="true" name="Default" enabled="true" />
       <profile name="Maven default annotation processors profile" enabled="true">
         <sourceOutputDir name="target/generated-sources/annotations" />
         <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />

+ 6 - 0
src/main/java/com/main/controller/RPCController.java

@@ -71,4 +71,10 @@ public class RPCController {
     public ReturnResult getScoreList(Long tid,Long sid){
         return rpcService.getScoreList(tid,sid);
     }
+
+    @GetMapping("/task/submit")
+    @PublicAccess
+    public ReturnResult getTaskSubmit(Long id){
+        return rpcService.getTaskSubmit(id);
+    }
 }

+ 2 - 0
src/main/java/com/main/repository/TaskFileRepository.java

@@ -14,4 +14,6 @@ public interface TaskFileRepository extends LogicDeleteRepository<TaskFile> {
     List<TaskFile> findTaskFileByTaskIdAndFileType(Long taskId, Integer fileType);
 
     List<TaskFile> findTaskFileByOwnerId(Long ownerId);
+
+    List<TaskFile> findTaskFileByOwnerIdAndTaskId(Long ownerId,Long taskId);
 }

+ 9 - 0
src/main/java/com/main/schedule/AutoFinishTask.java

@@ -4,6 +4,7 @@ import com.main.constant.RedisConstant;
 import com.main.constant.TaskConstant;
 import com.main.entity.Task;
 import com.main.repository.TaskRepository;
+import com.main.service.internal.IReviewTaskService;
 import com.main.util.TimeUtil;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +23,8 @@ public class AutoFinishTask {
 
     private final RedisTemplate<String, Object> redisTemplate;
 
+    private final IReviewTaskService reviewTaskService;
+
     @Scheduled(fixedRate = 300000)
     public void autoFinish() {
         List<Task> taskList = taskRepository.findTaskByDeadlineBeforeAndState(TimeUtil.getCurrentTimeString(), TaskConstant.WORKING);
@@ -29,6 +32,12 @@ public class AutoFinishTask {
             deleteIfPresent(RedisConstant.TASK_CODE_LIST + task.getTaskCode());
             task.setState(TaskConstant.CLOSED);
             taskRepository.save(task);
+            try{
+                reviewTaskService.tryReview(task);
+            }catch (Exception e){
+                System.out.println("处理task:"+task.getId()+"时出现异常");
+                e.printStackTrace();
+            }
         }
     }
 

+ 2 - 0
src/main/java/com/main/service/IRPCService.java

@@ -21,4 +21,6 @@ public interface IRPCService {
     Result getTeacherStudentList(Long tid);
 
     ReturnResult getScoreList(Long tid, Long sid);
+
+    ReturnResult getTaskSubmit(Long id);
 }

+ 15 - 1
src/main/java/com/main/service/impl/RPCServiceImpl.java

@@ -39,7 +39,7 @@ public class RPCServiceImpl implements IRPCService {
         List<Map<String,Object>> retList=new ArrayList<>();
         for(TaskSubmit taskSubmit:submitList){
             Map<String,Object> singleRecord=new HashMap<>();
-            final List<TaskFile> fileList = taskFileRepository.findTaskFileByOwnerId(taskSubmit.getStudentId());
+            final List<TaskFile> fileList = taskFileRepository.findTaskFileByOwnerIdAndTaskId(taskSubmit.getStudentId(),id);
             singleRecord.put("studentId",taskSubmit.getStudentId());
             singleRecord.put("fileList",fileList);
             retList.add(singleRecord);
@@ -129,4 +129,18 @@ public class RPCServiceImpl implements IRPCService {
         }
         return new Result(true,StatusCode.OK,"查询成功",result);
     }
+
+    @Override
+    public Result getTaskSubmit(Long id) {
+        final Optional<Task> taskOptional = taskRepository.findById(id);
+        if(!taskOptional.isPresent()){
+            return new Result(false, StatusCode.ERROR,"任务不存在");
+        }
+        final Task task = taskOptional.get();
+        if(!task.getSubmitType().equals(1)){
+            return new Result(false,StatusCode.ERROR,"提交方式不是文本格式");
+        }
+        final List<TaskSubmit> submitList = taskSubmitRepository.findTaskSubmitByTaskId(task.getId());
+        return new Result(true,StatusCode.OK,"查询成功",submitList);
+    }
 }

+ 7 - 1
src/main/java/com/main/service/impl/TeacherServiceImpl.java

@@ -10,6 +10,7 @@ import com.main.repository.*;
 import com.main.schedule.AutoActiveTask;
 import com.main.service.ITeacherService;
 import com.main.service.internal.IInternalTaskService;
+import com.main.service.internal.IReviewTaskService;
 import com.main.transfer.rpc.bo.TokenValidateResult;
 import com.main.transfer.teacher.vo.*;
 import com.main.util.TimeUtil;
@@ -32,7 +33,7 @@ import java.util.*;
 
 @Service
 @RequiredArgsConstructor(onConstructor_ = @Autowired)
-public class TeacherServiceImpl implements ITeacherService {
+public class TeacherServiceImpl implements ITeacherService , IReviewTaskService {
 
     private final TaskRepository taskRepository;
 
@@ -287,6 +288,11 @@ public class TeacherServiceImpl implements ITeacherService {
             return new Result(false, StatusCode.ERROR, "身份验证失败");
         }
         Task task = taskRepository.findTaskByPublisherIdAndId(tokenValidateResult.getUserId().longValue(), info.getTaskId());
+        return tryReview(task);
+    }
+
+    @Override
+    public Result tryReview(Task task) throws InterruptedException {
         if (task == null) {
             return new Result(false, StatusCode.ERROR, "任务不存在");
         }

+ 8 - 0
src/main/java/com/main/service/internal/IReviewTaskService.java

@@ -0,0 +1,8 @@
+package com.main.service.internal;
+
+import com.main.entity.Task;
+import org.brynhild.common.transfer.dto.Result;
+
+public interface IReviewTaskService {
+    public Result tryReview(Task task) throws InterruptedException;
+}

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

@@ -36,6 +36,7 @@ brynhild:
       basePackage: com.main
 
 acuta:
+#  blowSnowDllPath: D:\AcutaDB_V3.1.132\dll
   blowSnowDllPath: C:\runtime\jars\dc\dll\BlowSnow.dll
   host: 101.42.226.88
   port: 2138