zhaowenyu
2026-03-02 473b5351fbbfd4e5fa4b0f87356253776bfa6da6
2026-03-02 优化媒体文件查询列表,新增任务名称
6 files modified
51 ■■■■■ changed files
ard-admin/src/main/java/com/ard/web/controller/sample/media/FileController.java 10 ●●●●● patch | view | raw | blame | history
ard-sample/src/main/java/com/ard/sample/media/mapper/IFileMapper.java 10 ●●●●● patch | view | raw | blame | history
ard-sample/src/main/java/com/ard/sample/media/model/MediaFileDTO.java 2 ●●●●● patch | view | raw | blame | history
ard-sample/src/main/java/com/ard/sample/media/model/MediaFileEntity.java 3 ●●●●● patch | view | raw | blame | history
ard-sample/src/main/java/com/ard/sample/media/service/IFileService.java 2 ●●●●● patch | view | raw | blame | history
ard-sample/src/main/java/com/ard/sample/media/service/impl/FileServiceImpl.java 24 ●●●●● patch | view | raw | blame | history
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);
    }
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);
}
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;
}
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;
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.
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());
        }