/* * 【机场1】从 dock2 原类 com.ard.web.controller.sample.media.MediaController 复制/独立适配(DJI Dock 1 / M30)。 * 与 dock2 原类同服务共存;本文件内的适配差异以「// 机场1:」内联注释标出。 */ package com.ard.web.controller.sample.dock1.media; import com.ard.sample.common.model.ResponseResult; import com.ard.sample.component.mqtt.model.MapKeyConst; import com.ard.sample.media.model.FileUploadDTO; import com.ard.sample.media.service.IMediaService; import com.fasterxml.jackson.core.JsonProcessingException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import com.ard.web.controller.sample.media.MediaController; /** * @author sean/workspaces * @version 0.2 * @date 2021/12/7 */ @Api(tags = "媒体库管理") @Slf4j @RestController @RequestMapping("/dock1/media") public class Dock1MediaController { @Autowired private IMediaService mediaService; /** * Check if the file has been uploaded by the fingerprint. * @param file * @return */ @ApiOperation("检查文件是否已上传") @PostMapping("/fast-upload") public ResponseResult fastUpload( @RequestBody FileUploadDTO file) { boolean isExist = mediaService.fastUpload(file.getFingerprint()); return isExist ? ResponseResult.success() : ResponseResult.error(file.getFingerprint() + "don't exist."); } /** * When the file is uploaded to the storage server by pilot, * the basic information of the file is reported through this interface. * @param file * @return */ @ApiOperation("上报文件基本信息") @PostMapping("/upload-callback") public ResponseResult uploadCallback(@RequestBody FileUploadDTO file) { mediaService.saveMediaFile(file); return ResponseResult.success(file.getObjectKey()); } /** * 根据工作区 ID 和微小指纹的集合查询此工作区中已存在的文件。 * @param tinyFingerprints There is only one tiny_fingerprint parameter in the body. * But it is not recommended to use Map to receive the parameter. * @return */ @ApiOperation("查询已存在的文件") @PostMapping("/files/tiny-fingerprints") public ResponseResult>> uploadCallback( @RequestBody Map> tinyFingerprints){ List existingList = mediaService.getExistTinyFingerprints(tinyFingerprints.get(MapKeyConst.TINY_FINGERPRINTS)); return ResponseResult.success(new ConcurrentHashMap<>(Map.of(MapKeyConst.TINY_FINGERPRINTS, existingList))); } }