package com.ard.web.controller.sample.wayline; import com.ard.common.core.domain.model.LoginUser; import com.ard.common.utils.SecurityUtils; import com.ard.sample.common.model.PaginationData; import com.ard.sample.common.model.ResponseResult; import com.ard.sample.wayline.model.dto.WaylineJobDTO; import com.ard.sample.wayline.model.param.CreateJobParam; import com.ard.sample.wayline.service.IWaylineJobService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.sql.SQLException; import java.util.Set; /** * @author sean * @version 1.1 * @date 2022/6/1 */ @Api(tags = "航线任务") @RequestMapping("/dock/wayline") @RestController public class WaylineJobController { @Autowired private IWaylineJobService waylineJobService; /** * Create a wayline task for the Dock. * @param param * @return * @throws SQLException */ @ApiOperation("创建航线任务") @PostMapping("/flight-tasks") public ResponseResult createJob(@Valid @RequestBody CreateJobParam param) throws SQLException { LoginUser loginUser = SecurityUtils.getLoginUser(); return waylineJobService.publishFlightTask(param, loginUser); } /** * Paginate through all jobs. * @param page * @param pageSize * @return */ @ApiOperation("航线任务列表") @GetMapping("/jobs") public ResponseResult> getJobs(@RequestParam(defaultValue = "1") Long page, @RequestParam(name = "page_size", defaultValue = "10") Long pageSize) { PaginationData data = waylineJobService.getJobsByWorkspaceId(page, pageSize); return ResponseResult.success(data); } /** * Send the command to cancel the jobs. * @param jobIds * @return * @throws SQLException */ @ApiOperation("取消航线任务") @DeleteMapping("/jobs") public ResponseResult publishCancelJob(@RequestParam(name = "job_id") Set jobIds){ waylineJobService.cancelFlightTask(jobIds); return ResponseResult.success(); } /** * Set the media files for this job to upload immediately. * @param jobId * @return */ @ApiOperation("设置航线任务上传最高优先级") @PostMapping("/{workspace_id}/jobs/{job_id}/media-highest") public ResponseResult uploadMediaHighestPriority(@PathVariable(name = "job_id") String jobId) { waylineJobService.uploadMediaHighestPriority(jobId); return ResponseResult.success(); } }