From 1378c3f5e8bbbe8df4ba44986fb5f44e4483e909 Mon Sep 17 00:00:00 2001
From: chao <3072464591@QQ.com>
Date: Sun, 21 Apr 2024 17:01:17 +0800
Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=BA=90,=E6=B7=BB=E5=8A=A0,?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9,=E5=88=A0=E9=99=A4,=E6=B5=8B=E8=AF=95?=
=?UTF-8?q?=E8=BF=9E=E6=8E=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
etl-common/etl-common-core/pom.xml | 5 +
.../etl/data/source/domain/DataSource.java | 113 ++++++++++
.../source/domain/resp/DataSourceResp.java | 124 ++++++++++
.../com/etl/data/type/domain/DataType.java | 41 ++++
.../ETLDataSourceApplication.java | 2 +-
.../controller/DataSourceController.java | 104 +++++++++
.../data/source/mapper/DataSourceMapper.java | 62 +++++
.../source/service/IDataSourceService.java | 69 ++++++
.../service/impl/DataSourceServiceImpl.java | 211 ++++++++++++++++++
.../type/controller/DataTypeController.java | 91 ++++++++
.../etl/data/type/mapper/DataTypeMapper.java | 62 +++++
.../data/type/service/IDataTypeService.java | 62 +++++
.../service/impl/DataTypeServiceImpl.java | 91 ++++++++
.../mapper/data/DataSourceMapper.xml | 129 +++++++++++
.../resources/mapper/data/DataTypeMapper.xml | 76 +++++++
pom.xml | 7 +
16 files changed, 1248 insertions(+), 1 deletion(-)
create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/source/domain/DataSource.java
create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/source/domain/resp/DataSourceResp.java
create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/type/domain/DataType.java
rename etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/{source => }/ETLDataSourceApplication.java (96%)
create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/controller/DataSourceController.java
create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/mapper/DataSourceMapper.java
create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/IDataSourceService.java
create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java
create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/controller/DataTypeController.java
create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/mapper/DataTypeMapper.java
create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/service/IDataTypeService.java
create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/service/impl/DataTypeServiceImpl.java
create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/resources/mapper/data/DataSourceMapper.xml
create mode 100644 etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/resources/mapper/data/DataTypeMapper.xml
diff --git a/etl-common/etl-common-core/pom.xml b/etl-common/etl-common-core/pom.xml
index ea09bc5..f641aa9 100644
--- a/etl-common/etl-common-core/pom.xml
+++ b/etl-common/etl-common-core/pom.xml
@@ -136,6 +136,11 @@
lombok
+
+ redis.clients
+ jedis
+
+
diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/source/domain/DataSource.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/source/domain/DataSource.java
new file mode 100644
index 0000000..b73907c
--- /dev/null
+++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/source/domain/DataSource.java
@@ -0,0 +1,113 @@
+package com.etl.data.source.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.etl.common.core.annotation.Excel;
+import com.etl.common.core.web.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * 数据源信息对象 data_source
+ *
+ * @author Chao
+ * @date 2024-04-21
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@SuperBuilder
+@EqualsAndHashCode(callSuper = true)
+@TableName("data_source")
+public class DataSource extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键id
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 数据源名称
+ */
+ @Excel(name = "数据源名称")
+ private String dataSourceName;
+
+ /**
+ * 数据源系统名称
+ */
+ @Excel(name = "数据源系统名称")
+ private String dataSourceSystemName;
+
+ /**
+ * 数据源类型
+ */
+ @Excel(name = "数据源类型")
+ private Long typeId;
+
+ /**
+ * 数据源ip地址
+ */
+ @Excel(name = "数据源ip地址")
+ private String dataSourceIp;
+
+ /**
+ * 端口号
+ */
+ @Excel(name = "端口号")
+ private String dataSourcePort;
+
+ /**
+ * 连接数据库名称
+ */
+ @Excel(name = "连接数据库名称")
+ private String dataSourceDatabaseName;
+
+ /**
+ * 用户名
+ */
+ private String dataSourceUsername;
+
+ /**
+ * 密码
+ */
+ private String dataSourcePassword;
+
+ /**
+ * 额外配置
+ */
+ private String additionalConfiguration;
+
+ /**
+ * 状态
+ */
+ @Excel(name = "状态")
+ private String status;
+
+ /**
+ * 初始化连接数量
+ */
+ private Long initialNumberOfConnections;
+
+ /**
+ * 最大连接数量
+ */
+ private Long maximumNumberOfConnections;
+
+ /**
+ * 最大等待时间
+ */
+ private Long maximumWaitingTime;
+
+ /**
+ * 最大等待次数
+ */
+ private Long maximumWaitingTimes;
+
+
+}
diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/source/domain/resp/DataSourceResp.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/source/domain/resp/DataSourceResp.java
new file mode 100644
index 0000000..79c53a9
--- /dev/null
+++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/source/domain/resp/DataSourceResp.java
@@ -0,0 +1,124 @@
+package com.etl.data.source.domain.resp;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.etl.common.core.annotation.Excel;
+import com.etl.common.core.web.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * 数据源信息对象 data_source
+ *
+ * @author Chao
+ * @date 2024-04-21
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@SuperBuilder
+@EqualsAndHashCode(callSuper = true)
+@TableName("data_source")
+public class DataSourceResp extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键id
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 数据源名称
+ */
+ @Excel(name = "数据源名称")
+ private String dataSourceName;
+
+ /**
+ * 数据源系统名称
+ */
+ @Excel(name = "数据源系统名称")
+ private String dataSourceSystemName;
+
+ /**
+ * 数据源类型
+ */
+ @Excel(name = "数据源类型")
+ private Long typeId;
+
+
+ @Excel(name = "数据源类型")
+ private String dataType;
+
+ /**
+ * 数据源ip地址
+ */
+ @Excel(name = "数据源ip地址")
+ private String dataSourceIp;
+
+ /**
+ * 端口号
+ */
+ @Excel(name = "端口号")
+ private String dataSourcePort;
+
+ /**
+ * 连接数据库名称
+ */
+ @Excel(name = "连接数据库名称")
+ private String dataSourceDatabaseName;
+
+ /**
+ * 用户名
+ */
+ @Excel(name = "用户名")
+ private String dataSourceUsername;
+
+ /**
+ * 密码
+ */
+ @Excel(name = "密码")
+ private String dataSourcePassword;
+
+ /**
+ * 额外配置
+ */
+ @Excel(name = "额外配置")
+ private String additionalConfiguration;
+
+ /**
+ * 状态
+ */
+ @Excel(name = "状态")
+ private String status;
+
+ /**
+ * 初始化连接数量
+ */
+ @Excel(name = "初始化连接数量")
+ private Long initialNumberOfConnections;
+
+ /**
+ * 最大连接数量
+ */
+ @Excel(name = "最大连接数量")
+ private Long maximumNumberOfConnections;
+
+ /**
+ * 最大等待时间
+ */
+ @Excel(name = "最大等待时间")
+ private Long maximumWaitingTime;
+
+ /**
+ * 最大等待次数
+ */
+ @Excel(name = "最大等待次数")
+ private Long maximumWaitingTimes;
+
+
+}
diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/type/domain/DataType.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/type/domain/DataType.java
new file mode 100644
index 0000000..7758866
--- /dev/null
+++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-common/src/main/java/com/etl/data/type/domain/DataType.java
@@ -0,0 +1,41 @@
+package com.etl.data.type.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.etl.common.core.annotation.Excel;
+import com.etl.common.core.web.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * 数据源类型对象 data_type
+ *
+ * @author Chao
+ * @date 2024-04-21
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@SuperBuilder
+@EqualsAndHashCode(callSuper = true)
+@TableName("data_type")
+public class DataType extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 编号
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 数据源类型
+ */
+ @Excel(name = "数据源类型")
+ private String dataType;
+
+}
diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/source/ETLDataSourceApplication.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/ETLDataSourceApplication.java
similarity index 96%
rename from etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/source/ETLDataSourceApplication.java
rename to etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/ETLDataSourceApplication.java
index 3eeb67f..47261ea 100644
--- a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/source/ETLDataSourceApplication.java
+++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/ETLDataSourceApplication.java
@@ -1,4 +1,4 @@
-package com.etl.source;
+package com.etl;
import com.etl.common.security.annotation.EnableCustomConfig;
import com.etl.common.security.annotation.EnableMyFeignClients;
diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/controller/DataSourceController.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/controller/DataSourceController.java
new file mode 100644
index 0000000..18dea27
--- /dev/null
+++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/controller/DataSourceController.java
@@ -0,0 +1,104 @@
+package com.etl.data.source.controller;
+
+import com.etl.common.core.domain.Result;
+import com.etl.common.core.utils.poi.ExcelUtil;
+import com.etl.common.core.web.controller.BaseController;
+import com.etl.common.core.web.page.TableDataInfo;
+import com.etl.common.log.annotation.Log;
+import com.etl.common.log.enums.BusinessType;
+import com.etl.common.security.annotation.RequiresPermissions;
+import com.etl.data.source.domain.DataSource;
+import com.etl.data.source.domain.resp.DataSourceResp;
+import com.etl.data.source.service.IDataSourceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 数据源信息Controller
+ *
+ * @author Chao
+ * @date 2024-04-21
+ */
+@RestController
+@RequestMapping("/source")
+public class DataSourceController extends BaseController {
+ @Autowired
+ private IDataSourceService dataSourceService;
+
+ /**
+ * 查询数据源信息列表
+ */
+ @RequiresPermissions("data:source:list")
+ @GetMapping("/list")
+ public Result> list(DataSource dataSource) {
+ startPage();
+ List list = dataSourceService.selectDataSourceList(dataSource);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出数据源信息列表
+ */
+ @RequiresPermissions("data:source:export")
+ @Log(title = "数据源信息", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, DataSource dataSource) {
+ List list = dataSourceService.selectDataSourceList(dataSource);
+ ExcelUtil util = new ExcelUtil(DataSourceResp.class);
+ util.exportExcel(response, list, "数据源信息数据");
+ }
+
+ /**
+ * 获取数据源信息详细信息
+ */
+ @RequiresPermissions("data:source:query")
+ @GetMapping(value = "/{id}")
+ public Result getInfo(@PathVariable("id") Long id) {
+ return success(dataSourceService.selectDataSourceById(id));
+ }
+
+ /**
+ * 新增数据源信息
+ */
+ @RequiresPermissions("data:source:add")
+ @Log(title = "数据源信息", businessType = BusinessType.INSERT)
+ @PostMapping
+ public Result add(@RequestBody DataSource dataSource) {
+ return toAjax(dataSourceService.insertDataSource(dataSource));
+ }
+
+ /**
+ * 修改数据源信息
+ */
+ @RequiresPermissions("data:source:edit")
+ @Log(title = "数据源信息", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public Result edit(@RequestBody DataSource dataSource) {
+ return toAjax(dataSourceService.updateDataSource(dataSource));
+ }
+
+ /**
+ * 删除数据源信息
+ */
+ @RequiresPermissions("data:source:remove")
+ @Log(title = "数据源信息", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public Result remove(@PathVariable Long[] ids) {
+ return toAjax(dataSourceService.deleteDataSourceByIds(ids));
+ }
+
+ /**
+ * 测试链接
+ * @param id 数据源id
+ * @return
+ */
+ @RequiresPermissions("data:source:testConnection")
+ @PostMapping(value = "testConnection/{id}")
+ public Result testConnection(@PathVariable("id") Long id) {
+ return Result.success(dataSourceService.testConnection(id));
+ }
+
+}
diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/mapper/DataSourceMapper.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/mapper/DataSourceMapper.java
new file mode 100644
index 0000000..252dac0
--- /dev/null
+++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/mapper/DataSourceMapper.java
@@ -0,0 +1,62 @@
+package com.etl.data.source.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.etl.data.source.domain.DataSource;
+
+import java.util.List;
+
+/**
+ * 数据源信息Mapper接口
+ *
+ * @author Chao
+ * @date 2024-04-21
+ */
+public interface DataSourceMapper extends BaseMapper {
+ /**
+ * 查询数据源信息
+ *
+ * @param id 数据源信息主键
+ * @return 数据源信息
+ */
+ public DataSource selectDataSourceById(Long id);
+
+ /**
+ * 查询数据源信息列表
+ *
+ * @param dataSource 数据源信息
+ * @return 数据源信息集合
+ */
+ public List selectDataSourceList(DataSource dataSource);
+
+ /**
+ * 新增数据源信息
+ *
+ * @param dataSource 数据源信息
+ * @return 结果
+ */
+ public int insertDataSource(DataSource dataSource);
+
+ /**
+ * 修改数据源信息
+ *
+ * @param dataSource 数据源信息
+ * @return 结果
+ */
+ public int updateDataSource(DataSource dataSource);
+
+ /**
+ * 删除数据源信息
+ *
+ * @param id 数据源信息主键
+ * @return 结果
+ */
+ public int deleteDataSourceById(Long id);
+
+ /**
+ * 批量删除数据源信息
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteDataSourceByIds(Long[] ids);
+}
diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/IDataSourceService.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/IDataSourceService.java
new file mode 100644
index 0000000..731b65e
--- /dev/null
+++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/IDataSourceService.java
@@ -0,0 +1,69 @@
+package com.etl.data.source.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.etl.data.source.domain.DataSource;
+import com.etl.data.source.domain.resp.DataSourceResp;
+
+import java.util.List;
+
+/**
+ * 数据源信息Service接口
+ *
+ * @author Chao
+ * @date 2024-04-21
+ */
+public interface IDataSourceService extends IService {
+ /**
+ * 查询数据源信息
+ *
+ * @param id 数据源信息主键
+ * @return 数据源信息
+ */
+ public DataSource selectDataSourceById(Long id);
+
+ /**
+ * 查询数据源信息列表
+ *
+ * @param dataSource 数据源信息
+ * @return 数据源信息集合
+ */
+ public List selectDataSourceList(DataSource dataSource);
+
+ /**
+ * 新增数据源信息
+ *
+ * @param dataSource 数据源信息
+ * @return 结果
+ */
+ public int insertDataSource(DataSource dataSource);
+
+ /**
+ * 修改数据源信息
+ *
+ * @param dataSource 数据源信息
+ * @return 结果
+ */
+ public int updateDataSource(DataSource dataSource);
+
+ /**
+ * 批量删除数据源信息
+ *
+ * @param ids 需要删除的数据源信息主键集合
+ * @return 结果
+ */
+ public int deleteDataSourceByIds(Long[] ids);
+
+ /**
+ * 删除数据源信息信息
+ *
+ * @param id 数据源信息主键
+ * @return 结果
+ */
+ public int deleteDataSourceById(Long id);
+
+ /**
+ * 测试连接
+ * @param id 数据源id
+ */
+ boolean testConnection(Long id);
+}
diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java
new file mode 100644
index 0000000..c92526c
--- /dev/null
+++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java
@@ -0,0 +1,211 @@
+package com.etl.data.source.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.etl.common.core.utils.DateUtils;
+import com.etl.data.source.domain.DataSource;
+import com.etl.data.source.domain.resp.DataSourceResp;
+import com.etl.data.source.mapper.DataSourceMapper;
+import com.etl.data.source.service.IDataSourceService;
+import com.etl.data.type.domain.DataType;
+import com.etl.data.type.service.IDataTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import redis.clients.jedis.Jedis;
+
+import java.sql.DriverManager;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 数据源信息Service业务层处理
+ *
+ * @author Chao
+ * @date 2024-04-21
+ */
+@Service
+public class DataSourceServiceImpl extends ServiceImpl implements IDataSourceService {
+ @Autowired
+ private DataSourceMapper dataSourceMapper;
+
+ @Autowired
+ private IDataTypeService dataTypeService;
+
+ /**
+ * 查询数据源信息
+ *
+ * @param id 数据源信息主键
+ * @return 数据源信息
+ */
+ @Override
+ public DataSource selectDataSourceById(Long id) {
+ return dataSourceMapper.selectDataSourceById(id);
+ }
+
+ /**
+ * 查询数据源信息列表
+ *
+ * @param dataSource 数据源信息
+ * @return 数据源信息
+ */
+ @Override
+ public List selectDataSourceList(DataSource dataSource) {
+ List dataSources = dataSourceMapper.selectDataSourceList(dataSource);
+ List dataTypeList = dataTypeService.list();
+ List dataSourceResps = new ArrayList<>();
+ dataSources.stream().forEach(
+ source -> {
+ dataTypeList.stream().forEach(
+ dataType -> {
+ if (dataType.getId().equals(source.getTypeId())) {
+ DataSourceResp build = DataSourceResp.builder()
+ .id(source.getId())
+ .dataSourceName(source.getDataSourceName())
+ .dataSourceSystemName(source.getDataSourceSystemName())
+ .typeId(source.getTypeId())
+ .dataType(dataType.getDataType())
+ .dataSourceIp(source.getDataSourceIp())
+ .dataSourcePort(source.getDataSourcePort())
+ .dataSourceDatabaseName(source.getDataSourceDatabaseName())
+ .dataSourceUsername(source.getDataSourceUsername())
+ .dataSourcePassword(source.getDataSourcePassword())
+ .additionalConfiguration(source.getAdditionalConfiguration())
+ .status(source.getStatus())
+ .initialNumberOfConnections(source.getInitialNumberOfConnections())
+ .maximumNumberOfConnections(source.getMaximumNumberOfConnections())
+ .maximumWaitingTime(source.getMaximumWaitingTime())
+ .maximumWaitingTimes(source.getMaximumWaitingTimes())
+ .remark(source.getRemark())
+ .build();
+ dataSourceResps.add(build);
+ }
+ }
+ );
+ }
+ );
+ return dataSourceResps;
+ }
+
+ /**
+ * 新增数据源信息
+ *
+ * @param dataSource 数据源信息
+ * @return 结果
+ */
+ @Override
+ public int insertDataSource(DataSource dataSource) {
+ dataSource.setCreateTime(DateUtils.getNowDate());
+ return dataSourceMapper.insertDataSource(dataSource);
+ }
+
+ /**
+ * 修改数据源信息
+ *
+ * @param dataSource 数据源信息
+ * @return 结果
+ */
+ @Override
+ public int updateDataSource(DataSource dataSource) {
+ dataSource.setUpdateTime(DateUtils.getNowDate());
+ return dataSourceMapper.updateDataSource(dataSource);
+ }
+
+ /**
+ * 批量删除数据源信息
+ *
+ * @param ids 需要删除的数据源信息主键
+ * @return 结果
+ */
+ @Override
+ public int deleteDataSourceByIds(Long[] ids) {
+ return dataSourceMapper.deleteDataSourceByIds(ids);
+ }
+
+ /**
+ * 删除数据源信息信息
+ *
+ * @param id 数据源信息主键
+ * @return 结果
+ */
+ @Override
+ public int deleteDataSourceById(Long id) {
+ return dataSourceMapper.deleteDataSourceById(id);
+ }
+
+ /**
+ * 测试连接
+ *
+ * @param id 数据源id
+ */
+ @Override
+ public boolean testConnection(Long id) {
+ DataSource dataSource = this.getOne(
+ new LambdaQueryWrapper()
+ .eq(DataSource::getId, id)
+ );
+ String driveClass = "";
+ String jdbcUrl = "";
+ boolean flag = false;
+ try {
+ switch (dataSource.getTypeId().intValue()) {
+ case 1:
+ driveClass = "com.mysql.cj.jdbc.Driver";
+ jdbcUrl = "jdbc:mysql://" + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + "/" + dataSource.getDataSourceDatabaseName() + "?" + dataSource.getAdditionalConfiguration();
+ break;
+ case 2:
+ // redis
+ //连接指定的redis
+ Jedis jedis = new Jedis(dataSource.getDataSourceIp(), Integer.valueOf(dataSource.getDataSourcePort()));
+ //如果有密码则需要下面这一行
+ if (dataSource.getDataSourcePassword() != null && !dataSource.getDataSourcePassword().equals("")){
+ jedis.auth(dataSource.getDataSourcePassword());
+ }
+ //查看服务是否运行,运行正常的话返回一个PONG,否则返回一个连接错误
+ try {
+ jedis.ping();
+ flag = true;
+ } catch (Exception e) {
+ flag = false;
+ }
+ break;
+ case 3:
+ // oracle数据库
+ driveClass = "oracle.jdbc.OracleDriver";
+ jdbcUrl = "jdbc:oracle:thin:@" + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + ":" + dataSource.getDataSourceDatabaseName();
+ break;
+ case 4:
+ driveClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
+ jdbcUrl = "jdbc:sqlserver://"+ dataSource.getDataSourceIp() +":"+dataSource.getDataSourcePort()+";databaseName="+dataSource.getDataSourceDatabaseName();
+ break;
+ default:
+ return false;
+
+ }
+ if (dataSource.getTypeId() != 2){
+ flag = testDatasource(driveClass, jdbcUrl, dataSource.getDataSourceUsername(), dataSource.getDataSourcePassword());
+ }
+ return flag;
+ } catch (Exception e) {
+ return flag;
+ }
+ }
+
+ /**
+ * 测试数据源连接是否有效
+ *
+ * @param driveClass 驱动类
+ * @param url 连接
+ * @param username 用户名
+ * @param password 密码
+ * @return 布尔
+ */
+ public static boolean testDatasource(String driveClass, String url, String username, String password) {
+ try {
+ Class.forName(driveClass);
+ DriverManager.getConnection(url, username, password);
+ return true;
+ } catch (Exception e) {
+ return false;
+ }
+ }
+}
diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/controller/DataTypeController.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/controller/DataTypeController.java
new file mode 100644
index 0000000..198babc
--- /dev/null
+++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/controller/DataTypeController.java
@@ -0,0 +1,91 @@
+package com.etl.data.type.controller;
+
+import com.etl.common.core.domain.Result;
+import com.etl.common.core.utils.poi.ExcelUtil;
+import com.etl.common.core.web.controller.BaseController;
+import com.etl.common.core.web.page.TableDataInfo;
+import com.etl.common.log.annotation.Log;
+import com.etl.common.log.enums.BusinessType;
+import com.etl.common.security.annotation.RequiresPermissions;
+import com.etl.data.type.domain.DataType;
+import com.etl.data.type.service.IDataTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 数据源类型Controller
+ *
+ * @author Chao
+ * @date 2024-04-21
+ */
+@RestController
+@RequestMapping("/type")
+public class DataTypeController extends BaseController {
+ @Autowired
+ private IDataTypeService dataTypeService;
+
+ /**
+ * 查询数据源类型列表
+ */
+ @RequiresPermissions("data:type:list")
+ @GetMapping("/list")
+ public Result> list(DataType dataType) {
+ startPage();
+ List list = dataTypeService.selectDataTypeList(dataType);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出数据源类型列表
+ */
+ @RequiresPermissions("data:type:export")
+ @Log(title = "数据源类型", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, DataType dataType) {
+ List list = dataTypeService.selectDataTypeList(dataType);
+ ExcelUtil util = new ExcelUtil(DataType.class);
+ util.exportExcel(response, list, "数据源类型数据");
+ }
+
+ /**
+ * 获取数据源类型详细信息
+ */
+ @RequiresPermissions("data:type:query")
+ @GetMapping(value = "/{id}")
+ public Result getInfo(@PathVariable("id") Long id) {
+ return success(dataTypeService.selectDataTypeById(id));
+ }
+
+ /**
+ * 新增数据源类型
+ */
+ @RequiresPermissions("data:type:add")
+ @Log(title = "数据源类型", businessType = BusinessType.INSERT)
+ @PostMapping
+ public Result add(@RequestBody DataType dataType) {
+ return toAjax(dataTypeService.insertDataType(dataType));
+ }
+
+ /**
+ * 修改数据源类型
+ */
+ @RequiresPermissions("data:type:edit")
+ @Log(title = "数据源类型", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public Result edit(@RequestBody DataType dataType) {
+ return toAjax(dataTypeService.updateDataType(dataType));
+ }
+
+ /**
+ * 删除数据源类型
+ */
+ @RequiresPermissions("data:type:remove")
+ @Log(title = "数据源类型", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public Result remove(@PathVariable Long[] ids) {
+ return toAjax(dataTypeService.deleteDataTypeByIds(ids));
+ }
+}
diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/mapper/DataTypeMapper.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/mapper/DataTypeMapper.java
new file mode 100644
index 0000000..57d9f25
--- /dev/null
+++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/mapper/DataTypeMapper.java
@@ -0,0 +1,62 @@
+package com.etl.data.type.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.etl.data.type.domain.DataType;
+
+import java.util.List;
+
+/**
+ * 数据源类型Mapper接口
+ *
+ * @author Chao
+ * @date 2024-04-21
+ */
+public interface DataTypeMapper extends BaseMapper {
+ /**
+ * 查询数据源类型
+ *
+ * @param id 数据源类型主键
+ * @return 数据源类型
+ */
+ public DataType selectDataTypeById(Long id);
+
+ /**
+ * 查询数据源类型列表
+ *
+ * @param dataType 数据源类型
+ * @return 数据源类型集合
+ */
+ public List selectDataTypeList(DataType dataType);
+
+ /**
+ * 新增数据源类型
+ *
+ * @param dataType 数据源类型
+ * @return 结果
+ */
+ public int insertDataType(DataType dataType);
+
+ /**
+ * 修改数据源类型
+ *
+ * @param dataType 数据源类型
+ * @return 结果
+ */
+ public int updateDataType(DataType dataType);
+
+ /**
+ * 删除数据源类型
+ *
+ * @param id 数据源类型主键
+ * @return 结果
+ */
+ public int deleteDataTypeById(Long id);
+
+ /**
+ * 批量删除数据源类型
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteDataTypeByIds(Long[] ids);
+}
diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/service/IDataTypeService.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/service/IDataTypeService.java
new file mode 100644
index 0000000..497d092
--- /dev/null
+++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/service/IDataTypeService.java
@@ -0,0 +1,62 @@
+package com.etl.data.type.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.etl.data.type.domain.DataType;
+
+import java.util.List;
+
+/**
+ * 数据源类型Service接口
+ *
+ * @author Chao
+ * @date 2024-04-21
+ */
+public interface IDataTypeService extends IService {
+ /**
+ * 查询数据源类型
+ *
+ * @param id 数据源类型主键
+ * @return 数据源类型
+ */
+ public DataType selectDataTypeById(Long id);
+
+ /**
+ * 查询数据源类型列表
+ *
+ * @param dataType 数据源类型
+ * @return 数据源类型集合
+ */
+ public List selectDataTypeList(DataType dataType);
+
+ /**
+ * 新增数据源类型
+ *
+ * @param dataType 数据源类型
+ * @return 结果
+ */
+ public int insertDataType(DataType dataType);
+
+ /**
+ * 修改数据源类型
+ *
+ * @param dataType 数据源类型
+ * @return 结果
+ */
+ public int updateDataType(DataType dataType);
+
+ /**
+ * 批量删除数据源类型
+ *
+ * @param ids 需要删除的数据源类型主键集合
+ * @return 结果
+ */
+ public int deleteDataTypeByIds(Long[] ids);
+
+ /**
+ * 删除数据源类型信息
+ *
+ * @param id 数据源类型主键
+ * @return 结果
+ */
+ public int deleteDataTypeById(Long id);
+}
diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/service/impl/DataTypeServiceImpl.java b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/service/impl/DataTypeServiceImpl.java
new file mode 100644
index 0000000..0a0d9cf
--- /dev/null
+++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/java/com/etl/data/type/service/impl/DataTypeServiceImpl.java
@@ -0,0 +1,91 @@
+package com.etl.data.type.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.etl.common.core.utils.DateUtils;
+import com.etl.data.type.domain.DataType;
+import com.etl.data.type.mapper.DataTypeMapper;
+import com.etl.data.type.service.IDataTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 数据源类型Service业务层处理
+ *
+ * @author Chao
+ * @date 2024-04-21
+ */
+@Service
+public class DataTypeServiceImpl extends ServiceImpl implements IDataTypeService {
+ @Autowired
+ private DataTypeMapper dataTypeMapper;
+
+ /**
+ * 查询数据源类型
+ *
+ * @param id 数据源类型主键
+ * @return 数据源类型
+ */
+ @Override
+ public DataType selectDataTypeById(Long id) {
+ return dataTypeMapper.selectDataTypeById(id);
+ }
+
+ /**
+ * 查询数据源类型列表
+ *
+ * @param dataType 数据源类型
+ * @return 数据源类型
+ */
+ @Override
+ public List selectDataTypeList(DataType dataType) {
+ return dataTypeMapper.selectDataTypeList(dataType);
+ }
+
+ /**
+ * 新增数据源类型
+ *
+ * @param dataType 数据源类型
+ * @return 结果
+ */
+ @Override
+ public int insertDataType(DataType dataType) {
+ dataType.setCreateTime(DateUtils.getNowDate());
+ return dataTypeMapper.insertDataType(dataType);
+ }
+
+ /**
+ * 修改数据源类型
+ *
+ * @param dataType 数据源类型
+ * @return 结果
+ */
+ @Override
+ public int updateDataType(DataType dataType) {
+ dataType.setUpdateTime(DateUtils.getNowDate());
+ return dataTypeMapper.updateDataType(dataType);
+ }
+
+ /**
+ * 批量删除数据源类型
+ *
+ * @param ids 需要删除的数据源类型主键
+ * @return 结果
+ */
+ @Override
+ public int deleteDataTypeByIds(Long[] ids) {
+ return dataTypeMapper.deleteDataTypeByIds(ids);
+ }
+
+ /**
+ * 删除数据源类型信息
+ *
+ * @param id 数据源类型主键
+ * @return 结果
+ */
+ @Override
+ public int deleteDataTypeById(Long id) {
+ return dataTypeMapper.deleteDataTypeById(id);
+ }
+}
diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/resources/mapper/data/DataSourceMapper.xml b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/resources/mapper/data/DataSourceMapper.xml
new file mode 100644
index 0000000..17cba96
--- /dev/null
+++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/resources/mapper/data/DataSourceMapper.xml
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, data_source_name, data_source_system_name, type_id, data_source_ip, data_source_port, data_source_database_name, data_source_username, data_source_password, additional_configuration, status, remark, initial_number_of_connections, maximum_number_of_connections, maximum_waiting_time, maximum_waiting_times, create_by, create_time, update_by, update_time from data_source
+
+
+
+
+
+
+
+ insert into data_source
+
+ data_source_name,
+ data_source_system_name,
+ type_id,
+ data_source_ip,
+ data_source_port,
+ data_source_database_name,
+ data_source_username,
+ data_source_password,
+ additional_configuration,
+ status,
+ remark,
+ initial_number_of_connections,
+ maximum_number_of_connections,
+ maximum_waiting_time,
+ maximum_waiting_times,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+
+
+ #{dataSourceName},
+ #{dataSourceSystemName},
+ #{typeId},
+ #{dataSourceIp},
+ #{dataSourcePort},
+ #{dataSourceDatabaseName},
+ #{dataSourceUsername},
+ #{dataSourcePassword},
+ #{additionalConfiguration},
+ #{status},
+ #{remark},
+ #{initialNumberOfConnections},
+ #{maximumNumberOfConnections},
+ #{maximumWaitingTime},
+ #{maximumWaitingTimes},
+ #{createBy},
+ #{createTime},
+ #{updateBy},
+ #{updateTime},
+
+
+
+
+ update data_source
+
+ data_source_name = #{dataSourceName},
+ data_source_system_name = #{dataSourceSystemName},
+ type_id = #{typeId},
+ data_source_ip = #{dataSourceIp},
+ data_source_port = #{dataSourcePort},
+ data_source_database_name = #{dataSourceDatabaseName},
+ data_source_username = #{dataSourceUsername},
+ data_source_password = #{dataSourcePassword},
+ additional_configuration = #{additionalConfiguration},
+ status = #{status},
+ remark = #{remark},
+ initial_number_of_connections = #{initialNumberOfConnections},
+ maximum_number_of_connections = #{maximumNumberOfConnections},
+ maximum_waiting_time = #{maximumWaitingTime},
+ maximum_waiting_times = #{maximumWaitingTimes},
+ create_by = #{createBy},
+ create_time = #{createTime},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+
+ where id = #{id}
+
+
+
+ delete from data_source where id = #{id}
+
+
+
+ delete from data_source where id in
+
+ #{id}
+
+
+
diff --git a/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/resources/mapper/data/DataTypeMapper.xml b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/resources/mapper/data/DataTypeMapper.xml
new file mode 100644
index 0000000..8786488
--- /dev/null
+++ b/etl-modules/etl-modules-data-source/etl-modules-data-source-system/src/main/resources/mapper/data/DataTypeMapper.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, data_type, remark, create_by, create_time, update_by, update_time from data_type
+
+
+
+
+
+
+
+ insert into data_type
+
+ data_type,
+ remark,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+
+
+ #{dataType},
+ #{remark},
+ #{createBy},
+ #{createTime},
+ #{updateBy},
+ #{updateTime},
+
+
+
+
+ update data_type
+
+ data_type = #{dataType},
+ remark = #{remark},
+ create_by = #{createBy},
+ create_time = #{createTime},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+
+ where id = #{id}
+
+
+
+ delete from data_type where id = #{id}
+
+
+
+ delete from data_type where id in
+
+ #{id}
+
+
+
diff --git a/pom.xml b/pom.xml
index a06023e..3e3b656 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,6 +34,7 @@
0.9.1
8.2.2
4.1.2
+ 2.9.0
2.14.3
@@ -220,6 +221,12 @@
${etl.version}
+
+ redis.clients
+ jedis
+ ${jedis.version}
+
+