Merge pull request #613 from Zhuoyuan1/dev

修复Windows复制模板失败问题
This commit is contained in:
ji
2023-10-20 16:45:20 +08:00
committed by GitHub
3 changed files with 63 additions and 46 deletions

View File

@ -0,0 +1,63 @@
package ai.chat2db.server.start.config.util;
import ai.chat2db.server.tools.common.util.ConfigUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
/**
* CopyTemplate
*
* @author lzy
**/
@Component
@Slf4j
public class CopyTemplate {
/**
* 模板文件
**/
public static final List<String> TEMPLATE_FILE = Arrays.asList("template.html", "template_diy.docx", "sub_template_diy.docx");
static {
//复制模板
copyTemplateFile();
}
public static void copyTemplateFile() {
String templateDir = ConfigUtils.CONFIG_BASE_PATH + File.separator + "template";
File file = new File(templateDir);
if (!file.exists()) {
file.mkdir();
}
for (String template : TEMPLATE_FILE) {
saveFile(templateDir, template, true);
}
}
public static void saveFile(String dir, String path, boolean isOverride) {
if (!isOverride) {
File file = new File(dir + File.separator + path);
if (file.exists()) {
return;
}
}
try (// 模板文件输入输出地址 读取resources下文件
FileOutputStream outputStream = new FileOutputStream(dir + File.separator + path);
//返回读取指定资源的输入流
InputStream inputStream = ConfigUtils.class.getClassLoader().getResourceAsStream("template" + File.separator + path)) {
byte[] buffer = new byte[4096];
int n = 0;
while (-1 != (n = inputStream.read(buffer))) {
outputStream.write(buffer, 0, n);
}
outputStream.flush();
} catch (Exception e) {
log.error("saveFile error", e);
}
}
}

View File

@ -7,10 +7,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
/**
* Configure information on the user side
@ -27,10 +23,6 @@ public class ConfigUtils {
public static File versionFile = null;
public static File configFile;
private static ConfigJson config = null;
/**
* 模板文件
**/
public static final List<String> TEMPLATE_FILE = Arrays.asList("template.html", "template_diy.docx", "sub_template_diy.docx");
static {
String environment = StringUtils.defaultString(System.getProperty("spring.profiles.active"), "dev");
@ -46,8 +38,6 @@ public class ConfigUtils {
if (!configFile.exists()) {
FileUtil.writeUtf8String(JSON.toJSONString(new ConfigJson()), configFile);
}
//复制模板
copyTemplateFile();
}
public static void updateVersion(String version) {
@ -97,37 +87,4 @@ public class ConfigUtils {
return null;
}
}
public static void copyTemplateFile() {
String templateDir = CONFIG_BASE_PATH + File.separator + "template";
File file = new File(templateDir);
if (!file.exists()) {
file.mkdir();
}
for (String template : TEMPLATE_FILE) {
saveFile(templateDir, template, true);
}
}
public static void saveFile(String dir, String path, boolean isOverride) {
if (!isOverride) {
File file = new File(dir + File.separator + path);
if (file.exists()) {
return;
}
}
try (// 模板文件输入输出地址 读取resources下文件
FileOutputStream outputStream = new FileOutputStream(dir + File.separator + path);
//返回读取指定资源的输入流
InputStream inputStream = ConfigUtils.class.getClassLoader().getResourceAsStream("template" + File.separator + path)) {
byte[] buffer = new byte[4096];
int n = 0;
while (-1 != (n = inputStream.read(buffer))) {
outputStream.write(buffer, 0, n);
}
outputStream.flush();
} catch (Exception e) {
log.error("saveFile error", e);
}
}
}

View File

@ -15,10 +15,7 @@ import ai.chat2db.server.web.api.controller.rdb.factory.ExportServiceFactory;
import ai.chat2db.server.web.api.controller.rdb.request.DataExportRequest;
import ai.chat2db.server.web.api.controller.rdb.vo.TableVO;
import ai.chat2db.spi.model.Table;
import ai.chat2db.spi.sql.Chat2DBContext;
import ai.chat2db.spi.util.JdbcUtils;
import cn.hutool.core.date.DatePattern;
import com.alibaba.druid.DbType;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import lombok.extern.slf4j.Slf4j;