From 2db1aa88e8ab53096a936163d686b90d8e056a99 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Wed, 21 Aug 2024 23:18:33 +0800
Subject: [PATCH] 国土对接返回信息加密

---
 src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java |  131 ++++++++++++++++++++++++++++++++-----------
 1 files changed, 98 insertions(+), 33 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 60e8331..319e549 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
@@ -9,7 +9,6 @@
 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;
@@ -52,7 +51,6 @@
 
     @Autowired
     private IWaylineFileMapper mapper;
-
     @Autowired
     private OssServiceContext ossService;
 
@@ -64,10 +62,10 @@
                 new LambdaQueryWrapper<WaylineFileEntity>()
                         .eq(WaylineFileEntity::getWorkspaceId, workspaceId)
                         .eq(param.isFavorited(), WaylineFileEntity::getFavorited, param.isFavorited())
-                        .and(param.getTemplateType() != null, wrapper ->  {
-                                for (Integer type : param.getTemplateType()) {
-                                    wrapper.like(WaylineFileEntity::getTemplateTypes, type).or();
-                                }
+                        .and(param.getTemplateType() != null, wrapper -> {
+                            for (Integer type : param.getTemplateType()) {
+                                wrapper.like(WaylineFileEntity::getTemplateTypes, type).or();
+                            }
                         })
                         // There is a risk of SQL injection
                         .last(StringUtils.hasText(param.getOrderBy()), " order by " + param.getOrderBy()));
@@ -82,14 +80,49 @@
     }
 
     @Override
+    public PaginationData<WaylineFileDTO> getShowWaylinesByParam(String workspaceId, WaylineQueryParam param) {
+        // Paging Query
+        Page<WaylineFileEntity> page = mapper.selectPage(
+                new Page<WaylineFileEntity>(param.getPage(), param.getPageSize()),
+                new LambdaQueryWrapper<WaylineFileEntity>()
+                        .eq(WaylineFileEntity::getWorkspaceId, workspaceId)
+                        .eq(WaylineFileEntity::getIsTemp,1)
+                        .eq(param.isFavorited(), WaylineFileEntity::getFavorited, param.isFavorited())
+                        .and(param.getTemplateType() != null, wrapper -> {
+                            for (Integer type : param.getTemplateType()) {
+                                wrapper.like(WaylineFileEntity::getTemplateTypes, type).or();
+                            }
+                        })
+                        // There is a risk of SQL injection
+                        .last(StringUtils.hasText(param.getOrderBy()), " order by " + param.getOrderBy()));
+
+        // Wrap the results of a paging query into a custom paging object.
+        List<WaylineFileDTO> records = page.getRecords()
+                .stream()
+                .map(this::entityConvertToDTO)
+                .collect(Collectors.toList());
+
+        return new PaginationData<>(records, new Pagination(page));
+    }
+
+
+    @Override
+    public String getPatchesId(String waylineId) {
+        WaylineFileEntity entity = mapper.selectOne(new LambdaQueryWrapper<WaylineFileEntity>()
+                .eq(WaylineFileEntity::getWaylineId, waylineId));
+        return entity.getPatchesId();
+    }
+
+    @Override
     public Optional<WaylineFileDTO> getWaylineByWaylineId(String workspaceId, String waylineId) {
         return Optional.ofNullable(
                 this.entityConvertToDTO(
                         mapper.selectOne(
                                 new LambdaQueryWrapper<WaylineFileEntity>()
-                                    .eq(WaylineFileEntity::getWorkspaceId, workspaceId)
-                                    .eq(WaylineFileEntity::getWaylineId, waylineId))));
+                                        .eq(WaylineFileEntity::getWorkspaceId, workspaceId)
+                                        .eq(WaylineFileEntity::getWaylineId, waylineId))));
     }
