package com.linghu.controller;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.validation.Valid;
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.linghu.model.dto.*;
|
|
import com.linghu.service.*;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import com.linghu.model.common.ResponseResult;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import reactor.core.publisher.Mono;
|
import org.springframework.web.bind.annotation.* ;
|
|
|
|
@RestController
|
@RequestMapping("/collect")
|
@Api(value = "采集接口", tags = "采集管理")
|
@Slf4j
|
public class CollectController {
|
|
|
@Autowired
|
private CollectionService collectionService;
|
|
|
|
@PostMapping("/search")
|
@ApiOperation(value = "开始采集")
|
public Mono<ResponseResult<?>> createSearchTask(
|
@Valid @RequestBody SearchTaskRequest searchTaskRequest,
|
HttpServletRequest request) throws JsonProcessingException {
|
// 首先检查服务器资源
|
return collectionService.getResponseResultMono(searchTaskRequest);
|
}
|
|
@ApiOperation(value = "查询任务状态")
|
@GetMapping("/status")
|
public Mono<TaskStatusResponse> getTaskStatus(String taskId) {
|
return collectionService.getError(taskId);
|
}
|
|
@PostMapping("/cancel/{keywordId}")
|
@ApiOperation(value = "取消任务")
|
public Mono<ResponseResult<TaskCancelResponse>> cancelTask(@PathVariable Integer keywordId) {
|
return collectionService.getResponseResult(keywordId);
|
}
|
|
@ApiOperation(value = "获取任务结果")
|
@GetMapping("/tasks/{taskId}")
|
public Mono<TaskResultResponse> getTaskResult(@PathVariable String taskId) {
|
return collectionService.getTaskResultResponseMono(taskId);
|
}
|
|
@GetMapping("/tasks/all")
|
@ApiOperation(value = "获取所有任务列表")
|
public Mono<TaskListResponse> getAllTasks() {
|
return collectionService.getTaskListResponseMono();
|
}
|
|
@GetMapping("/health")
|
@ApiOperation("健康检查")
|
public Mono<HealthResponse> checkThirdPartyHealth() {
|
return collectionService.getHealthResponseMono();
|
}
|
|
/**
|
* 查询服务器资源
|
*/
|
@GetMapping("/server/resource")
|
@ApiOperation(value = "查询服务器资源")
|
public Mono<ServerResourceResponse> getServerResource() {
|
return collectionService.getServerResourceResponseMono();
|
}
|
|
|
|
}
|