From 49c807f8c2e80cc012ed755acbe1308c5de0c65c Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Wed, 24 Dec 2025 11:45:29 +0800
Subject: [PATCH] 增加任务视频 优化权限
---
ard-work/src/main/java/com/ard/work/component/forest/TyClient.java | 12 ++-
ard-work/src/main/java/com/ard/work/domain/receiver/BoxVideosReceiver.java | 32 ++++++++++
ard-work/src/main/java/com/ard/work/component/forest/TyConst.java | 1
ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java | 20 ++++++
ard-admin/src/main/java/com/ard/web/controller/work/UavControlController.java | 2
ard-work/src/main/java/com/ard/work/domain/dto/BoxVideosDTO.java | 27 +++++++++
ard-admin/src/main/java/com/ard/web/controller/work/UavBaseController.java | 21 ++++---
ard-work/src/main/java/com/ard/work/service/ITyService.java | 19 ++++++
8 files changed, 117 insertions(+), 17 deletions(-)
diff --git a/ard-admin/src/main/java/com/ard/web/controller/work/UavBaseController.java b/ard-admin/src/main/java/com/ard/web/controller/work/UavBaseController.java
index 626e421..5ddbecf 100644
--- a/ard-admin/src/main/java/com/ard/web/controller/work/UavBaseController.java
+++ b/ard-admin/src/main/java/com/ard/web/controller/work/UavBaseController.java
@@ -3,18 +3,12 @@
import com.ard.common.core.controller.BaseController;
import com.ard.common.core.domain.AjaxResult;
import com.ard.common.core.page.TableDataInfo;
-import com.ard.work.domain.dto.BoxHistoryDTO;
-import com.ard.work.domain.dto.BoxPhotosDTO;
-import com.ard.work.domain.dto.BoxSettingsDTO;
-import com.ard.work.domain.dto.UavFlightStateDTO;
+import com.ard.work.domain.dto.*;
import com.ard.work.domain.dto.telemetry.TelemetryData;
import com.ard.work.domain.entity.ArdFlightTask;
import com.ard.work.domain.entity.ArdFlightTaskPart;
import com.ard.work.domain.entity.ArdMedia;
-import com.ard.work.domain.receiver.BoxHistoryReceiver;
-import com.ard.work.domain.receiver.BoxInfoReceiver;
-import com.ard.work.domain.receiver.BoxPhotosReceiver;
-import com.ard.work.domain.receiver.BoxStreamUrlReceiver;
+import com.ard.work.domain.receiver.*;
import com.ard.work.service.IArdFlightTaskPartService;
import com.ard.work.service.IArdFlightTaskService;
import com.ard.work.service.IArdMediaService;
@@ -77,6 +71,7 @@
List<BoxHistoryReceiver> boxHistory = tyService.getBoxHistory(boxHistoryDTO);
return AjaxResult.success(boxHistory);
}
+
@ApiOperation("获取飞行架次")
@ApiOperationSupport(order = 4)
@GetMapping("/getFlightTask")
@@ -89,7 +84,7 @@
@ApiOperation("获取架次飞行轨迹")
@ApiOperationSupport(order = 4)
@GetMapping("/getCompleteFlightData")
- public TableDataInfo getCompleteFlightData(ArdFlightTaskPart ardFlightTaskPart){
+ public TableDataInfo getCompleteFlightData(ArdFlightTaskPart ardFlightTaskPart) {
List<UavFlightStateDTO> completeFlightData = ardFlightTaskPartService.getCompleteFlightData(ardFlightTaskPart);
return getDataTable(completeFlightData);
}
@@ -111,6 +106,14 @@
return AjaxResult.success(boxPhotos);
}
+ @ApiOperation("获取任务视频")
+ @ApiOperationSupport(order = 5)
+ @PostMapping("/getBoxPhotos")
+ public AjaxResult getBoxVideos(@RequestBody BoxVideosDTO boxVideosDTO) {
+ List<BoxVideosReceiver> boxVideos = tyService.getBoxVideos(boxVideosDTO);
+ return AjaxResult.success(boxVideos);
+ }
+
@ApiOperation("获取直播地址")
@ApiOperationSupport(order = 6)
@GetMapping("/getBoxLiveUrl/{boxSn}")
diff --git a/ard-admin/src/main/java/com/ard/web/controller/work/UavControlController.java b/ard-admin/src/main/java/com/ard/web/controller/work/UavControlController.java
index f61d61c..12cd1de 100644
--- a/ard-admin/src/main/java/com/ard/web/controller/work/UavControlController.java
+++ b/ard-admin/src/main/java/com/ard/web/controller/work/UavControlController.java
@@ -4,6 +4,7 @@
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;
@@ -20,6 +21,7 @@
* 申请控制权(请求通过 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));
diff --git a/ard-work/src/main/java/com/ard/work/component/forest/TyClient.java b/ard-work/src/main/java/com/ard/work/component/forest/TyClient.java
index 928ea74..badc96f 100644
--- a/ard-work/src/main/java/com/ard/work/component/forest/TyClient.java
+++ b/ard-work/src/main/java/com/ard/work/component/forest/TyClient.java
@@ -1,9 +1,6 @@
package com.ard.work.component.forest;
-import com.ard.work.domain.dto.BoxHistoryDTO;
-import com.ard.work.domain.dto.BoxPhotosDTO;
-import com.ard.work.domain.dto.BoxSettingsDTO;
-import com.ard.work.domain.dto.TokenDTO;
+import com.ard.work.domain.dto.*;
import com.ard.work.domain.receiver.*;
import com.dtflys.forest.annotation.*;
@@ -43,13 +40,18 @@
@Post(value = TyConst.POST_BOX_HISTORY, interceptor = TokenInterceptor.class)
TyHttpCommonReceiver<List<BoxHistoryReceiver>> getBoxHistory(@Var("serverId") String serverId,
@JSONBody BoxHistoryDTO boxHistoryDTO);
-
/**
* 获取任务照片
*/
@Post(value = TyConst.POST_BOX_PHOTOS, interceptor = TokenInterceptor.class)
TyHttpCommonReceiver<List<BoxPhotosReceiver>> getBoxPhotos(@Var("serverId") String serverId,
@JSONBody BoxPhotosDTO boxPhotosDTO);
+ /**
+ * 获取任务视频
+ */
+ @Post(value = TyConst.POST_BOX_VIDEOS, interceptor = TokenInterceptor.class)
+ TyHttpCommonReceiver<List<BoxVideosReceiver>> getBoxVideos(@Var("serverId") String serverId,
+ @JSONBody BoxVideosDTO boxVideosDTO);
/**
* 修改云盒设置
diff --git a/ard-work/src/main/java/com/ard/work/component/forest/TyConst.java b/ard-work/src/main/java/com/ard/work/component/forest/TyConst.java
index dba5e71..4d7f49c 100644
--- a/ard-work/src/main/java/com/ard/work/component/forest/TyConst.java
+++ b/ard-work/src/main/java/com/ard/work/component/forest/TyConst.java
@@ -8,6 +8,7 @@
public static final String POST_UPDATE_LIVE = "/eapi/update/live";
public static final String GET_BOX_LIVE_URL = "/eapi/box/pullUrl/{boxSn}";
public static final String POST_BOX_PHOTOS = "/eapi/box/photos";
+ public static final String POST_BOX_VIDEOS = "/eapi/box/videos";
public static final String GET_OPEN_LIVE = "/eapi/box/openlive/{boxSn}";
public static final String GET_CLOSE_LIVE = "/eapi/box/closelive/{boxSn}";
}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ard/work/domain/dto/BoxVideosDTO.java b/ard-work/src/main/java/com/ard/work/domain/dto/BoxVideosDTO.java
new file mode 100644
index 0000000..5dfe819
--- /dev/null
+++ b/ard-work/src/main/java/com/ard/work/domain/dto/BoxVideosDTO.java
@@ -0,0 +1,27 @@
+package com.ard.work.domain.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class BoxVideosDTO {
+
+ @JsonProperty("boxSn")
+ private String boxSn;
+
+ @JsonProperty("taskId")
+ private Integer taskId;
+
+ @JsonProperty("pageIndex")
+ private Integer pageIndex;
+
+ @JsonProperty("pageSize")
+ private Integer pageSize;
+
+}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ard/work/domain/receiver/BoxVideosReceiver.java b/ard-work/src/main/java/com/ard/work/domain/receiver/BoxVideosReceiver.java
new file mode 100644
index 0000000..704d9fd
--- /dev/null
+++ b/ard-work/src/main/java/com/ard/work/domain/receiver/BoxVideosReceiver.java
@@ -0,0 +1,32 @@
+package com.ard.work.domain.receiver;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+@Data
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class BoxVideosReceiver {
+
+ @JsonProperty("id")
+ private Long id;
+
+ @JsonProperty("taskId")
+ private Long taskId;
+
+ @JsonProperty("name")
+ private String name;
+
+ @JsonProperty("spanSeconds")
+ private String spanSeconds;
+
+ @JsonProperty("uri")
+ private String imgUrl;
+
+ @JsonProperty("startTime")
+ private String startTime;
+
+ @JsonProperty("endTime")
+ private String endTime;
+
+}
diff --git a/ard-work/src/main/java/com/ard/work/service/ITyService.java b/ard-work/src/main/java/com/ard/work/service/ITyService.java
index 9f40e9a..18db889 100644
--- a/ard-work/src/main/java/com/ard/work/service/ITyService.java
+++ b/ard-work/src/main/java/com/ard/work/service/ITyService.java
@@ -3,6 +3,7 @@
import com.ard.work.domain.dto.BoxHistoryDTO;
import com.ard.work.domain.dto.BoxPhotosDTO;
import com.ard.work.domain.dto.BoxSettingsDTO;
+import com.ard.work.domain.dto.BoxVideosDTO;
import com.ard.work.domain.dto.camera.*;
import com.ard.work.domain.dto.manual.*;
import com.ard.work.domain.dto.speaker.*;
@@ -32,12 +33,14 @@
/**
* 获取边缘服务器token信息
+ *
* @return
*/
AccessTokenReceiver getAccessToken(String ServerId);
/**
* 获取全部服务器云盒列表
+ *
* @return
*/
List<BoxInfoReceiver> getBoxList();
@@ -51,42 +54,56 @@
/**
* 获取直播地址
+ *
* @return
*/
BoxStreamUrlReceiver getBoxLiveUrl(@Var("boxSn") String boxSn);
/**
* 获取飞行历史
+ *
* @return
*/
List<BoxHistoryReceiver> getBoxHistory(BoxHistoryDTO boxHistoryDTO);
/**
- * 获取盒子图片
+ * 获取任务图片
+ *
* @return
*/
List<BoxPhotosReceiver> getBoxPhotos(BoxPhotosDTO boxPhotosDTO);
/**
+ * 获取任务视频
+ *
+ * @return
+ */
+ List<BoxVideosReceiver> getBoxVideos(BoxVideosDTO boxVideosDTO);
+
+ /**
* 修改云盒设置
+ *
* @return
*/
Boolean updateBoxSettings(BoxSettingsDTO boxSettingsDTO);
/**
* 设置返航高度
+ *
* @return
*/
Boolean updateReturnHeight(ReturnHeightSettingDTO returnHeightSettingDTO);
/**
* 设置视频码流
+ *
* @return
*/
Boolean updateVideoStream(VideoStreamSettingDTO videoStreamSettingDTO);
/**
* 设置返航点
+ *
* @return
*/
Boolean updateReturnPoint(ReturnPointSettingDTO returnPointSettingDTO);
diff --git a/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java b/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java
index e7f0880..c6a0d66 100644
--- a/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java
+++ b/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java
@@ -33,6 +33,7 @@
import com.ard.work.domain.dto.BoxHistoryDTO;
import com.ard.work.domain.dto.BoxPhotosDTO;
import com.ard.work.domain.dto.BoxSettingsDTO;
+import com.ard.work.domain.dto.BoxVideosDTO;
import com.ard.work.domain.dto.camera.*;
import com.ard.work.domain.dto.control.AbsAngleControlDTO;
import com.ard.work.domain.dto.control.AngleControlDTO;
@@ -157,7 +158,7 @@
}
/**
- * 获取盒子图片
+ * 获取任务图片
*
* @return List<BoxPhotosReceiver>
*/
@@ -172,7 +173,22 @@
boxPhotosDTO);
return boxPhotos == null ? null : boxPhotos.getContent();
}
-
+ /**
+ * 获取任务视频
+ *
+ * @return List<BoxVideosReceiver>
+ */
+ @Override
+ public List<BoxVideosReceiver> getBoxVideos(BoxVideosDTO boxVideosDTO) {
+ String boxSn = boxVideosDTO.getBoxSn();
+ ArdDroneInfo ardDroneInfo = ardDroneService.selectArdDroneByboxSn(boxSn);
+ if (ardDroneInfo == null) {
+ throw new ControlException("未找到对应的飞行器信息,boxSn:{}" + boxSn);
+ }
+ TyHttpCommonReceiver<List<BoxVideosReceiver>> boxVideos = tyClient.getBoxVideos(ardDroneInfo.getServerId(),
+ boxVideosDTO);
+ return boxVideos == null ? null : boxVideos.getContent();
+ }
/**
* 修改云盒设置
*/
--
Gitblit v1.9.3