From bf4990ffb53e2a0e7b2ec0c7a8a054bdf8a57db5 Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Thu, 16 Nov 2023 10:02:13 +0800
Subject: [PATCH] 无人机 -设备分页新增保护区ID查询条件

---
 src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java |   38 +++++++++++++++++++++++++-------------
 1 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java b/src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java
index f540b66..14fa513 100644
--- a/src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java
+++ b/src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dji.sample.common.model.Pagination;
 import com.dji.sample.common.model.PaginationData;
@@ -11,7 +12,9 @@
 import com.dji.sample.wayline.dao.IWaylineFileMapper;
 import com.dji.sample.wayline.model.dto.KmzFileProperties;
 import com.dji.sample.wayline.model.dto.WaylineFileDTO;
+import com.dji.sample.wayline.model.dto.WaylineListDTO;
 import com.dji.sample.wayline.model.entity.WaylineFileEntity;
+import com.dji.sample.wayline.model.enums.WaylineTemplateTypeEnum;
 import com.dji.sample.wayline.model.param.WaylineQueryParam;
 import com.dji.sample.wayline.service.IWaylineFileService;
 import org.dom4j.Document;
@@ -92,7 +95,7 @@
     public URL getObjectUrl(String workspaceId, String waylineId) throws SQLException {
         Optional<WaylineFileDTO> waylineOpt = this.getWaylineByWaylineId(workspaceId, waylineId);
         if (waylineOpt.isEmpty()) {
-            throw new SQLException(waylineId + " does not exist.");
+            throw new SQLException(waylineId + " 不存在");
         }
         return ossService.getObjectUrl(OssConfiguration.bucket, waylineOpt.get().getObjectKey());
     }
