cn.stylefeng.roses.kernel.file.api.pojo.request.SysFileInfoRequest Maven / Gradle / Ivy
/*
* Copyright [2020-2030] [https://www.stylefeng.cn]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
*
* 1.请不要删除和修改根目录下的LICENSE文件。
* 2.请不要删除和修改Guns源码头部的版权声明。
* 3.请保留源码和相关描述文件的项目出处,作者声明等。
* 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns
* 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns
* 6.若您的项目无法满足以上几点,可申请商业授权
*/
package cn.stylefeng.roses.kernel.file.api.pojo.request;
import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription;
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 文件信息表
* 注意:
* 1、如果文件上传不关心版本号只关心文件本身,则业务关联fileCode,文件升级code不变
* 2、如果业务场景类似合同这类,文件升级不影响已签发的文件,则业务关联fileId,每次版本升级都会生成新的fileId
*
* @author majianguo
* @since 2020/12/27 12:35
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class SysFileInfoRequest extends BaseRequest {
/**
* 文件ID
*/
@NotNull(message = "fileId不能为空", groups = {versionBack.class, detail.class})
@ChineseDescription("文件id")
private Long fileId;
/**
* 文件编码
*
* 解决一个文件多个版本问题,多次上传文件编码不变
*
* 版本号升级的依据,code相同id不同视为同一个文件的不同版本
*/
@NotNull(message = "fileCode不能为空", groups = {edit.class, delete.class,})
@ChineseDescription("文件编码")
private Long fileCode;
/**
* 是否为机密文件,Y-是机密,N-不是机密
*
* 机密文件为需要鉴权的文件,非机密文件则不需要任何权限(不登录也可以访问)
*/
@NotBlank(message = "是否是机密文件不能为空", groups = {add.class, edit.class})
@ChineseDescription("是否为机密文件,Y-是机密,N-不是机密")
private String secretFlag;
/**
* 文件名称(上传时候的文件全名,例如:开发文档.txt)
*/
@ChineseDescription("文件名称(上传时候的文件全名,例如:开发文档.txt)")
private String fileOriginName;
/**
* 其他文件形式传参
*/
@ChineseDescription("其他文件形式参数")
private String token;
/**
* 文件存储位置:1-阿里云,2-腾讯云,3-minio,4-本地,5-数据库
*/
@ChineseDescription("文件存储位置:1-阿里云,2-腾讯云,3-minio,4-本地,5-数据库")
private Integer fileLocation;
/**
* 文件仓库(文件夹)
*/
@NotBlank(message = "fileBucket不能为空", groups = {previewByObjectName.class})
@ChineseDescription("文件仓库(文件夹)")
private String fileBucket;
/**
* 文件后缀
*/
@ChineseDescription("文件后缀")
private String fileSuffix;
/**
* 文件大小kb
*/
@ChineseDescription("文件大小")
private Long fileSizeKb;
/**
* 存储到bucket中的名称,主键id+.后缀
*/
@NotBlank(message = "fileObjectName不能为空", groups = {previewByObjectName.class})
@ChineseDescription("存储到bucket中的名称,主键id+.后缀")
private String fileObjectName;
/**
* 存储路径
*/
@ChineseDescription("存储路径")
private String filePath;
/**
* 文件ID集合,用在批量获取文件信息详情
*/
@NotEmpty(message = "文件id集合不能为空", groups = batchGetFileAntdvInfo.class)
@ChineseDescription("文件id集合")
private List fileIdList;
/**
* 版本回退
*/
public @interface versionBack {
}
/**
* 通过object名称预览文件
*/
public @interface previewByObjectName {
}
/**
* 批量获取文件信息详情
*/
public @interface batchGetFileAntdvInfo {
}
}