From 7f9d813634b584abc6e076bf777f6064eaede3d2 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Tue, 22 Oct 2024 10:28:47 +0800
Subject: [PATCH] 增加:获取直播地址|获取飞行历史|获取任务照片

---
 ard-work/src/main/java/com/ard/tianyu/model/receiver/BoxPhotosReceiver.java     |   38 +++++++
 ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java           |   43 ++++++++
 ard-work/src/main/java/com/ard/tianyu/http/TyClient.java                        |   17 ++
 ard-work/src/main/java/com/ard/tianyu/controller/UavController.java             |   31 +++++
 ard-work/src/main/java/com/ard/tianyu/model/receiver/AccessTokenReceiver.java   |    1 
 ard-work/src/main/java/com/ard/tianyu/service/ITyService.java                   |   26 ++++
 ard-work/src/main/java/com/ard/tianyu/model/dto/BoxHistoryDTO.java              |   31 ++++++
 ard-work/src/main/java/com/ard/tianyu/model/dto/BoxPhotosDTO.java               |   24 ++++
 ard-work/src/main/java/com/ard/tianyu/model/receiver/PullStreamUrlReceiver.java |   26 +++++
 ard-work/src/main/java/com/ard/tianyu/model/receiver/BoxHistoryReceiver.java    |   38 +++++++
 10 files changed, 261 insertions(+), 14 deletions(-)

diff --git a/ard-work/src/main/java/com/ard/tianyu/controller/UavController.java b/ard-work/src/main/java/com/ard/tianyu/controller/UavController.java
index 757ab0b..4eba05c 100644
--- a/ard-work/src/main/java/com/ard/tianyu/controller/UavController.java
+++ b/ard-work/src/main/java/com/ard/tianyu/controller/UavController.java
@@ -1,13 +1,16 @@
 package com.ard.tianyu.controller;
 
 import com.ard.common.core.domain.AjaxResult;
+import com.ard.tianyu.model.dto.BoxHistoryDTO;
+import com.ard.tianyu.model.dto.BoxPhotosDTO;
+import com.ard.tianyu.model.receiver.BoxHistoryReceiver;
+import com.ard.tianyu.model.receiver.BoxPhotosReceiver;
 import com.ard.tianyu.model.receiver.BoxReceiver;
+import com.ard.tianyu.model.receiver.PullStreamUrlReceiver;
 import com.ard.tianyu.service.ITyService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -36,7 +39,27 @@
     @GetMapping("/getBoxList")
     public AjaxResult getBoxList() {
         List<BoxReceiver> BoxList = tyService.getBoxList();
-        //{"state":0,"content":{"companyId":4127,"accessToken":"sOONT0MMVdoKcMBibb40xxgrUrq0Hw9RFiajic3KOzoNtk"}}
         return AjaxResult.success(BoxList);
     }
+
+    @ApiOperation("获取直播地址")
+    @GetMapping("/getBoxList/{boxSn}")
+    public AjaxResult getBoxLiveUrl(@PathVariable("boxSn") String boxSn) {
+        PullStreamUrlReceiver boxLiveUrl = tyService.getBoxLiveUrl(boxSn);
+        return AjaxResult.success(boxLiveUrl);
+    }
+
+    @ApiOperation("获取飞行历史")
+    @PostMapping("/getBoxHistory")
+    public AjaxResult getBoxHistory(@RequestBody BoxHistoryDTO boxHistoryDTO) {
+        List<BoxHistoryReceiver> boxHistory = tyService.getBoxHistory(boxHistoryDTO);
+        return AjaxResult.success(boxHistory);
+    }
+
+    @ApiOperation("获取任务照片")
+    @PostMapping("/getBoxPhotos")
+    public AjaxResult getBoxPhotos(@RequestBody BoxPhotosDTO boxPhotosDTO) {
+        List<BoxPhotosReceiver> boxPhotos = tyService.getBoxPhotos(boxPhotosDTO);
+        return AjaxResult.success(boxPhotos);
+    }
 }
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ard/tianyu/http/TyClient.java b/ard-work/src/main/java/com/ard/tianyu/http/TyClient.java
index ec6c518..3978c29 100644
--- a/ard-work/src/main/java/com/ard/tianyu/http/TyClient.java
+++ b/ard-work/src/main/java/com/ard/tianyu/http/TyClient.java
@@ -1,9 +1,9 @@
 package com.ard.tianyu.http;
 
