package com.tofly.gpsboot.service.comm;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tofly.pojo.comm.File;
import com.tofly.pojo.comm.FileInfo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 文件信息处理
 */
public interface IFileInfoService extends IService<File> {
    /**
     * 上传文件,并获取文件id,以 , 隔开
     *
     * @param fileList
     * @param filePathBean
     * @param tableName
     * @return
     */
    StringBuilder saveFileList(List<MultipartFile> fileList, String filePathBean, String tableName);

    /**
     * 文件上传
     */
    List<FileInfo> saveFileInfoList(List<MultipartFile> fileList, String filePathBean, String tableName);

    /**
     *
     * @param fileList
     * @param filePathBean
     * @return
     */
    List<String> saveFileList(List<MultipartFile> fileList, String filePathBean);

    /**
     * 获取当前最新文件集合（不需要文件名）
     *
     */
    String getNewAnnex(String nowAnnex, List<MultipartFile> annexList, String agoAnnex, String path, String tableName);

    /**
     * 根据文件id列表删除远程文件略表
     *
     * @param fileIdList
     * @return
     */
    Boolean removeFileList(List<Long> fileIdList);

    /**
     * 根据文件id列表删除远程文件略表
     * @param fileInfoList
     * @return
     */
    Boolean removeFileInfoList(List<FileInfo> fileInfoList);

    /**
     * 根据文件id列表获取文件路径列表
     *
     * @param fileIdList
     * @return
     */
    List<String> getFilePathList(List<Long> fileIdList);

    /**
     * 更新文件
     *
     * @param nowFilePath 当前剩余文件路径列表
     * @param newFileIds  新增文件ids
     * @param tableName   文件新增表名称
     * @return
     */
    String updateFileList(List<String> nowFilePath, String newFileIds, String tableName);
}
