diff --git a/core/core-backend/src/main/java/io/dataease/datasource/manage/EngineManage.java b/core/core-backend/src/main/java/io/dataease/datasource/manage/EngineManage.java index 4a0810a277..42db5102cb 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/manage/EngineManage.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/manage/EngineManage.java @@ -12,6 +12,8 @@ import io.dataease.extensions.datasource.dto.DatasourceDTO; import io.dataease.extensions.datasource.dto.DatasourceRequest; import io.dataease.extensions.datasource.factory.ProviderFactory; import io.dataease.result.ResultMessage; +import io.dataease.template.dao.auto.entity.DeTemplateVersion; +import io.dataease.template.dao.auto.mapper.DeTemplateVersionMapper; import io.dataease.utils.BeanUtils; import io.dataease.utils.JsonUtil; import io.dataease.utils.ModelUtils; @@ -23,6 +25,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -43,6 +47,9 @@ public class EngineManage { @Value("${dataease.path.engine:jdbc:h2:/opt/dataease2.0/desktop_data;AUTO_SERVER=TRUE;AUTO_RECONNECT=TRUE;MODE=MySQL;CASE_INSENSITIVE_IDENTIFIERS=TRUE;DATABASE_TO_UPPER=FALSE}") private String engineUrl; + @Resource + private DeTemplateVersionMapper deTemplateVersionMapper; + public CoreDeEngine info() throws DEException { List deEngines = deEngineMapper.selectList(null); @@ -163,7 +170,10 @@ public class EngineManage { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("id", 985188400292302848L); queryWrapper.ne("create_time", 1715053684176L); - if (!datasourceMapper.exists(queryWrapper) && !ModelUtils.isDesktop()) { + // 版本检查 + QueryWrapper queryVersionWrapper = new QueryWrapper<>(); + queryVersionWrapper.eq("version", "985188400292302848"); + if (!datasourceMapper.exists(queryWrapper) && !deTemplateVersionMapper.exists(queryVersionWrapper) && !ModelUtils.isDesktop()) { Pattern WITH_SQL_FRAGMENT = Pattern.compile("jdbc:mysql://(.*):(\\d+)/(.*)\\?(.*)"); Matcher matcher = WITH_SQL_FRAGMENT.matcher(env.getProperty("spring.datasource.url")); if (!matcher.find()) { @@ -191,6 +201,13 @@ public class EngineManage { initDatasource.setTaskStatus("WaitingForExecution"); datasourceMapper.deleteById(985188400292302848L); datasourceMapper.insert(initDatasource); + + DeTemplateVersion version = new DeTemplateVersion(); + version.setVersion("985188400292302848"); + version.setScript("Demo"); + version.setInstalledOn(LocalDateTime.now().truncatedTo(ChronoUnit.MINUTES)); + version.setSuccess(true); + deTemplateVersionMapper.insert(version); } }