From 9b2eedb85d53ca32610c32c6e50b5230ab3b16cf Mon Sep 17 00:00:00 2001
From: sean.zhou <sean.zhou@dji.com>
Date: Fri, 22 Jul 2022 20:16:03 +0800
Subject: [PATCH] V1.1.0 for dock
---
src/main/java/com/dji/sample/media/service/impl/MediaServiceImpl.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 56 insertions(+), 0 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 f7758d8..0e92b0b 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
@@ -1,13 +1,22 @@
package com.dji.sample.media.service.impl;
+import com.dji.sample.common.model.ResponseResult;
+import com.dji.sample.component.mqtt.model.*;
+import com.dji.sample.component.mqtt.service.IMessageSenderService;
+import com.dji.sample.media.model.FileUploadCallback;
import com.dji.sample.media.model.FileUploadDTO;
import com.dji.sample.media.model.MediaFileDTO;
import com.dji.sample.media.service.IFileService;
import com.dji.sample.media.service.IMediaService;
+import com.dji.sample.wayline.model.dto.WaylineJobDTO;
+import com.dji.sample.wayline.service.IWaylineJobService;
+import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.integration.annotation.ServiceActivator;
import org.springframework.stereotype.Service;
import java.util.List;
+import java.util.Optional;
import java.util.stream.Collectors;
/**
@@ -20,6 +29,15 @@
@Autowired
private IFileService fileService;
+
+ @Autowired
+ private IWaylineJobService waylineJobService;
+
+ @Autowired
+ private ObjectMapper objectMapper;
+
+ @Autowired
+ private IMessageSenderService messageSenderService;
@Override
public Boolean fastUpload(String workspaceId, String fingerprint) {
@@ -38,4 +56,42 @@
.map(MediaFileDTO::getTinnyFingerprint)
.collect(Collectors.toList());
}
+
+ @Override
+ public List<String> getExistTinyFingerprints(String workspaceId, List<String> tinyFingerprints) {
+ List<String> tinyFingerprintList = this.getAllTinyFingerprintsByWorkspaceId(workspaceId);
+ return tinyFingerprints
+ .stream()
+ .filter(tinyFingerprintList::contains)
+ .collect(Collectors.toList());
+
+ }
+
+ @Override
+ @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_FILE_UPLOAD_CALLBACK, outputChannel = ChannelName.OUTBOUND)
+ public void handleFileUploadCallBack(CommonTopicReceiver receiver) {
+ FileUploadCallback callback = objectMapper.convertValue(receiver.getData(), FileUploadCallback.class);
+
+ String topic = TopicConst.THING_MODEL_PRE + TopicConst.PRODUCT + receiver.getGateway()
+ + TopicConst.EVENTS_SUF + TopicConst._REPLY_SUF;
+ CommonTopicResponse<Object> data = CommonTopicResponse.builder()
+ .timestamp(System.currentTimeMillis())
+ .method(EventsMethodEnum.FILE_UPLOAD_CALLBACK.getMethod())
+ .data(ResponseResult.success())
+ .tid(receiver.getTid())
+ .bid(receiver.getBid())
+ .build();
+ if (callback.getResult() == ResponseResult.CODE_SUCCESS) {
+ String jobId = callback.getFile().getExt().getFlightId();
+ Optional<WaylineJobDTO> jobOpt = waylineJobService.getJobByJobId(jobId);
+ if (jobOpt.isPresent()) {
+ int id = fileService.saveFile(jobOpt.get().getWorkspaceId(), callback.getFile());
+ if (id <= 0) {
+ data.setData(ResponseResult.error());
+ }
+ }
+ }
+
+ messageSenderService.publish(topic, data);
+ }
}
--
Gitblit v1.9.3