From 128183e176aab3003a04b517b56162ba2ef780b0 Mon Sep 17 00:00:00 2001
From: aix <vip_xiaobin810@163.com>
Date: Tue, 13 Aug 2024 14:47:32 +0800
Subject: [PATCH] 设备

---
 src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java |  114 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 92 insertions(+), 22 deletions(-)

diff --git a/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java b/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
index 49cdad2..6351f52 100644
--- a/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
+++ b/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
@@ -3,11 +3,16 @@
 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.common.util.MinioUrlUtils;
+import com.dji.sample.log.aspect.SysLogAnnotation;
 import com.dji.sample.wayline.model.dto.WaylineFileDTO;
 import com.dji.sample.wayline.model.dto.WaylineFileUploadDTO;
+import com.dji.sample.wayline.model.dto.WaylineListDTO;
+import com.dji.sample.wayline.model.entity.WaylineFileEntity;
 import com.dji.sample.wayline.model.param.WaylineQueryParam;
 import com.dji.sample.wayline.service.IWaylineFileService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -36,8 +41,9 @@
     /**
      * 根据查询条件查询航路线文件的基本数据。
      * pilot中的查询条件字段是固定的。
-     * @param orderBy   排序的字段。在sql语句的末尾拼接。
-     * @param favorited 路径线文件是否为收藏夹。
+     *
+     * @param orderBy      排序的字段。在sql语句的末尾拼接。
+     * @param favorited    路径线文件是否为收藏夹。
      * @param page
      * @param pageSize
      * @param templateType
@@ -45,11 +51,12 @@
      * @return
      */
     @GetMapping("/{workspace_id}/waylines")
+    @SysLogAnnotation(operModul = "航线库", operType = "查询", operDesc = "根据查询条件查询航路线文件的基本数据")
     public ResponseResult<PaginationData<WaylineFileDTO>> getWaylinesPagination(@RequestParam(name = "order_by") String orderBy,
-                                      @RequestParam(required = false) boolean favorited, @RequestParam Integer page,
-                                      @RequestParam(name = "page_size", defaultValue = "10") Integer pageSize,
-                                      @RequestParam(name = "template_type", required = false) Integer[] templateType,
-                                      @PathVariable(name = "workspace_id") String workspaceId) {
+                                                                                @RequestParam(required = false) boolean favorited, @RequestParam Integer page,
+                                                                                @RequestParam(name = "page_size", defaultValue = "10") Integer pageSize,
+                                                                                @RequestParam(name = "template_type", required = false) Integer[] templateType,
+                                                                                @PathVariable(name = "workspace_id") String workspaceId) {
         WaylineQueryParam param = WaylineQueryParam.builder()
                 .favorited(favorited)
                 .page(page)
@@ -61,29 +68,56 @@
         return ResponseResult.success(data);
     }
 
+    @GetMapping("/{workspace_id}/formatWayline")
+    @SysLogAnnotation(operModul = "航线库", operType = "查询", operDesc = "根据查询条件查询临时航路线文件的基本数据")
+    public ResponseResult<PaginationData<WaylineFileDTO>> getShowWaylinesPagination(@RequestParam(name = "order_by") String orderBy,
+                                                                                @RequestParam(required = false) boolean favorited, @RequestParam Integer page,
+                                                                                @RequestParam(name = "page_size", defaultValue = "10") Integer pageSize,
+                                                                                @RequestParam(name = "template_type", required = false) Integer[] templateType,
+                                                                                @PathVariable(name = "workspace_id") String workspaceId) {
+        WaylineQueryParam param = WaylineQueryParam.builder()
+                .favorited(favorited)
+                .page(page)
+                .pageSize(pageSize)
+                .orderBy(orderBy)
+                .templateType(templateType)
+                .build();
+        PaginationData<WaylineFileDTO> data = waylineFileService.getShowWaylinesByParam(workspaceId, param);
+        return ResponseResult.success(data);
+    }
+
     /**
      * 根据wayline文件id查询文件的下载地址;
      * 和重定向到此地址直接下载。
+     *
      * @param workspaceId
      * @param waylineId
      * @param response
      */
     @GetMapping("/{workspace_id}/waylines/{wayline_id}/url")