+import com.ard.tianyu.model.dto.BoxHistoryDTO;
+import com.ard.tianyu.model.dto.BoxPhotosDTO;
 import com.ard.tianyu.model.dto.TokenDTO;
-import com.ard.tianyu.model.receiver.AccessTokenReceiver;
-import com.ard.tianyu.model.receiver.BoxReceiver;
-import com.ard.tianyu.model.receiver.TyHttpCommonReceiver;
+import com.ard.tianyu.model.receiver.*;
 import com.dtflys.forest.annotation.*;
 
 import java.util.List;
@@ -25,4 +25,13 @@
 
     @Get(TyConst.GET_BOX_LIST)
     TyHttpCommonReceiver<List<BoxReceiver>> getBoxList(@Header Map<String, String> headers);
-}
+
+    @Get(TyConst.GET_BOX_LIVE_URL)
+    TyHttpCommonReceiver<PullStreamUrlReceiver> getBoxLiveUrl(@Var("boxSn") String boxSn, @Header Map<String, String> headers);
+
+    @Post(TyConst.POST_BOX_HISTORY)
+    TyHttpCommonReceiver<List<BoxHistoryReceiver>> getBoxHistory(@JSONBody BoxHistoryDTO boxHistoryDTO, @Header Map<String, String> headers);
+
+    @Post(TyConst.POST_BOX_PHOTOS)
+    TyHttpCommonReceiver<List<BoxPhotosReceiver>> getBoxPhotos(@JSONBody BoxPhotosDTO boxPhotosDTO, @Header Map<String, String> headers);
+}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ard/tianyu/model/dto/BoxHistoryDTO.java b/ard-work/src/main/java/com/ard/tianyu/model/dto/BoxHistoryDTO.java
new file mode 100644
index 0000000..d6bc0c3
--- /dev/null
+++ b/ard-work/src/main/java/com/ard/tianyu/model/dto/BoxHistoryDTO.java
@@ -0,0 +1,31 @@
+package com.ard.tianyu.model.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 BoxHistoryDTO {
+
+    @JsonProperty("boxSn")
+    private String boxSn;
+
+    @JsonProperty("startTime")
+    private String startTime;
+
+    @JsonProperty("endTime")
+    private String endTime;
+
+    @JsonProperty("pageIndex")
+    private Integer pageIndex;
+
+    @JsonProperty("pageSize")
+    private Integer pageSize;
+
+}
+
diff --git a/ard-work/src/main/java/com/ard/tianyu/model/dto/BoxPhotosDTO.java b/ard-work/src/main/java/com/ard/tianyu/model/dto/BoxPhotosDTO.java
new file mode 100644
index 0000000..081d245
--- /dev/null
+++ b/ard-work/src/main/java/com/ard/tianyu/model/dto/BoxPhotosDTO.java
@@ -0,0 +1,24 @@
+package com.ard.tianyu.model.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 BoxPhotosDTO {
+
+    @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/tianyu/model/receiver/AccessTokenReceiver.java b/ard-work/src/main/java/com/ard/tianyu/model/receiver/AccessTokenReceiver.java
index f36b13a..01c11ec 100644
--- a/ard-work/src/main/java/com/ard/tianyu/model/receiver/AccessTokenReceiver.java
+++ b/ard-work/src/main/java/com/ard/tianyu/model/receiver/AccessTokenReceiver.java
@@ -3,7 +3,6 @@
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
-import org.springframework.http.HttpHeaders;
 import org.springframework.util.MultiValueMap;
 
 import java.util.HashMap;
diff --git a/ard-work/src/main/java/com/ard/tianyu/model/receiver/BoxHistoryReceiver.java b/ard-work/src/main/java/com/ard/tianyu/model/receiver/BoxHistoryReceiver.java
new file mode 100644
index 0000000..16cdaea
--- /dev/null
+++ b/ard-work/src/main/java/com/ard/tianyu/model/receiver/BoxHistoryReceiver.java
@@ -0,0 +1,38 @@
+package com.ard.tianyu.model.receiver;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+@Data
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class BoxHistoryReceiver {
+
+    @JsonProperty("taskId")
+    private Integer taskId;
+
+    @JsonProperty("boxSn")
+    private String boxSn;
+
+    @JsonProperty("boxName")
+    private String boxName;
+
+    @JsonProperty("taskName")
+    private String taskName;
+
+    @JsonProperty("photoCount")
+    private String photoCount;
+
+    @JsonProperty("telemetryPath")
+    private String telemetryPath;
+
+    @JsonProperty("videoPath")
+    private String videoPath;
+
+    @JsonProperty("startTime")
+    private String startTime;
+
+    @JsonProperty("endTime")
+    private String endTime;
+
+}
diff --git a/ard-work/src/main/java/com/ard/tianyu/model/receiver/BoxPhotosReceiver.java b/ard-work/src/main/java/com/ard/tianyu/model/receiver/BoxPhotosReceiver.java
new file mode 100644
index 0000000..183b598
--- /dev/null
+++ b/ard-work/src/main/java/com/ard/tianyu/model/receiver/BoxPhotosReceiver.java
@@ -0,0 +1,38 @@
+package com.ard.tianyu.model.receiver;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+@Data
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class BoxPhotosReceiver {
+
+    @JsonProperty("photoId")
+    private Long photoId;
+
+    @JsonProperty("lng")
+    private Double lng;
+
+    @JsonProperty("lat")
+    private Double lat;
+
+    @JsonProperty("height")
+    private Double height;
+
+    @JsonProperty("taskId")
+    private Long taskId;
+
+    @JsonProperty("fileSize")
+    private Long fileSize;
+
+    @JsonProperty("fileMd5")
+    private String fileMd5;
+
+    @JsonProperty("imgUrl")
+    private String imgUrl;
+
+    @JsonProperty("timeStamp")
+    private Long timeStamp;
+
+}
diff --git a/ard-work/src/main/java/com/ard/tianyu/model/receiver/PullStreamUrlReceiver.java b/ard-work/src/main/java/com/ard/tianyu/model/receiver/PullStreamUrlReceiver.java
new file mode 100644
index 0000000..4b2d808
--- /dev/null
+++ b/ard-work/src/main/java/com/ard/tianyu/model/receiver/PullStreamUrlReceiver.java
@@ -0,0 +1,26 @@
+package com.ard.tianyu.model.receiver;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+@Data
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class PullStreamUrlReceiver {
+
+    @JsonProperty("rtsp")
+    private String rtsp;
+
+    @JsonProperty("rtmp")
+    private String rtmp;
+
+    @JsonProperty("flv")
+    private String flv;
+
+    @JsonProperty("hls")
+    private String hls;
+
+    @JsonProperty("rtc")
+    private String rtc;
+
+}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ard/tianyu/service/ITyService.java b/ard-work/src/main/java/com/ard/tianyu/service/ITyService.java
index d057f79..c1bccd2 100644
--- a/ard-work/src/main/java/com/ard/tianyu/service/ITyService.java
+++ b/ard-work/src/main/java/com/ard/tianyu/service/ITyService.java
@@ -1,9 +1,13 @@
 package com.ard.tianyu.service;
 
-import com.ard.tianyu.model.receiver.AccessTokenReceiver;
-import com.ard.tianyu.model.receiver.BoxReceiver;
+import com.ard.tianyu.model.dto.BoxHistoryDTO;
+import com.ard.tianyu.model.dto.BoxPhotosDTO;
+import com.ard.tianyu.model.receiver.*;
+import com.dtflys.forest.annotation.Header;
+import com.dtflys.forest.annotation.Var;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * ITyService
@@ -26,4 +30,22 @@
      */
     List<BoxReceiver> getBoxList();
 
+    /**
+     * 获取直播地址
+     * @return
+     */
+    PullStreamUrlReceiver  getBoxLiveUrl(@Var("boxSn") String boxSn);
+
+    /**
+     * 获取飞行历史
+     * @return
+     */
+    List<BoxHistoryReceiver> getBoxHistory(BoxHistoryDTO boxHistoryDTO);
+
+    /**
+     * 获取盒子图片
+     * @return
+     */
+    List<BoxPhotosReceiver> getBoxPhotos(BoxPhotosDTO boxPhotosDTO);
+
 }
