feat: add cancel task api

This commit is contained in:
vran 2022-04-19 23:19:33 +08:00
parent ad4b1d9fe0
commit 302c2b15dc
4 changed files with 22 additions and 2 deletions

View File

@ -94,4 +94,11 @@ public class ProjectController {
@RequestBody ProjectTaskListCondition condition) { @RequestBody ProjectTaskListCondition condition) {
return JsonData.ok(projectService.listManualTasks(projectId, condition)); return JsonData.ok(projectService.listManualTasks(projectId, condition));
} }
@PatchMapping(Routes.GroupProject.CANCEL_MANUAL_TASK)
public JsonData<Void> cancelTask(@PathVariable Integer projectId,
@PathVariable Integer taskId) {
projectService.cancelTask(projectId, taskId);
return JsonData.ok();
}
} }

View File

@ -72,6 +72,8 @@ public interface Routes {
String TEST_CONNECTION = BASE + "/projects/test_connection"; String TEST_CONNECTION = BASE + "/projects/test_connection";
String LIST_MANUAL_TASKS = BASE + "/projects/{projectId}/list_manual_tasks"; String LIST_MANUAL_TASKS = BASE + "/projects/{projectId}/list_manual_tasks";
String CANCEL_MANUAL_TASK = BASE + "/projects/{projectId}/tasks/{taskId}/cancel";
} }
interface Document { interface Document {

View File

@ -207,4 +207,15 @@ public class ProjectService {
var tasks = projectSyncTaskDao.selectList(condition.toCondition(projectId)); var tasks = projectSyncTaskDao.selectList(condition.toCondition(projectId));
return projectSimpleTaskResponseConverter.of(tasks); return projectSimpleTaskResponseConverter.of(tasks);
} }
public void cancelTask(Integer projectId, Integer taskId) {
if (!projectDao.existsById(projectId)) {
throw DomainErrors.PROJECT_NOT_FOUND.exception();
}
projectSyncTaskDao.selectOptionalById(taskId).ifPresent(task -> {
if (task.getStatus() == ProjectSyncTaskStatus.NEW || task.getStatus() == ProjectSyncTaskStatus.RUNNING) {
projectSyncTaskDao.updateStatusAndResultById(taskId, ProjectSyncTaskStatus.CANCELED, "主动取消");
}
});
}
} }

View File

@ -5,5 +5,5 @@ public enum ProjectSyncTaskStatus {
RUNNING, RUNNING,
FINISHED, FINISHED,
FAILED, FAILED,
CANCELLED CANCELED
} }