From fa89f5c4b746a41efee0362bd3a42ea2c97e2cff Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Mon, 22 Apr 2024 18:13:46 +0800
Subject: [PATCH] 在加水印前对文件进行音视频处理,分别执行不同方法。增加图片压缩、视频压缩方法。
---
src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java | 97 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 76 insertions(+), 21 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 2037099..c7a4fb8 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,18 +1,26 @@
package com.dji.sample.media.service.impl;
+import com.alibaba.fastjson.JSONObject;
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;
import com.dji.sample.common.model.PaginationData;
import com.dji.sample.component.oss.model.OssConfiguration;
import com.dji.sample.component.oss.service.impl.OssServiceContext;
import com.dji.sample.manage.model.dto.DeviceDictionaryDTO;
+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.service.IFileService;
+import com.dji.sample.patches.model.entity.LotInfo;
+import com.dji.sample.wayline.model.entity.WaylineJobEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -24,6 +32,7 @@
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
+import java.util.UUID;
import java.util.stream.Collectors;
/**
@@ -44,13 +53,17 @@
@Autowired
private OssServiceContext ossService;
- @Autowired
- private OssConfiguration configuration;
-
private Optional<MediaFileEntity> getMediaByFingerprint(String workspaceId, String fingerprint) {
MediaFileEntity fileEntity = mapper.selectOne(new LambdaQueryWrapper<MediaFileEntity>()
.eq(MediaFileEntity::getWorkspaceId, workspaceId)
.eq(MediaFileEntity::getFingerprint, fingerprint));
+ return Optional.ofNullable(fileEntity);
+ }
+
+ private Optional<MediaFileEntity> getMediaByFileId(String workspaceId, String fileId) {
+ MediaFileEntity fileEntity = mapper.selectOne(new LambdaQueryWrapper<MediaFileEntity>()
+ .eq(MediaFileEntity::getWorkspaceId, workspaceId)
+ .eq(MediaFileEntity::getFileId, fileId));
return Optional.ofNullable(fileEntity);
}
@@ -63,6 +76,7 @@
public Integer saveFile(String workspaceId, FileUploadDTO file) {
MediaFileEntity fileEntity = this.fileUploadConvertToEntity(file);
fileEntity.setWorkspaceId(workspaceId);
+ fileEntity.setFileId(UUID.randomUUID().toString());
return mapper.insert(fileEntity);
}
@@ -76,27 +90,65 @@
}
@Override
- public PaginationData<MediaFileDTO> getJobsPaginationByWorkspaceId(String workspaceId, long page, long pageSize) {
- Page<MediaFileEntity> pageData = mapper.selectPage(
- new Page<MediaFileEntity>(page, pageSize),
- new LambdaQueryWrapper<MediaFileEntity>()
- .eq(MediaFileEntity::getWorkspaceId, workspaceId));
- List<MediaFileDTO> records = pageData.getRecords()
- .stream()
- .map(this::entityConvertToDto)
- .collect(Collectors.toList());
-
- return new PaginationData<MediaFileDTO>(records, new Pagination(pageData));
+ public List<MediaFileEntity> listMediaFileEntity(String workspaceId, String jobId) {
+ return mapper.selectList(new LambdaQueryWrapper<MediaFileEntity>()
+ .eq(MediaFileEntity::getWorkspaceId, workspaceId).eq(MediaFileEntity::getJobId,jobId));
}
@Override
- public URL getObjectUrl(String workspaceId, String fingerprint) {
- Optional<MediaFileEntity> mediaFileOpt = getMediaByFingerprint(workspaceId, fingerprint);
+ public PaginationData<MediaFileEntity> getMediaFilesPaginationByWorkspaceId(String workspaceId, long page, long pageSize, MediaFileQueryParam mediaFileQueryParam) {
+// Page<MediaFileEntity> pageData = mapper.selectPage(
+// new Page<MediaFileEntity>(page, pageSize),
+// new LambdaQueryWrapper<MediaFileEntity>()
+// .eq(MediaFileEntity::getWorkspaceId, workspaceId)
+// .orderByDesc(MediaFileEntity::getId));
+ Page<MediaFileEntity> pageData = mapper.selectPage(new Page<MediaFileEntity>(page, pageSize), new LambdaQueryWrapper<MediaFileEntity>()
+ .eq(MediaFileEntity::getWorkspaceId,workspaceId)
+ .orderByDesc(MediaFileEntity::getCreateTime));
+
+ List<MediaFileEntity> records = pageData.getRecords()
+ .stream()
+ .collect(Collectors.toList());
+ return new PaginationData<MediaFileEntity>(records, new Pagination(pageData));
+ }
+
+ public int deleteMedia(String workspaceId, String fileId) {
+ int count=mapper.delete(new LambdaUpdateWrapper<MediaFileEntity>().eq(MediaFileEntity::getFileId, fileId)
+ .eq(MediaFileEntity::getWorkspaceId, workspaceId));
+ return count;
+ }
+ @Override
+ public URL getObjectUrl(String workspaceId, String fileId) {
+ Optional<MediaFileEntity> mediaFileOpt = getMediaByFileId(workspaceId, fileId);
if (mediaFileOpt.isEmpty()) {
- throw new IllegalArgumentException("{} doesn't exist.");
+ throw new IllegalArgumentException("{} 不存在");
}
- return ossService.getObjectUrl(configuration.getBucket(), mediaFileOpt.get().getObjectKey());
+ return ossService.getObjectUrl(OssConfiguration.bucket, mediaFileOpt.get().getObjectKey());
+ }
+
+ @Override
+ public List<MediaFileDTO> getFilesByWorkspaceAndJobId(String workspaceId, String jobId) {
+ return mapper.selectList(new LambdaQueryWrapper<MediaFileEntity>()
+ .eq(MediaFileEntity::getWorkspaceId, workspaceId)
+ .eq(MediaFileEntity::getJobId, jobId))
+ .stream()
+ .map(this::entityConvertToDto).collect(Collectors.toList());
+ }
+
+ @Override
+ public Boolean updateMediaFile(String workspaceId, MediaFileEntity mediaFileEntity) {
+
+ /*MediaFileEntity params = new MediaFileEntity();
+ params.setFileId(mediaFileEntity.getFileId());
+ params.setWorkspaceId(mediaFileEntity.getWorkspaceId());*/
+ boolean update1 = new LambdaUpdateChainWrapper<>(mapper).eq(MediaFileEntity::getFileId, mediaFileEntity.getFileId())
+ .set(MediaFileEntity::getFileName, mediaFileEntity.getFileName())
+ .set(MediaFileEntity::getCollectStatus,mediaFileEntity.getCollectStatus())
+ .set(MediaFileEntity::getUserId,mediaFileEntity.getUserId())
+ .update();
+// int update = mapper.update(mediaFileEntity, Wrappers.update(params));
+ return update1;
}
/**
@@ -115,7 +167,7 @@
.subFileType(file.getSubFileType())
.isOriginal(file.getExt().getIsOriginal())
.jobId(file.getExt().getFlightId())
- .drone(file.getExt().getSn())
+ .drone(file.getExt().getSn()).metadata(file.getMetadata())
.tinnyFingerprint(file.getExt().getTinnyFingerprint());
// domain-type-subType
@@ -124,7 +176,7 @@
.mapToInt(Integer::intValue)
.toArray();
Optional<DeviceDictionaryDTO> payloadDict = deviceDictionaryService
- .getOneDictionaryInfoByTypeSubType(payloadModel[1], payloadModel[2]);
+ .getOneDictionaryInfoByTypeSubType(DeviceDomainEnum.PAYLOAD.getVal(), payloadModel[1], payloadModel[2]);
payloadDict.ifPresent(payload -> builder.payload(payload.getDeviceName()));
}
return builder.build();
@@ -140,15 +192,18 @@
if (entity != null) {
builder.fileName(entity.getFileName())
+ .fileId(entity.getFileId())
.filePath(entity.getFilePath())
.isOriginal(entity.getIsOriginal())
.fingerprint(entity.getFingerprint())
.objectKey(entity.getObjectKey())
.tinnyFingerprint(entity.getTinnyFingerprint())
.payload(entity.getPayload())
+ .metadata(entity.getMetadata())
.createTime(LocalDateTime.ofInstant(
Instant.ofEpochMilli(entity.getCreateTime()), ZoneId.systemDefault()))
- .drone(entity.getDrone());
+ .drone(entity.getDrone())
+ .jobId(entity.getJobId());
}
--
Gitblit v1.9.3