From 40f1ac26483b71ff1ea5f042a795e9a3842a5827 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Thu, 18 Jul 2024 17:25:45 +0800
Subject: [PATCH] 修改航线文件存入、查看接口,新增根据任务ID查找航线接口。新增媒体文件根据任务ID去重、匹配图片。

---
 src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java |   46 ++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 38 insertions(+), 8 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 52da471..29a93f8 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;
 
@@ -82,6 +80,33 @@
     }
 
     @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));
@@ -97,6 +122,7 @@
                                         .eq(WaylineFileEntity::getWorkspaceId, workspaceId)
                                         .eq(WaylineFileEntity::getWaylineId, waylineId))));
     }
+
 
     @Override
     public URL getObjectUrl(String workspaceId, String waylineId) throws SQLException {
@@ -129,12 +155,12 @@
     }
 
     @Override
-    public Integer saveWaylineFiles(String workspaceId, WaylineFileDTO metadata, String patchesId) {
+    public Integer saveWaylineFiles(String workspaceId, WaylineFileDTO metadata, String patchesId, String isTemp) {
         metadata.setPatchesId(patchesId);
         WaylineFileEntity file = this.dtoConvertToEntity(metadata);
         file.setWaylineId(UUID.randomUUID().toString());
         file.setWorkspaceId(workspaceId);
-
+        file.setIsTemp(isTemp);
         if (!StringUtils.hasText(file.getSign())) {
             try (InputStream object = ossService.getObject(OssConfiguration.bucket, metadata.getObjectKey())) {
                 if (object.available() == 0) {
@@ -149,6 +175,7 @@
         int insertId = mapper.insert(file);
         return insertId > 0 ? file.getId() : insertId;
     }
+
 
     @Override
     public Boolean markFavorite(String workspaceId, List<String> waylineIds, Boolean isFavorite) {
@@ -192,7 +219,7 @@
     }
 
     @Override
-    public String importKmzFile(MultipartFile file, String workspaceId, String creator, String patchesId, String spotInFreckle) {
+    public String importKmzFile(MultipartFile file, String workspaceId, String creator, String patchesId, String isTemp) {
         Optional<WaylineFileDTO> waylineFileOpt = validKmzFile(file);
         if (waylineFileOpt.isEmpty()) {
             throw new RuntimeException("文件格式错误");
@@ -202,16 +229,17 @@
             WaylineFileDTO waylineFile = waylineFileOpt.get();
             waylineFile.setWaylineId(workspaceId);
             waylineFile.setUsername(creator);
-            waylineFile.setSpotInFreckle(spotInFreckle);
+            waylineFile.setIsTemp(isTemp);
             back = ossService.putObject(OssConfiguration.bucket, waylineFile.getObjectKey(), file.getInputStream());
-            if (back==null) {
-                this.saveWaylineFiles(workspaceId, waylineFile, patchesId);
+            if (back == null) {
+                this.saveWaylineFiles(workspaceId, waylineFile, patchesId, isTemp);
             }
         } catch (IOException e) {
             e.printStackTrace();
         }
         return back;
     }
+
 
     @Override
     public WaylineFileDTO importKmzFileBack(MultipartFile file, String workspaceId, String creator) {
@@ -364,6 +392,8 @@
         return builder.build();
     }
 
+
+
     @Override
     public int updateWayline(WaylineFileEntity entity) {
         return mapper.update(entity, new LambdaQueryWrapper<WaylineFileEntity>()

--
Gitblit v1.9.3