package com.persagy.dmp.file.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.persagy.dmp.file.model.FileInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * 文件Dao
 * @author Charlie Yu
 */
@Mapper
public interface FileMapper extends BaseMapper<FileInfo> {
    /***
     * Description: 根据文件id查询文件信息
     * @param fileId : 文件id
     * @return : com.persagy.dmp.file.model.FileInfo
     * @author : lijie
     * Update By lijie 2021/10/23 13:20
     */
    FileInfo getFileInfoById(@Param("fileId") String fileId);
    /***
     * Description: 获取当前查询页数
     * @param prefix : 筛选条件
     * @param from : 筛选key
     * @param size : 分页数
     * @return : java.lang.Integer
     * @author : lijie
     * Update By lijie 2021/12/8 20:48
     */
    Integer getPageSizeByPrefixAndFrom(@Param("prefix") String prefix,@Param("from") String from,@Param("bucket") String bucket,@Param("size") int size);
    /***
     * Description: 获取当前查询列表
     * @param prefix : 筛选条件
     * @return : java.lang.Integer
     * @author : lijie
     * Update By lijie 2021/12/8 20:48
     */
    List<FileInfo> queryListByPrefixAndFrom(Page<FileInfo> page, @Param("prefix") String prefix, @Param("bucket") String bucket);
    /***
     * Description: 根据文件id查询文件信息
     * @param fileIds : 文件id集合
     * @return : com.persagy.dmp.file.model.FileInfo
     * @author : lijie
     * Update By lijie 2021/10/23 13:20
     */
    List<FileInfo> getFileInfoByIds(@Param("fileIds") Set<String> fileIds);
    /***
     * Description: 获得文件key列表
     * @param schema : 库名称前缀
     * @param groupCode : 集团编码
     * @param extractInfos : 扩展信息点
     * @return : java.util.Set<java.lang.String>
     * @author : lijie
     * Update By 2021/12/16 14:08
     */
    String queryFileKeysByInfos(@Param("schema") String schema,@Param("groupCode") String groupCode,@Param("extractInfos") Set<String> extractInfos);
}