diff --git a/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java b/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java
index 8734666..8fbd088 100644
--- a/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java
+++ b/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java
@@ -2,9 +2,9 @@
 
 import com.ard.tianyu.config.TyConfiguration;
 import com.ard.tianyu.http.TyClient;
-import com.ard.tianyu.model.receiver.AccessTokenReceiver;
-import com.ard.tianyu.model.receiver.BoxReceiver;
-import com.ard.tianyu.model.receiver.TyHttpCommonReceiver;
+import com.ard.tianyu.model.dto.BoxHistoryDTO;
+import com.ard.tianyu.model.dto.BoxPhotosDTO;
+import com.ard.tianyu.model.receiver.*;
 import com.ard.tianyu.service.ITyService;
 import org.springframework.stereotype.Service;
 
@@ -28,14 +28,17 @@
 
     /**
      * 获取天宇token信息
+     *
      * @return
      */
     @Override
     public AccessTokenReceiver getAccessToken() {
         return tyConfiguration.getAccessToken();
     }
+
     /**
      * 获取云盒列表
+     *
      * @return
      */
     @Override
@@ -44,4 +47,38 @@
         TyHttpCommonReceiver<List<BoxReceiver>> boxListReveiver = tyClient.getBoxList(tyConfiguration.getAccessToken().convertFromDTO());
         return boxListReveiver.getContent();
     }
