【file】整理file模块的字段和业务

pull/3/head
fengshuonan 2020-12-19 15:37:01 +08:00
parent d54afecb46
commit 6f01287ce4
5 changed files with 63 additions and 51 deletions

View File

@ -21,21 +21,26 @@ public class SysFileInfoRequest extends BaseRequest {
/** /**
* id * id
*/ */
@NotNull(message = "id不能为空请检查id参数", groups = {delete.class, detail.class}) @NotNull(message = "fileId不能为空", groups = {delete.class, detail.class})
private Long id; private Long fileId;
/** /**
* 1:2:3:minio4: *
*/
private Long fileCode;
/**
* 1-2-3-minio4-
*/ */
private Integer fileLocation; private Integer fileLocation;
/** /**
* *
*/ */
private String fileBucket; private String fileBucket;
/** /**
* *
*/ */
private String fileOriginName; private String fileOriginName;
@ -50,7 +55,7 @@ public class SysFileInfoRequest extends BaseRequest {
private Long fileSizeKb; private Long fileSizeKb;
/** /**
* bucketid * bucketid+.
*/ */
private String fileObjectName; private String fileObjectName;

View File

@ -14,10 +14,15 @@ public class SysFileInfoResponse {
/** /**
* id * id
*/ */
private Long id; private Long fileId;
/** /**
* 1:2:3:minio4: *
*/
private Long fileCode;
/**
* 1-2-3-minio4-
*/ */
private Integer fileLocation; private Integer fileLocation;
@ -32,7 +37,7 @@ public class SysFileInfoResponse {
private String fileOriginName; private String fileOriginName;
/** /**
* * .txt
*/ */
private String fileSuffix; private String fileSuffix;
@ -42,7 +47,7 @@ public class SysFileInfoResponse {
private Long fileSizeKb; private Long fileSizeKb;
/** /**
* bucketid * bucketid+.
*/ */
private String fileObjectName; private String fileObjectName;

View File

@ -2,14 +2,14 @@ package cn.stylefeng.roses.kernel.file.modular.controller;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.stylefeng.roses.kernel.file.pojo.request.SysFileInfoRequest;
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
import cn.stylefeng.roses.kernel.file.exception.FileException; import cn.stylefeng.roses.kernel.file.exception.FileException;
import cn.stylefeng.roses.kernel.file.exception.enums.FileExceptionEnum; import cn.stylefeng.roses.kernel.file.exception.enums.FileExceptionEnum;
import cn.stylefeng.roses.kernel.file.modular.service.SysFileInfoService; import cn.stylefeng.roses.kernel.file.modular.service.SysFileInfoService;
import cn.stylefeng.roses.kernel.file.pojo.request.SysFileInfoRequest;
import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource; import cn.stylefeng.roses.kernel.resource.api.annotation.ApiResource;
import cn.stylefeng.roses.kernel.resource.api.annotation.GetResource; import cn.stylefeng.roses.kernel.resource.api.annotation.GetResource;
import cn.stylefeng.roses.kernel.resource.api.annotation.PostResource; import cn.stylefeng.roses.kernel.resource.api.annotation.PostResource;
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData; import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData; import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -89,7 +89,7 @@ public class SysFileInfoController {
} }
// 文件id不为空则根据文件id预览 // 文件id不为空则根据文件id预览
if (ObjectUtil.isNotEmpty(sysFileInfoRequest.getId())) { if (ObjectUtil.isNotEmpty(sysFileInfoRequest.getFileId())) {
sysFileInfoService.previewByFileId(sysFileInfoRequest, response); sysFileInfoService.previewByFileId(sysFileInfoRequest, response);
} }

View File

@ -1,10 +1,10 @@
package cn.stylefeng.roses.kernel.file.modular.entity; package cn.stylefeng.roses.kernel.file.modular.entity;
import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
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 cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -24,47 +24,47 @@ public class SysFileInfo extends BaseEntity {
/** /**
* id * id
*/ */
@TableId(type = IdType.ASSIGN_ID) @TableId(value = "file_id", type = IdType.ASSIGN_ID)
private Long id; private Long fileId;
/** /**
* 1:2:3:minio4: *
*/
@TableField(value = "file_code")
private Long fileCode;
/**
* 1-2-3-minio4-
*/ */
@TableField("file_location") @TableField("file_location")
private Integer fileLocation; private Integer fileLocation;
/** /**
* *
*/ */
@TableField("file_bucket") @TableField("file_bucket")
private String fileBucket; private String fileBucket;
/** /**
* *
*/ */
@TableField("file_origin_name") @TableField("file_origin_name")
private String fileOriginName; private String fileOriginName;
/** /**
* * .txt
*/ */
@TableField("file_suffix") @TableField("file_suffix")
private String fileSuffix; private String fileSuffix;
/** /**
* kb * kb
*/ */
@TableField("file_size_kb") @TableField("file_size_kb")
private Long fileSizeKb; private Long fileSizeKb;
/** /**
* * bucketid+.
*/
@TableField("file_size_info")
private String fileSizeInfo;
/**
* bucketid
*/ */
@TableField("file_object_name") @TableField("file_object_name")
private String fileObjectName; private String fileObjectName;
@ -75,4 +75,10 @@ public class SysFileInfo extends BaseEntity {
@TableField("file_path") @TableField("file_path")
private String filePath; private String filePath;
/**
* Y-N-
*/
@TableField("del_flag")
private String delFlag;
} }

View File

@ -2,7 +2,6 @@ package cn.stylefeng.roses.kernel.file.modular.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil; import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
@ -22,7 +21,9 @@ import cn.stylefeng.roses.kernel.file.pojo.request.SysFileInfoRequest;
import cn.stylefeng.roses.kernel.file.pojo.response.SysFileInfoResponse; import cn.stylefeng.roses.kernel.file.pojo.response.SysFileInfoResponse;
import cn.stylefeng.roses.kernel.file.util.DownloadUtil; import cn.stylefeng.roses.kernel.file.util.DownloadUtil;
import cn.stylefeng.roses.kernel.file.util.PicFileTypeUtil; import cn.stylefeng.roses.kernel.file.util.PicFileTypeUtil;
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -87,19 +88,15 @@ public class SysFileInfoServiceImpl extends ServiceImpl<SysFileInfoMapper, SysFi
long fileSizeKb = Convert.toLong(NumberUtil.div(new BigDecimal(file.getSize()), BigDecimal.valueOf(1024)) long fileSizeKb = Convert.toLong(NumberUtil.div(new BigDecimal(file.getSize()), BigDecimal.valueOf(1024))
.setScale(0, BigDecimal.ROUND_HALF_UP)); .setScale(0, BigDecimal.ROUND_HALF_UP));
//计算文件大小信息
String fileSizeInfo = FileUtil.readableFileSize(file.getSize());
// 存储文件信息 // 存储文件信息
SysFileInfo sysFileInfo = new SysFileInfo(); SysFileInfo sysFileInfo = new SysFileInfo();
sysFileInfo.setId(fileId); sysFileInfo.setFileId(fileId);
sysFileInfo.setFileLocation(FileLocationEnum.LOCAL.getCode()); sysFileInfo.setFileLocation(FileLocationEnum.LOCAL.getCode());
sysFileInfo.setFileBucket(DEFAULT_BUCKET_NAME); sysFileInfo.setFileBucket(DEFAULT_BUCKET_NAME);
sysFileInfo.setFileObjectName(finalFileName); sysFileInfo.setFileObjectName(finalFileName);
sysFileInfo.setFileOriginName(originalFilename); sysFileInfo.setFileOriginName(originalFilename);
sysFileInfo.setFileSuffix(fileSuffix); sysFileInfo.setFileSuffix(fileSuffix);
sysFileInfo.setFileSizeKb(fileSizeKb); sysFileInfo.setFileSizeKb(fileSizeKb);
sysFileInfo.setFileSizeInfo(fileSizeInfo);
this.save(sysFileInfo); this.save(sysFileInfo);
// 返回文件id // 返回文件id
@ -108,7 +105,7 @@ public class SysFileInfoServiceImpl extends ServiceImpl<SysFileInfoMapper, SysFi
@Override @Override
public void download(SysFileInfoRequest sysFileInfoRequest, HttpServletResponse response) { public void download(SysFileInfoRequest sysFileInfoRequest, HttpServletResponse response) {
SysFileInfoResponse sysFileInfoResult = this.getFileInfoResult(sysFileInfoRequest.getId()); SysFileInfoResponse sysFileInfoResult = this.getFileInfoResult(sysFileInfoRequest.getFileId());
String fileName = sysFileInfoResult.getFileOriginName(); String fileName = sysFileInfoResult.getFileOriginName();
byte[] fileBytes = sysFileInfoResult.getFileBytes(); byte[] fileBytes = sysFileInfoResult.getFileBytes();
DownloadUtil.download(fileName, fileBytes, response); DownloadUtil.download(fileName, fileBytes, response);
@ -117,15 +114,11 @@ public class SysFileInfoServiceImpl extends ServiceImpl<SysFileInfoMapper, SysFi
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public void delete(SysFileInfoRequest sysFileInfoRequest) { public void delete(SysFileInfoRequest sysFileInfoRequest) {
// 逻辑删除
// 查询文件的信息 LambdaUpdateWrapper<SysFileInfo> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
SysFileInfo sysFileInfo = this.getById(sysFileInfoRequest.getId()); lambdaUpdateWrapper.set(SysFileInfo::getDelFlag, YesOrNotEnum.Y.getCode());
lambdaUpdateWrapper.eq(SysFileInfo::getFileId, sysFileInfoRequest.getFileId());
// 删除文件记录 this.update(lambdaUpdateWrapper);
this.removeById(sysFileInfoRequest.getId());
// 删除具体文件
this.fileOperatorApi.deleteFile(sysFileInfo.getFileBucket(), sysFileInfo.getFileObjectName());
} }
@Override @Override
@ -134,7 +127,7 @@ public class SysFileInfoServiceImpl extends ServiceImpl<SysFileInfoMapper, SysFi
byte[] fileBytes; byte[] fileBytes;
// 根据文件id获取文件信息结果集 // 根据文件id获取文件信息结果集
SysFileInfoResponse sysFileInfoResult = this.getFileInfoResult(sysFileInfoRequest.getId()); SysFileInfoResponse sysFileInfoResult = this.getFileInfoResult(sysFileInfoRequest.getFileId());
// 获取文件后缀 // 获取文件后缀
String fileSuffix = sysFileInfoResult.getFileSuffix().toLowerCase(); String fileSuffix = sysFileInfoResult.getFileSuffix().toLowerCase();
@ -187,6 +180,7 @@ public class SysFileInfoServiceImpl extends ServiceImpl<SysFileInfoMapper, SysFi
@Override @Override
public List<SysFileInfo> list(SysFileInfoRequest sysFileInfoRequest) { public List<SysFileInfo> list(SysFileInfoRequest sysFileInfoRequest) {
LambdaQueryWrapper<SysFileInfo> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysFileInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysFileInfo::getDelFlag, YesOrNotEnum.N.getCode());
return this.list(queryWrapper); return this.list(queryWrapper);
} }
@ -197,7 +191,7 @@ public class SysFileInfoServiceImpl extends ServiceImpl<SysFileInfoMapper, SysFi
// 查询库中文件信息 // 查询库中文件信息
SysFileInfoRequest sysFileInfoRequest = new SysFileInfoRequest(); SysFileInfoRequest sysFileInfoRequest = new SysFileInfoRequest();
sysFileInfoRequest.setId(fileId); sysFileInfoRequest.setFileId(fileId);
SysFileInfo sysFileInfo = this.querySysFileInfo(sysFileInfoRequest); SysFileInfo sysFileInfo = this.querySysFileInfo(sysFileInfoRequest);
// 获取文件字节码 // 获取文件字节码
@ -220,7 +214,7 @@ public class SysFileInfoServiceImpl extends ServiceImpl<SysFileInfoMapper, SysFi
public SysFileInfoResponse getFileInfoWithoutContent(Long fileId) { public SysFileInfoResponse getFileInfoWithoutContent(Long fileId) {
SysFileInfoRequest sysFileInfoRequest = new SysFileInfoRequest(); SysFileInfoRequest sysFileInfoRequest = new SysFileInfoRequest();
sysFileInfoRequest.setId(fileId); sysFileInfoRequest.setFileId(fileId);
// 获取文件的基本信息 // 获取文件的基本信息
SysFileInfo sysFileInfo = querySysFileInfo(sysFileInfoRequest); SysFileInfo sysFileInfo = querySysFileInfo(sysFileInfoRequest);
@ -239,9 +233,9 @@ public class SysFileInfoServiceImpl extends ServiceImpl<SysFileInfoMapper, SysFi
* @date 2020/11/29 13:40 * @date 2020/11/29 13:40
*/ */
private SysFileInfo querySysFileInfo(SysFileInfoRequest sysFileInfoRequest) { private SysFileInfo querySysFileInfo(SysFileInfoRequest sysFileInfoRequest) {
SysFileInfo sysFileInfo = this.getById(sysFileInfoRequest.getId()); SysFileInfo sysFileInfo = this.getById(sysFileInfoRequest.getFileId());
if (ObjectUtil.isEmpty(sysFileInfo)) { if (ObjectUtil.isEmpty(sysFileInfo) || sysFileInfo.getDelFlag().equals(YesOrNotEnum.Y.getCode())) {
String userTip = StrUtil.format(FileExceptionEnum.NOT_EXISTED.getUserTip(), sysFileInfoRequest.getId()); String userTip = StrUtil.format(FileExceptionEnum.NOT_EXISTED.getUserTip(), sysFileInfoRequest.getFileId());
throw new FileException(FileExceptionEnum.NOT_EXISTED, userTip); throw new FileException(FileExceptionEnum.NOT_EXISTED, userTip);
} }
return sysFileInfo; return sysFileInfo;
@ -276,9 +270,11 @@ public class SysFileInfoServiceImpl extends ServiceImpl<SysFileInfoMapper, SysFi
if (ObjectUtil.isNotEmpty(sysFileInfoRequest.getFileObjectName())) { if (ObjectUtil.isNotEmpty(sysFileInfoRequest.getFileObjectName())) {
queryWrapper.like(SysFileInfo::getFileObjectName, sysFileInfoRequest.getFileObjectName()); queryWrapper.like(SysFileInfo::getFileObjectName, sysFileInfoRequest.getFileObjectName());
} }
} }
// 查询没被删除的
queryWrapper.eq(SysFileInfo::getDelFlag, YesOrNotEnum.N.getCode());
return queryWrapper; return queryWrapper;
} }