package com.hzs.common.core.utils;

import com.hzs.common.core.config.AwsConfig;
import com.hzs.common.core.config.BdConfig;
import com.hzs.common.core.config.OssConfig;
import com.hzs.common.core.domain.FileResult;
import com.hzs.common.core.enums.EEnv;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;

/**
 * @Description: 文件上传工具
 * @Author: jiang chao
 * @Time: 2023/1/13 11:24
 * @Classname: UploadUtil
 * @PackageName: com.hzs.member.tool
 */
@Slf4j
public class UploadFileUtil {

    /**
     * 文件上传
     *
     * @param file 上传文件
     * @param path 文件上传路径（不传入默认按年月日创建）
     * @return
     */
    public static FileResult upload(MultipartFile file, String path) {
        try {
            if (EEnv.TEST.getValue().equals(BdConfig.getEnv())) {
                // 测试环境，使用OSS上传并返回访问地址
                String filePath = OssUtil.uploadMultipartFile(file, path, null);
                if (null != filePath) {
                    FileResult fileResult = new FileResult();
                    fileResult.setName(filePath);
                    fileResult.setUrl(OssConfig.getFilePath() + filePath);
                    return fileResult;
                }
            } else {
                // 生产环境，使用AWS上传并返回地访问地址
                String filePath = AwsUtil.uploadMultipartFile(file, path, null);
                if (null != filePath) {
                    FileResult fileResult = new FileResult();
                    fileResult.setName(filePath);
                    fileResult.setUrl(AwsConfig.getFilePath() + filePath);
                    return fileResult;
                }
            }
        } catch (Exception e) {
            log.error("上传文件失败", e);
        }
        return null;
    }

}