+    @SysLogAnnotation(operModul = "航线库", operType = "查询", operDesc = "根据wayline文件id查询文件的下载地址1")
     public void getFileUrl(@PathVariable(name = "workspace_id") String workspaceId,
-                                @PathVariable(name = "wayline_id") String waylineId, HttpServletResponse response) {
+                           @PathVariable(name = "wayline_id") String waylineId, HttpServletResponse response) {
 
         try {
             URL url = waylineFileService.getObjectUrl(workspaceId, waylineId);
-            response.sendRedirect(url.toString());
+            response.sendRedirect(MinioUrlUtils.getUrl(url));
 
         } catch (IOException | SQLException e) {
             e.printStackTrace();
         }
     }
+    @GetMapping("/{workspace_id}/getWayline")
+    public ResponseResult getWaylineByJobId(
+            @PathVariable(name = "workspace_id") String workspaceId,
+            @RequestParam String jobId) {
+        return ResponseResult.success(waylineFileService.getWaylineByWaylineId(workspaceId,jobId));
+    }
 
     @GetMapping("/{workspace_id}/waylines/{wayline_id}/urlData")
+    @SysLogAnnotation(operModul = "航线库", operType = "查询", operDesc = "根据wayline文件id查询文件的下载地址2")
     public ResponseResult getFileUrlData(@PathVariable(name = "workspace_id") String workspaceId,
-                           @PathVariable(name = "wayline_id") String waylineId, HttpServletResponse response) {
+                                         @PathVariable(name = "wayline_id") String waylineId, HttpServletResponse response) {
 
         URL url = null;
         try {
@@ -91,23 +125,25 @@
         } catch (SQLException e) {
             throw new RuntimeException(e);
         }
-        return ResponseResult.success(url);
+        return ResponseResult.success(MinioUrlUtils.getUrl(url));
     }
 
     /**
      * 当航路线文件被飞行员上传到存储服务器时,
      * 通过该接口报告文件的基本信息。
+     *
      * @param request
      * @param workspaceId
      * @param uploadFile
      * @return
      */
     @PostMapping("/{workspace_id}/upload-callback")
