From b35dd737c03ee80d45753939ade49a59f556197f Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Wed, 22 May 2024 16:45:41 +0800
Subject: [PATCH] 航线问题修复,水印格式修改,图斑图片加水印
---
src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java | 78 +++++++++++++++++++++++++++++++++-----
1 files changed, 67 insertions(+), 11 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 f423170..24b347e 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
@@ -1,9 +1,11 @@
package com.dji.sample.media.service.impl;
-import com.alibaba.fastjson.JSONObject;
+import com.aliyun.oss.OSS;
+import com.aliyun.oss.OSSClientBuilder;
+import com.aliyun.oss.model.PutObjectRequest;
+import com.aliyun.oss.model.PutObjectResult;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dji.sample.common.model.Pagination;
@@ -14,17 +16,18 @@
import com.dji.sample.manage.model.enums.DeviceDomainEnum;
import com.dji.sample.manage.service.IDeviceDictionaryService;
import com.dji.sample.media.dao.IFileMapper;
-import com.dji.sample.media.model.FileUploadDTO;
-import com.dji.sample.media.model.MediaFileDTO;
-import com.dji.sample.media.model.MediaFileEntity;
-import com.dji.sample.media.model.MediaFileQueryParam;
+import com.dji.sample.media.dao.IMarkMapper;
+import com.dji.sample.media.model.*;
import com.dji.sample.media.service.IFileService;
-import com.dji.sample.patches.model.entity.LotInfo;
-import com.dji.sample.wayline.model.entity.WaylineJobEntity;
+import com.dji.sample.territory.service.impl.TbFjServiceImpl;
+import com.dji.sample.territory.utils.WaterMarkUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.awt.*;
+import java.io.File;
+import java.io.IOException;
import java.net.URL;
import java.time.Instant;
import java.time.LocalDateTime;
@@ -46,7 +49,8 @@
@Autowired
private IFileMapper mapper;
-
+ @Autowired
+ private IMarkMapper markMapper;
@Autowired
private IDeviceDictionaryService deviceDictionaryService;
@@ -79,7 +83,21 @@
fileEntity.setFileId(UUID.randomUUID().toString());
return mapper.insert(fileEntity);
}
-
+ public Integer saveMarkFile(String workspaceId, FileUploadDTO file) throws IOException, FontFormatException {
+ MediaFileMarkEntity mediaFileMarkEntity =this.fileUploadConvertToMarkEntity(file);
+ String url = "http://dev.jxpskj.com:9000/cloud-bucket" + file.getObjectKey();
+ File file1=TbFjServiceImpl.downloadFile(url);
+ File file2= new File(WaterMarkUtil.addWatermark(file1, Long.valueOf(file.getMetadata().getCreatedTime().toString()),file.getMetadata().getPhotoedPosition().getLat(),
+ file.getMetadata().getPhotoedPosition().getLng(),file.getMetadata().getGimbalYawDegree()).toURI());
+ mediaFileMarkEntity.setObjectKey(file.getPath());
+ mediaFileMarkEntity.setWorkspaceId(workspaceId);
+ mediaFileMarkEntity.setFileId(UUID.randomUUID().toString());
+ mediaFileMarkEntity.setObjectKey("/mark"+file.getPath()+"/"+file.getName());
+ mediaFileMarkEntity.setFileName("mark"+file.getName());
+ mediaFileMarkEntity.setFilePath("mark"+file.getPath());
+ uploadFile(String.valueOf(file2), mediaFileMarkEntity.getObjectKey());
+ return markMapper.insert(mediaFileMarkEntity);
+ }
@Override
public List<MediaFileDTO> getAllFilesByWorkspaceId(String workspaceId) {
return mapper.selectList(new LambdaQueryWrapper<MediaFileEntity>()
@@ -182,6 +200,33 @@
}
return builder.build();
}
+ private MediaFileMarkEntity fileUploadConvertToMarkEntity(FileUploadDTO file) {
+ MediaFileMarkEntity.MediaFileMarkEntityBuilder builder = MediaFileMarkEntity.builder();
+
+ if (file != null) {
+ builder.fileName(file.getName())
+ .filePath(file.getPath())
+ .isadd(0)
+ .fingerprint(file.getFingerprint())
+ .objectKey(file.getObjectKey())
+ .subFileType(file.getSubFileType())
+ .isOriginal(file.getExt().getIsOriginal())
+ .jobId(file.getExt().getFlightId())
+ .drone(file.getExt().getSn()).metadata(file.getMetadata())
+ .tinnyFingerprint(file.getExt().getTinnyFingerprint());
+
+ // domain-type-subType
+ int[] payloadModel = Arrays.stream(file.getExt().getPayloadModelKey().split("-"))
+ .map(Integer::valueOf)
+ .mapToInt(Integer::intValue)
+ .toArray();
+ Optional<DeviceDictionaryDTO> payloadDict = deviceDictionaryService
+ .getOneDictionaryInfoByTypeSubType(DeviceDomainEnum.PAYLOAD.getVal(), payloadModel[1], payloadModel[2]);
+ payloadDict.ifPresent(payload -> builder.payload(payload.getDeviceName()));
+ }
+ return builder.build();
+ }
+
/**
* Convert database entity objects into file data transfer object.
@@ -210,5 +255,16 @@
return builder.build();
}
-
+ public void uploadFile(String filePath, String key) {
+ OSS ossClient = new OSSClientBuilder().build(OssConfiguration.endpoint, OssConfiguration.accessKey, OssConfiguration.secretKey);
+ try {
+ File file = new File(filePath);
+ PutObjectRequest putObjectRequest = new PutObjectRequest(OssConfiguration.bucket, key, file);
+ PutObjectResult putObjectResult = ossClient.putObject(putObjectRequest);
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ ossClient.shutdown();
+ }
+ }
}
--
Gitblit v1.9.3