+
+    /**
+     * 获取直播地址
+     *
+     * @return
+     */
+    @Override
+    public PullStreamUrlReceiver getBoxLiveUrl(String boxSn) {
+
+        TyHttpCommonReceiver<PullStreamUrlReceiver> boxLiveUrl = tyClient.getBoxLiveUrl(boxSn, tyConfiguration.getAccessToken().convertFromDTO());
+        return boxLiveUrl.getContent();
+    }
+
+    /**
+     * 获取飞行历史
+     *
+     * @return
+     */
+    @Override
+    public List<BoxHistoryReceiver> getBoxHistory(BoxHistoryDTO boxHistoryDTO) {
+        TyHttpCommonReceiver<List<BoxHistoryReceiver>> boxHistory = tyClient.getBoxHistory(boxHistoryDTO, tyConfiguration.getAccessToken().convertFromDTO());
+        return boxHistory.getContent();
+    }
+
+    /**
+     * 获取盒子图片
+     *
+     * @return
+     */
+    @Override
+    public List<BoxPhotosReceiver> getBoxPhotos(BoxPhotosDTO boxPhotosDTO) {
+        TyHttpCommonReceiver<List<BoxPhotosReceiver>> boxPhotos = tyClient.getBoxPhotos(boxPhotosDTO, tyConfiguration.getAccessToken().convertFromDTO());
+        return boxPhotos.getContent();
+    }
 }

--
Gitblit v1.9.3