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} + +