shenyijian
2023-11-28 a0ad613e75498fb4331b7f3eb55b60cec7896d88
无人机 -外网文件地址处理
4 files modified
1 files added
53 ■■■■ changed files
src/main/java/com/dji/sample/common/util/MinioUrlUtils.java 35 ●●●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/media/service/impl/MediaServiceImpl.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java 6 ●●●● patch | view | raw | blame | history
src/main/java/com/dji/sample/common/util/MinioUrlUtils.java
New file
@@ -0,0 +1,35 @@
package com.dji.sample.common.util;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.net.URL;
@Component
public class MinioUrlUtils {
    private static String outNetAddress;
    private static String endpointAddress;
    public static String getUrl(URL url) {
        String s = url.toString();
        int index = s.indexOf('?');
        if (index != -1) {
            s = s.substring(0, index);
            s = s.replace(endpointAddress, outNetAddress);
        }
        return s;
    }
    @Value("${oss.out-net-file-address}")
    public void setOutNetAddress(String outNetAddress) {
        MinioUrlUtils.outNetAddress = outNetAddress;
    }
    @Value("${oss.endpoint}")
    public void setEndpointAddress(String endpointAddress) {
        MinioUrlUtils.endpointAddress = endpointAddress;
    }
}
src/main/java/com/dji/sample/manage/service/impl/DeviceServiceImpl.java
@@ -333,8 +333,8 @@
            deviceDTO.setLatestWaylineJob(latestJob);
            deviceDTO.setOnlineStatus(true);
            OsdDockReceiver osdDockReceiver = (OsdDockReceiver) RedisOpsUtils.get("osd:" + deviceDTO.getDeviceSn());
            deviceDTO.setLatitude(osdDockReceiver.getLatitude());
            deviceDTO.setLongitude(osdDockReceiver.getLongitude());
            deviceDTO.setLatitude(osdDockReceiver!=null? osdDockReceiver.getLatitude():null);
            deviceDTO.setLongitude(osdDockReceiver!=null? osdDockReceiver.getLongitude():null);
        });
        return devicesList;
src/main/java/com/dji/sample/media/service/impl/MediaServiceImpl.java
@@ -152,7 +152,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());
src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
@@ -3,6 +3,7 @@
import com.dji.sample.common.model.CustomClaim;
import com.dji.sample.common.model.PaginationData;
import com.dji.sample.common.model.ResponseResult;
import com.dji.sample.common.util.MinioUrlUtils;
import com.dji.sample.log.aspect.SysLogAnnotation;
import com.dji.sample.wayline.model.dto.WaylineFileDTO;
import com.dji.sample.wayline.model.dto.WaylineFileUploadDTO;
@@ -10,6 +11,7 @@
import com.dji.sample.wayline.model.param.WaylineQueryParam;
import com.dji.sample.wayline.service.IWaylineFileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -78,7 +80,7 @@
        try {
            URL url = waylineFileService.getObjectUrl(workspaceId, waylineId);
            response.sendRedirect(url.toString());
            response.sendRedirect(MinioUrlUtils.getUrl(url));
        } catch (IOException | SQLException e) {
            e.printStackTrace();
@@ -96,7 +98,7 @@
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
        return ResponseResult.success(url);
        return ResponseResult.success(MinioUrlUtils.getUrl(url));
    }
    /**
src/main/java/com/dji/sample/wayline/service/impl/WaylineJobServiceImpl.java
@@ -13,6 +13,7 @@
import com.dji.sample.common.model.Pagination;
import com.dji.sample.common.model.PaginationData;
import com.dji.sample.common.model.ResponseResult;
import com.dji.sample.common.util.MinioUrlUtils;
import com.dji.sample.common.util.SpringBeanUtils;
import com.dji.sample.component.mqtt.model.*;
import com.dji.sample.component.mqtt.service.IMessageSenderService;
@@ -352,7 +353,6 @@
        // get file url
        //获取航线文件地址
        URL url = waylineFileService.getObjectUrl(waylineJob.getWorkspaceId(), waylineFile.get().getWaylineId());
        WaylineTaskCreateDTO flightTask = WaylineTaskCreateDTO.builder()
                .flightId(waylineJob.getJobId())
                .executeTime(waylineJob.getBeginTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli())
@@ -361,7 +361,7 @@
                .rthAltitude(waylineJob.getRthAltitude())
                .outOfControlAction(waylineJob.getOutOfControlAction())
                .file(WaylineTaskFileDTO.builder()
                        .url(url.toString())
                        .url(MinioUrlUtils.getUrl(url))
                        .fingerprint(waylineFile.get().getSign())
                        .build())
                .build();
@@ -584,7 +584,7 @@
            url = waylineFileService.getObjectUrl(waylineJob.getWorkspaceId(), waylineFile.get().getWaylineId());
            builder.data(RequestsReply.success(WaylineTaskCreateDTO.builder()
                    .file(WaylineTaskFileDTO.builder()
                            .url(url.toString())
                            .url(MinioUrlUtils.getUrl(url))
                            .fingerprint(waylineFile.get().getSign())
                            .build())
                    .build()));