From 473b5351fbbfd4e5fa4b0f87356253776bfa6da6 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Mon, 02 Mar 2026 08:25:41 +0800
Subject: [PATCH] 2026-03-02 优化媒体文件查询列表,新增任务名称
---
ard-sample/src/main/java/com/ard/sample/media/model/MediaFileDTO.java | 2 ++
ard-sample/src/main/java/com/ard/sample/media/service/IFileService.java | 2 +-
ard-sample/src/main/java/com/ard/sample/media/mapper/IFileMapper.java | 10 ++++++++++
ard-sample/src/main/java/com/ard/sample/media/service/impl/FileServiceImpl.java | 24 ++++++++++++++++++++----
ard-admin/src/main/java/com/ard/web/controller/sample/media/FileController.java | 10 ++++++++--
ard-sample/src/main/java/com/ard/sample/media/model/MediaFileEntity.java | 3 +++
6 files changed, 44 insertions(+), 7 deletions(-)
diff --git a/ard-admin/src/main/java/com/ard/web/controller/sample/media/FileController.java b/ard-admin/src/main/java/com/ard/web/controller/sample/media/FileController.java
index 860cd75..9ef6638 100644
--- a/ard-admin/src/main/java/com/ard/web/controller/sample/media/FileController.java
+++ b/ard-admin/src/main/java/com/ard/web/controller/sample/media/FileController.java
@@ -34,8 +34,14 @@
@ApiOperation("获取所有媒体文件列表")
@GetMapping("/files")
public ResponseResult<PaginationData<MediaFileDTO>> getFilesList(@RequestParam(defaultValue = "1") Long page,
- @RequestParam(name = "page_size", defaultValue = "10") Long pageSize) {
- PaginationData<MediaFileDTO> filesList = fileService.getMediaFilesPagination(page, pageSize);
+ @RequestParam(name = "page_size", defaultValue = "10") Long pageSize,
+ @ApiParam(value = "任务ID,筛选指定任务下的文件", required = false)
+ @RequestParam(name = "job_id", required = false) String jobId,
+ @ApiParam(value = "开始时间", required = false)
+ @RequestParam(name = "start_time", required = false) Long startTime,
+ @ApiParam(value = "结束时间", required = false)
+ @RequestParam(name = "end_time", required = false) Long endTime) {
+ PaginationData<MediaFileDTO> filesList = fileService.getMediaFilesPagination(page, pageSize, jobId, startTime, endTime);
return ResponseResult.success(filesList);
}
diff --git a/ard-sample/src/main/java/com/ard/sample/media/mapper/IFileMapper.java b/ard-sample/src/main/java/com/ard/sample/media/mapper/IFileMapper.java
index a4c8219..7d4cc6e 100644
--- a/ard-sample/src/main/java/com/ard/sample/media/mapper/IFileMapper.java
+++ b/ard-sample/src/main/java/com/ard/sample/media/mapper/IFileMapper.java
@@ -1,7 +1,11 @@
package com.ard.sample.media.mapper;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ard.sample.media.model.MediaFileEntity;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
/**
* @author sean
@@ -9,4 +13,10 @@
* @date 2021/12/9
*/
public interface IFileMapper extends BaseMapper<MediaFileEntity> {
+
+ @Select("SELECT m.* ,j.name as 'job_name'" +
+ "FROM media_file m " +
+ "left join wayline_job j on j.job_id = m.job_id " +
+ "${ew.customSqlSegment.replace('job_id', 'm.job_id')}")
+ <P extends IPage<MediaFileEntity>> P selectPage(P page, @Param("ew") Wrapper<MediaFileEntity> queryWrapper);
}
diff --git a/ard-sample/src/main/java/com/ard/sample/media/model/MediaFileDTO.java b/ard-sample/src/main/java/com/ard/sample/media/model/MediaFileDTO.java
index 57d61a3..13eb7f4 100644
--- a/ard-sample/src/main/java/com/ard/sample/media/model/MediaFileDTO.java
+++ b/ard-sample/src/main/java/com/ard/sample/media/model/MediaFileDTO.java
@@ -49,4 +49,6 @@
private double duration;
private String jobId;
+
+ private String jobName;
}
diff --git a/ard-sample/src/main/java/com/ard/sample/media/model/MediaFileEntity.java b/ard-sample/src/main/java/com/ard/sample/media/model/MediaFileEntity.java
index 5e3d6d4..e631b08 100644
--- a/ard-sample/src/main/java/com/ard/sample/media/model/MediaFileEntity.java
+++ b/ard-sample/src/main/java/com/ard/sample/media/model/MediaFileEntity.java
@@ -60,6 +60,9 @@
@TableField("job_id")
private String jobId;
+ @TableField(exist = false)
+ private String jobName;
+
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Long createTime;
diff --git a/ard-sample/src/main/java/com/ard/sample/media/service/IFileService.java b/ard-sample/src/main/java/com/ard/sample/media/service/IFileService.java
index de08a9b..6360d6a 100644
--- a/ard-sample/src/main/java/com/ard/sample/media/service/IFileService.java
+++ b/ard-sample/src/main/java/com/ard/sample/media/service/IFileService.java
@@ -47,7 +47,7 @@
* @param pageSize
* @return
*/
- PaginationData<MediaFileDTO> getMediaFilesPagination(long page, long pageSize);
+ PaginationData<MediaFileDTO> getMediaFilesPagination(long page, long pageSize, String jobId, Long startTime, Long endTime);
/**
* Get the download address of the file.
diff --git a/ard-sample/src/main/java/com/ard/sample/media/service/impl/FileServiceImpl.java b/ard-sample/src/main/java/com/ard/sample/media/service/impl/FileServiceImpl.java
index f177c56..ebf91a4 100644
--- a/ard-sample/src/main/java/com/ard/sample/media/service/impl/FileServiceImpl.java
+++ b/ard-sample/src/main/java/com/ard/sample/media/service/impl/FileServiceImpl.java
@@ -4,6 +4,8 @@
import com.ard.oss.service.impl.OssServiceContext;
import com.ard.sample.utils.TimestampUtils;
import com.ard.sample.utils.VideoDurationUtilFFmpeg;
+import com.ard.sample.wayline.model.dto.WaylineJobDTO;
+import com.ard.sample.wayline.service.IWaylineJobService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ard.sample.common.model.Pagination;
@@ -48,6 +50,9 @@
@Autowired
private IDeviceDictionaryService deviceDictionaryService;
+
+ @Autowired
+ private IWaylineJobService _waylineJobService;
@Autowired
private OssServiceContext ossService;
@@ -129,11 +134,21 @@
return new PaginationData<MediaFileDTO>(records, new Pagination(pageData));
}
+ /**
+ * 分页获取媒体文件列表
+ * 增加筛选条件
+ * @param page 当前页码
+ * @param pageSize 每页大小
+ * @return 分页数据对象,包含媒体文件列表和分页信息
+ */
@Override
- public PaginationData<MediaFileDTO> getMediaFilesPagination(long page, long pageSize) {
+ public PaginationData<MediaFileDTO> getMediaFilesPagination(long page, long pageSize, String jobId, Long startTime, Long endTime) {
Page<MediaFileEntity> pageData = mapper.selectPage(
new Page<MediaFileEntity>(page, pageSize),
new LambdaQueryWrapper<MediaFileEntity>()
+ .eq(jobId != null, MediaFileEntity::getJobId, jobId)
+ .ge(startTime != null, MediaFileEntity::getStartTime, startTime)
+ .le(endTime != null, MediaFileEntity::getStartTime, endTime)
.orderByDesc(MediaFileEntity::getId));
List<MediaFileDTO> records = pageData.getRecords()
.stream()
@@ -162,7 +177,7 @@
}
/**
- * Convert the received file object into a database entity object.
+ * 将接收到的文件对象转换为数据库实体对象。
* @param file
* @return
*/
@@ -198,7 +213,7 @@
}
/**
- * Convert database entity objects into file data transfer object.
+ * 将数据库实体对象转换为文件数据传输对象。
* @param entity
* @return
*/
@@ -224,7 +239,8 @@
Instant.ofEpochMilli(entity.getEndTime()), ZoneId.systemDefault()).format(DATE_TIME_FORMATTER))
.duration(entity.getDuration())
.drone(entity.getDrone())
- .jobId(entity.getJobId());
+ .jobId(entity.getJobId())
+ .jobName(entity.getJobName());
}
--
Gitblit v1.9.3