package com.dji.sample.wayline.controller;
|
|
import com.dji.sample.common.model.CustomClaim;
|
import com.dji.sample.common.model.PaginationData;
|
import com.dji.sample.common.model.ResponseResult;
|
import com.dji.sample.wayline.model.dto.WaylineJobDTO;
|
import com.dji.sample.wayline.model.param.CreateJobParam;
|
import com.dji.sample.wayline.model.param.UpdateJobParam;
|
import com.dji.sample.wayline.model.param.WaylineJobQueryParam;
|
import com.dji.sample.wayline.service.IWaylineJobService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.validation.Valid;
|
import java.sql.SQLException;
|
import java.util.Set;
|
|
import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM;
|
|
/**
|
* @author sean
|
* @version 1.1
|
* @date 2022/6/1
|
*/
|
@RequestMapping("${url.wayline.prefix}${url.wayline.version}/workspaces")
|
@RestController
|
public class WaylineJobController {
|
|
@Autowired
|
private IWaylineJobService waylineJobService;
|
|
/**
|
* 创建航路任务。
|
* @param request
|
* @param param
|
* @param workspaceId
|
* @return
|
* @throws SQLException
|
*/
|
@PostMapping("/{workspace_id}/flight-tasks")
|
public ResponseResult createJob(HttpServletRequest request, @Valid @RequestBody CreateJobParam param,
|
@PathVariable(name = "workspace_id") String workspaceId) throws SQLException {
|
CustomClaim customClaim = (CustomClaim)request.getAttribute(TOKEN_CLAIM);
|
customClaim.setWorkspaceId(workspaceId);
|
|
return waylineJobService.publishFlightTask(param, customClaim);
|
}
|
|
|
/**
|
* 创建航路任务(重复定时和连续执行)
|
* @param request
|
* @param param
|
* @param workspaceId
|
* @return
|
* @throws SQLException
|
*/
|
@PostMapping("/{workspace_id}/flight-tasks-condition")
|
public ResponseResult createJobCondition(HttpServletRequest request, @Valid @RequestBody CreateJobParam param,
|
@PathVariable(name = "workspace_id") String workspaceId) throws SQLException {
|
CustomClaim customClaim = (CustomClaim)request.getAttribute(TOKEN_CLAIM);
|
customClaim.setWorkspaceId(workspaceId);
|
|
return waylineJobService.publishFlightTaskCondition(param, customClaim);
|
}
|
|
/**
|
* 分页查询
|
* @param page
|
* @param pageSize
|
* @param workspaceId
|
* @return
|
*/
|
@GetMapping("/{workspace_id}/jobs")
|
public ResponseResult<PaginationData<WaylineJobDTO>> getJobs(@RequestParam(defaultValue = "1") Long page,
|
@RequestParam(name = "page_size", defaultValue = "10") Long pageSize,
|
@PathVariable(name = "workspace_id") String workspaceId, WaylineJobQueryParam waylineJobQueryParam){
|
PaginationData<WaylineJobDTO> data = waylineJobService.getJobsByWorkspaceId(workspaceId, page, pageSize,waylineJobQueryParam);
|
return ResponseResult.success(data);
|
}
|
|
/**
|
* 发送命令取消作业。
|
* @param jobIds
|
* @param workspaceId
|
* @return
|
* @throws SQLException
|
*/
|
@DeleteMapping("/{workspace_id}/jobs")
|
public ResponseResult publishCancelJob(@RequestParam(name = "job_id") Set<String> jobIds,
|
@PathVariable(name = "workspace_id") String workspaceId) throws SQLException {
|
waylineJobService.cancelFlightTask(workspaceId, jobIds);
|
return ResponseResult.success();
|
}
|
|
/**
|
* 将此作业的媒体文件设置为立即上传。
|
* @param workspaceId
|
* @param jobId
|
* @return
|
*/
|
@PostMapping("/{workspace_id}/jobs/{job_id}/media-highest")
|
public ResponseResult uploadMediaHighestPriority(@PathVariable(name = "workspace_id") String workspaceId,
|
@PathVariable(name = "job_id") String jobId) {
|
waylineJobService.uploadMediaHighestPriority(workspaceId, jobId);
|
return ResponseResult.success();
|
}
|
|
@PutMapping("/{workspace_id}/jobs/{job_id}")
|
public ResponseResult updateJobStatus(@PathVariable(name = "workspace_id") String workspaceId,
|
@PathVariable(name = "job_id") String jobId,
|
@Valid @RequestBody UpdateJobParam param) {
|
waylineJobService.updateJobStatus(workspaceId, jobId, param);
|
return ResponseResult.success();
|
}
|
}
|