Quellcode durchsuchen

Merge branch 'eclipse-api' into 'DEV'

添加验证老师创建的考试



See merge request !152

LiHaoyu vor 8 Jahren
Ursprung
Commit
c90156e038

+ 22 - 6
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/fromDev/impl/PluginLogicImpl.java

@@ -3,11 +3,10 @@ package cn.iselab.mooctest.site.web.logic.fromDev.impl;
 import cn.iselab.mooctest.site.common.constant.SubsiteConstants;
 import cn.iselab.mooctest.site.models.Task;
 import cn.iselab.mooctest.site.models.User;
-import cn.iselab.mooctest.site.service.AssignedTaskService;
-import cn.iselab.mooctest.site.service.ExamService;
-import cn.iselab.mooctest.site.service.PaperService;
-import cn.iselab.mooctest.site.service.UserService;
+import cn.iselab.mooctest.site.models.instancePermission.TaskPermission;
+import cn.iselab.mooctest.site.service.*;
 import cn.iselab.mooctest.site.service.fromDev.PluginService;
+import cn.iselab.mooctest.site.service.instancePermission.TaskPermissionService;
 import cn.iselab.mooctest.site.util.data.EncryptionUtil;
 import cn.iselab.mooctest.site.web.data.CaseExtendsVO;
 import cn.iselab.mooctest.site.web.data.fromDev.AddGradeVO;
@@ -18,6 +17,7 @@ import cn.iselab.mooctest.site.web.logic.fromDev.PluginLogic;
 import com.aliyun.oss.HttpMethod;
 import com.aliyun.oss.OSSClient;
 import com.aliyun.oss.model.GeneratePresignedUrlRequest;
+import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authz.UnauthorizedException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -57,6 +57,10 @@ public class PluginLogicImpl extends BaseLogic implements PluginLogic{
     private CaseLogic caseLogic;
     @Autowired
     private PaperService paperService;
+    @Autowired
+    private TaskService taskService;
+    @Autowired
+    private TaskPermissionService taskPermissionService;
 
     @Override
     public String getDownloadSignature(String taskID, String workerID, String taskType, String caseName) {
@@ -175,7 +179,13 @@ public class PluginLogicImpl extends BaseLogic implements PluginLogic{
         if(!EncryptionUtil.encryptMD5(token).equals(user.getPassword())){
             throw new UnauthorizedException("unauthorized");
         }
-        Task task = examService.getExamByIdAndParticipantIdIfPermited(Long.parseLong(taskId),user.getId());
+        Task task = null;
+        List<TaskPermission> taskPermissions = taskPermissionService.getByUserIdAndInstanceId(user.getId(),Long.parseLong(taskId));
+        if(taskPermissions.size() != 0) {
+            task = taskService.getTask(Long.parseLong(taskId));
+        }else {
+            task = examService.getExamByIdAndParticipantIdIfPermited(Long.parseLong(taskId),user.getId());
+        }
         return wrapLoginResultVO(task,user);
     }
 
@@ -185,7 +195,13 @@ public class PluginLogicImpl extends BaseLogic implements PluginLogic{
         if(!EncryptionUtil.encryptMD5(token).equals(user.getPassword())){
             throw new UnauthorizedException("unauthorized");
         }
-        Task task = examService.getExamByIdAndParticipantIdIfPermited(Long.parseLong(taskId),user.getId());
+        Task task = null;
+        List<TaskPermission> taskPermissions = taskPermissionService.getByUserIdAndInstanceId(user.getId(),Long.parseLong(taskId));
+        if(taskPermissions.size() != 0) {
+            task = taskService.getTask(Long.parseLong(taskId));
+        }else {
+            task = examService.getExamByIdAndParticipantIdIfPermited(Long.parseLong(taskId),user.getId());
+        }
         PluginResultVO pluginResultVO = wrapLoginResultVO(task,user);
         Long paperId = paperService.getByExamId(task.getId()).getId();
         List<CaseExtendsVO> caseExtendsVOS = caseLogic.getCasesForExam(paperId,Long.parseLong(taskId),user.getId());