@@ -106,8 +109,8 @@
         if (!StringUtils.hasText(file.getSign())) {
             try (InputStream object = ossService.getObject(OssConfiguration.bucket, metadata.getObjectKey())) {
                 if (object.available() == 0) {
-                    throw new RuntimeException("The file " + metadata.getObjectKey() +
-                            " does not exist in the bucket[" + OssConfiguration.bucket + "].");
+                    throw new RuntimeException("文件" + metadata.getObjectKey() +
+                            " 在空间中不存在[" + OssConfiguration.bucket + "].");
                 }
                 file.setSign(DigestUtils.md5DigestAsHex(object));
             } catch (IOException e) {
@@ -163,7 +166,7 @@
     public void importKmzFile(MultipartFile file, String workspaceId, String creator) {
         Optional<WaylineFileDTO> waylineFileOpt = validKmzFile(file);
         if (waylineFileOpt.isEmpty()) {
-            throw new RuntimeException("The file format is incorrect.");
+            throw new RuntimeException("文件格式错误");
         }
 
         try {
@@ -178,16 +181,24 @@
         }
     }
 
+    @Override
+    public List<WaylineListDTO> waylineList(String workspaceId) {
+        return new LambdaQueryChainWrapper<>(mapper).eq(WaylineFileEntity::getWorkspaceId, workspaceId)
+                .list().stream().map(r -> WaylineListDTO.builder().waylineFileId(r.getWaylineId()).name(r.getName()).build())
+                .collect(Collectors.toList());
+
+    }
+
     private Optional<WaylineFileDTO> validKmzFile(MultipartFile file) {
         String filename = file.getOriginalFilename();
         if (Objects.nonNull(filename) && !filename.endsWith(WAYLINE_FILE_SUFFIX)) {
-            throw new RuntimeException("The file format is incorrect.");
+            throw new RuntimeException("文件格式错误");
         }
         try (ZipInputStream unzipFile = new ZipInputStream(file.getInputStream(), StandardCharsets.UTF_8)) {
 
             ZipEntry nextEntry = unzipFile.getNextEntry();
             while (Objects.nonNull(nextEntry)) {
-                boolean isWaylines = (KmzFileProperties.FILE_DIR_FIRST + "/" + KmzFileProperties.FILE_DIR_SECOND_WAYLINES).equals(nextEntry.getName());
+                boolean isWaylines = (KmzFileProperties.FILE_DIR_FIRST + "/" + KmzFileProperties.FILE_DIR_SECOND_TEMPLATE).equals(nextEntry.getName());
                 if (!isWaylines) {
                     nextEntry = unzipFile.getNextEntry();
                     continue;
@@ -195,34 +206,35 @@
                 SAXReader reader = new SAXReader();
                 Document document = reader.read(unzipFile);
                 if (!StandardCharsets.UTF_8.name().equals(document.getXMLEncoding())) {
-                    throw new RuntimeException("The file encoding format is incorrect.");
+                    throw new RuntimeException("文件编码格式错误");
                 }
 
                 Node droneNode = document.selectSingleNode("//" + KmzFileProperties.TAG_WPML_PREFIX + KmzFileProperties.TAG_DRONE_INFO);
                 Node payloadNode = document.selectSingleNode("//" + KmzFileProperties.TAG_WPML_PREFIX + KmzFileProperties.TAG_PAYLOAD_INFO);
                 if (Objects.isNull(droneNode) || Objects.isNull(payloadNode)) {
-                    throw new RuntimeException("The file format is incorrect.");
+                    throw new RuntimeException("文件格式错误");
                 }
 
                 String type = droneNode.valueOf(KmzFileProperties.TAG_WPML_PREFIX + KmzFileProperties.TAG_DRONE_ENUM_VALUE);
                 String subType = droneNode.valueOf(KmzFileProperties.TAG_WPML_PREFIX + KmzFileProperties.TAG_DRONE_SUB_ENUM_VALUE);
                 String payloadType = payloadNode.valueOf(KmzFileProperties.TAG_WPML_PREFIX + KmzFileProperties.TAG_PAYLOAD_ENUM_VALUE);
                 String payloadSubType = payloadNode.valueOf(KmzFileProperties.TAG_WPML_PREFIX + KmzFileProperties.TAG_PAYLOAD_SUB_ENUM_VALUE);
-                String templateId = document.valueOf("//" + KmzFileProperties.TAG_WPML_PREFIX + KmzFileProperties.TAG_TEMPLATE_ID);
+                String templateType = document.valueOf("//" + KmzFileProperties.TAG_WPML_PREFIX + KmzFileProperties.TAG_TEMPLATE_TYPE);
 
                 if (!StringUtils.hasText(type) || !StringUtils.hasText(subType) ||
                         !StringUtils.hasText(payloadSubType) || !StringUtils.hasText(payloadType) ||
-                        !StringUtils.hasText(templateId)) {
-                    throw new RuntimeException("The file format is incorrect.");
+                        !StringUtils.hasText(templateType)) {
+                    throw new RuntimeException("文件格式错误");
                 }
 
                 return Optional.of(WaylineFileDTO.builder()
                         .droneModelKey(String.format("%s-%s-%s", DeviceDomainEnum.SUB_DEVICE.getVal(), type, subType))
                         .payloadModelKeys(List.of(String.format("%s-%s-%s",DeviceDomainEnum.PAYLOAD.getVal(), payloadType, payloadSubType)))
-                        .objectKey(OssConfiguration.objectDirPrefix + File.separator + filename)
+//                        .objectKey(OssConfiguration.objectDirPrefix + File.separator + filename)
+                        .objectKey(OssConfiguration.objectDirPrefix + "/" + filename)
                         .name(filename.substring(0, filename.lastIndexOf(WAYLINE_FILE_SUFFIX)))
                         .sign(DigestUtils.md5DigestAsHex(file.getInputStream()))
-                        .templateTypes(List.of(Integer.parseInt(templateId)))
+                        .templateTypes(List.of(WaylineTemplateTypeEnum.find(templateType).map(WaylineTemplateTypeEnum::getVal).orElse(-1)))
                         .build());
             }
 

--
Gitblit v1.9.3