package com.ztmap.framework.web.file.service;

import cn.hutool.core.io.FileUtil;
import com.ztmap.common.utils.StringUtils;
import com.ztmap.common.utils.file.FileUploadUtils;
import com.ztmap.common.utils.text.Convert;
import com.ztmap.framework.config.V2Config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ClassUtils;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.List;

@Service
public class FileService {

    public String uploadRepairImg(MultipartFile file) throws IOException {
        //文件上传获取文件名字
        String filesURL = FileUploadUtils.upload(file);
        String fileName=file.getOriginalFilename();
        // 获得文件后缀名称
        String suffixName = fileName.substring(fileName.lastIndexOf(".")).toLowerCase();
        if(StringUtils.isEmpty(suffixName)) {
            //如果没有后缀默认后缀
            suffixName= FileUploadUtils.IMAGE_JPG_EXTENSION;
        }

        return filesURL;
    }



    /**
     * 删除文件存储表以及数据库
     * @param ids 文件集合 1,2,3
     */
    public int deleteBydataFile(String ids) {
        List<String> lista= Convert.toListStrArray(ids);

        for (String url : lista) {
            deletefile(url);
        }

        return 1;
    }

    /**
     *删除本地文件方法
     */
    public static void deletefile(String filePath) {
        if("Y".equals(V2Config.getIsstatic())) {
            String url= ClassUtils.getDefaultClassLoader().getResource("").getPath()+filePath;

            FileUtil.del(url);
        }else if("W".equals(V2Config.getIsstatic())) {
            String path = System.getProperty("catalina.home");
            if (!path.endsWith(File.separator)) {
                path = path + File.separator;
            }
            path+="webapps";
            String url=path+File.separator+filePath;
            FileUtil.del(url);
        }else {
            FileUtil.del(filePath);
        }
    }


}
