From 8d9a2d656e4ae007590c622e5f7c228adacdca49 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Fri, 14 Jun 2024 10:11:36 +0800
Subject: [PATCH] 统一风格

---
 src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java |   92 ++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 81 insertions(+), 11 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 a4ec7f7..60e8331 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,15 +2,18 @@
 
 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;
 import com.dji.sample.component.oss.model.OssConfiguration;
 import com.dji.sample.component.oss.service.impl.OssServiceContext;
 import com.dji.sample.manage.model.enums.DeviceDomainEnum;
+import com.dji.sample.summarize.model.entity.FlyInfo;
 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;
@@ -26,7 +29,6 @@
 import org.springframework.util.StringUtils;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
@@ -93,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());
     }
@@ -107,8 +109,30 @@
         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) {
+                e.printStackTrace();
+            }
+        }
+        int insertId = mapper.insert(file);
+        return insertId > 0 ? file.getId() : insertId;
+    }
+
+    @Override
+    public Integer saveWaylineFiles(String workspaceId, WaylineFileDTO metadata, String patchesId) {
+        metadata.setPatchesId(patchesId);
+        WaylineFileEntity file = this.dtoConvertToEntity(metadata);
+        file.setWaylineId(UUID.randomUUID().toString());
+        file.setWorkspaceId(workspaceId);
+
+        if (!StringUtils.hasText(file.getSign())) {
+            try (InputStream object = ossService.getObject(OssConfiguration.bucket, metadata.getObjectKey())) {
+                if (object.available() == 0) {
+                    throw new RuntimeException("文件" + metadata.getObjectKey() +
+                            " 在空间中不存在[" + OssConfiguration.bucket + "].");
                 }
                 file.setSign(DigestUtils.md5DigestAsHex(object));
             } catch (IOException e) {
@@ -161,10 +185,10 @@
     }
 
     @Override
-    public void importKmzFile(MultipartFile file, String workspaceId, String creator) {
+    public void importKmzFile(MultipartFile file, String workspaceId, String creator,String patchesId) {
         Optional<WaylineFileDTO> waylineFileOpt = validKmzFile(file);
         if (waylineFileOpt.isEmpty()) {
-            throw new RuntimeException("The file format is incorrect.");
+            throw new RuntimeException("文件格式错误");
         }
 
         try {
@@ -173,16 +197,55 @@
             waylineFile.setUsername(creator);
 
             ossService.putObject(OssConfiguration.bucket, waylineFile.getObjectKey(), file.getInputStream());
-            this.saveWaylineFile(workspaceId, waylineFile);
+            this.saveWaylineFiles(workspaceId, waylineFile,patchesId);
         } catch (IOException e) {
             e.printStackTrace();
         }
     }
 
+    @Override
+    public WaylineFileDTO importKmzFileBack(MultipartFile file, String workspaceId, String creator) {
+        WaylineFileDTO waylineFile=null;
+        Optional<WaylineFileDTO> waylineFileOpt = validKmzFile(file);
+        if (waylineFileOpt.isEmpty()) {
+            throw new RuntimeException("文件格式错误");
+        }
+
+        try {
+            waylineFile = waylineFileOpt.get();
+            waylineFile.setWaylineId(workspaceId);
+            waylineFile.setUsername(creator);
+
+            ossService.putObject(OssConfiguration.bucket, waylineFile.getObjectKey(), file.getInputStream());
+            this.saveWaylineFile(workspaceId, waylineFile);
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return waylineFile;
+    }
+
+    @Override
+    public WaylineFileEntity selectByName(String name) {
+        return mapper.selectOne(new LambdaQueryWrapper<WaylineFileEntity>().eq(WaylineFileEntity::getName,name));
+    }
+
+    @Override
+    public List<WaylineListDTO> waylineList(String workspaceId,String droneName) {
+        LambdaQueryChainWrapper<WaylineFileEntity> wrapper =
+                new LambdaQueryChainWrapper<>(mapper).eq(WaylineFileEntity::getWorkspaceId, workspaceId);
+        if (StringUtils.hasText(droneName)){
+            wrapper.like(WaylineFileEntity::getName,droneName);
+        }
+
+        return  wrapper.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)) {
 
@@ -196,13 +259,13 @@
                 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);
@@ -214,7 +277,7 @@
                 if (!StringUtils.hasText(type) || !StringUtils.hasText(subType) ||
                         !StringUtils.hasText(payloadSubType) || !StringUtils.hasText(payloadType) ||
                         !StringUtils.hasText(templateType)) {
-                    throw new RuntimeException("The file format is incorrect.");
+                    throw new RuntimeException("文件格式错误");
                 }
 
                 return Optional.of(WaylineFileDTO.builder()
@@ -246,6 +309,7 @@
                 .droneModelKey(entity.getDroneModelKey())
                 .favorited(entity.getFavorited())
                 .name(entity.getName())
+                .patchesId(entity.getPatchesId())
                 .payloadModelKeys(entity.getPayloadModelKeys() != null ?
                         Arrays.asList(entity.getPayloadModelKeys().split(",")) : null)
                 .templateTypes(Arrays.stream(entity.getTemplateTypes().split(","))
@@ -280,9 +344,15 @@
                             .collect(Collectors.joining(",")))
                     .favorited(file.getFavorited())
                     .sign(file.getSign())
+                    .patchesId(file.getPatchesId())
                     .build();
         }
 
         return builder.build();
     }
+    @Override
+    public int updateWayline(WaylineFileEntity entity) {
+        return mapper.update(entity,new LambdaQueryWrapper<WaylineFileEntity>()
+                .eq(WaylineFileEntity::getWaylineId,entity.getWaylineId()));
+    }
 }

--
Gitblit v1.9.3