zhaowenyu
2026-03-09 a95db5fc78b3f86df131cc7271f06a053a9b2611
ard-sample/src/main/java/com/ard/sample/media/service/impl/MediaServiceImpl.java
@@ -1,5 +1,6 @@
package com.ard.sample.media.service.impl;
import com.ard.common.config.OssConfiguration;
import com.ard.sample.common.error.CommonErrorEnum;
import com.ard.sample.common.model.ResponseResult;
import com.ard.sample.component.mqtt.model.*;
@@ -10,6 +11,7 @@
import com.ard.sample.component.websocket.model.CustomWebSocketMessage;
import com.ard.sample.component.websocket.service.ISendMessageService;
import com.ard.sample.component.websocket.service.IWebSocketManageService;
import com.ard.sample.config.DockConfiguration;
import com.ard.sample.manage.model.dto.DeviceDTO;
import com.ard.sample.manage.model.enums.UserTypeEnum;
import com.ard.sample.manage.service.IDeviceService;
@@ -116,7 +118,8 @@
    @ServiceActivator(inputChannel = ChannelName.INBOUND_EVENTS_FILE_UPLOAD_CALLBACK, outputChannel = ChannelName.OUTBOUND)
    public void handleFileUploadCallBack(CommonTopicReceiver receiver) {
        FileUploadCallback callback = objectMapper.convertValue(receiver.getData(), FileUploadCallback.class);
        log.info("媒体库回调-原始报文内容:{}",receiver);
        log.info("媒体库调试-收到文件上传回调:{}",callback);
        String topic = TopicConst.THING_MODEL_PRE + TopicConst.PRODUCT + receiver.getGateway()
                + TopicConst.EVENTS_SUF + TopicConst._REPLY_SUF;
        CommonTopicResponse<RequestsReply> data = CommonTopicResponse.<RequestsReply>builder()
@@ -129,6 +132,7 @@
        if (callback.getResult() != ResponseResult.CODE_SUCCESS) {
            messageSenderService.publish(topic, data);
            log.info("媒体库调试-回调失败:{}",callback);
            return;
        }
@@ -213,10 +217,14 @@
        // 设置拍摄媒体的无人机
        Optional<DeviceDTO> dockDTO = deviceService.getDeviceBySn(job.getDockSn());
        dockDTO.ifPresent(dock -> callback.getFile().getExt().setSn(dock.getChildDeviceSn()));
        dockDTO.ifPresent(dock -> callback.getFile().getExt().setPayloadModelKey(dockDTO.get().getDomain()+"-"+dockDTO.get().getType()+"-"+dockDTO.get().getSubType()));
        // 设定路径
        String objectKey = callback.getFile().getObjectKey();
        callback.getFile().setPath(objectKey.substring(objectKey.indexOf("/") + 1, objectKey.lastIndexOf("/")));
        String objectKey = callback.getFile().getObjectKey()!= null ? callback.getFile().getObjectKey() : "";
        String path = String.format("%s/%s/%s", OssConfiguration.endpoint, DockConfiguration.bucket, objectKey);
        log.info("媒体库上传文件完整路path:{}",path);
        callback.getFile().setPath(path);
//        callback.getFile().setPath(objectKey.substring(objectKey.indexOf("/") + 1, objectKey.lastIndexOf("/")));
        log.info("保存媒体库数据:{}",callback);
        return fileService.saveFile(callback.getFile()) > 0;
    }