package com.boman.file.service;

import com.alibaba.fastjson.JSONObject;
import com.boman.domain.dto.AjaxResult;
import com.boman.domain.dto.ExportExcelDto;
import com.boman.domain.dto.ImportExcelDto;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * 文件上传接口
 * 
 * @author ruoyi
 */
public interface ISysFileService
{
    /**
     * 文件上传接口
     * 
     * @param file 上传的文件
     * @return 访问地址
     * @throws Exception
     */
    public String uploadFile(MultipartFile file) throws Exception;

    /**
     * 功能描述: 上传base64
     *
     * @param base64 base64
     * @return java.lang.String
     */
    String uploadFileBase64(String base64) throws IOException;

    /**
     * 功能描述: 通用的导入接口
     *
     * @param dto dto
     * @return java.util.List<com.alibaba.fastjson.JSONObject>
     */
    List<JSONObject> importExcelCommon(ImportExcelDto dto) throws Exception;

    /**
     * 功能描述: 通用的导入接口
     *
     * @param multipartFile multipartFile
     * @param tableName     tableName
     * @return java.util.List<com.alibaba.fastjson.JSONObject>
     */
    AjaxResult importExcelCommon(MultipartFile multipartFile, String tableName) throws Exception;

    /**
     * 功能描述: 通用的导出接口
     *
     * @param response response
     * @param dto      tableName
     *                 empty(true=>只带表头的excel，不含数据, false=>带数据的excel)
     *                 condition 查询条件
     * @return com.boman.domain.dto.AjaxResult
     */
    AjaxResult exportExcelCommon(HttpServletResponse response, ExportExcelDto dto);
}
