feat: add cancel task api
This commit is contained in:
parent
ad4b1d9fe0
commit
302c2b15dc
|
@ -94,4 +94,11 @@ public class ProjectController {
|
|||
@RequestBody ProjectTaskListCondition 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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,6 +72,8 @@ public interface Routes {
|
|||
String TEST_CONNECTION = BASE + "/projects/test_connection";
|
||||
|
||||
String LIST_MANUAL_TASKS = BASE + "/projects/{projectId}/list_manual_tasks";
|
||||
|
||||
String CANCEL_MANUAL_TASK = BASE + "/projects/{projectId}/tasks/{taskId}/cancel";
|
||||
}
|
||||
|
||||
interface Document {
|
||||
|
|
|
@ -207,4 +207,15 @@ public class ProjectService {
|
|||
var tasks = projectSyncTaskDao.selectList(condition.toCondition(projectId));
|
||||
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, "主动取消");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,5 +5,5 @@ public enum ProjectSyncTaskStatus {
|
|||
RUNNING,
|
||||
FINISHED,
|
||||
FAILED,
|
||||
CANCELLED
|
||||
CANCELED
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue