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> createSearchTask( @Valid @RequestBody SearchTaskRequest searchTaskRequest, HttpServletRequest request) throws JsonProcessingException { // 首先检查服务器资源 return collectionService.getResponseResultMono(searchTaskRequest); } @ApiOperation(value = "查询任务状态") @GetMapping("/status") public Mono getTaskStatus(@RequestParam(value = "taskId" )String taskId) { return collectionService.getError(taskId); } @PostMapping("/cancel/{keywordId}") @ApiOperation(value = "取消任务") public Mono> cancelTask(@PathVariable Integer keywordId) { return collectionService.getResponseResult(keywordId); } @ApiOperation(value = "获取任务结果") @GetMapping("/tasks/{taskId}") public Mono getTaskResult(@PathVariable String taskId) { return collectionService.getTaskResultResponseMono(taskId); } @GetMapping("/tasks/all") @ApiOperation(value = "获取所有任务列表") public Mono getAllTasks() { return collectionService.getTaskListResponseMono(); } @GetMapping("/health") @ApiOperation("健康检查") public Mono checkThirdPartyHealth() { return collectionService.getHealthResponseMono(); } /** * 查询服务器资源 */ @GetMapping("/server/resource") @ApiOperation(value = "查询服务器资源") public Mono getServerResource() { return collectionService.getServerResourceResponseMono(); } }