From 8d9a2d656e4ae007590c622e5f7c228adacdca49 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Fri, 14 Jun 2024 10:11:36 +0800
Subject: [PATCH] 统一风格

---
 src/main/java/com/dji/sample/media/service/impl/MediaServiceImpl.java |   45 +++++++++++++++++++++++++++++++++++++--------
 1 files changed, 37 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/dji/sample/media/service/impl/MediaServiceImpl.java b/src/main/java/com/dji/sample/media/service/impl/MediaServiceImpl.java
index 9b4d5e9..78afc16 100644
--- a/src/main/java/com/dji/sample/media/service/impl/MediaServiceImpl.java
+++ b/src/main/java/com/dji/sample/media/service/impl/MediaServiceImpl.java
@@ -15,6 +15,7 @@
 import com.dji.sample.component.websocket.service.ISendMessageService;
 import com.dji.sample.manage.model.dto.DeviceDTO;
 import com.dji.sample.manage.model.enums.UserTypeEnum;
+import com.dji.sample.manage.model.receiver.OsdSubDeviceReceiver;
 import com.dji.sample.manage.service.IDeviceRedisService;
 import com.dji.sample.manage.service.IDeviceService;
 import com.dji.sample.media.dao.IFileMapper;
@@ -27,15 +28,20 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.integration.annotation.ServiceActivator;
 import org.springframework.messaging.MessageHeaders;
 import org.springframework.stereotype.Service;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.awt.*;
+import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 import java.util.stream.Collectors;
 
 /**
@@ -71,6 +77,11 @@
     @Autowired
     private IFileMapper mapper;
 
+    @Value("${oss.out-net-file-address}")
+    private String fileAddress;
+    @Value("${oss.bucket}")
+    private String bucket;
+
     @Override
     public Boolean fastUpload(String workspaceId, String fingerprint) {
         return fileService.checkExist(workspaceId, fingerprint);
@@ -101,26 +112,27 @@
 
     @Override
     public PaginationData<MediaJobDTO> mediaPage(String workspaceId, SearchMediaParam param) {
+        param.setFileAddress(fileAddress + "/" + bucket);
         Page<MediaJobDTO> waylineJobDTOPage = mapper.mediaPage(new Page<MediaJobDTO>(param.getPage(), param.getPageSize()), workspaceId, param);
         return new PaginationData<MediaJobDTO>(waylineJobDTOPage.getRecords(), new Pagination(waylineJobDTOPage));
     }
 
     @Override
-    public PaginationData<MediaJobDTO> mediaDetail( String jobId,Long page, Long pageSize) {
-        Page<MediaJobDTO> waylineJobDTOPage = mapper.mediaDetail(new Page<MediaJobDTO>(page, pageSize), jobId);
+    public PaginationData<MediaJobDTO> mediaDetail(String jobId, Long page, Long pageSize) {
+        Page<MediaJobDTO> waylineJobDTOPage = mapper.mediaDetail(new Page<MediaJobDTO>(page, pageSize), jobId, fileAddress + "/" + bucket);
         return new PaginationData<MediaJobDTO>(waylineJobDTOPage.getRecords(), new Pagination(waylineJobDTOPage));
     }
 
     /**
      * Handle media files messages reported by dock.
      * 处理由dock报告的媒体文件消息。
+     *
      * @param receiver
      * @return
      */
     @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_FILE_UPLOAD_CALLBACK, outputChannel = ChannelName.OUTBOUND_EVENTS)
-    public CommonTopicReceiver handleFileUploadCallBack(CommonTopicReceiver receiver) {
+    public CommonTopicReceiver handleFileUploadCallBack(CommonTopicReceiver receiver) throws IOException, FontFormatException {
         FileUploadCallback callback = objectMapper.convertValue(receiver.getData(), FileUploadCallback.class);
-
         if (callback.getResult() != ResponseResult.CODE_SUCCESS) {
             log.error("媒体文件上传失败;Media file upload failed!");
             return null;
@@ -146,7 +158,7 @@
                 log.error("保存文件到数据库失败,请手动检查数据;Failed to save the file to the database, please check the data manually.");
                 return null;
             }
-        } else if (!StringUtils.isEmpty(jobId)) {
+        } else if (!StringUtils.isEmpty(jobId)) { //一键起飞操作需要
             WaylineJobDTO waylineJobDTO = new WaylineJobDTO();
             waylineJobDTO.setWorkspaceId(device.getWorkspaceId());
             waylineJobDTO.setDockSn(device.getDeviceSn());
@@ -164,6 +176,7 @@
     /**
      * update the uploaded count and notify web side
      * 更新上传的计数并通知web端
+     *
      * @param mediaFileCount
      * @param receiver
      * @param jobId
@@ -201,10 +214,10 @@
 
         //通过websocket把数据发送给web
         sendMessageService.sendBatch(dock.getWorkspaceId(), UserTypeEnum.WEB.getVal(),
-                        BizCodeEnum.FILE_UPLOAD_CALLBACK.getCode(), mediaFileCount);
+                BizCodeEnum.FILE_UPLOAD_CALLBACK.getCode(), mediaFileCount);
     }
 
-    private Boolean parseMediaFile(FileUploadCallback callback, WaylineJobDTO job) {
+    private Boolean parseMediaFile(FileUploadCallback callback, WaylineJobDTO job) throws IOException, FontFormatException {
         // Set the drone sn that shoots the media
         Optional<DeviceDTO> dockDTO = deviceService.getDeviceBySn(job.getDockSn());
         dockDTO.ifPresent(dock -> callback.getFile().getExt().setSn(dock.getChildDeviceSn()));
@@ -212,12 +225,28 @@
         // set path
         String objectKey = callback.getFile().getObjectKey();
         callback.getFile().setPath(objectKey.substring(objectKey.indexOf("/") + 1, objectKey.lastIndexOf("/")));
+        try {
+            ExecutorService executor = Executors.newSingleThreadExecutor();
+            executor.execute(() -> {
+                try {
+                    fileService.saveMarkFile(job.getWorkspaceId(), callback.getFile());
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+            });
+            executor.shutdown();
+        } catch (Exception e) {
+            log.error("方法执行有误==============: ", e);
+            throw e;
+        }
+
 
         return fileService.saveFile(job.getWorkspaceId(), callback.getFile()) > 0;
     }
 
     /**
      * Handles the highest priority message about media uploads.
+     *
      * @param receiver
      * @param headers
      * @return
@@ -251,7 +280,7 @@
             return null;
         }
         sendMessageService.sendBatch(deviceOpt.get().getWorkspaceId(), UserTypeEnum.WEB.getVal(),
-                        BizCodeEnum.HIGHEST_PRIORITY_UPLOAD_FLIGHT_TASK_MEDIA.getCode(), countDTO);
+                BizCodeEnum.HIGHEST_PRIORITY_UPLOAD_FLIGHT_TASK_MEDIA.getCode(), countDTO);
 
         return receiver;
     }

--
Gitblit v1.9.3