rain
2024-06-04 bb3652e04f5a66172d0a6cd6ec2535b82e7ca2ed
src/main/java/com/dji/sample/wayline/service/impl/WaylineFileServiceImpl.java
@@ -9,6 +9,7 @@
import com.dji.sample.component.oss.model.OssConfiguration;
import com.dji.sample.component.oss.service.impl.OssServiceContext;
import com.dji.sample.manage.model.enums.DeviceDomainEnum;
import com.dji.sample.summarize.model.entity.FlyInfo;
import com.dji.sample.wayline.dao.IWaylineFileMapper;
import com.dji.sample.wayline.model.dto.KmzFileProperties;
import com.dji.sample.wayline.model.dto.WaylineFileDTO;
@@ -28,7 +29,6 @@
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
@@ -122,6 +122,28 @@
    }
    @Override
    public Integer saveWaylineFiles(String workspaceId, WaylineFileDTO metadata, String patchesId) {
        metadata.setPatchesId(patchesId);
        WaylineFileEntity file = this.dtoConvertToEntity(metadata);
        file.setWaylineId(UUID.randomUUID().toString());
        file.setWorkspaceId(workspaceId);
        if (!StringUtils.hasText(file.getSign())) {
            try (InputStream object = ossService.getObject(OssConfiguration.bucket, metadata.getObjectKey())) {
                if (object.available() == 0) {
                    throw new RuntimeException("文件" + metadata.getObjectKey() +
                            " 在空间中不存在[" + OssConfiguration.bucket + "].");
                }
                file.setSign(DigestUtils.md5DigestAsHex(object));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        int insertId = mapper.insert(file);
        return insertId > 0 ? file.getId() : insertId;
    }
    @Override
    public Boolean markFavorite(String workspaceId, List<String> waylineIds, Boolean isFavorite) {
        if (waylineIds.isEmpty()) {
            return false;
@@ -163,7 +185,7 @@
    }
    @Override
    public void importKmzFile(MultipartFile file, String workspaceId, String creator) {
    public void importKmzFile(MultipartFile file, String workspaceId, String creator,String patchesId) {
        Optional<WaylineFileDTO> waylineFileOpt = validKmzFile(file);
        if (waylineFileOpt.isEmpty()) {
            throw new RuntimeException("文件格式错误");
@@ -175,10 +197,37 @@
            waylineFile.setUsername(creator);
            ossService.putObject(OssConfiguration.bucket, waylineFile.getObjectKey(), file.getInputStream());
            this.saveWaylineFile(workspaceId, waylineFile);
            this.saveWaylineFiles(workspaceId, waylineFile,patchesId);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @Override
    public WaylineFileDTO importKmzFileBack(MultipartFile file, String workspaceId, String creator) {
        WaylineFileDTO waylineFile=null;
        Optional<WaylineFileDTO> waylineFileOpt = validKmzFile(file);
        if (waylineFileOpt.isEmpty()) {
            throw new RuntimeException("文件格式错误");
        }
        try {
            waylineFile = waylineFileOpt.get();
            waylineFile.setWaylineId(workspaceId);
            waylineFile.setUsername(creator);
            ossService.putObject(OssConfiguration.bucket, waylineFile.getObjectKey(), file.getInputStream());
            this.saveWaylineFile(workspaceId, waylineFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return waylineFile;
    }
    @Override
    public WaylineFileEntity selectByName(String name) {
        return mapper.selectOne(new LambdaQueryWrapper<WaylineFileEntity>().eq(WaylineFileEntity::getName,name));
    }
    @Override
@@ -260,6 +309,7 @@
                .droneModelKey(entity.getDroneModelKey())
                .favorited(entity.getFavorited())
                .name(entity.getName())
                .patchesId(entity.getPatchesId())
                .payloadModelKeys(entity.getPayloadModelKeys() != null ?
                        Arrays.asList(entity.getPayloadModelKeys().split(",")) : null)
                .templateTypes(Arrays.stream(entity.getTemplateTypes().split(","))
@@ -294,6 +344,7 @@
                            .collect(Collectors.joining(",")))
                    .favorited(file.getFavorited())
                    .sign(file.getSign())
                    .patchesId(file.getPatchesId())
                    .build();
        }