From 40934da83d6c4e2ecbabb521b8bb54a903070e7c Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Sat, 23 Sep 2023 16:48:12 +0800
Subject: [PATCH] 媒体文件添加条件查询
---
src/main/java/com/dji/sample/media/dao/IFileMapper.xml | 37 ++++++++++++++++++
src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java | 17 +++++---
src/main/java/com/dji/sample/media/model/MediaFileQueryParam.java | 31 +++++++++++++++
src/main/java/com/dji/sample/media/controller/FileController.java | 9 +++-
src/main/java/com/dji/sample/media/service/IFileService.java | 3 +
src/main/java/com/dji/sample/media/dao/IFileMapper.java | 4 ++
6 files changed, 91 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/dji/sample/media/controller/FileController.java b/src/main/java/com/dji/sample/media/controller/FileController.java
index 8a378f5..aaa400d 100644
--- a/src/main/java/com/dji/sample/media/controller/FileController.java
+++ b/src/main/java/com/dji/sample/media/controller/FileController.java
@@ -3,6 +3,7 @@
import com.dji.sample.common.model.PaginationData;
import com.dji.sample.common.model.ResponseResult;
import com.dji.sample.media.model.MediaFileDTO;
+import com.dji.sample.media.model.MediaFileQueryParam;
import com.dji.sample.media.service.IFileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -25,14 +26,16 @@
/**
* Get information about all the media files in this workspace based on the workspace id.
+ * 根据工作空间id获取有关此工作空间中所有媒体文件的信息。
* @param workspaceId
* @return
*/
@GetMapping("/{workspace_id}/files")
public ResponseResult<PaginationData<MediaFileDTO>> getFilesList(@RequestParam(defaultValue = "1") Long page,
- @RequestParam(name = "page_size", defaultValue = "10") Long pageSize,
- @PathVariable(name = "workspace_id") String workspaceId) {
- PaginationData<MediaFileDTO> filesList = fileService.getMediaFilesPaginationByWorkspaceId(workspaceId, page, pageSize);
+ @RequestParam(name = "page_size", defaultValue = "10") Long pageSize,
+ @PathVariable(name = "workspace_id") String workspaceId,
+ MediaFileQueryParam mediaFileQueryParam) {
+ PaginationData<MediaFileDTO> filesList = fileService.getMediaFilesPaginationByWorkspaceId(workspaceId, page, pageSize,mediaFileQueryParam);
return ResponseResult.success(filesList);
}
diff --git a/src/main/java/com/dji/sample/media/dao/IFileMapper.java b/src/main/java/com/dji/sample/media/dao/IFileMapper.java
index ec01af1..6b39bd5 100644
--- a/src/main/java/com/dji/sample/media/dao/IFileMapper.java
+++ b/src/main/java/com/dji/sample/media/dao/IFileMapper.java
@@ -1,7 +1,10 @@
package com.dji.sample.media.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dji.sample.media.model.MediaFileEntity;
+import com.dji.sample.media.model.MediaFileQueryParam;
+import org.apache.ibatis.annotations.Param;
/**
* @author sean
@@ -9,4 +12,5 @@
* @date 2021/12/9
*/
public interface IFileMapper extends BaseMapper<MediaFileEntity> {
+ Page<MediaFileEntity> getPage(@Param("page") Page<MediaFileEntity> mediaFileEntityPage, @Param("workspaceId") String workspaceId,@Param("query") MediaFileQueryParam mediaFileQueryParam);
}
diff --git a/src/main/java/com/dji/sample/media/dao/IFileMapper.xml b/src/main/java/com/dji/sample/media/dao/IFileMapper.xml
new file mode 100644
index 0000000..7bafea2
--- /dev/null
+++ b/src/main/java/com/dji/sample/media/dao/IFileMapper.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dji.sample.media.dao.IFileMapper">
+
+
+ <select id="getPage" resultType="com.dji.sample.media.model.MediaFileEntity">
+
+ SELECT * FROM media_file WHERE workspace_id = #{workspaceId}
+
+ <if test="query.startTime !=null and query.endTime !=null">
+ AND DATE_FORMAT(FROM_UNIXTIME(create_time/1000,'%Y-%m-%d'),'%Y-%m-%d') >= DATE_FORMAT(#{query.startTime},'%Y-%m-%d')
+ </if>
+
+ <if test="query.endTime !=null and query.endTime !=null">
+ AND DATE_FORMAT(FROM_UNIXTIME(create_time/1000,'%Y-%m-%d'),'%Y-%m-%d') <= DATE_FORMAT(#{query.endTime},'%Y-%m-%d')
+ </if>
+
+ <if test="query.name !=null and query.name !=null">
+ AND file_name LIKE CONCAT('%',#{query.name},'%')
+ </if>
+
+ <if test="query.fileSubType != null and query.fileSubType !='' ">
+ AND sub_file_type in
+ <foreach collection="query.fileSubType.split(',')" item="item" open="(" separator="," close=")">
+ #{item}
+ </foreach>
+ </if>
+
+ <if test="query.payload != null and query.payload !='' ">
+ AND sub_file_type in
+ <foreach collection="query.payload.split(',')" item="item" open="(" separator="," close=")">
+ #{item}
+ </foreach>
+ </if>
+
+ </select>
+</mapper>
diff --git a/src/main/java/com/dji/sample/media/model/MediaFileQueryParam.java b/src/main/java/com/dji/sample/media/model/MediaFileQueryParam.java
new file mode 100644
index 0000000..02da8f2
--- /dev/null
+++ b/src/main/java/com/dji/sample/media/model/MediaFileQueryParam.java
@@ -0,0 +1,31 @@
+package com.dji.sample.media.model;
+
+/**
+ * 文件查询参数
+ */
+public class MediaFileQueryParam {
+ /**
+ * 文件类型(逗号分隔字符串)
+ */
+ private String subFileType;
+
+ /**
+ * 负载类型(逗号分隔字符串)
+ */
+ private String payload;
+
+ /**
+ * 文件名
+ */
+ private String name;
+
+ //开始时间
+ private String startTime;
+
+ //结束时间
+ private String endTime;
+
+
+
+
+}
diff --git a/src/main/java/com/dji/sample/media/service/IFileService.java b/src/main/java/com/dji/sample/media/service/IFileService.java
index d3fd9c8..f3577a6 100644
--- a/src/main/java/com/dji/sample/media/service/IFileService.java
+++ b/src/main/java/com/dji/sample/media/service/IFileService.java
@@ -3,6 +3,7 @@
import com.dji.sample.common.model.PaginationData;
import com.dji.sample.media.model.FileUploadDTO;
import com.dji.sample.media.model.MediaFileDTO;
+import com.dji.sample.media.model.MediaFileQueryParam;
import java.net.URL;
import java.util.List;
@@ -44,7 +45,7 @@
* @param pageSize
* @return
*/
- PaginationData<MediaFileDTO> getMediaFilesPaginationByWorkspaceId(String workspaceId, long page, long pageSize);
+ PaginationData<MediaFileDTO> getMediaFilesPaginationByWorkspaceId(String workspaceId, long page, long pageSize, MediaFileQueryParam mediaFileQueryParam);
/**
* Get the download address of the file.
diff --git a/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java b/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java
index 6d73a24..497ad84 100644
--- a/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java
+++ b/src/main/java/com/dji/sample/media/service/impl/FileServiceImpl.java
@@ -13,7 +13,9 @@
import com.dji.sample.media.model.FileUploadDTO;
import com.dji.sample.media.model.MediaFileDTO;
import com.dji.sample.media.model.MediaFileEntity;
+import com.dji.sample.media.model.MediaFileQueryParam;
import com.dji.sample.media.service.IFileService;
+import com.dji.sample.wayline.model.entity.WaylineJobEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -83,12 +85,15 @@
}
@Override
- public PaginationData<MediaFileDTO> getMediaFilesPaginationByWorkspaceId(String workspaceId, long page, long pageSize) {
- Page<MediaFileEntity> pageData = mapper.selectPage(
- new Page<MediaFileEntity>(page, pageSize),
- new LambdaQueryWrapper<MediaFileEntity>()
- .eq(MediaFileEntity::getWorkspaceId, workspaceId)
- .orderByDesc(MediaFileEntity::getId));
+ public PaginationData<MediaFileDTO> getMediaFilesPaginationByWorkspaceId(String workspaceId, long page, long pageSize, MediaFileQueryParam mediaFileQueryParam) {
+// Page<MediaFileEntity> pageData = mapper.selectPage(
+// new Page<MediaFileEntity>(page, pageSize),
+// new LambdaQueryWrapper<MediaFileEntity>()
+// .eq(MediaFileEntity::getWorkspaceId, workspaceId)
+// .orderByDesc(MediaFileEntity::getId));
+
+ Page<MediaFileEntity> pageData = mapper.getPage(new Page<MediaFileEntity>(page, pageSize),workspaceId,mediaFileQueryParam);
+
List<MediaFileDTO> records = pageData.getRecords()
.stream()
.map(this::entityConvertToDto)
--
Gitblit v1.9.3