From 0994138d1090a576cab333edd00534ea159ce2ab Mon Sep 17 00:00:00 2001 From: lzy <963565242@qq.com> Date: Wed, 25 Oct 2023 11:12:37 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=E5=88=87=E6=8D=A2=E8=AF=AD=E8=A8=80=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E6=9C=8D=E5=8A=A1=E6=B2=A1=E6=9C=89=E5=88=87?= =?UTF-8?q?=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- chat2db-client/src/blocks/Setting/BaseSetting/index.tsx | 3 +++ .../java/ai/chat2db/server/start/config/util/CopyTemplate.java | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/chat2db-client/src/blocks/Setting/BaseSetting/index.tsx b/chat2db-client/src/blocks/Setting/BaseSetting/index.tsx index aa4ff38e..bb2c1547 100644 --- a/chat2db-client/src/blocks/Setting/BaseSetting/index.tsx +++ b/chat2db-client/src/blocks/Setting/BaseSetting/index.tsx @@ -105,6 +105,9 @@ export default function BaseSetting() { function changeLang(e: any) { setLangLocalStorage(e.target.value); + //切换语言时,需要设置cookie,用来改变后台服务的Locale + const date = new Date('2030-12-30 12:30:00').toUTCString(); + document.cookie = `CHAT2DB.LOCALE=${e.target.value};Expires=${date}`; location.reload(); } diff --git a/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/config/util/CopyTemplate.java b/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/config/util/CopyTemplate.java index b0f6c164..54364db3 100644 --- a/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/config/util/CopyTemplate.java +++ b/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/config/util/CopyTemplate.java @@ -49,7 +49,7 @@ public class CopyTemplate { try (// 模板文件输入输出地址 读取resources下文件 FileOutputStream outputStream = new FileOutputStream(dir + File.separator + path); //返回读取指定资源的输入流 - InputStream inputStream = ConfigUtils.class.getClassLoader().getResourceAsStream("template" + File.separator + path)) { + InputStream inputStream = CopyTemplate.class.getClassLoader().getResourceAsStream("template/" + path)) { byte[] buffer = new byte[4096]; int n = 0; while (-1 != (n = inputStream.read(buffer))) { From ec758007810dc16b1039d78ec8ac49be3f05cf80 Mon Sep 17 00:00:00 2001 From: lzy <963565242@qq.com> Date: Wed, 25 Oct 2023 18:07:01 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E6=97=B6=E5=87=8F=E5=B0=91io=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../start/config/util/CopyTemplate.java | 11 +++----- .../start/listener/TemplateListener.java | 26 +++++++++++++++++++ .../api/controller/rdb/RdbDocController.java | 7 +++++ .../rdb/doc/event/TemplateEvent.java | 14 ++++++++++ 4 files changed, 50 insertions(+), 8 deletions(-) create mode 100644 chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/listener/TemplateListener.java create mode 100644 chat2db-server/chat2db-server-web/chat2db-server-web-api/src/main/java/ai/chat2db/server/web/api/controller/rdb/doc/event/TemplateEvent.java diff --git a/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/config/util/CopyTemplate.java b/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/config/util/CopyTemplate.java index 54364db3..d723e590 100644 --- a/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/config/util/CopyTemplate.java +++ b/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/config/util/CopyTemplate.java @@ -21,14 +21,9 @@ public class CopyTemplate { /** * 模板文件 **/ - public static final List TEMPLATE_FILE = Arrays.asList("template.html", "template_diy.docx", "sub_template_diy.docx"); + private static final List TEMPLATE_FILE = Arrays.asList("template.html", "template_diy.docx", "sub_template_diy.docx"); - static { - //复制模板 - copyTemplateFile(); - } - - public static void copyTemplateFile() { + public void copyTemplateFile() { String templateDir = ConfigUtils.CONFIG_BASE_PATH + File.separator + "template"; File file = new File(templateDir); if (!file.exists()) { @@ -39,7 +34,7 @@ public class CopyTemplate { } } - public static void saveFile(String dir, String path, boolean isOverride) { + public void saveFile(String dir, String path, boolean isOverride) { if (!isOverride) { File file = new File(dir + File.separator + path); if (file.exists()) { diff --git a/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/listener/TemplateListener.java b/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/listener/TemplateListener.java new file mode 100644 index 00000000..2f0783c7 --- /dev/null +++ b/chat2db-server/chat2db-server-start/src/main/java/ai/chat2db/server/start/listener/TemplateListener.java @@ -0,0 +1,26 @@ +package ai.chat2db.server.start.listener; + +import ai.chat2db.server.start.config.util.CopyTemplate; +import ai.chat2db.server.web.api.controller.rdb.doc.event.TemplateEvent; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Component; + +/** + * TemplateListener + * + * @author lzy + **/ +@Component +public class TemplateListener { + + @Autowired + private CopyTemplate copyTemplate; + + @EventListener(classes = TemplateEvent.class) + public void copyTemplate() { + //复制模板 + copyTemplate.copyTemplateFile(); + } + +} diff --git a/chat2db-server/chat2db-server-web/chat2db-server-web-api/src/main/java/ai/chat2db/server/web/api/controller/rdb/RdbDocController.java b/chat2db-server/chat2db-server-web/chat2db-server-web-api/src/main/java/ai/chat2db/server/web/api/controller/rdb/RdbDocController.java index a765b153..4dd39690 100644 --- a/chat2db-server/chat2db-server-web/chat2db-server-web-api/src/main/java/ai/chat2db/server/web/api/controller/rdb/RdbDocController.java +++ b/chat2db-server/chat2db-server-web/chat2db-server-web-api/src/main/java/ai/chat2db/server/web/api/controller/rdb/RdbDocController.java @@ -11,6 +11,7 @@ import ai.chat2db.server.web.api.aspect.ConnectionInfoAspect; import ai.chat2db.server.web.api.controller.rdb.converter.RdbWebConverter; import ai.chat2db.server.web.api.controller.rdb.doc.DatabaseExportService; import ai.chat2db.server.web.api.controller.rdb.doc.conf.ExportOptions; +import ai.chat2db.server.web.api.controller.rdb.doc.event.TemplateEvent; 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; @@ -20,6 +21,7 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -48,6 +50,9 @@ public class RdbDocController { @Autowired private RdbWebConverter rdbWebConverter; + @Autowired + private ApplicationContext applicationContext; + /** * export data * @@ -55,6 +60,8 @@ public class RdbDocController { */ @PostMapping("/export") public void export(@Valid @RequestBody DataExportRequest request, HttpServletResponse response) throws Exception { + //复制模板 + applicationContext.publishEvent(new TemplateEvent("copy")); ExportTypeEnum exportType = EasyEnumUtils.getEnum(ExportTypeEnum.class, request.getExportType()); response.setCharacterEncoding("utf-8"); String fileName = URLEncoder.encode( diff --git a/chat2db-server/chat2db-server-web/chat2db-server-web-api/src/main/java/ai/chat2db/server/web/api/controller/rdb/doc/event/TemplateEvent.java b/chat2db-server/chat2db-server-web/chat2db-server-web-api/src/main/java/ai/chat2db/server/web/api/controller/rdb/doc/event/TemplateEvent.java new file mode 100644 index 00000000..e480ac1b --- /dev/null +++ b/chat2db-server/chat2db-server-web/chat2db-server-web-api/src/main/java/ai/chat2db/server/web/api/controller/rdb/doc/event/TemplateEvent.java @@ -0,0 +1,14 @@ +package ai.chat2db.server.web.api.controller.rdb.doc.event; + +import org.springframework.context.ApplicationEvent; + +/** + * TemplateEvent + * + * @author lzy + **/ +public class TemplateEvent extends ApplicationEvent { + public TemplateEvent(String key) { + super(key); + } +}