+    @SysLogAnnotation(operModul = "航线库", operType = "新增", operDesc = "当航路线文件被飞行员上传到存储服务器时,通过该接口报告文件的基本信息")
     public ResponseResult uploadCallBack(HttpServletRequest request,
                                          @PathVariable(name = "workspace_id") String workspaceId,
                                          @RequestBody WaylineFileUploadDTO uploadFile) {
 
-        CustomClaim customClaim = (CustomClaim)request.getAttribute(TOKEN_CLAIM);
+        CustomClaim customClaim = (CustomClaim) request.getAttribute(TOKEN_CLAIM);
 
         WaylineFileDTO metadata = uploadFile.getMetadata();
         metadata.setUsername(customClaim.getUsername());
@@ -121,13 +157,15 @@
 
     /**
      * 根据路径线文件id收藏路径线文件。
+     *
      * @param workspaceId
-     * @param ids   wayline file id
+     * @param ids         wayline file id
      * @return
      */
     @PostMapping("/{workspace_id}/favorites")
+    @SysLogAnnotation(operModul = "航线库", operType = "修改", operDesc = "根据路径线文件id收藏路径线文件")
     public ResponseResult markFavorite(@PathVariable(name = "workspace_id") String workspaceId,
-                             @RequestParam(name = "id") List<String> ids) {
+                                       @RequestParam(name = "id") List<String> ids) {
         boolean isMark = waylineFileService.markFavorite(workspaceId, ids, true);
 
         return isMark ? ResponseResult.success() : ResponseResult.error();
@@ -135,13 +173,15 @@
 
     /**
      * 根据航路线文件id删除此航路线文件的收藏夹。
+     *
      * @param workspaceId
-     * @param ids wayline file id
+     * @param ids         wayline file id
      * @return
      */
     @DeleteMapping("/{workspace_id}/favorites")
+    @SysLogAnnotation(operModul = "航线库", operType = "删除", operDesc = "根据航路线文件id删除此航路线文件的收藏夹")
     public ResponseResult unmarkFavorite(@PathVariable(name = "workspace_id") String workspaceId,
-                             @RequestParam(name = "id") List<String> ids) {
+                                         @RequestParam(name = "id") List<String> ids) {
         boolean isMark = waylineFileService.markFavorite(workspaceId, ids, false);
 
         return isMark ? ResponseResult.success() : ResponseResult.error();
@@ -150,11 +190,13 @@
     /**
      * 根据航路线名称检查名称是否已经存在,必须保证航路线名称的唯一性。
      * 此接口将在上传航路线时被调用,并且必须可用。
+     *
      * @param workspaceId
      * @param names
      * @return
      */
     @GetMapping("/{workspace_id}/waylines/duplicate-names")
+    @SysLogAnnotation(operModul = "航线库", operType = "查询", operDesc = "根据航路线名称检查名称是否已经存在")
     public ResponseResult checkDuplicateNames(@PathVariable(name = "workspace_id") String workspaceId,
                                               @RequestParam(name = "name") List<String> names) {
         List<String> existNamesList = waylineFileService.getDuplicateNames(workspaceId, names);
@@ -164,31 +206,59 @@
 
     /**
      * 根据航路线id删除工作区中的航路线文件。
+     *
      * @param workspaceId
      * @param waylineId
      * @return
      */
     @DeleteMapping("/{workspace_id}/waylines/{wayline_id}")
+    @SysLogAnnotation(operModul = "航线库", operType = "删除", operDesc = "根据航路线id删除工作区中的航路线文件")
     public ResponseResult deleteWayline(@PathVariable(name = "workspace_id") String workspaceId,
                                         @PathVariable(name = "wayline_id") String waylineId) {
         boolean isDel = waylineFileService.deleteByWaylineId(workspaceId, waylineId);
-        return isDel ? ResponseResult.success() : ResponseResult.error("Failed to delete wayline.");
+        return isDel ? ResponseResult.success() : ResponseResult.error("航线删除失败");
     }
 
     /**
      * 上传kmz航线文件
+     *
      * @param file
      * @return
      */
     @PostMapping("/{workspace_id}/waylines/file/upload")
-    public ResponseResult importKmzFile(HttpServletRequest request, MultipartFile file) {
+    @SysLogAnnotation(operModul = "航线库", operType = "上传", operDesc = "上传kmz航线文件")
+    public ResponseResult importKmzFile(@PathVariable(name = "workspace_id") String workspaceId,
+                                        HttpServletRequest request, MultipartFile file,
+                                        @RequestParam(required = false) String patchesId,
+                                        @RequestParam(defaultValue = "1",required = false) String isTemp
+    ) {
         if (Objects.isNull(file)) {
-            return ResponseResult.error("No file received.");
+            return ResponseResult.error("未上传文件");
         }
-        CustomClaim customClaim = (CustomClaim)request.getAttribute(TOKEN_CLAIM);
-        String workspaceId = customClaim.getWorkspaceId();
+        CustomClaim customClaim = (CustomClaim) request.getAttribute(TOKEN_CLAIM);
         String creator = customClaim.getUsername();
-        waylineFileService.importKmzFile(file, workspaceId, creator);
-        return ResponseResult.success();
+        String back = waylineFileService.importKmzFile(file, workspaceId, creator, patchesId,isTemp);
+        if (back != null) {
+            return ResponseResult.error(back);
+        }
+        return ResponseResult.success(back);
+    }
+
+    @GetMapping("/{workspace_id}/waylines_list")
+    @SysLogAnnotation(operModul = "航线库", operType = "查询", operDesc = "查询当前工作区航线库列表")
+    public ResponseResult<List<WaylineListDTO>> waylineList(@PathVariable(name = "workspace_id") String workspaceId, String droneName) {
+        return ResponseResult.success(waylineFileService.waylineList(workspaceId, droneName));
+    }
+
+    @PutMapping("/{workspace_id}/wayline_update")
+    public ResponseResult upWayline(@RequestParam String waylineId, @RequestParam String name) {
+        WaylineFileEntity entity = WaylineFileEntity
+                .builder()
+                .waylineId(waylineId)
+                .name(name)
+                .build();
+        if (waylineFileService.updateWayline(entity) == 0) {
+            return ResponseResult.error("更新失败");
+        } else return ResponseResult.success();
     }
 }

--
Gitblit v1.9.3