package com.ruoyi.device.uav.controller; import com.alibaba.fastjson.JSON; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.device.uav.service.UavService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import javax.annotation.PostConstruct; import java.util.*; import static org.springframework.http.HttpMethod.*; /** * 相机设备Controller * * @author ruoyi * @date 2023-01-31 */ @Slf4j(topic = "uav") @RestController @RequestMapping("/device/uav") @Api(tags = "无人机外部接口") public class ArdUavController extends BaseController { @Autowired private UavService uavService; @Value("${uav.enabled}") private Boolean uavEnabled; @PostConstruct public void created() { if(!uavEnabled){//无人机加入开关 return; } this.uavService.login(); } @GetMapping("/") @ApiOperation("无人机get接口") public Object get(@RequestParam String url) { return this.uavService.doUavRequest(GET, url, "{}"); } @PostMapping("/") @ApiOperation("无人机post接口") public Object post(@RequestBody Map param) { String url = param.get("url"); String data = param.get("data"); return this.uavService.doUavRequest(POST, url, data); } @DeleteMapping("/") @ApiOperation("无人机delete接口") public Object delete(@RequestBody Map param) { String url = param.get("url"); String data = param.get("data"); return this.uavService.doUavRequest(DELETE, url, data); } @GetMapping("/getToken") @ApiOperation("无人机delete接口") public Object getToken() { return this.uavService.getToken(); } @PostMapping("/checkPointValid") @ApiOperation("无人机检测航点有效性接口") public Object checkPointValid(@RequestBody Map> param) { String url = "wayline/api/v1/waylines/planning/check_point_valid"; return this.uavService.checkPointValid(url, param); } @PostMapping("/checkLineValid") @ApiOperation("无人机检测线路有效性接口") public Object checkLineValid(@RequestBody Map>> param) { String url = "wayline/api/v1/waylines/planning/check_line_valid"; return this.uavService.checkLineValid(url, param); } @GetMapping("/getWorkspaceId") @ApiOperation("获取工作空间主键") public AjaxResult getWorkspaceId() { try{ String workspaceId = this.uavService.getWorkspaceId(); if(workspaceId != null){ return AjaxResult.success(workspaceId); }else{ return AjaxResult.success(""); } }catch(Exception e){ e.printStackTrace(); return AjaxResult.error(); } } @PostMapping("/addWaylinesPlanning") @ApiOperation("新增航线") public Object addWaylinesPlanning(@RequestBody Map param) { String url = "wayline/api/v1/waylines/planning"; return this.uavService.addWaylinesPlanning(url, param); } @PostMapping("/deleteWaylinesPlanning") @ApiOperation("删除航线") public Object deleteWaylinesPlanning(@RequestBody Map param) { String url = "wayline/api/v1/waylines/delete/"; return this.uavService.deleteWaylinesPlanning(url, param); } @PutMapping("/updateWaylinesPlanning") @ApiOperation("修改航线") public Object updateWaylinesPlanning(@RequestBody Map param) { String url = "wayline/api/v1/waylines/update"; return this.uavService.updateWaylinesPlanning(url, param); } @PostMapping("/addAlarm") @ApiOperation("单点任务") public Object addAlarm(@RequestBody Map param) { String url = "manage/api/v1/alarms/add"; return this.uavService.addAlarm(url, param); } @PostMapping("/saveCurrentGroup") @ApiOperation("同步") public Object saveCurrentGroup(@RequestBody Map param) { String url = "wayline/api/v1/waylines/planning/save_current_group"; return this.uavService.saveCurrentGroup(url, param); } }