From a5d8d6cbbbfb6ab81743382c1de4e4cdd5cb67c6 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 21 Apr 2022 21:19:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20Simple=20=E6=A8=A1=E5=BC=8F=E4=B8=8B?= =?UTF-8?q?=EF=BC=8CDataEase=20=E5=9C=A8=E5=90=AF=E5=8A=A8=E6=97=B6?= =?UTF-8?q?=E8=AF=BB=E5=8F=96=E6=95=B0=E6=8D=AE=E5=BA=93=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=87=AA=E5=8A=A8=E6=B7=BB=E5=8A=A0=E5=BC=95?= =?UTF-8?q?=E6=93=8E=E8=AE=BE=E7=BD=AE=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../listener/DataSourceInitStartListener.java | 6 +++- .../service/engine/EngineService.java | 35 +++++++++++++++++-- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java b/backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java index d3170c606b..d9c360d1a8 100644 --- a/backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java +++ b/backend/src/main/java/io/dataease/listener/DataSourceInitStartListener.java @@ -2,6 +2,7 @@ package io.dataease.listener; import io.dataease.service.datasource.DatasourceService; import io.dataease.service.dataset.DataSetTableService; +import io.dataease.service.engine.EngineService; import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.context.ApplicationListener; import org.springframework.core.annotation.Order; @@ -15,11 +16,14 @@ public class DataSourceInitStartListener implements ApplicationListener deEngines = deEngineMapper.selectByExampleWithBLOBs(engineExample); + if (CollectionUtils.isNotEmpty(deEngines)) { + return; + } + DeEngine engine = new DeEngine(); + engine.setId(UUID.randomUUID().toString()); + engine.setType("engine_mysql"); + MysqlConfiguration mysqlConfiguration = new MysqlConfiguration(); + Pattern WITH_SQL_FRAGMENT = Pattern.compile("jdbc:mysql://(.*):(\\d+)/(.*)"); + Matcher matcher = WITH_SQL_FRAGMENT.matcher(env.getProperty("spring.datasource.url")); + if(!matcher.find()){ + return; + }; + mysqlConfiguration.setHost(matcher.group(1)); + mysqlConfiguration.setPort(Integer.valueOf(matcher.group(2))); + mysqlConfiguration.setDataBase(matcher.group(3).split("\\?")[0]); + mysqlConfiguration.setExtraParams(matcher.group(3).split("\\?")[1]); + mysqlConfiguration.setUsername(env.getProperty("spring.datasource.username")); + mysqlConfiguration.setPassword(env.getProperty("spring.datasource.password")); + engine.setConfiguration(new Gson().toJson(mysqlConfiguration)); + deEngineMapper.insert(engine); + } + }