rain
2024-08-16 589ff1b4b598f2f763eb421da960d5550e719144
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.dji.sample.droneairport.controller;
 
import com.alibaba.fastjson.JSONObject;
import com.dji.sample.common.model.ResponseResult;
import com.dji.sample.component.redis.RedisConst;
import com.dji.sample.component.redis.RedisOpsUtils;
import com.dji.sample.media.model.MediaFileEntity;
import com.dji.sample.media.service.IMediaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import java.util.HashMap;
import java.util.Map;
 
@RequestMapping("/droneAirport/mediaApi")
@RestController
public class MediaApiController {
 
    @Autowired
    private IMediaService mediaService;
 
    @GetMapping("{sn}/getMedia/{traceid}")
    public ResponseResult getMedia(@PathVariable String sn, @PathVariable String traceid) {
 
        try{
            String timestamp = (Long)RedisOpsUtils.hashGet(RedisConst.COMMANDS_PREFIX + sn + RedisConst.DELIMITER + traceid,traceid) / 1000 * 1000 + "";
            MediaFileEntity entity = mediaService.getMediaFieByTid(timestamp);
            if (null == entity) {
                return ResponseResult.error(-1,"等待媒体文件上传中");
            }
            String url = "https://wrj.shuixiongit.com/minio/cloud-bucket" + entity.getObjectKey();
            Map ret = new HashMap();
            ret.put("url", url);
            ret.put("metadata", JSONObject.parseObject(entity.getMetadata().toString()));
            return ResponseResult.success(ret);
        } catch (Exception e) {
            return ResponseResult.error(-1,"拍摄未完成或者媒体文件未上传");
        }
 
    }
 
}