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/media/service/impl/FileServiceImpl.java | 112 +++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 90 insertions(+), 22 deletions(-)
diff --git a/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java b/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java
index ebc2d92..f0809a9 100644
--- a/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java
+++ b/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java
@@ -156,22 +156,22 @@
patchesMapper.update(null, updateWrapper);
}
}
- MediaFileMarkEntity mediaFileMarkEntity = this.fileUploadConvertToMarkEntity(file);
- long timestamp = convertToTimestamp(file.getMetadata().getCreatedTime());
- File markFile = new File(WaterMarkUtil.addWatermark(file1, timestamp, file.getMetadata().getShootPosition().getLat(),
- file.getMetadata().getShootPosition().getLng(), file.getMetadata().getGimbalYawDegree()).toURI());
- Object data = ImgUtil.getInfo(file1);
- mediaFileMarkEntity.setDronedata(data);
- mediaFileMarkEntity.setWorkspaceId(workspaceId);
- mediaFileMarkEntity.setIsadd(0);
- mediaFileMarkEntity.setIsOriginal(false);
- mediaFileMarkEntity.setFileId(UUID.randomUUID().toString());
- mediaFileMarkEntity.setObjectKey("/mark" + file.getPath() + "/" + file.getName());
- mediaFileMarkEntity.setFileName("mark" + file.getName());
- mediaFileMarkEntity.setFilePath("mark" + file.getPath());
- String objectName = mediaFileMarkEntity.getObjectKey(); // 例如 "folder/file.txt"
- uploadFile(endpoint, accessKey, secretKey, bucketName, objectName, markFile, "image/jpeg");
- markMapper.insert(mediaFileMarkEntity);
+ MediaFileMarkEntity mediaFileMarkEntity = this.fileUploadConvertToMarkEntity(file);
+ long timestamp = convertToTimestamp(file.getMetadata().getCreatedTime());
+ File markFile = new File(WaterMarkUtil.addWatermark(file1, timestamp, file.getMetadata().getShootPosition().getLat(),
+ file.getMetadata().getShootPosition().getLng(), file.getMetadata().getGimbalYawDegree()).toURI());
+ Object data = ImgUtil.getInfo(file1);
+ mediaFileMarkEntity.setDronedata(data);
+ mediaFileMarkEntity.setWorkspaceId(workspaceId);
+ mediaFileMarkEntity.setIsadd(0);
+ mediaFileMarkEntity.setIsOriginal(false);
+ mediaFileMarkEntity.setFileId(UUID.randomUUID().toString());
+ mediaFileMarkEntity.setObjectKey("/mark" + file.getPath() + "/" + file.getName());
+ mediaFileMarkEntity.setFileName("mark" + file.getName());
+ mediaFileMarkEntity.setFilePath("mark" + file.getPath());
+ String objectName = mediaFileMarkEntity.getObjectKey(); // 例如 "folder/file.txt"
+ uploadFile(endpoint, accessKey, secretKey, bucketName, objectName, markFile, "image/jpeg");
+ markMapper.insert(mediaFileMarkEntity);
} catch (Exception e) {
e.printStackTrace();
}
@@ -181,19 +181,32 @@
@Override
public Object mediaInfo(String filename) {
String name = filename;
+ List<MediaFileEntity> entitys = mapper.selectList(new LambdaQueryWrapper<MediaFileEntity>()
+ .eq(MediaFileEntity::getFileName, name));
+ if (entitys != null && !entitys.isEmpty()) {
+ for (MediaFileEntity entity : entitys) {
+ if (entity.getDroneData() != null) {
+ return entity.getDroneData();
+ }
+ }
+ }
+
if (!filename.contains("mark")) {
name = "mark" + filename;
}
List<MediaFileMarkEntity> entity = markMapper.selectList(new LambdaQueryWrapper<MediaFileMarkEntity>()
.eq(MediaFileMarkEntity::getFileName, name));
- if (entity != null) {
- return entity.get(0).getDronedata();
- } else {
- List<MediaFileEntity> entitys = mapper.selectList(new LambdaQueryWrapper<MediaFileEntity>()
- .eq(MediaFileEntity::getFileName, name));
- return entitys.get(0).getDroneData();
+ if (entity != null && !entity.isEmpty()) {
+ for (MediaFileMarkEntity markEntity : entity) {
+ if (markEntity.getDronedata() != null) {
+ return markEntity.getDronedata();
+ }
+ }
}
+
+ return "null";
}
+
@Override
public List<MediaFileDTO> getAllFilesByWorkspaceId(String workspaceId) {
@@ -775,6 +788,61 @@
}
}
+ public PaginationData<MediaFileEntity> getJobId( int pageNum, int pageSize,String workspaceId) {
+ // 分页查询
+ Page<MediaFileEntity> page = new Page<>(pageNum, pageSize);
+ Page<MediaFileEntity> resultPage = mapper.selectPage(page, new LambdaQueryWrapper<MediaFileEntity>()
+ .eq(MediaFileEntity::getWorkspaceId, workspaceId));
+
+ List<MediaFileEntity> result = resultPage.getRecords();
+
+ // 根据 fileName 字段进行去重并设置 JobName
+ Map<String, MediaFileEntity> uniqueFilesMap = result.stream()
+ .peek(mediaFile -> {
+ String taskNameResult = waylineJobService.getName(mediaFile.getJobId());
+ mediaFile.setJobName(taskNameResult);
+ })
+ .collect(Collectors.toMap(
+ MediaFileEntity::getFileName,
+ entity -> entity,
+ (existing, replacement) -> existing // 如果有重复的,保留已有的
+ ));
+
+ List<MediaFileEntity> uniqueFiles = new ArrayList<>(uniqueFilesMap.values());
+
+ // 使用分页对象构造 Pagination
+ Pagination pagination = new Pagination(resultPage);
+ return new PaginationData<>(uniqueFiles, pagination);
+ }
+
+
+ @Override
+ public PaginationData<MediaFileEntity> getPhotoByJobId(int pageNum,int pageSize,String workspaceId, String jobId) {
+
+ // 分页查询
+ Page<MediaFileEntity> page = new Page<>(pageNum, pageSize);
+ Page<MediaFileEntity> resultPage = mapper.selectPage(page, new LambdaQueryWrapper<MediaFileEntity>()
+ .eq(MediaFileEntity::getJobId, jobId)
+ .eq(MediaFileEntity::getWorkspaceId, workspaceId));
+
+ List<MediaFileEntity> result = resultPage.getRecords();
+
+ // 根据 fileName 字段进行去重
+ Map<String, MediaFileEntity> uniqueFilesMap = result.stream()
+ .collect(Collectors.toMap(
+ MediaFileEntity::getFileName,
+ entity -> entity,
+ (existing, replacement) -> existing // 如果有重复的,保留已有的
+ ));
+
+ List<MediaFileEntity> uniqueFiles = new ArrayList<>(uniqueFilesMap.values());
+
+ // 使用分页对象构造 Pagination
+ Pagination pagination = new Pagination(resultPage);
+ return new PaginationData<>(uniqueFiles, pagination);
+
+ }
+
public void updateById(Integer id, MediaFileMarkEntity entity) {
entity.setIsadd(1);
--
Gitblit v1.9.3