From 74d1c21ebb6b3b916904d95d13d289df23dcdedd Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Tue, 20 Aug 2024 18:06:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/ht-dev' into ht-dev
---
src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java | 148 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 116 insertions(+), 32 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 c4934ca..44b5e8d 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;
@@ -34,10 +39,11 @@
private IWaylineFileService waylineFileService;
/**
- * Query the basic data of the wayline file according to the query conditions.
- * The query condition field in pilot is fixed.
- * @param orderBy Sorted fields. Spliced at the end of the sql statement.
- * @param favorited Whether the wayline file is favorited or not.
+ * 根据查询条件查询航路线文件的基本数据。
+ * pilot中的查询条件字段是固定的。
+ *
+ * @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,39 +68,82 @@
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);
+ }
+
/**
- * Query the download address of the file according to the wayline file id,
- * and redirect to this address directly for download.
+ * 根据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) {
+
+ URL url = null;
+ try {
+ url = waylineFileService.getObjectUrl(workspaceId, waylineId);
+ } catch (SQLException e) {
+ throw new RuntimeException(e);
+ }
+ return ResponseResult.success(MinioUrlUtils.getUrl(url));
+ }
/**
- * When the wayline file is uploaded to the storage server by pilot,
- * the basic information of the file is reported through this interface.
+ * 当航路线文件被飞行员上传到存储服务器时,
+ * 通过该接口报告文件的基本信息。
+ *
* @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());
@@ -106,41 +156,47 @@
}
/**
- * Favorite the wayline file according to the wayline file id.
+ * 根据路径线文件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();
}
/**
- * Delete the favorites of this wayline file based on the wayline file id.
+ * 根据航路线文件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();
}
/**
- * Checking whether the name already exists according to the wayline name must ensure the uniqueness of the wayline name.
- * This interface will be called when uploading waylines and must be available.
+ * 根据航路线名称检查名称是否已经存在,必须保证航路线名称的唯一性。
+ * 此接口将在上传航路线时被调用,并且必须可用。
+ *
* @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);
@@ -149,32 +205,60 @@
}
/**
- * Delete the wayline file in the workspace according to the wayline id.
+ * 根据航路线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("航线删除失败");
}
/**
- * Import kmz wayline files.
+ * 上传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,0);
+ 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