From 1b88342df7f52e00c6f9edf9dfb1c2b6f6ab0a07 Mon Sep 17 00:00:00 2001
From: aix <vip_xiaobin810@163.com>
Date: Mon, 29 Jul 2024 14:43:01 +0800
Subject: [PATCH] 直播掉线问题处理
---
src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java | 72 ++++++++++++++++++++++++++++++------
1 files changed, 60 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java b/src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java
index cc4d021..26f7ef8 100644
--- a/src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java
+++ b/src/main/java/com/dji/sample/wayline/plane/controller/CreateWayLineController.java
@@ -1,11 +1,27 @@
package com.dji.sample.wayline.plane.controller;
+import com.dji.sample.common.model.CustomClaim;
import com.dji.sample.common.model.ResponseResult;
+import com.dji.sample.media.model.MinioPojo;
+import com.dji.sample.media.util.MinioFileDownloader;
+import com.dji.sample.patches.config.pojo.PatchesConfigPojo;
+import com.dji.sample.patches.utils.MultipartFileTOFileUtil;
+import com.dji.sample.patches.utils.TimerUtil;
+import com.dji.sample.patches.utils.ZipUtil;
import com.dji.sample.patches.xml.mode.XMLTemplateModel;
import com.dji.sample.patches.xml.utils.CreateWaylineFileUtils;
import com.dji.sample.wayline.plane.PlaneCourseUtils;
import com.dji.sample.wayline.plane.param.CreateWaylineParam;
+import com.dji.sample.wayline.service.IWaylineFileService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.IOException;
+
+import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM;
/**
* @Author AIX
@@ -15,25 +31,57 @@
@RestController
@RequestMapping("/wayline/plane/createWayline")
public class CreateWayLineController {
+ @Autowired
+ private PatchesConfigPojo patchesConfigPojo;
+ @Autowired
+ private IWaylineFileService waylineFileService;
+
+ @Autowired
+ private MinioPojo pojo;
@PostMapping("/createPoints")
public ResponseResult createPoints(@RequestBody CreateWaylineParam param) {
return ResponseResult.success(PlaneCourseUtils.createWaylinePoints(param));
}
- @PostMapping("/saveWayLineFile")
- public ResponseResult saveWayLineFile(@RequestBody CreateWaylineParam param) {
- // 初始化模板对象
+ @PostMapping("/{workspace_id}/saveWayLineFile")
+ public ResponseResult saveWayLineFile(@PathVariable(name = "workspace_id") String workspaceId,
+ @RequestBody CreateWaylineParam param,
+ HttpServletRequest request
+ ) throws IOException {
+ CustomClaim customClaim = (CustomClaim) request.getAttribute(TOKEN_CLAIM);
+ String creator = customClaim.getUsername();
+// 初始化模板对象
XMLTemplateModel xmlModel = XMLTemplateModel.initPolygon(param);
-
- //生成航线文件
- CreateWaylineFileUtils.createWaylineFileByPolygon(xmlModel, "src\\main\\resources\\template\\template-polygon.xml", "src\\main\\resources\\template\\wpmz2\\template.xml");
- CreateWaylineFileUtils.createWaylineFileByPolygon(xmlModel, "src\\main\\resources\\template\\waylines-polygon.xml", "src\\main\\resources\\template\\wpmz2\\waylines.xml");
-
- //kmz、上传航线库
-
+// 生成航线文件
+ CreateWaylineFileUtils.createWaylineFileByPolygon(xmlModel, patchesConfigPojo.getPlaneTemplate(), patchesConfigPojo.getPlaneTargetTemplate());
+ CreateWaylineFileUtils.createWaylineFileByPolygon(xmlModel, patchesConfigPojo.getPlaneWaylines(), patchesConfigPojo.getPlaneTargetWaylines());
+// kmz、上传航线库
+ String destKMZFile = patchesConfigPojo.getPlaneKMZFile() + param.getWaylineName() + ".kmz"; // 输出的KMZ文件路径
+ ZipUtil.zipFolder(patchesConfigPojo.getSourceDir(), destKMZFile);
+ MultipartFile multipartFile = MultipartFileTOFileUtil.convert(new File(destKMZFile));
+ waylineFileService.importKmzFile(multipartFile, workspaceId, creator, null, "1");
return ResponseResult.success();
-
}
-}
+ @PutMapping("/{workspace_id}/updateWayLineFile/{id}")
+ public ResponseResult updateWayLineFile(@PathVariable(name = "workspace_id") String workspaceId,
+ @PathVariable(name = "id") String id,
+ @RequestBody CreateWaylineParam param,
+ HttpServletRequest request) throws IOException {
+ CustomClaim customClaim = (CustomClaim) request.getAttribute(TOKEN_CLAIM);
+ String creator = customClaim.getUsername();
+// 初始化模板对象
+ XMLTemplateModel xmlModel = XMLTemplateModel.initPolygon(param);
+// 生成航线文件
+ CreateWaylineFileUtils.createWaylineFileByPolygon(xmlModel, patchesConfigPojo.getPlaneTemplate(), patchesConfigPojo.getPlaneTargetTemplate());
+ CreateWaylineFileUtils.createWaylineFileByPolygon(xmlModel, patchesConfigPojo.getPlaneWaylines(), patchesConfigPojo.getPlaneTargetWaylines());
+ MinioFileDownloader.deleteFileFromMinio(pojo.getEndpoint(), pojo.getAccessKey(), pojo.getSecretKey(), pojo.getBucket(), param.getWaylineName());
+// kmz、上传航线库
+ String destKMZFile = patchesConfigPojo.getPlaneKMZFile() + param.getWaylineName() + ".kmz"; // 输出的KMZ文件路径
+ ZipUtil.zipFolder(patchesConfigPojo.getSourceDir(), destKMZFile);
+ MultipartFile multipartFile = MultipartFileTOFileUtil.convert(new File(destKMZFile));
+ waylineFileService.importPlaneKmzFile(multipartFile, workspaceId, creator, param.getWaylineName(), id);
+ return ResponseResult.success();
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3