mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-10-09 21:56:39 +08:00
update FileService
This commit is contained in:
parent
0549798445
commit
7ec8278db5
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import net.lab1024.smartadmin.service.module.business.category.constant.CategoryTypeEnum;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
package net.lab1024.smartadmin.service.module.support.file;
|
package net.lab1024.smartadmin.service.module.support.file;
|
||||||
|
|
||||||
import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst;
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import net.lab1024.smartadmin.service.common.controller.SupportBaseController;
|
||||||
import net.lab1024.smartadmin.service.common.domain.PageResultDTO;
|
import net.lab1024.smartadmin.service.common.domain.PageResultDTO;
|
||||||
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
|
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
|
||||||
import net.lab1024.smartadmin.service.common.controller.SupportBaseController;
|
import net.lab1024.smartadmin.service.common.swagger.SwaggerTagConst;
|
||||||
import net.lab1024.smartadmin.service.module.support.file.domain.FileFolderTypeEnum;
|
import net.lab1024.smartadmin.service.module.support.file.domain.FileFolderTypeEnum;
|
||||||
import net.lab1024.smartadmin.service.module.support.file.domain.dto.*;
|
import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileQueryForm;
|
||||||
|
import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileUrlUploadForm;
|
||||||
import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileUploadVO;
|
import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileUploadVO;
|
||||||
import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileVO;
|
import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileVO;
|
||||||
import net.lab1024.smartadmin.service.module.support.file.service.FileService;
|
import net.lab1024.smartadmin.service.module.support.file.service.FileService;
|
||||||
import io.swagger.annotations.Api;
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
|
||||||
import net.lab1024.smartadmin.service.module.support.repeatsubmit.annoation.RepeatSubmit;
|
import net.lab1024.smartadmin.service.module.support.repeatsubmit.annoation.RepeatSubmit;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
@ -19,8 +20,6 @@ import org.springframework.web.multipart.MultipartFile;
|
|||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 文件服务
|
* @Description: 文件服务
|
||||||
@ -36,7 +35,7 @@ public class FileController extends SupportBaseController {
|
|||||||
@ApiOperation(value = "文件上传 by listen", notes = FileFolderTypeEnum.INFO)
|
@ApiOperation(value = "文件上传 by listen", notes = FileFolderTypeEnum.INFO)
|
||||||
@PostMapping("/file/upload/{folder}")
|
@PostMapping("/file/upload/{folder}")
|
||||||
public ResponseDTO<FileUploadVO> upload(MultipartFile file, @PathVariable Integer folder) {
|
public ResponseDTO<FileUploadVO> upload(MultipartFile file, @PathVariable Integer folder) {
|
||||||
return fileService.fileUpload(file, folder, 0L, null);
|
return fileService.fileUpload(file, folder, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "文件上传,通过url上传 by listen", notes = FileFolderTypeEnum.INFO)
|
@ApiOperation(value = "文件上传,通过url上传 by listen", notes = FileFolderTypeEnum.INFO)
|
||||||
@ -51,42 +50,23 @@ public class FileController extends SupportBaseController {
|
|||||||
return fileService.getFileUrl(fileKey);
|
return fileService.getFileUrl(fileKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("批量获取文件url:根据fileKey by listen")
|
@ApiOperation(value = "文件分页查询 by listen")
|
||||||
@PostMapping("/file/url/query")
|
|
||||||
public ResponseDTO<List<FileUrlResultDTO>> getBatchFileUrl(@RequestBody @Valid FileUrlQueryForm queryForm) {
|
|
||||||
return fileService.getBatchFileUrl(queryForm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation(value = "系统文件查询 by listen")
|
|
||||||
@PostMapping("/file/query")
|
@PostMapping("/file/query")
|
||||||
@RepeatSubmit(3000)
|
|
||||||
public ResponseDTO<PageResultDTO<FileVO>> queryListByPage(@RequestBody @Valid FileQueryForm queryForm) {
|
public ResponseDTO<PageResultDTO<FileVO>> queryListByPage(@RequestBody @Valid FileQueryForm queryForm) {
|
||||||
return fileService.queryListByPage(queryForm);
|
return fileService.queryListByPage(queryForm);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "下载文件流(根据fileId) by listen")
|
|
||||||
@GetMapping("/file/downLoad/{id}")
|
|
||||||
public ResponseEntity<Object> downLoadById(@PathVariable Long id, HttpServletRequest request) throws IOException {
|
|
||||||
String ua = request.getHeader("User-Agent");
|
|
||||||
return fileService.downLoadById(id, ua);
|
|
||||||
}
|
|
||||||
|
|
||||||
@ApiOperation(value = "下载文件流(根据fileKey) by listen")
|
@ApiOperation(value = "下载文件流(根据fileKey) by listen")
|
||||||
@GetMapping("/file/downLoad")
|
@GetMapping("/file/downLoad")
|
||||||
public ResponseEntity<Object> downLoad(String fileKey, HttpServletRequest request) {
|
public ResponseEntity<Object> downLoad(@RequestParam String fileKey, HttpServletRequest request) {
|
||||||
String ua = request.getHeader("User-Agent");
|
String ua = request.getHeader("User-Agent");
|
||||||
return fileService.downloadByFileKey(fileKey, ua);
|
return fileService.downloadByFileKey(fileKey, ua);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RepeatSubmit(1000)
|
||||||
@ApiOperation("删除文件(根据fileKey) by listen")
|
@ApiOperation("删除文件(根据fileKey) by listen")
|
||||||
@GetMapping("/file/delete")
|
@GetMapping("/file/delete")
|
||||||
public ResponseDTO<String> deleteByFileKey(@RequestParam String fileKey) {
|
public ResponseDTO<String> deleteByFileKey(@RequestParam String fileKey) {
|
||||||
return fileService.deleteByFileKey(fileKey);
|
return fileService.deleteByFileKey(fileKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("根据文件服务和key 查询文件元数据 by listen")
|
|
||||||
@GetMapping("/file/query/metadata")
|
|
||||||
public ResponseDTO<FileMetadataDTO> queryFileMetadata(@RequestParam String fileKey) {
|
|
||||||
return fileService.queryFileMetadata(fileKey);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -19,15 +19,9 @@ import java.util.List;
|
|||||||
@Component
|
@Component
|
||||||
public interface FileDao extends BaseMapper<FileEntity> {
|
public interface FileDao extends BaseMapper<FileEntity> {
|
||||||
|
|
||||||
/**
|
|
||||||
* 文件key批量查询
|
|
||||||
* @param fileKeyList
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
List<FileVO> listByFileKeyList(@Param("fileKeyList") List<String> fileKeyList);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件key单个查询
|
* 文件key单个查询
|
||||||
|
*
|
||||||
* @param fileKey
|
* @param fileKey
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@ -35,6 +29,7 @@ public interface FileDao extends BaseMapper<FileEntity> {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询
|
* 分页查询
|
||||||
|
*
|
||||||
* @param page
|
* @param page
|
||||||
* @param query
|
* @param query
|
||||||
* @return
|
* @return
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
package net.lab1024.smartadmin.service.module.support.file.domain.dto;
|
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.sql.Date;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* [ ]
|
|
||||||
*
|
|
||||||
* @author 罗伊
|
|
||||||
* @date 2020/8/25 11:57
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class FileDTO {
|
|
||||||
|
|
||||||
@ApiModelProperty("主键")
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
@ApiModelProperty("相关业务id")
|
|
||||||
private String moduleId;
|
|
||||||
|
|
||||||
@ApiModelProperty("相关业务类型")
|
|
||||||
private String moduleType;
|
|
||||||
|
|
||||||
@ApiModelProperty("文件名称")
|
|
||||||
private String fileName;
|
|
||||||
|
|
||||||
@ApiModelProperty("文件大小")
|
|
||||||
private String fileSize;
|
|
||||||
|
|
||||||
@ApiModelProperty("文件类型")
|
|
||||||
private String fileType;
|
|
||||||
|
|
||||||
@ApiModelProperty("文件路径")
|
|
||||||
private String filePath;
|
|
||||||
|
|
||||||
@ApiModelProperty("上传人")
|
|
||||||
private Long createUser;
|
|
||||||
|
|
||||||
@ApiModelProperty("updateTime")
|
|
||||||
private Date updateTime;
|
|
||||||
|
|
||||||
@ApiModelProperty("创建时间")
|
|
||||||
private Date createTime;
|
|
||||||
|
|
||||||
@ApiModelProperty("文件展示url(可用于下载,注:七牛云下载url要拼接 ?attname=文件名.jpg)")
|
|
||||||
private String fileUrl;
|
|
||||||
}
|
|
@ -1,10 +1,12 @@
|
|||||||
package net.lab1024.smartadmin.service.module.support.file.domain.dto;
|
package net.lab1024.smartadmin.service.module.support.file.domain.dto;
|
||||||
|
|
||||||
import net.lab1024.smartadmin.service.common.domain.PageParamForm;
|
|
||||||
import net.lab1024.smartadmin.service.common.swagger.ApiModelPropertyEnum;
|
|
||||||
import net.lab1024.smartadmin.service.module.support.file.domain.FileFolderTypeEnum;
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import net.lab1024.smartadmin.service.common.domain.PageParamForm;
|
||||||
|
import net.lab1024.smartadmin.service.common.swagger.ApiModelPropertyEnum;
|
||||||
|
import net.lab1024.smartadmin.service.common.validator.enumeration.CheckEnum;
|
||||||
|
import net.lab1024.smartadmin.service.module.support.file.domain.FileFolderTypeEnum;
|
||||||
|
import org.hibernate.validator.constraints.Length;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 文件信息查询dto
|
* @Description: 文件信息查询dto
|
||||||
@ -16,10 +18,11 @@ import lombok.Data;
|
|||||||
public class FileQueryForm extends PageParamForm {
|
public class FileQueryForm extends PageParamForm {
|
||||||
|
|
||||||
@ApiModelProperty(value = "文件名称")
|
@ApiModelProperty(value = "文件名称")
|
||||||
|
@Length(max = 50, message = "文件名称搜索最多50字符")
|
||||||
private String fileName;
|
private String fileName;
|
||||||
|
|
||||||
@ApiModelProperty(value = "业务类型")
|
@ApiModelPropertyEnum(value = FileFolderTypeEnum.class, desc = "业务类型")
|
||||||
@ApiModelPropertyEnum(FileFolderTypeEnum.class)
|
@CheckEnum(value = FileFolderTypeEnum.class, message = "业务类型错误")
|
||||||
private Integer folderType;
|
private Integer folderType;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
package net.lab1024.smartadmin.service.module.support.file.domain.dto;
|
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
|
|
||||||
import javax.validation.constraints.NotEmpty;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 文件 url 查询DTO
|
|
||||||
*
|
|
||||||
* @author 胡克
|
|
||||||
* @date 2020/5/12 14:51
|
|
||||||
*/
|
|
||||||
@AllArgsConstructor
|
|
||||||
@NoArgsConstructor
|
|
||||||
@Data
|
|
||||||
public class FileUrlQueryForm {
|
|
||||||
|
|
||||||
@ApiModelProperty("file key")
|
|
||||||
@NotEmpty(message = "file key not empty")
|
|
||||||
private List<String> fileKeyList;
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
package net.lab1024.smartadmin.service.module.support.file.domain.dto;
|
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 文件 url 查询DTO
|
|
||||||
*
|
|
||||||
* @author 胡克
|
|
||||||
* @date 2020/5/12 14:51
|
|
||||||
*/
|
|
||||||
@NoArgsConstructor
|
|
||||||
@AllArgsConstructor
|
|
||||||
@Data
|
|
||||||
public class FileUrlResultDTO {
|
|
||||||
|
|
||||||
private String fileKey;
|
|
||||||
|
|
||||||
private String fileUrl;
|
|
||||||
}
|
|
@ -1,14 +1,12 @@
|
|||||||
package net.lab1024.smartadmin.service.module.support.file.domain.dto;
|
package net.lab1024.smartadmin.service.module.support.file.domain.dto;
|
||||||
|
|
||||||
import net.lab1024.smartadmin.service.common.swagger.ApiModelPropertyEnum;
|
|
||||||
import net.lab1024.smartadmin.service.module.support.file.domain.FileFolderTypeEnum;
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.AllArgsConstructor;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import net.lab1024.smartadmin.service.common.swagger.ApiModelPropertyEnum;
|
||||||
|
import net.lab1024.smartadmin.service.common.validator.enumeration.CheckEnum;
|
||||||
|
import net.lab1024.smartadmin.service.module.support.file.domain.FileFolderTypeEnum;
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
import javax.validation.constraints.NotNull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* url上传文件 DTO 类
|
* url上传文件 DTO 类
|
||||||
@ -17,21 +15,20 @@ import javax.validation.constraints.NotNull;
|
|||||||
* @date 2020年3月16日 10:14:54
|
* @date 2020年3月16日 10:14:54
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
|
||||||
@AllArgsConstructor
|
|
||||||
public class FileUrlUploadForm {
|
public class FileUrlUploadForm {
|
||||||
|
|
||||||
@ApiModelPropertyEnum(FileFolderTypeEnum.class)
|
@ApiModelPropertyEnum(value = FileFolderTypeEnum.class, desc = "业务类型")
|
||||||
|
@CheckEnum(value = FileFolderTypeEnum.class, required = true, message = "业务类型错误")
|
||||||
private Integer folder;
|
private Integer folder;
|
||||||
|
|
||||||
@ApiModelProperty("文件url")
|
@ApiModelProperty("文件url")
|
||||||
@NotBlank(message = "文件url不能为空")
|
@NotBlank(message = "文件url不能为空")
|
||||||
private String fileUrl;
|
private String fileUrl;
|
||||||
|
|
||||||
@NotNull(message = "userId不能为空")
|
@ApiModelProperty("用户id|可选")
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
@NotBlank(message = "上传姓名不能为空")
|
@ApiModelProperty("用户姓名|可选")
|
||||||
private String userName;
|
private String userName;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
package net.lab1024.smartadmin.service.module.support.file.domain.vo;
|
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 文件简单VO
|
|
||||||
*
|
|
||||||
* @author 善逸
|
|
||||||
* @date 2019/10/23 11:15
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class FileSimpleVO {
|
|
||||||
|
|
||||||
@ApiModelProperty("文件Key")
|
|
||||||
private String fileKey;
|
|
||||||
|
|
||||||
@ApiModelProperty("文件Url")
|
|
||||||
private String fileUrl;
|
|
||||||
|
|
||||||
}
|
|
@ -17,7 +17,6 @@ public class FileVO {
|
|||||||
@ApiModelProperty("主键")
|
@ApiModelProperty("主键")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
|
||||||
@ApiModelProperty("存储文件夹类型")
|
@ApiModelProperty("存储文件夹类型")
|
||||||
@ApiModelPropertyEnum(FileFolderTypeEnum.class)
|
@ApiModelPropertyEnum(FileFolderTypeEnum.class)
|
||||||
private Integer folderType;
|
private Integer folderType;
|
||||||
|
@ -5,21 +5,24 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import net.lab1024.smartadmin.service.common.code.SystemErrorCode;
|
import net.lab1024.smartadmin.service.common.code.SystemErrorCode;
|
||||||
import net.lab1024.smartadmin.service.common.code.UserErrorCode;
|
import net.lab1024.smartadmin.service.common.code.UserErrorCode;
|
||||||
import net.lab1024.smartadmin.service.common.constant.StringConst;
|
|
||||||
import net.lab1024.smartadmin.service.common.constant.RedisKeyConst;
|
import net.lab1024.smartadmin.service.common.constant.RedisKeyConst;
|
||||||
|
import net.lab1024.smartadmin.service.common.constant.StringConst;
|
||||||
import net.lab1024.smartadmin.service.common.domain.PageResultDTO;
|
import net.lab1024.smartadmin.service.common.domain.PageResultDTO;
|
||||||
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
|
import net.lab1024.smartadmin.service.common.domain.ResponseDTO;
|
||||||
|
import net.lab1024.smartadmin.service.common.util.SmartBaseEnumUtil;
|
||||||
|
import net.lab1024.smartadmin.service.common.util.SmartBeanUtil;
|
||||||
|
import net.lab1024.smartadmin.service.common.util.SmartPageUtil;
|
||||||
import net.lab1024.smartadmin.service.common.util.SmartStringUtil;
|
import net.lab1024.smartadmin.service.common.util.SmartStringUtil;
|
||||||
import net.lab1024.smartadmin.service.module.support.file.FileDao;
|
import net.lab1024.smartadmin.service.module.support.file.FileDao;
|
||||||
import net.lab1024.smartadmin.service.module.support.file.domain.FileEntity;
|
import net.lab1024.smartadmin.service.module.support.file.domain.FileEntity;
|
||||||
import net.lab1024.smartadmin.service.module.support.file.domain.FileFolderTypeEnum;
|
import net.lab1024.smartadmin.service.module.support.file.domain.FileFolderTypeEnum;
|
||||||
import net.lab1024.smartadmin.service.module.support.file.domain.dto.*;
|
import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileDownloadDTO;
|
||||||
|
import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileMetadataDTO;
|
||||||
|
import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileQueryForm;
|
||||||
|
import net.lab1024.smartadmin.service.module.support.file.domain.dto.FileUrlUploadForm;
|
||||||
import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileUploadVO;
|
import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileUploadVO;
|
||||||
import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileVO;
|
import net.lab1024.smartadmin.service.module.support.file.domain.vo.FileVO;
|
||||||
import net.lab1024.smartadmin.service.third.SmartRedisService;
|
import net.lab1024.smartadmin.service.third.SmartRedisService;
|
||||||
import net.lab1024.smartadmin.service.common.util.SmartBaseEnumUtil;
|
|
||||||
import net.lab1024.smartadmin.service.common.util.SmartBeanUtil;
|
|
||||||
import net.lab1024.smartadmin.service.common.util.SmartPageUtil;
|
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -35,7 +38,6 @@ import javax.annotation.Resource;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.net.URLConnection;
|
import java.net.URLConnection;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -115,30 +117,30 @@ public class FileService {
|
|||||||
}
|
}
|
||||||
// 获取文件服务
|
// 获取文件服务
|
||||||
ResponseDTO<FileUploadVO> response = fileStorageService.fileUpload(file, folderTypeEnum.getFolder());
|
ResponseDTO<FileUploadVO> response = fileStorageService.fileUpload(file, folderTypeEnum.getFolder());
|
||||||
|
|
||||||
if (response.getOk()) {
|
if (response.getOk()) {
|
||||||
// 上传成功 保存记录数据库
|
return response;
|
||||||
FileUploadVO uploadVO = response.getData();
|
|
||||||
|
|
||||||
FileEntity fileEntity = new FileEntity();
|
|
||||||
fileEntity.setFolderType(folderTypeEnum.getValue());
|
|
||||||
fileEntity.setFileName(originalFilename);
|
|
||||||
fileEntity.setFileSize(file.getSize());
|
|
||||||
fileEntity.setFileKey(uploadVO.getFileKey());
|
|
||||||
fileEntity.setFileType(uploadVO.getFileType());
|
|
||||||
fileEntity.setCreatorId(userId);
|
|
||||||
fileEntity.setCreatorName(userName);
|
|
||||||
fileDao.insert(fileEntity);
|
|
||||||
uploadVO.setFileId(fileEntity.getId());
|
|
||||||
//添加缓存
|
|
||||||
String redisKey = RedisKeyConst.Support.FILE_URL + uploadVO.getFileKey();
|
|
||||||
redisService.set(redisKey, uploadVO.getFileUrl(), fileStorageService.cacheExpireSecond());
|
|
||||||
|
|
||||||
String fileRedisKey = RedisKeyConst.Support.FILE_VO + uploadVO.getFileKey();
|
|
||||||
FileVO fileVO = SmartBeanUtil.copy(fileEntity, FileVO.class);
|
|
||||||
redisService.set(fileRedisKey, fileVO, fileStorageService.cacheExpireSecond());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 上传成功 保存记录数据库
|
||||||
|
FileUploadVO uploadVO = response.getData();
|
||||||
|
|
||||||
|
FileEntity fileEntity = new FileEntity();
|
||||||
|
fileEntity.setFolderType(folderTypeEnum.getValue());
|
||||||
|
fileEntity.setFileName(originalFilename);
|
||||||
|
fileEntity.setFileSize(file.getSize());
|
||||||
|
fileEntity.setFileKey(uploadVO.getFileKey());
|
||||||
|
fileEntity.setFileType(uploadVO.getFileType());
|
||||||
|
fileEntity.setCreatorId(userId);
|
||||||
|
fileEntity.setCreatorName(userName);
|
||||||
|
fileDao.insert(fileEntity);
|
||||||
|
uploadVO.setFileId(fileEntity.getId());
|
||||||
|
// 添加缓存
|
||||||
|
String redisKey = RedisKeyConst.Support.FILE_URL + uploadVO.getFileKey();
|
||||||
|
redisService.set(redisKey, uploadVO.getFileUrl(), fileStorageService.cacheExpireSecond());
|
||||||
|
|
||||||
|
String fileRedisKey = RedisKeyConst.Support.FILE_VO + uploadVO.getFileKey();
|
||||||
|
FileVO fileVO = SmartBeanUtil.copy(fileEntity, FileVO.class);
|
||||||
|
redisService.set(fileRedisKey, fileVO, fileStorageService.cacheExpireSecond());
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -197,28 +199,6 @@ public class FileService {
|
|||||||
return fileUrl;
|
return fileUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量获取文件url
|
|
||||||
* 支持单个 key 逗号分隔的形式
|
|
||||||
*
|
|
||||||
* @param queryDTO
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public ResponseDTO<List<FileUrlResultDTO>> getBatchFileUrl(FileUrlQueryForm queryDTO) {
|
|
||||||
// 获取文件服务
|
|
||||||
List<String> fileKeyList = queryDTO.getFileKeyList();
|
|
||||||
List<FileUrlResultDTO> resultDTOList = fileKeyList.stream().map(fileKey -> {
|
|
||||||
// 处理逗号分隔的字符串
|
|
||||||
List<String> stringList = Arrays.asList(fileKey.split(StringConst.SEPARATOR));
|
|
||||||
stringList = stringList.stream().map(e -> fileStorageService.getFileUrl(e).getData()).collect(Collectors.toList());
|
|
||||||
String result = StringUtils.join(stringList, StringConst.SEPARATOR_CHAR);
|
|
||||||
return new FileUrlResultDTO(fileKey, result);
|
|
||||||
}).collect(Collectors.toList());
|
|
||||||
|
|
||||||
return ResponseDTO.ok(resultDTOList);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询文件列表
|
* 分页查询文件列表
|
||||||
*
|
*
|
||||||
@ -226,7 +206,7 @@ public class FileService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public ResponseDTO<PageResultDTO<FileVO>> queryListByPage(FileQueryForm queryDTO) {
|
public ResponseDTO<PageResultDTO<FileVO>> queryListByPage(FileQueryForm queryDTO) {
|
||||||
Page page = SmartPageUtil.convert2PageQuery(queryDTO);
|
Page<?> page = SmartPageUtil.convert2PageQuery(queryDTO);
|
||||||
List<FileVO> fileList = fileDao.queryListByPage(page, queryDTO);
|
List<FileVO> fileList = fileDao.queryListByPage(page, queryDTO);
|
||||||
if (CollectionUtils.isNotEmpty(fileList)) {
|
if (CollectionUtils.isNotEmpty(fileList)) {
|
||||||
fileList.forEach(e -> {
|
fileList.forEach(e -> {
|
||||||
@ -267,26 +247,7 @@ public class FileService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据id 下载文件
|
* 根据文件key 删除
|
||||||
*
|
|
||||||
* @param id
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public ResponseEntity<Object> downLoadById(Long id, String userAgent) throws IOException {
|
|
||||||
FileEntity entity = fileDao.selectById(id);
|
|
||||||
if (null == entity) {
|
|
||||||
HttpHeaders heads = new HttpHeaders();
|
|
||||||
heads.add(HttpHeaders.CONTENT_TYPE, "text/html;charset=UTF-8");
|
|
||||||
return new ResponseEntity<>("文件不存在", heads, HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 根据文件服务类 获取对应文件服务 查询 url
|
|
||||||
ResponseEntity<Object> responseEntity = this.downloadByFileKey(entity.getFileKey(), userAgent);
|
|
||||||
return responseEntity;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据文件服务和key 删除
|
|
||||||
*
|
*
|
||||||
* @param fileKey
|
* @param fileKey
|
||||||
* @return
|
* @return
|
||||||
@ -304,30 +265,4 @@ public class FileService {
|
|||||||
// 根据文件服务类 获取对应文件服务 删除文件
|
// 根据文件服务类 获取对应文件服务 删除文件
|
||||||
return fileStorageService.delete(fileKey);
|
return fileStorageService.delete(fileKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据文件服务和key 查询文件元数据
|
|
||||||
*
|
|
||||||
* @param fileKey
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public ResponseDTO<FileMetadataDTO> queryFileMetadata(String fileKey) {
|
|
||||||
if (StringUtils.isBlank(fileKey)) {
|
|
||||||
return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST);
|
|
||||||
}
|
|
||||||
// 查询数据库文件记录
|
|
||||||
FileEntity fileEntity = new FileEntity();
|
|
||||||
fileEntity.setFileKey(fileKey);
|
|
||||||
fileEntity = fileDao.selectOne(new QueryWrapper<>(fileEntity));
|
|
||||||
if (null == fileEntity) {
|
|
||||||
return ResponseDTO.error(UserErrorCode.DATA_NOT_EXIST);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 返回 meta
|
|
||||||
FileMetadataDTO metadataDTO = new FileMetadataDTO();
|
|
||||||
metadataDTO.setFileSize(fileEntity.getFileSize());
|
|
||||||
metadataDTO.setFileName(fileEntity.getFileName());
|
|
||||||
metadataDTO.setFileFormat(fileEntity.getFileType());
|
|
||||||
return ResponseDTO.ok(metadataDTO);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ package net.lab1024.smartadmin.service.module.support.idgenerator.service;
|
|||||||
import com.google.common.collect.Interner;
|
import com.google.common.collect.Interner;
|
||||||
import com.google.common.collect.Interners;
|
import com.google.common.collect.Interners;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.lab1024.smartadmin.service.common.exception.BusinessException;
|
|
||||||
import net.lab1024.smartadmin.service.common.util.SmartRandomUtil;
|
import net.lab1024.smartadmin.service.common.util.SmartRandomUtil;
|
||||||
import net.lab1024.smartadmin.service.module.support.idgenerator.IdGeneratorDao;
|
import net.lab1024.smartadmin.service.module.support.idgenerator.IdGeneratorDao;
|
||||||
import net.lab1024.smartadmin.service.module.support.idgenerator.IdGeneratorRecordDao;
|
import net.lab1024.smartadmin.service.module.support.idgenerator.IdGeneratorRecordDao;
|
||||||
@ -61,9 +60,8 @@ public class IdGeneratorService {
|
|||||||
public String generate(IdGeneratorEnum idGeneratorEnum) {
|
public String generate(IdGeneratorEnum idGeneratorEnum) {
|
||||||
int generatorId = idGeneratorEnum.getValue();
|
int generatorId = idGeneratorEnum.getValue();
|
||||||
IdGeneratorEntity idGeneratorEntity = this.idGeneratorMap.get(generatorId);
|
IdGeneratorEntity idGeneratorEntity = this.idGeneratorMap.get(generatorId);
|
||||||
if (null == idGeneratorEntity) {
|
Assert.notNull(idGeneratorEntity, "IdGenerator不存在 " + idGeneratorEntity.getRuleType());
|
||||||
throw new BusinessException("IdGenerator生产业务不存在 " + idGeneratorEnum.getDesc());
|
|
||||||
}
|
|
||||||
// 校验生成规则
|
// 校验生成规则
|
||||||
IdGeneratorRuleTypeEnum ruleTypeEnum = this.getIdGeneratorRuleTypeEnum(idGeneratorEntity.getRuleType());
|
IdGeneratorRuleTypeEnum ruleTypeEnum = this.getIdGeneratorRuleTypeEnum(idGeneratorEntity.getRuleType());
|
||||||
Assert.notNull(ruleTypeEnum, "IdGenerator rule type 不存在 " + idGeneratorEntity.getRuleType());
|
Assert.notNull(ruleTypeEnum, "IdGenerator rule type 不存在 " + idGeneratorEntity.getRuleType());
|
||||||
|
@ -18,13 +18,6 @@
|
|||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="listByFileKeyList" resultType="net.lab1024.smartadmin.service.module.support.file.domain.vo.FileVO">
|
|
||||||
SELECT * FROM t_file where file_key in
|
|
||||||
<foreach collection="fileKeyList" item="item" open="(" close=")" index="index" separator=",">
|
|
||||||
#{item}
|
|
||||||
</foreach>
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select id="getByFileKey" resultType="net.lab1024.smartadmin.service.module.support.file.domain.vo.FileVO">
|
<select id="getByFileKey" resultType="net.lab1024.smartadmin.service.module.support.file.domain.vo.FileVO">
|
||||||
SELECT * FROM t_file where file_key = #{fileKey}
|
SELECT * FROM t_file where file_key = #{fileKey}
|
||||||
</select>
|
</select>
|
||||||
|
Loading…
Reference in New Issue
Block a user