From c719838525c874e1527b6ee137a163f044ba4a80 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Thu, 11 Jul 2024 20:42:26 +0800
Subject: [PATCH] 新增喊话模块,更新shp文件入库,对图片返回做去重处理

---
 src/main/java/com/dji/sample/patches/service/impl/GetPatchesServiceImpl.java |   47 +++++++++++++++++++++++++++++++++++++----------
 1 files changed, 37 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/dji/sample/patches/service/impl/GetPatchesServiceImpl.java b/src/main/java/com/dji/sample/patches/service/impl/GetPatchesServiceImpl.java
index 5e67223..f1ba312 100644
--- a/src/main/java/com/dji/sample/patches/service/impl/GetPatchesServiceImpl.java
+++ b/src/main/java/com/dji/sample/patches/service/impl/GetPatchesServiceImpl.java
@@ -99,33 +99,60 @@
         int statue = lotInfo.getIsPush();
 
         if (statue == 1) {
-            Page<MediaFileMarkEntity> page = markMapper.selectPage(
-                    new Page<MediaFileMarkEntity>(param.getPage(), param.getPageSize()),
+            List<MediaFileMarkEntity> allResults = markMapper.selectList(
                     new LambdaQueryWrapper<MediaFileMarkEntity>().like(MediaFileMarkEntity::getFileName, "%" + dkbh + "~" + "%"));
 
+            // 去重处理
             Map<String, MediaFileMarkEntity> uniqueFileMap = new LinkedHashMap<>();
-            List<MediaFileMarkEntity> records = page.getRecords()
-                    .stream()
+            List<MediaFileMarkEntity> uniqueResults = allResults.stream()
                     .filter(mediaFile -> uniqueFileMap.putIfAbsent(mediaFile.getFileName(), mediaFile) == null)
                     .collect(Collectors.toList());
 
-            return new PaginationData<MediaFileMarkEntity>(records, new Pagination(page));
+            // 计算分页信息
+            int total = uniqueResults.size();
+            int start = (param.getPage() - 1) * param.getPageSize();
+            int end = Math.min(start + param.getPageSize(), total);
+
+            // 获取当前页的结果
+            List<MediaFileMarkEntity> pageResults = uniqueResults.subList(start, end);
+
+            // 创建临时的 Page 对象
+            Page<MediaFileMarkEntity> resultPage = new Page<>(param.getPage(), param.getPageSize());
+            resultPage.setRecords(pageResults);
+            resultPage.setTotal(total);
+
+            // 返回分页数据
+            return new PaginationData<>(pageResults, new Pagination(resultPage));
         } else {
-            Page<MediaFileEntity> page = fileMapper.selectPage(
-                    new Page<MediaFileEntity>(param.getPage(), param.getPageSize()),
+            List<MediaFileEntity> allResults = fileMapper.selectList(
                     new LambdaQueryWrapper<MediaFileEntity>().like(MediaFileEntity::getFileName, "%" + dkbh + "~" + "%"));
 
+            // 去重处理
             Map<String, MediaFileEntity> uniqueFileMap = new LinkedHashMap<>();
-            List<MediaFileEntity> records = page.getRecords()
-                    .stream()
+            List<MediaFileEntity> uniqueResults = allResults.stream()
                     .filter(mediaFile -> uniqueFileMap.putIfAbsent(mediaFile.getFileName(), mediaFile) == null)
                     .collect(Collectors.toList());
 
-            return new PaginationData<MediaFileEntity>(records, new Pagination(page));
+            // 计算分页信息
+            int total = uniqueResults.size();
+            int start = (param.getPage() - 1) * param.getPageSize();
+            int end = Math.min(start + param.getPageSize(), total);
+
+            // 获取当前页的结果
+            List<MediaFileEntity> pageResults = uniqueResults.subList(start, end);
+
+            // 创建临时的 Page 对象
+            Page<MediaFileEntity> resultPage = new Page<>(param.getPage(), param.getPageSize());
+            resultPage.setRecords(pageResults);
+            resultPage.setTotal(total);
+
+            // 返回分页数据
+            return new PaginationData<>(pageResults, new Pagination(resultPage));
         }
     }
 
 
+
     public List<MediaFileEntity> listPohto(String dkbh, String workspaceId) {
         return fileMapper.selectList(new LambdaQueryWrapper<MediaFileEntity>().like(MediaFileEntity::getFileName, "%" + dkbh + "%")
                 .eq(MediaFileEntity::getWorkspaceId, workspaceId));

--
Gitblit v1.9.3