Prechádzať zdrojové kódy

add:确认提交任务接口

xuexiaobo 6 rokov pred
rodič
commit
746e4e6ce7

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

@@ -112,4 +112,11 @@ public class CrowdTestTask {
         }
         this.setStatus(CrowdTestTaskStatus.HAS_COMMITED);
     }
+
+    public void confirmFinish(Long userId) {
+        if (this.getStatus()!=CrowdTestTaskStatus.HAS_COMMITED){
+            throw new CrowdTestTaskException("评测机构未提请结束任务,无法确认结束!");
+        }
+        this.setStatus(CrowdTestTaskStatus.HAS_FINISHED);
+    }
 }

+ 7 - 1
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdTaskServiceImpl.java

@@ -8,6 +8,7 @@ import com.mooctest.crowd.domain.domainobject.CrowdTestTaskStatus;
 import com.mooctest.crowd.domain.domainobject.User;
 import com.mooctest.crowd.domain.exception.BaseException;
 import com.mooctest.crowd.domain.exception.CrowdTestTaskNotExistException;
+import com.mooctest.crowd.domain.exception.UnauthorizedException;
 import com.mooctest.crowd.domain.factory.CrowdTestProjectFactory;
 import com.mooctest.crowd.domain.model.EvaluationAgencyPO;
 import com.mooctest.crowd.domain.repository.CrowdTestProjectRepo;
@@ -154,7 +155,12 @@ public class CrowdTaskServiceImpl implements CrowdTaskService {
 
     @Override
     public TaskDetailsDTO confirmFinish(String projectCode, String taskCode, Long userId) {
-        return null;
+        CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
+        if (!project.getRegionalManagerId().equals(userId))
+            throw new UnauthorizedException("无权限对此任务进行此操作");
+        CrowdTestTask task = project.getTask(taskCode);
+        task.confirmFinish(userId);
+        return getTaskDetails(projectCode, taskCode, userId);
     }
 
     private TaskOperationControl initTaskPermission(CrowdTestProject project,CrowdTestTask task, User user){