All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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 { } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy