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-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/AssetsModule.java b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/AssetsModule.java deleted file mode 100644 index 47b99bf..0000000 --- a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/AssetsModule.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.etl.data.source.domain; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * 资产模块 - * @author YunFei.Du - * @date 19:25 2024/4/21 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class AssetsModule { - private HashMap structure; - private List> kvtList; - - private List tableAssets; -} diff --git a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/DataSource.java b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/DataSource.java index 0a035a9..b73907c 100644 --- a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/DataSource.java +++ b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/DataSource.java @@ -1,210 +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 + * 数据源信息对象 data_source * - * @author fei + * @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 name; + /** + * 数据源系统名称 + */ + @Excel(name = "数据源系统名称") + private String dataSourceSystemName; - /** 数据来源系统名称 */ - @Excel(name = "数据来源系统名称") - private String systemName; + /** + * 数据源类型 + */ + @Excel(name = "数据源类型") + private Long typeId; - /** 主机ip地址 */ - @Excel(name = "主机ip地址") - private String host; + /** + * 数据源ip地址 + */ + @Excel(name = "数据源ip地址") + private String dataSourceIp; - /** 端口 */ - @Excel(name = "端口") - private String port; + /** + * 端口号 + */ + @Excel(name = "端口号") + private String dataSourcePort; - /** 用户名 */ - @Excel(name = "用户名") - private String username; + /** + * 连接数据库名称 + */ + @Excel(name = "连接数据库名称") + private String dataSourceDatabaseName; - /** 密码 */ - @Excel(name = "密码") - private String password; + /** + * 用户名 + */ + private String dataSourceUsername; - /** 数据接入类型 */ - @Excel(name = "数据接入类型") - private String type; + /** + * 密码 + */ + private String dataSourcePassword; - /** 数据库名称 */ - @Excel(name = "数据库名称") - private String databaseName; + /** + * 额外配置 + */ + private String additionalConfiguration; - /** 数据连接参数 */ - @Excel(name = "数据连接参数") - private String connectionParam; + /** + * 状态 + */ + @Excel(name = "状态") + private String status; - /** 初始连接数量 */ - @Excel(name = "初始连接数量") - private Long initNum; + /** + * 初始化连接数量 + */ + private Long initialNumberOfConnections; - /** 最大连接数量 */ - @Excel(name = "最大连接数量") - private Long maxNum; + /** + * 最大连接数量 + */ + private Long maximumNumberOfConnections; - /** 最大等待时间 */ - @Excel(name = "最大等待时间") - private Long maxWaitTime; + /** + * 最大等待时间 + */ + private Long maximumWaitingTime; - /** 最大等待次数 */ - @Excel(name = "最大等待次数") - private Long maxWaitSize; - - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getSystemName() { - return systemName; - } - - public void setSystemName(String systemName) { - this.systemName = systemName; - } - - public String getHost() { - return host; - } - - public void setHost(String host) { - this.host = host; - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public String getDatabaseName() { - return databaseName; - } - - public void setDatabaseName(String databaseName) { - this.databaseName = databaseName; - } - - public String getConnectionParam() { - return connectionParam; - } - - public void setConnectionParam(String connectionParam) { - this.connectionParam = connectionParam; - } - - public Long getInitNum() { - return initNum; - } - - public void setInitNum(Long initNum) { - this.initNum = initNum; - } - - public Long getMaxNum() { - return maxNum; - } - - public void setMaxNum(Long maxNum) { - this.maxNum = maxNum; - } - - public Long getMaxWaitTime() { - return maxWaitTime; - } - - public void setMaxWaitTime(Long maxWaitTime) { - this.maxWaitTime = maxWaitTime; - } - - public Long getMaxWaitSize() { - return maxWaitSize; - } - - public void setMaxWaitSize(Long maxWaitSize) { - this.maxWaitSize = maxWaitSize; - } - - - - @Override - public String toString() { - return "DataSource{" + - "id=" + id + - ", name='" + name + '\'' + - ", systemName='" + systemName + '\'' + - ", host='" + host + '\'' + - ", port='" + port + '\'' + - ", username='" + username + '\'' + - ", password='" + password + '\'' + - ", type='" + type + '\'' + - ", databaseName='" + databaseName + '\'' + - ", connectionParam='" + connectionParam + '\'' + - ", initNum=" + initNum + - ", maxNum=" + maxNum + - ", maxWaitTime=" + maxWaitTime + - ", maxWaitSize=" + maxWaitSize + - "} " + super.toString ( ); - } + /** + * 最大等待次数 + */ + private Long maximumWaitingTimes; } diff --git a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/TableAssets.java b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/TableAssets.java deleted file mode 100644 index b0eb3f0..0000000 --- a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/TableAssets.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.etl.data.source.domain; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class TableAssets { -// private String Field; -// private String Type; -// private String Null; -// private String Key; -// private String Default; -} diff --git a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/VtModel.java b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/VtModel.java deleted file mode 100644 index a996894..0000000 --- a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/VtModel.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.etl.data.source.domain; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * VT模型 - * @author YunFei.Du - * @date 19:25 2024/4/21 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class VtModel { - private String value; - private String type; -} diff --git a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/resp/DataSourceResp.java b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/resp/DataSourceResp.java new file mode 100644 index 0000000..bf6c2f8 --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/source/domain/resp/DataSourceResp.java @@ -0,0 +1,147 @@ +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 com.etl.data.source.domain.DataSource; +import com.etl.data.type.domain.DataType; +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; + + + public static DataSourceResp dataSourceBuilder(DataSource source, DataType dataType) { + return 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(); + } +} diff --git a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/structure/domain/AssetStructure.java b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/structure/domain/AssetStructure.java new file mode 100644 index 0000000..756c1fc --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/structure/domain/AssetStructure.java @@ -0,0 +1,73 @@ +package com.etl.data.structure.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.etl.common.core.web.domain.BaseEntity; +import com.etl.data.source.domain.DataSource; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 资产结构对象 asset_structure + * + * @author Chao + * @date 2024-04-22 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder +@EqualsAndHashCode(callSuper = true) +@TableName("asset_structure") +public class AssetStructure extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 数据源id + */ + private Long dataSourceSystemId; + + /** + * 数据源名称 + */ + private String dataSourceName; + + /** + * 数据源系统名称 + */ + private String dataSourceSystemName; + + /** + * 连接数据库名称 + */ + private String dataSourceDatabaseName; + + public static AssetStructure dataSourceSaveBuilder(Long id, DataSource dataSource) { + return AssetStructure.builder() + .dataSourceSystemId(id) + .dataSourceName(dataSource.getDataSourceName()) + .dataSourceSystemName(dataSource.getDataSourceSystemName()) + .dataSourceDatabaseName(dataSource.getDataSourceDatabaseName()) + .build(); + } + + public static AssetStructure dataSourceUpdateBuilder(AssetStructure assetStructure, Long id, DataSource dataSource) { + return AssetStructure.builder() + .id(assetStructure.getId()) + .dataSourceSystemId(id) + .dataSourceName(dataSource.getDataSourceName()) + .dataSourceSystemName(dataSource.getDataSourceSystemName()) + .dataSourceDatabaseName(dataSource.getDataSourceDatabaseName()) + .build(); + } +} diff --git a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/structure/domain/AssetStructureTable.java b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/structure/domain/AssetStructureTable.java new file mode 100644 index 0000000..40743fd --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/structure/domain/AssetStructureTable.java @@ -0,0 +1,55 @@ +package com.etl.data.structure.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; + +/** + * 资产结构对象表 asset_structure_table + * + * @author Chao + * @date 2024-04-22 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder +@EqualsAndHashCode(callSuper = true) +@TableName("asset_structure_table") +public class AssetStructureTable extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 数据资产id + */ + @Excel(name = "数据资产id") + private Long assetStructureId; + + /** + * 数据资产表 + */ + @Excel(name = "数据资产表") + private String tableName; + + /** + * 数据库数据总数 + */ + @Excel(name = "表数据总数") + private Long tableDataCount; + + @Excel(name = "表注释") + private String tableNameAnnotation; +} diff --git a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/structure/domain/resp/AssetStructureResp.java b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/structure/domain/resp/AssetStructureResp.java new file mode 100644 index 0000000..84886a5 --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/structure/domain/resp/AssetStructureResp.java @@ -0,0 +1,41 @@ +package com.etl.data.structure.domain.resp; + +import com.etl.data.structure.domain.AssetStructure; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +/** + * 数据资产返回类 + * + * @author Chao + * @ClassName: AssetStructureResp 数据资产返回类 + * @CreateTime: 2024/4/22 下午7:23 + */ + +@Data +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder +public class AssetStructureResp { + + /** + * 数据资产 + */ + private List assetStructureList; + + /** + * 数据资产表总数 + */ + private Long assetStructureTableCount; + + /** + * 数据资产表数据总数 + */ + private Long assetStructureTableDataCount; + + +} diff --git a/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/type/domain/DataType.java b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/type/domain/DataType.java new file mode 100644 index 0000000..22b50c1 --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-common/src/main/java/com/etl/data/type/domain/DataType.java @@ -0,0 +1,53 @@ +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; + + /** + * 注册驱动 + */ + @Excel(name = "注册驱动") + private String driverManager; + + /** + * jdbc前缀 + */ + @Excel(name = "jdbc前缀") + private String jdbcPre; + +} diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/ETLDataSourceApplication.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/ETLDataSourceApplication.java similarity index 90% rename from etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/ETLDataSourceApplication.java rename to etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/ETLDataSourceApplication.java index 16d18b3..87199aa 100644 --- a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/ETLDataSourceApplication.java +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/ETLDataSourceApplication.java @@ -1,4 +1,4 @@ -package com.etl.data.source; +package com.etl.data; import com.etl.common.security.annotation.EnableCustomConfig; import com.etl.common.security.annotation.EnableMyFeignClients; @@ -7,9 +7,9 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** - * 系统模块 + * 数据源模块 * - * @author etl + * @author Chao */ @EnableCustomConfig @EnableCustomSwagger2 diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/controller/DataSourceController.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/controller/DataSourceController.java index b592fb1..d418974 100644 --- a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/controller/DataSourceController.java +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/controller/DataSourceController.java @@ -1,121 +1,115 @@ package com.etl.data.source.controller; -import java.util.List; -import javax.servlet.http.HttpServletResponse; - -import com.etl.data.source.domain.DataSource; -import com.etl.data.source.service.IDataSourceService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +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.common.core.web.controller.BaseController; -import com.etl.common.core.domain.Result; -import com.etl.common.core.utils.poi.ExcelUtil; -import com.etl.common.core.web.page.TableDataInfo; +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 + * 数据源信息Controller * - * @author fei + * @author Chao * @date 2024-04-21 */ @RestController @RequestMapping("/source") -public class DataSourceController extends BaseController -{ +public class DataSourceController extends BaseController { @Autowired private IDataSourceService dataSourceService; /** - * 查询【请填写功能名称】列表 + * 查询数据源信息列表 */ - @RequiresPermissions("dataSource:source:list") + @RequiresPermissions("data:source:list") @GetMapping("/list") - public Result< TableDataInfo< DataSource > > list(DataSource dataSource) - { + public Result> list(DataSource dataSource) { startPage(); - List list = dataSourceService.selectDataSourceList(dataSource); + List list = dataSourceService.selectDataSourceList(dataSource); return getDataTable(list); } /** - * 导出【请填写功能名称】列表 + * 导出数据源信息列表 */ - @RequiresPermissions("dataSource:source:export") - @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT) + @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(DataSource.class); - util.exportExcel(response, list, "【请填写功能名称】数据"); + public void export(HttpServletResponse response, DataSource dataSource) { + List list = dataSourceService.selectDataSourceList(dataSource); + ExcelUtil util = new ExcelUtil(DataSourceResp.class); + util.exportExcel(response, list, "数据源信息数据"); } /** - * 获取【请填写功能名称】详细信息 + * 获取数据源信息详细信息 */ - @RequiresPermissions("dataSource:source:query") + @RequiresPermissions("data:source:query") @GetMapping(value = "/{id}") - public Result getInfo(@PathVariable("id") Long id) - { + public Result getInfo(@PathVariable("id") Long id) { return success(dataSourceService.selectDataSourceById(id)); } /** - * 新增【请填写功能名称】 + * 新增数据源信息 */ - @RequiresPermissions("dataSource:source:add") - @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT) + @RequiresPermissions("data:source:add") + @Log(title = "数据源信息", businessType = BusinessType.INSERT) @PostMapping - public Result add(@RequestBody DataSource dataSource) - { + public Result add(@RequestBody DataSource dataSource) { return toAjax(dataSourceService.insertDataSource(dataSource)); } /** - * 修改【请填写功能名称】 + * 修改数据源信息 */ - @RequiresPermissions("dataSource:source:edit") - @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE) + @RequiresPermissions("data:source:edit") + @Log(title = "数据源信息", businessType = BusinessType.UPDATE) @PutMapping - public Result edit(@RequestBody DataSource dataSource) - { + public Result edit(@RequestBody DataSource dataSource) { return toAjax(dataSourceService.updateDataSource(dataSource)); } /** - * 删除【请填写功能名称】 + * 删除数据源信息 */ - @RequiresPermissions("dataSource:source:remove") - @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public Result remove(@PathVariable Long[] ids) - { + @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("dataSource:source:test") - @Log(title = "测试连接", businessType = BusinessType.OTHER) - @PostMapping("/TestConnection") - public Result testConnection(@RequestBody DataSource dataSource) - { - return dataSourceService.testConnection(dataSource); + @RequiresPermissions("data:source:testConnection") + @PostMapping(value = "testConnection/{id}") + public Result testConnection(@PathVariable("id") Long id) { + return Result.success(dataSourceService.testConnection(id)); } - - + /** + * 资产同步 + * @param id 数据源id + * @return + */ + @RequiresPermissions("data:source:assetSynchronization") + @PostMapping(value = "assetSynchronization/{id}") + public Result assetSynchronization(@PathVariable("id") Long id) { + return Result.success(dataSourceService.assetSynchronization(id)); + } } diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/mapper/DataSourceMapper.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/mapper/DataSourceMapper.java index 94102af..252dac0 100644 --- a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/mapper/DataSourceMapper.java +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/mapper/DataSourceMapper.java @@ -1,59 +1,59 @@ 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接口 + * 数据源信息Mapper接口 * - * @author fei + * @author Chao * @date 2024-04-21 */ -public interface DataSourceMapper -{ +public interface DataSourceMapper extends BaseMapper { /** - * 查询【请填写功能名称】 + * 查询数据源信息 * - * @param id 【请填写功能名称】主键 - * @return 【请填写功能名称】 + * @param id 数据源信息主键 + * @return 数据源信息 */ public DataSource selectDataSourceById(Long id); /** - * 查询【请填写功能名称】列表 + * 查询数据源信息列表 * - * @param dataSource 【请填写功能名称】 - * @return 【请填写功能名称】集合 + * @param dataSource 数据源信息 + * @return 数据源信息集合 */ public List selectDataSourceList(DataSource dataSource); /** - * 新增【请填写功能名称】 + * 新增数据源信息 * - * @param dataSource 【请填写功能名称】 + * @param dataSource 数据源信息 * @return 结果 */ public int insertDataSource(DataSource dataSource); /** - * 修改【请填写功能名称】 + * 修改数据源信息 * - * @param dataSource 【请填写功能名称】 + * @param dataSource 数据源信息 * @return 结果 */ public int updateDataSource(DataSource dataSource); /** - * 删除【请填写功能名称】 + * 删除数据源信息 * - * @param id 【请填写功能名称】主键 + * @param id 数据源信息主键 * @return 结果 */ public int deleteDataSourceById(Long id); /** - * 批量删除【请填写功能名称】 + * 批量删除数据源信息 * * @param ids 需要删除的数据主键集合 * @return 结果 diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/service/IDataSourceService.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/service/IDataSourceService.java index 5ce3e6b..b9b94d5 100644 --- a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/service/IDataSourceService.java +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/service/IDataSourceService.java @@ -1,66 +1,76 @@ package com.etl.data.source.service; -import com.etl.common.core.domain.Result; +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接口 + * 数据源信息Service接口 * - * @author fei + * @author Chao * @date 2024-04-21 */ -public interface IDataSourceService -{ +public interface IDataSourceService extends IService { /** - * 查询【请填写功能名称】 + * 查询数据源信息 * - * @param id 【请填写功能名称】主键 - * @return 【请填写功能名称】 + * @param id 数据源信息主键 + * @return 数据源信息 */ public DataSource selectDataSourceById(Long id); /** - * 查询【请填写功能名称】列表 + * 查询数据源信息列表 * - * @param dataSource 【请填写功能名称】 - * @return 【请填写功能名称】集合 + * @param dataSource 数据源信息 + * @return 数据源信息集合 */ - public List selectDataSourceList(DataSource dataSource); + public List selectDataSourceList(DataSource dataSource); /** - * 新增【请填写功能名称】 + * 新增数据源信息 * - * @param dataSource 【请填写功能名称】 + * @param dataSource 数据源信息 * @return 结果 */ public int insertDataSource(DataSource dataSource); /** - * 修改【请填写功能名称】 + * 修改数据源信息 * - * @param dataSource 【请填写功能名称】 + * @param dataSource 数据源信息 * @return 结果 */ public int updateDataSource(DataSource dataSource); /** - * 批量删除【请填写功能名称】 + * 批量删除数据源信息 * - * @param ids 需要删除的【请填写功能名称】主键集合 + * @param ids 需要删除的数据源信息主键集合 * @return 结果 */ public int deleteDataSourceByIds(Long[] ids); /** - * 删除【请填写功能名称】信息 + * 删除数据源信息信息 * - * @param id 【请填写功能名称】主键 + * @param id 数据源信息主键 * @return 结果 */ public int deleteDataSourceById(Long id); - Result testConnection(DataSource dataSource); + /** + * 测试连接 + * @param id 数据源id + */ + boolean testConnection(Long id); + + /** + * 资产同步 + * @param id 数据源id + * @return + */ + boolean assetSynchronization(Long id); } diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java index 6180e00..9c6698d 100644 --- a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/source/service/impl/DataSourceServiceImpl.java @@ -1,158 +1,420 @@ package com.etl.data.source.service.impl; - - -import com.etl.common.core.domain.Result; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +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.structure.domain.AssetStructure; +import com.etl.data.structure.domain.AssetStructureTable; +import com.etl.data.structure.service.IAssetStructureService; +import com.etl.data.structure.service.IAssetStructureTableService; +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 org.springframework.transaction.annotation.Transactional; +import redis.clients.jedis.Jedis; + +import java.sql.*; +import java.util.ArrayList; +import java.util.List; /** - * 【请填写功能名称】Service业务层处理 + * 数据源信息Service业务层处理 * - * @author fei + * @author Chao * @date 2024-04-21 */ @Service -public class DataSourceServiceImpl implements IDataSourceService -{ +public class DataSourceServiceImpl extends ServiceImpl implements IDataSourceService { @Autowired private DataSourceMapper dataSourceMapper; + @Autowired + private IDataTypeService dataTypeService; + + @Autowired + private IAssetStructureService assetStructureService; + + @Autowired + private IAssetStructureTableService assetStructureTableService; + /** - * 查询【请填写功能名称】 + * 查询数据源信息 * - * @param id 【请填写功能名称】主键 - * @return 【请填写功能名称】 + * @param id 数据源信息主键 + * @return 数据源信息 */ @Override - public DataSource selectDataSourceById(Long id) - { + public DataSource selectDataSourceById(Long id) { return dataSourceMapper.selectDataSourceById(id); } /** - * 查询【请填写功能名称】列表 + * 查询数据源信息列表 * - * @param dataSource 【请填写功能名称】 - * @return 【请填写功能名称】 + * @param dataSource 数据源信息 + * @return 数据源信息 */ @Override - public List selectDataSourceList(DataSource dataSource) - { - return dataSourceMapper.selectDataSourceList(dataSource); + public List selectDataSourceList(DataSource dataSource) { + List dataSources = dataSourceMapper.selectDataSourceList(dataSource); + List dataTypeList = dataTypeService.list(); + List dataSourceResps = new ArrayList<>(); + dataSources.stream() + .flatMap(source -> + dataTypeList.stream() + .filter(dataType -> dataType.getId().equals(source.getTypeId())) + .map(dataType -> DataSourceResp.dataSourceBuilder(source, dataType)) + ).forEach(dataSourceResps::add); + return dataSourceResps; } /** - * 新增【请填写功能名称】 + * 新增数据源信息 * - * @param dataSource 【请填写功能名称】 + * @param dataSource 数据源信息 * @return 结果 */ @Override - public int insertDataSource(DataSource dataSource) - { + public int insertDataSource(DataSource dataSource) { dataSource.setCreateTime(DateUtils.getNowDate()); return dataSourceMapper.insertDataSource(dataSource); } /** - * 修改【请填写功能名称】 + * 修改数据源信息 * - * @param dataSource 【请填写功能名称】 + * @param dataSource 数据源信息 * @return 结果 */ @Override - public int updateDataSource(DataSource dataSource) - { + public int updateDataSource(DataSource dataSource) { dataSource.setUpdateTime(DateUtils.getNowDate()); return dataSourceMapper.updateDataSource(dataSource); } /** - * 批量删除【请填写功能名称】 + * 批量删除数据源信息 * - * @param ids 需要删除的【请填写功能名称】主键 + * @param ids 需要删除的数据源信息主键 * @return 结果 */ @Override - public int deleteDataSourceByIds(Long[] ids) - { + public int deleteDataSourceByIds(Long[] ids) { return dataSourceMapper.deleteDataSourceByIds(ids); } /** - * 删除【请填写功能名称】信息 + * 删除数据源信息信息 * - * @param id 【请填写功能名称】主键 + * @param id 数据源信息主键 * @return 结果 */ @Override - public int deleteDataSourceById(Long id) - { + public int deleteDataSourceById(Long id) { return dataSourceMapper.deleteDataSourceById(id); } + /** + * 测试连接 + * + * @param id 数据源id + */ @Override - public Result testConnection(DataSource dataSource) { - String user=dataSource.getUsername(); - String password=dataSource.getPassword (); - String jdbcDriver = "com.mysql.cj.jdbc.Driver"; - String jdbcUrl = "jdbc:mysql://"+dataSource.getHost ()+":"+dataSource.getPort()+"/"+dataSource.getDatabaseName(); - if (dataSource.getConnectionParam()!=null && dataSource.getConnectionParam()!=""){ - jdbcUrl = jdbcUrl+"?"+dataSource.getConnectionParam(); - } - Connection conn = null; - PreparedStatement pst=null; + public boolean testConnection(Long id) { + DataSource dataSource = this.getOne( + new LambdaQueryWrapper() + .eq(DataSource::getId, id) + ); + String jdbcUrl = ""; + String driveClass = ""; + boolean flag = false; + DataType dataType = dataTypeService.getOne( + new LambdaQueryWrapper() + .eq(DataType::getId, dataSource.getTypeId()) + ); try { - Class.forName(jdbcDriver); - } catch (ClassNotFoundException e) { - return Result.error("连接失败"); + if (dataType.getDriverManager() != null && dataType.getJdbcPre() != null) { + if ("mysql".equals(dataType.getDataType())) { + driveClass = dataType.getDriverManager(); + jdbcUrl = dataType.getJdbcPre() + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + "/" + dataSource.getDataSourceDatabaseName() + "?" + dataSource.getAdditionalConfiguration(); + } + if ("oracle".equals(dataType.getDataType())) { + driveClass = dataType.getDriverManager(); + jdbcUrl = dataType.getJdbcPre() + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + ":" + dataSource.getDataSourceDatabaseName(); + } + if ("sqlserver".equals(dataType.getDataType())) { + driveClass = dataType.getDriverManager(); + jdbcUrl = dataType.getJdbcPre() + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + ";databaseName=" + dataSource.getDataSourceDatabaseName(); + } + flag = testDatasource(driveClass, jdbcUrl, dataSource.getDataSourceUsername(), dataSource.getDataSourcePassword()); + } else { + // 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; + } + } + if (flag) { + this.update( + new UpdateWrapper() + .set("status", "S") + .eq("id", id) + ); + } else { + this.update( + new UpdateWrapper() + .set("status", "E") + .eq("id", id) + ); + } + return flag; + } catch (Exception e) { + return flag; } + } + + /** + * 资产同步 + * + * @param id 数据源id + * @return + */ + @Override + @Transactional + public boolean assetSynchronization(Long id) { + DataSource dataSource = this.getOne( + new LambdaQueryWrapper() + .eq(DataSource::getId, id) + ); + // 查询是否存在当前 + AssetStructure assetStructure = assetStructureService.getOne( + new LambdaQueryWrapper() + .eq(AssetStructure::getDataSourceSystemId, id) + ); + boolean b = this.testConnection(id); + if (b) { + // 如果不存在就给他添加资产结构表 + if (assetStructure == null) { + // 构建实体 + AssetStructure entity = AssetStructure.dataSourceSaveBuilder(id, dataSource); + assetStructureService.save(entity); + String jdbcUrl = ""; + String driveClass = ""; + DataType dataType = dataTypeService.getOne( + new LambdaQueryWrapper() + .eq(DataType::getId, dataSource.getTypeId()) + ); + try { + List assetStructureTableList = new ArrayList<>(); + if (dataType.getDriverManager() != null && dataType.getJdbcPre() != null) { + if ("mysql".equals(dataType.getDataType())) { + driveClass = dataType.getDriverManager(); + jdbcUrl = dataType.getJdbcPre() + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + "/" + dataSource.getDataSourceDatabaseName() + "?" + dataSource.getAdditionalConfiguration(); + // 加载数据库驱动 + Class.forName(driveClass); + // 连接数据库 + Connection conn = DriverManager.getConnection(jdbcUrl, dataSource.getDataSourceUsername(), dataSource.getDataSourcePassword()); + Statement st = conn.createStatement(); + ResultSet rs = st.executeQuery("select * from information_schema.tables where TABLE_SCHEMA = " + "'" + dataSource.getDataSourceDatabaseName() + "'"); + while (rs.next()) { + // 获取表名 + String tableName = rs.getString("TABLE_NAME"); + // 表注释 + String tableNameAnnotation = rs.getString("TABLE_COMMENT"); + // 添加数据 + // 表数据数量 + assetStructureTableList.add( + new AssetStructureTable() {{ + setAssetStructureId(entity.getId()); + setTableName(tableName); + setTableNameAnnotation(tableNameAnnotation); + }} + ); + } + assetStructureTableList.stream().forEach(assetStructureTable -> { + try { + ResultSet rs2 = st.executeQuery("select count(*) as countNum from " + assetStructureTable.getTableName()); + while (rs2.next()) { + assetStructureTable.setTableDataCount(rs2.getLong("countNum")); + } + rs2.close(); + } catch (SQLException e) { + + } + }); + conn.close(); + st.close(); + rs.close(); + // 批量插入 + assetStructureTableService.saveBatch(assetStructureTableList); + } + if ("oracle".equals(dataType.getDataType())) { + driveClass = dataType.getDriverManager(); + jdbcUrl = dataType.getJdbcPre() + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + ":" + dataSource.getDataSourceDatabaseName(); + } + if ("sqlserver".equals(dataType.getDataType())) { + driveClass = dataType.getDriverManager(); + jdbcUrl = dataType.getJdbcPre() + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + ";databaseName=" + dataSource.getDataSourceDatabaseName(); + } + + } else { + // 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(); + + } catch (Exception e) { + + } + } + } catch (Exception e) { + System.out.println(e); + return false; + } + } else { // 如果他存在就给他修改 + AssetStructure entity = AssetStructure.dataSourceUpdateBuilder(assetStructure, id, dataSource); + + // 修改资产结构 + assetStructureService.update( + entity, new LambdaUpdateWrapper() + .eq(AssetStructure::getId, entity.getId()) + ); + + // 删除资产结构表信息 + assetStructureTableService.remove( + new LambdaQueryWrapper() + .eq(AssetStructureTable::getAssetStructureId, entity.getId()) + ); + + String jdbcUrl = ""; + String driveClass = ""; + DataType dataType = dataTypeService.getOne( + new LambdaQueryWrapper() + .eq(DataType::getId, dataSource.getTypeId()) + ); + try { + List assetStructureTableList = new ArrayList<>(); + if (dataType.getDriverManager() != null && dataType.getJdbcPre() != null) { + if ("mysql".equals(dataType.getDataType())) { + driveClass = dataType.getDriverManager(); + jdbcUrl = dataType.getJdbcPre() + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + "/" + dataSource.getDataSourceDatabaseName() + "?" + dataSource.getAdditionalConfiguration(); + // 加载数据库驱动 + Class.forName(driveClass); + // 连接数据库 + Connection conn = DriverManager.getConnection(jdbcUrl, dataSource.getDataSourceUsername(), dataSource.getDataSourcePassword()); + Statement st = conn.createStatement(); + ResultSet rs = st.executeQuery("select * from information_schema.tables where TABLE_SCHEMA = " + "'" + dataSource.getDataSourceDatabaseName() + "'"); + while (rs.next()) { + // 获取表名 + String tableName = rs.getString("TABLE_NAME"); + // 表注释 + String tableNameAnnotation = rs.getString("TABLE_COMMENT"); + // 添加数据 + // 表数据数量 + assetStructureTableList.add( + new AssetStructureTable() {{ + setAssetStructureId(entity.getId()); + setTableName(tableName); + setTableNameAnnotation(tableNameAnnotation); + }} + ); + } + assetStructureTableList.stream().forEach(assetStructureTable -> { + try { + ResultSet rs2 = st.executeQuery("select count(*) as countNum from " + assetStructureTable.getTableName()); + while (rs2.next()) { + assetStructureTable.setTableDataCount(rs2.getLong("countNum")); + } + rs2.close(); + } catch (SQLException e) { + + } + }); + conn.close(); + st.close(); + rs.close(); + // 批量插入 + assetStructureTableService.saveBatch(assetStructureTableList); + } + if ("oracle".equals(dataType.getDataType())) { + driveClass = dataType.getDriverManager(); + jdbcUrl = dataType.getJdbcPre() + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + ":" + dataSource.getDataSourceDatabaseName(); + } + if ("sqlserver".equals(dataType.getDataType())) { + driveClass = dataType.getDriverManager(); + jdbcUrl = dataType.getJdbcPre() + dataSource.getDataSourceIp() + ":" + dataSource.getDataSourcePort() + ";databaseName=" + dataSource.getDataSourceDatabaseName(); + } + + } else { + // 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(); + + } catch (Exception e) { + + } + } + } catch (Exception e) { + System.out.println(e); + return false; + } + } + } else { + // 如果连接失败并存在就给他删除 + if (assetStructure != null) { + // 删除 + assetStructureService.removeById(assetStructure.getId()); + } + return false; + } + return true; + } + + /** + * 测试数据源连接是否有效 + * + * @param driveClass 驱动类 + * @param url 连接 + * @param username 用户名 + * @param password 密码 + * @return 布尔 + */ + public static boolean testDatasource(String driveClass, String url, String username, String password) { try { - conn = DriverManager.getConnection(jdbcUrl, user, password); - - pst= conn.prepareStatement ( "select * from city " ); - - ResultSet resultSet = pst.executeQuery ( ); - ResultSetMetaData resultSetMetaData = resultSet.getMetaData ( ); - - // 获取列数 - int columnCount = resultSetMetaData.getColumnCount(); - // 获取每列的信息,注意列的序列从1开始 - for (int i = 1; i <= columnCount; i++) { - // 获取列名并打印 - String columnName = resultSetMetaData.getColumnName(i); - System.out.print(" " + columnName + " "); - } - System.out.println();// 换行 - - // 将每行数据存储在Vector集合中 - Vector< Vector > rowData = new Vector<>(); - while (resultSet.next()){ - Vector columnData = new Vector<>(); - for (int i = 1; i <= columnCount; i++) { - columnData.add(resultSet.getString(i)); - } - rowData.add(columnData); - } - - // 第一层循环遍历每行数据 - for (int i = 0; i < rowData.size(); i++) { - Vector columnData = rowData.get(i); - // 第二层循环遍历每行中每列数据 - for (int j = 0; j < columnData.size(); j++) { - System.out.print(" " + columnData.get(j) + " "); - } - System.out.println();// 换行 - } - conn.close(); - }catch (Exception e){ - return Result.error("连接失败"); + Class.forName(driveClass); + DriverManager.getConnection(url, username, password); + return true; + } catch (Exception e) { + return false; } - return Result.success("连接成功"); } } diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/controller/AssetStructureController.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/controller/AssetStructureController.java new file mode 100644 index 0000000..8938788 --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/controller/AssetStructureController.java @@ -0,0 +1,36 @@ +package com.etl.data.structure.controller; + +import com.etl.common.core.domain.Result; +import com.etl.common.security.annotation.RequiresPermissions; +import com.etl.data.structure.domain.resp.AssetStructureResp; +import com.etl.data.structure.service.IAssetStructureService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 数据资产 Controller 层 + * + * @author Chao + * @ClassName: AssetStructureController 数据资产 Controller 层 + * @CreateTime: 2024/4/22 上午10:09 + */ +@RestController +@RequestMapping("/structure") +public class AssetStructureController { + + @Autowired + private IAssetStructureService assetStructureService; + + /** + * 查询数据源信息列表 + */ + @RequiresPermissions("data:structure:list") + @PostMapping("/list") + public Result list() { + return Result.success(assetStructureService.selectAssetSouructureList()); + } + + +} diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/controller/AssetStructureTableController.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/controller/AssetStructureTableController.java new file mode 100644 index 0000000..227ff9d --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/controller/AssetStructureTableController.java @@ -0,0 +1,40 @@ +package com.etl.data.structure.controller; + +import com.etl.common.core.domain.Result; +import com.etl.common.security.annotation.RequiresPermissions; +import com.etl.data.structure.domain.AssetStructureTable; +import com.etl.data.structure.service.IAssetStructureTableService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 数据资产表 Controller 层 + * + * @author Chao + * @ClassName: AssetStructureTableController 数据资产表 Controller 层 + * @CreateTime: 2024/4/22 下午7:28 + */ +@RestController +@RequestMapping("/structureTable") +public class AssetStructureTableController { + + @Autowired + private IAssetStructureTableService assetStructureTableService; + + /** + * 查询所有的表 + * @param assetStructureId + * @return + */ + @RequiresPermissions("data:structureTable:list") + @PostMapping("list/{assetStructureId}") + public Result> list(@PathVariable("assetStructureId") Long assetStructureId) { + return Result.success(assetStructureTableService.selectAssetSouructureTableList(assetStructureId)); + } + +} diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/mapper/AssetStructureMapper.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/mapper/AssetStructureMapper.java new file mode 100644 index 0000000..de8f141 --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/mapper/AssetStructureMapper.java @@ -0,0 +1,14 @@ +package com.etl.data.structure.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.etl.data.structure.domain.AssetStructure; + +/** + * 数据资产Mapper接口 + * + * @author Chao + * @ClassName: AssetStructureMapper 数据资产Mapper + * @CreateTime: 2024/4/22 下午2:12 + */ +public interface AssetStructureMapper extends BaseMapper { +} diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/mapper/AssetStructureTableMapper.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/mapper/AssetStructureTableMapper.java new file mode 100644 index 0000000..465137d --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/mapper/AssetStructureTableMapper.java @@ -0,0 +1,14 @@ +package com.etl.data.structure.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.etl.data.structure.domain.AssetStructureTable; + +/** + * 资产结构Mapper接口 + * + * @author Chao + * @ClassName: AssetStructureTableMapper 资产结构Mapper接口 + * @CreateTime: 2024/4/22 下午5:23 + */ +public interface AssetStructureTableMapper extends BaseMapper { +} diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/service/IAssetStructureService.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/service/IAssetStructureService.java new file mode 100644 index 0000000..0c221ef --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/service/IAssetStructureService.java @@ -0,0 +1,22 @@ +package com.etl.data.structure.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.etl.data.structure.domain.AssetStructure; +import com.etl.data.structure.domain.resp.AssetStructureResp; + +/** + * 数据资产Service 接口 + * + * @author Chao + * @ClassName: IAssetStructureService 数据资产Service 接口 + * @CreateTime: 2024/4/22 下午2:08 + */ +public interface IAssetStructureService extends IService { + /** + * 查询数据资产列表 + * + * @return 数据资产集合 + */ + AssetStructureResp selectAssetSouructureList(); + +} diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/service/IAssetStructureTableService.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/service/IAssetStructureTableService.java new file mode 100644 index 0000000..be1a4fb --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/service/IAssetStructureTableService.java @@ -0,0 +1,23 @@ +package com.etl.data.structure.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.etl.data.structure.domain.AssetStructureTable; + +import java.util.List; + +/** + * 资产结构表表Service接口 + * + * @author Chao + * @ClassName: IAssetStructureTableService 资产结构表表Service接口 + * @CreateTime: 2024/4/22 下午5:21 + */ +public interface IAssetStructureTableService extends IService { + /** + * 查询该数据资产表 + * @param assetStructureId 数据资产id + * @return + */ + List selectAssetSouructureTableList(Long assetStructureId ); + +} diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/service/impl/AssetStructureServiceImpl.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/service/impl/AssetStructureServiceImpl.java new file mode 100644 index 0000000..f3f20a5 --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/service/impl/AssetStructureServiceImpl.java @@ -0,0 +1,55 @@ +package com.etl.data.structure.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.etl.data.structure.domain.AssetStructure; +import com.etl.data.structure.domain.AssetStructureTable; +import com.etl.data.structure.domain.resp.AssetStructureResp; +import com.etl.data.structure.mapper.AssetStructureMapper; +import com.etl.data.structure.service.IAssetStructureService; +import com.etl.data.structure.service.IAssetStructureTableService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 数据资产Service 业务实现层 + * + * @author Chao + * @ClassName: AssetStructureServiceImpl 数据资产Service 业务实现层 + * @CreateTime: 2024/4/22 下午2:10 + */ +@Service +public class AssetStructureServiceImpl extends ServiceImpl implements IAssetStructureService { + + @Autowired + private IAssetStructureTableService assetStructureTableService; + + + /** + * 查询数据资产列表 + * + * @return 数据资产列表 + */ + @Override + public AssetStructureResp selectAssetSouructureList() { + // 创建一个列表 + List assetStructureList = this.list(); + + List assetStructureTableList = assetStructureTableService.list(); + + // 统计数据 + long assetStructureTableCount = assetStructureTableList.size(); + // 统计数据总数 + long assetStructureTableDataCount; + + + assetStructureTableDataCount = assetStructureTableList.stream().mapToLong(AssetStructureTable::getTableDataCount).sum(); + + return new AssetStructureResp(){{ + setAssetStructureList(assetStructureList); + setAssetStructureTableCount(assetStructureTableCount); + setAssetStructureTableDataCount(assetStructureTableDataCount); + }}; + } +} diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/service/impl/AssetStructureTableServiceImpl.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/service/impl/AssetStructureTableServiceImpl.java new file mode 100644 index 0000000..a6cb49d --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/structure/service/impl/AssetStructureTableServiceImpl.java @@ -0,0 +1,34 @@ +package com.etl.data.structure.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.etl.data.structure.domain.AssetStructureTable; +import com.etl.data.structure.mapper.AssetStructureTableMapper; +import com.etl.data.structure.service.IAssetStructureTableService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 资产结构表表Service业务实现层 + * + * @author Chao + * @ClassName: AssetStructureTableServiceImpl 资产结构表表Service业务实现层 + * @CreateTime: 2024/4/22 下午5:22 + */ +@Service +public class AssetStructureTableServiceImpl extends ServiceImpl implements IAssetStructureTableService { + /** + * 查询该数据资产表 + * @param assetStructureId 数据资产id + * @return + */ + @Override + public List selectAssetSouructureTableList(Long assetStructureId) { + List list = this.list( + new LambdaQueryWrapper() + .eq(AssetStructureTable::getAssetStructureId, assetStructureId) + ); + return list; + } +} diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/type/controller/DataTypeController.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/type/controller/DataTypeController.java new file mode 100644 index 0000000..198babc --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-server/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-data-source/etl-data-source-server/src/main/java/com/etl/data/type/mapper/DataTypeMapper.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/type/mapper/DataTypeMapper.java new file mode 100644 index 0000000..57d9f25 --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-server/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-data-source/etl-data-source-server/src/main/java/com/etl/data/type/service/IDataTypeService.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/type/service/IDataTypeService.java new file mode 100644 index 0000000..497d092 --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-server/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-data-source/etl-data-source-server/src/main/java/com/etl/data/type/service/impl/DataTypeServiceImpl.java b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/type/service/impl/DataTypeServiceImpl.java new file mode 100644 index 0000000..5f076d2 --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/java/com/etl/data/type/service/impl/DataTypeServiceImpl.java @@ -0,0 +1,102 @@ +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()); + dataType.setDataType(lowerCase(dataType.getDataType())); + return dataTypeMapper.insertDataType(dataType); + } + + /** + * 修改数据源类型 + * + * @param dataType 数据源类型 + * @return 结果 + */ + @Override + public int updateDataType(DataType dataType) { + dataType.setUpdateTime(DateUtils.getNowDate()); + dataType.setDataType(lowerCase(dataType.getDataType())); + 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); + } + + /** + * 将所有的大写转换成小写并清除中间所有的空格 + * @param str 需要转换的参数 + * @return 转换后的参数 + */ + public static String lowerCase(String str){ + return str.toLowerCase().replaceAll(" ",""); + } +} diff --git a/etl-modules/etl-data-source/etl-data-source-server/src/main/resources/mapper/data/DataSourceMapper.xml b/etl-modules/etl-data-source/etl-data-source-server/src/main/resources/mapper/data/DataSourceMapper.xml new file mode 100644 index 0000000..6c1e67c --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/resources/mapper/data/DataSourceMapper.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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-data-source/etl-data-source-server/src/main/resources/mapper/data/DataTypeMapper.xml b/etl-modules/etl-data-source/etl-data-source-server/src/main/resources/mapper/data/DataTypeMapper.xml new file mode 100644 index 0000000..e15b4b4 --- /dev/null +++ b/etl-modules/etl-data-source/etl-data-source-server/src/main/resources/mapper/data/DataTypeMapper.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + select id, data_type, driver_manager, jdbc_pre, remark, create_by, create_time, update_by, update_time from data_type + + + + + + + + insert into data_type + + data_type, + driver_manager, + jdbc_pre, + remark, + create_by, + create_time, + update_by, + update_time, + + + #{dataType}, + #{driverManager}, + #{jdbcPre}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update data_type + + data_type = #{dataType}, + driver_manager = #{driverManager}, + jdbc_pre = #{jdbcPre}, + 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/etl-modules/etl-data-source/etl-data-source-server/src/main/resources/mapper/dataSource/DataSourceMapper.xml b/etl-modules/etl-data-source/etl-data-source-server/src/main/resources/mapper/dataSource/DataSourceMapper.xml deleted file mode 100644 index d7f8de3..0000000 --- a/etl-modules/etl-data-source/etl-data-source-server/src/main/resources/mapper/dataSource/DataSourceMapper.xml +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - select id, name, systemName, host, port, username, password, type, database_name, connection_param, init_num, max_num, max_wait_time, max_wait_size, create_by, create_time, update_by, update_time, remark from data_source - - - - - - - - insert into data_source - - id, - name, - systemName, - host, - port, - username, - password, - type, - database_name, - connection_param, - init_num, - max_num, - max_wait_time, - max_wait_size, - create_by, - create_time, - update_by, - update_time, - remark, - - - #{id}, - #{name}, - #{systemName}, - #{host}, - #{port}, - #{username}, - #{password}, - #{type}, - #{databaseName}, - #{connectionParam}, - #{initNum}, - #{maxNum}, - #{maxWaitTime}, - #{maxWaitSize}, - #{createBy}, - #{createTime}, - #{updateBy}, - #{updateTime}, - #{remark}, - - - - - update data_source - - name = #{name}, - systemName = #{systemName}, - host = #{host}, - port = #{port}, - username = #{username}, - password = #{password}, - type = #{type}, - database_name = #{databaseName}, - connection_param = #{connectionParam}, - init_num = #{initNum}, - max_num = #{maxNum}, - max_wait_time = #{maxWaitTime}, - max_wait_size = #{maxWaitSize}, - create_by = #{createBy}, - create_time = #{createTime}, - update_by = #{updateBy}, - update_time = #{updateTime}, - remark = #{remark}, - - where id = #{id} - - - - delete from data_source where id = #{id} - - - - delete from data_source where id in - - #{id} - - - diff --git a/etl-modules/etl-gen/src/main/java/com/etl/gen/util/VelocityUtils.java b/etl-modules/etl-gen/src/main/java/com/etl/gen/util/VelocityUtils.java index f6d307c..0f72ed7 100644 --- a/etl-modules/etl-gen/src/main/java/com/etl/gen/util/VelocityUtils.java +++ b/etl-modules/etl-gen/src/main/java/com/etl/gen/util/VelocityUtils.java @@ -50,7 +50,7 @@ public class VelocityUtils { VelocityContext velocityContext = new VelocityContext(); velocityContext.put("tplCategory", genTable.getTplCategory()); velocityContext.put("tableName", genTable.getTableName()); - velocityContext.put("functionName", StringUtils.isNotEmpty(functionName) ? functionName : "【请填写功能名称】"); + velocityContext.put("functionName", StringUtils.isNotEmpty(functionName) ? functionName : "数据源"); velocityContext.put("ClassName", genTable.getClassName()); velocityContext.put("className", StringUtils.uncapitalize(genTable.getClassName())); velocityContext.put("moduleName", genTable.getModuleName());