From acf985d03b44c01af965682c8db29ed94334d2d4 Mon Sep 17 00:00:00 2001 From: like <1025687351@qq.com> Date: Thu, 27 Mar 2025 17:01:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E8=88=AA=E8=A1=8C=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../media/controller/FileController.java | 18 +++++++++++++++ .../sample/media/model/MediaFileDTO.java | 14 ++++++++++++ .../sample/media/service/IFileService.java | 11 ++++++++++ .../media/service/impl/FileServiceImpl.java | 22 +++++++++++++++++++ 4 files changed, 65 insertions(+) diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java index 70b1d8f..d53add4 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/controller/FileController.java @@ -61,4 +61,22 @@ public class FileController { e.printStackTrace(); } } + + /** + * 根据工作区id获取此工作区中所有媒体文件的信息。 + * Get information about all the media files in this workspace based on the workspace id. + * @return + */ + @GetMapping("/{workspace_id}/getFilesByJobId/{job_id}") + @Operation(summary = "根据任务id获取此所有媒体文件的信息。", description = "根据任务id获取此所有媒体文件的信息。") + public HttpResultResponse> getFilesByJobId(@RequestParam(name = "pageNum", defaultValue = "1") Long page, + @RequestParam(name = "pageSize", defaultValue = "10") Long pageSize, + @PathVariable(name = "workspace_id") String workspaceId, + @PathVariable(name = "job_id") String jobId) { + PaginationData filesList = fileService.getMediaFilesPaginationByJobId(workspaceId, page, pageSize,jobId); + for (MediaFileDTO mediaFileDTO :filesList.getList()){ + mediaFileDTO.setUrl(fileService.getObjectUrl(workspaceId, mediaFileDTO.getFileId()).toString()); + } + return HttpResultResponse.success(filesList); + } } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileDTO.java index 1753835..77e76a1 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileDTO.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/model/MediaFileDTO.java @@ -51,5 +51,19 @@ public class MediaFileDTO { private Date createTime; + private Double lat; + + private Double lng; + + private String fileType; + + private String fileStatus; + + private Double absoluteAltitude; + + private Double relativeAltitude; + private String jobId; + + private String url; } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java index eaeb25d..df29c68 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/IFileService.java @@ -62,4 +62,15 @@ public interface IFileService { * @return */ List getFilesByWorkspaceAndJobId(String workspaceId, String jobId); + + + /** + * Paginate through all media files in this workspace. + * @param workspaceId + * @param page + * @param pageSize + * @return + */ + PaginationData getMediaFilesPaginationByJobId(String workspaceId, long page, long pageSize,String JobId); + } diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java index adaf4d8..b37e442 100644 --- a/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java +++ b/dk-modules/sample/src/main/java/org/dromara/sample/media/service/impl/FileServiceImpl.java @@ -127,6 +127,22 @@ public class FileServiceImpl implements IFileService { .map(this::entityConvertToDto).collect(Collectors.toList()); } + @Override + public PaginationData getMediaFilesPaginationByJobId(String workspaceId, long page, long pageSize, String JobId) { + Page pageData = mapper.selectPage( + new Page(page, pageSize), + new LambdaQueryWrapper() + .eq(MediaFileEntity::getWorkspaceId, workspaceId) + .eq(MediaFileEntity::getJobId, JobId) + .orderByDesc(MediaFileEntity::getId)); + List records = pageData.getRecords() + .stream() + .map(this::entityConvertToDto) + .collect(Collectors.toList()); + + return new PaginationData(records, new Pagination(pageData.getCurrent(), pageData.getSize(), pageData.getTotal())); + } + /** * Convert the received file object into a database entity object. * @param file @@ -186,6 +202,12 @@ public class FileServiceImpl implements IFileService { .payload(entity.getPayload()) .createTime(entity.getCreateTime()) .drone(entity.getDrone()) + .lat(entity.getLat()) + .lng(entity.getLng()) + .absoluteAltitude(entity.getAbsoluteAltitude()) + .relativeAltitude(entity.getRelativeAltitude()) + .fileType(entity.getFileType()) + .fileStatus(entity.getFileStatus()) .jobId(entity.getJobId()); }