package com.ard.web.controller.work; import com.ard.common.core.domain.AjaxResult; import com.ard.work.service.control.UavControlService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @Api(tags = "无人机控制权接口") @RestController @RequestMapping("/uav/control") public class UavControlController { @Resource private UavControlService uavControlService; /** * 申请控制权(请求通过 WebSocket 发送给当前控制者) */ @ApiOperation("申请控制权") @PreAuthorize("@ss.hasPermi('uav:control:request')") @PostMapping("/request") public AjaxResult requestControl(@RequestParam String boxSn, @RequestParam String type) { return AjaxResult.success(uavControlService.requestControl(boxSn, type)); } /** * 处理控制请求(当前控制者同意/拒绝) */ @ApiOperation("处理控制请求") @PostMapping("/handle") public AjaxResult handleControlRequest( @RequestParam String boxSn, @RequestParam String type, @RequestParam boolean approve, @RequestParam Long requesterId ) { return AjaxResult.success(uavControlService.handleControlResponse(boxSn, approve, type, requesterId)); } /** * 释放控制权 */ @ApiOperation("释放控制权") @PostMapping("/release") public AjaxResult releaseControl(@RequestParam String boxSn, @RequestParam String type) { return AjaxResult.success(uavControlService.releaseControl(boxSn, type)); } /** * 按类型获取当前控制者 */ @ApiOperation("按类型获取当前控制者") @GetMapping("/getCurrentControllerByType") public AjaxResult getCurrentController(@RequestParam String boxSn, @RequestParam String type) { return AjaxResult.success(uavControlService.getCurrentController(boxSn, type)); } /** * 获取全部类型当前控制者 */ @ApiOperation("获取全部类型当前控制者") @GetMapping("/getAllCurrentController") public AjaxResult getAllCurrentController(@RequestParam String boxSn) { return AjaxResult.success(uavControlService.getCurrentController(boxSn)); } }