+
 
     @Override
     public URL getObjectUrl(String workspaceId, String waylineId) throws SQLException {
@@ -105,7 +138,7 @@
         WaylineFileEntity file = this.dtoConvertToEntity(metadata);
         file.setWaylineId(UUID.randomUUID().toString());
         file.setWorkspaceId(workspaceId);
-
+        file.setWaylineType(metadata.getWaylineType());
         if (!StringUtils.hasText(file.getSign())) {
             try (InputStream object = ossService.getObject(OssConfiguration.bucket, metadata.getObjectKey())) {
                 if (object.available() == 0) {
@@ -122,12 +155,13 @@
     }
 
     @Override
-    public Integer saveWaylineFiles(String workspaceId, WaylineFileDTO metadata, String patchesId) {
+    public Integer saveWaylineFiles(String workspaceId, WaylineFileDTO metadata, String patchesId,String isTemp,int waylineType) {
         metadata.setPatchesId(patchesId);
         WaylineFileEntity file = this.dtoConvertToEntity(metadata);
         file.setWaylineId(UUID.randomUUID().toString());
         file.setWorkspaceId(workspaceId);
-
+        file.setIsTemp(isTemp);
+        file.setWaylineType(waylineType);
         if (!StringUtils.hasText(file.getSign())) {
             try (InputStream object = ossService.getObject(OssConfiguration.bucket, metadata.getObjectKey())) {
                 if (object.available() == 0) {
@@ -142,6 +176,7 @@
         int insertId = mapper.insert(file);
         return insertId > 0 ? file.getId() : insertId;
     }
+
 
     @Override
     public Boolean markFavorite(String workspaceId, List<String> waylineIds, Boolean isFavorite) {
@@ -160,8 +195,8 @@
     @Override
     public List<String> getDuplicateNames(String workspaceId, List<String> names) {
         return mapper.selectList(new LambdaQueryWrapper<WaylineFileEntity>()
-                .eq(WaylineFileEntity::getWorkspaceId, workspaceId)
-                .in(WaylineFileEntity::getName, names))
+                        .eq(WaylineFileEntity::getWorkspaceId, workspaceId)
+                        .in(WaylineFileEntity::getName, names))
                 .stream()
                 .map(WaylineFileEntity::getName)
                 .collect(Collectors.toList());
@@ -175,8 +210,8 @@
         }
         WaylineFileDTO wayline = waylineOpt.get();
         boolean isDel = mapper.delete(new LambdaUpdateWrapper<WaylineFileEntity>()
-                    .eq(WaylineFileEntity::getWorkspaceId, workspaceId)
-                    .eq(WaylineFileEntity::getWaylineId, waylineId))
+                .eq(WaylineFileEntity::getWorkspaceId, workspaceId)
+                .eq(WaylineFileEntity::getWaylineId, waylineId))
                 > 0;
         if (!isDel) {
             return false;
@@ -185,27 +220,32 @@
     }
 
     @Override
-    public void importKmzFile(MultipartFile file, String workspaceId, String creator,String patchesId) {
+    public String importKmzFile(MultipartFile file, String workspaceId, String creator, String patchesId,String isTemp,int waylineType) {
         Optional<WaylineFileDTO> waylineFileOpt = validKmzFile(file);
         if (waylineFileOpt.isEmpty()) {
             throw new RuntimeException("文件格式错误");
         }
-
+        String back = null;
         try {
             WaylineFileDTO waylineFile = waylineFileOpt.get();
             waylineFile.setWaylineId(workspaceId);
             waylineFile.setUsername(creator);
-
-            ossService.putObject(OssConfiguration.bucket, waylineFile.getObjectKey(), file.getInputStream());
-            this.saveWaylineFiles(workspaceId, waylineFile,patchesId);
+            waylineFile.setIsTemp(isTemp);
+            waylineFile.setWaylineType(waylineType);
+            back = ossService.putObject(OssConfiguration.bucket, waylineFile.getObjectKey(), file.getInputStream());
+            if (back == null) {
+                this.saveWaylineFiles(workspaceId, waylineFile, patchesId,isTemp, waylineType);
+            }
         } catch (IOException e) {
             e.printStackTrace();
         }
+        return back;
     }
 
+
     @Override
-    public WaylineFileDTO importKmzFileBack(MultipartFile file, String workspaceId, String creator) {
-        WaylineFileDTO waylineFile=null;
+    public WaylineFileDTO importKmzFileBack(MultipartFile file, String workspaceId, String creator,int waylineType) {
+        WaylineFileDTO waylineFile = null;
         Optional<WaylineFileDTO> waylineFileOpt = validKmzFile(file);
         if (waylineFileOpt.isEmpty()) {
             throw new RuntimeException("文件格式错误");
@@ -215,7 +255,7 @@
             waylineFile = waylineFileOpt.get();
             waylineFile.setWaylineId(workspaceId);
             waylineFile.setUsername(creator);
-
+            waylineFile.setWaylineType(waylineType);
             ossService.putObject(OssConfiguration.bucket, waylineFile.getObjectKey(), file.getInputStream());
             this.saveWaylineFile(workspaceId, waylineFile);
 
@@ -224,21 +264,39 @@
         }
         return waylineFile;
     }
-
     @Override
-    public WaylineFileEntity selectByName(String name) {
-        return mapper.selectOne(new LambdaQueryWrapper<WaylineFileEntity>().eq(WaylineFileEntity::getName,name));
+    public WaylineFileDTO importPlaneKmzFile(MultipartFile file, String workspaceId, String creator,String newName,String id,int waylineType) {
+        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());
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return waylineFile;
     }
 
     @Override
-    public List<WaylineListDTO> waylineList(String workspaceId,String droneName) {
+    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);
+        if (StringUtils.hasText(droneName)) {
+            wrapper.like(WaylineFileEntity::getName, droneName);
         }
 
-        return  wrapper.list().stream().map(r -> WaylineListDTO.builder().waylineFileId(r.getWaylineId()).name(r.getName()).build())
+        return wrapper.list().stream().map(r -> WaylineListDTO.builder().waylineFileId(r.getWaylineId()).name(r.getName()).build())
                 .collect(Collectors.toList());
     }
 
@@ -282,7 +340,7 @@
 
                 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)))
+                        .payloadModelKeys(List.of(String.format("%s-%s-%s", DeviceDomainEnum.PAYLOAD.getVal(), payloadType, payloadSubType)))
 //                        .objectKey(OssConfiguration.objectDirPrefix + File.separator + filename)
                         .objectKey(OssConfiguration.objectDirPrefix + "/" + filename)
                         .name(filename.substring(0, filename.lastIndexOf(WAYLINE_FILE_SUFFIX)))
@@ -296,8 +354,10 @@
         }
         return Optional.empty();
     }
+
     /**
      * Convert database entity objects into wayline data transfer object.
+     *
      * @param entity
      * @return
      */
@@ -326,6 +386,7 @@
 
     /**
      * Convert the received wayline object into a database entity object.
+     *
      * @param file
      * @return
      */
@@ -345,14 +406,18 @@
                     .favorited(file.getFavorited())
                     .sign(file.getSign())
                     .patchesId(file.getPatchesId())
+                    .spotInFreckle(file.getSpotInFreckle())
                     .build();
         }
 
         return builder.build();
     }
+
+
+
     @Override
     public int updateWayline(WaylineFileEntity entity) {
-        return mapper.update(entity,new LambdaQueryWrapper<WaylineFileEntity>()
-                .eq(WaylineFileEntity::getWaylineId,entity.getWaylineId()));
+        return mapper.update(entity, new LambdaQueryWrapper<WaylineFileEntity>()
+                .eq(WaylineFileEntity::getWaylineId, entity.getWaylineId()));
     }
 }

--
Gitblit v1.9.3