| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package jnpf.util;
- import jnpf.base.vo.DownloadVO;
- import jnpf.constant.DbSensitiveConstant;
- import jnpf.constant.GlobalConst;
- import jnpf.entity.FileParameter;
- import lombok.extern.slf4j.Slf4j;
- import org.dromara.x.file.storage.core.FileInfo;
- import org.springframework.stereotype.Component;
- import java.nio.charset.StandardCharsets;
- import java.util.Date;
- /**
- * 数据接口文件导入导出
- *
- * @author JNPF开发平台组
- * @version V3.1.0
- * @copyright 引迈信息技术有限公司(https://www.jnpfsoft.com)
- * @date 2021-06-04
- */
- @Component
- @Slf4j
- public class DataFileExport implements FileExport {
- @Override
- public DownloadVO exportFile(Object clazz, String filePath, String fileName, String tableName) {
- fileName = containsSensitive(fileName);
- //model拼凑成Json字符串
- String json = JsonUtil.getObjectToString(clazz);
- if (json == null) {
- json = "";
- }
- //写入到文件中
- /** 2.写入到文件中 */
- fileName += "_" + DateUtil.dateFormatByPattern(new Date(), "yyyyMMddHHmmss") + "." + tableName;
- //是否需要上产到存储空间
- FileInfo fileInfo = FileUploadUtils.uploadFile(new FileParameter(filePath, fileName), json.getBytes(GlobalConst.DEFAULT_CHARSET));
- //生成下载下载文件路径
- DownloadVO vo = DownloadVO.builder().name(fileInfo.getFilename()).url(UploaderUtil.uploaderFile(fileInfo.getFilename() + "#" + "export") + "&name=" + fileName).build();
- return vo;
- }
- /**
- * 替换敏感字
- *
- * @param fileName
- * @return
- */
- private String containsSensitive(String fileName) {
- if (StringUtil.isNotEmpty(fileName)) {
- String[] split = DbSensitiveConstant.FILE_SENSITIVE.split(",");
- for (String str : split) {
- fileName = fileName.replaceAll(str, "");
- }
- }
- return fileName;
- }
- }
|