diff --git a/muyu-modules/muyu-data-access/muyu-data-access-client/pom.xml b/muyu-modules/muyu-data-access/muyu-data-access-client/pom.xml new file mode 100644 index 0000000..7b4b6bf --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-client/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + com.muyu + muyu-data-access + 3.6.3 + + + muyu-data-access-client + + + 17 + 17 + UTF-8 + + + + + com.muyu + muyu-data-access-remote + 3.6.3 + + + diff --git a/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/java/com/muyu/data/access/client/config/DataAccessClientConfig.java b/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/java/com/muyu/data/access/client/config/DataAccessClientConfig.java new file mode 100644 index 0000000..4bc6dd1 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/java/com/muyu/data/access/client/config/DataAccessClientConfig.java @@ -0,0 +1,12 @@ +package com.muyu.data.access.client.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; + +@ComponentScan +@Import(value = {DataAccessClientRunner.class}) +public class DataAccessClientConfig { + + + +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/java/com/muyu/data/access/client/config/DataAccessClientRunner.java b/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/java/com/muyu/data/access/client/config/DataAccessClientRunner.java new file mode 100644 index 0000000..5bd6af0 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/java/com/muyu/data/access/client/config/DataAccessClientRunner.java @@ -0,0 +1,39 @@ +package com.muyu.data.access.client.config; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.etl.domain.DataSource; +import com.nuyu.data.access.remote.RemoteDataAccessService; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; + +import javax.sql.DataSource; +import java.sql.Connection; +import java.util.List; + +@Log4j2 +public class DataAccessClientRunner implements ApplicationRunner { + + @Autowired + private RemoteDataAccessService remoteDataAccessService; + @Override + public void run(ApplicationArguments args) throws Exception { + Result> result = remoteDataAccessService.list(new DataSource()); + List dataSourceList = result.getData().getRows(); + MyDataSource.info(dataSourceList); + String key=dataSourceList.get(0).getDataSourceName()+"_"+dataSourceList.get(0).getId(); + System.out.println("查看连接池:"); + MyDataSource.size(key); + Thread.sleep(500); + System.out.println("取出一个链接,查看连接池:"); + Connection con = MyDataSource.getCon(key); + MyDataSource.size(key); + Thread.sleep(500); + System.out.println("返回一个链接,查看连接池:"); + MyDataSource.addBack(con); + MyDataSource.size(key); + } + +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..578ea1f --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.muyu.etl.config.DataAccessClientConfig diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/pom.xml b/muyu-modules/muyu-data-access/muyu-data-access-common/pom.xml new file mode 100644 index 0000000..6ec9e13 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-common/pom.xml @@ -0,0 +1,100 @@ + + + 4.0.0 + + com.muyu + muyu-data-access + 3.6.3 + + + muyu-data-access-common + + + 17 + 17 + UTF-8 + + + + + + com.alibaba + druid + 1.2.6 + + + com.muyu + muyu-modules-system + 3.6.3 + + + + org.postgresql + postgresql + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + muyu-common-datasource + + + + + com.muyu + muyu-common-datascope + + + + + com.muyu + muyu-common-log + + + + + com.muyu + muyu-common-swagger + + + + diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/Main.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/Main.java new file mode 100644 index 0000000..95690d4 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/Main.java @@ -0,0 +1,7 @@ +package com.muyu; + +public class Main { + public static void main(String[] args) { + System.out.println("Hello world!"); + } +} \ No newline at end of file diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/datasource/MyDataSource.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/datasource/MyDataSource.java new file mode 100644 index 0000000..056a25c --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/datasource/MyDataSource.java @@ -0,0 +1,77 @@ +package com.muyu.etl.datasource; + +import com.alibaba.druid.pool.DruidDataSource; +import com.muyu.etl.domain.DataSource; +import lombok.extern.log4j.Log4j2; +import org.springframework.stereotype.Component; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.List; + +/** + * @ClassName MyDataSource + * @Description 描述 + * @Author Xin.Yao + * @Date 2024/5/9 19:36 + */ +@Component +@Log4j2 +public class MyDataSource { + private static HashMap pools = new HashMap<>(); + + public static void info(List dataSourceList){ + dataSourceList.stream().forEach(dataSource -> { + String jdbcUrl = "jdbc:"+dataSource.getType().toLowerCase()+"://"+dataSource.getLinkAddress()+":"+dataSource.getPort()+"/"+dataSource.getDatabaseName(); + // 创建德鲁伊数据源 + DruidDataSource druidSource = new DruidDataSource(); + + // 配置数据库连接信息 + druidSource.setUrl(jdbcUrl); + druidSource.setUsername(dataSource.getUsername()); + druidSource.setPassword(dataSource.getPassword()); + // 配置连接池大小 + druidSource.setInitialSize(Integer.valueOf(dataSource.getInitNum().toString())); + druidSource.setMinIdle(5); + druidSource.setMaxActive(Integer.valueOf(dataSource.getMaxNum().toString())); + try { + druidSource.init(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + pools.put(dataSource.getDataSourceName()+"_"+dataSource.getId(),druidSource); + }); + + } + + public static Connection getCon(String key){ + try { + //根据key获取连接池 + DruidDataSource druidDataSource = pools.get(key); + // 从连接池中获取第一个链接 + return druidDataSource.getConnection(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + // 4 提供非静态方法,用来归还链接 + public static void addBack(Connection connection){ + try { + connection.close(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + public static void size(String key){ + //根据key获取连接池 + DruidDataSource druidDataSource = pools.get(key); + //获取正在使用的连接数量 + int activeCount = druidDataSource.getActiveCount(); + //获取线程池中的连接数量 + int poolingCount = druidDataSource.getPoolingCount(); + log.info(key+" 连接池中正在使用连接: "+activeCount+"个 ,线程池中线程数量: "+poolingCount+"个"); + } +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/AssetAccredit.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/AssetAccredit.java new file mode 100644 index 0000000..f49828b --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/AssetAccredit.java @@ -0,0 +1,40 @@ +package com.muyu.etl.domain; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 【请填写功能名称】对象 asset_accredit + * + * @author ruoyi + * @date 2024-04-25 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class AssetAccredit extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 部门id */ + @Excel(name = "部门id") + private Long deptId; + + /** 数据表id */ + @Excel(name = "数据表id") + private Long dataAssetId; + + + /** 用户id */ + @Excel(name = "用户id") + private Long userId; + +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/AssetModel.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/AssetModel.java new file mode 100644 index 0000000..ab461cb --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/AssetModel.java @@ -0,0 +1,86 @@ +package com.muyu.etl.domain; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +/** + * 【请填写功能名称】对象 asset_model + * + * @author ruoyi + * @date 2024-04-22 + */ +@EqualsAndHashCode(callSuper = true) +@SuperBuilder +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AssetModel extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + private Long id; + + /** 数据资产ID */ + @Excel(name = "数据资产ID") + private Long dataAssetId; + + /** 字段名 */ + @Excel(name = "字段名") + private String name; + + /** 字段备注 */ + @Excel(name = "字段备注") + private String comment; + + /** 是否主键 */ + @Excel(name = "是否主键") + private String isPrimaryKey; + + /** 数据类型 */ + @Excel(name = "数据类型") + private String type; + + /** 映射数据类型 */ + @Excel(name = "映射数据类型") + private String mappingType; + + /** 长度 */ + @Excel(name = "长度") + private String length; + + /** 小数位 */ + @Excel(name = "小数位") + private String decimalPlaces; + + /** 是否不可为空 */ + @Excel(name = "是否不可为空") + private String isNull; + + /** 是否字典 */ + @Excel(name = "是否字典") + private String isDict; + + /** 默认值 */ + @Excel(name = "默认值") + private String defaultValue; + + /** 字典key */ + @Excel(name = "字典key") + private String dictKey; + /** 字典id */ + @Excel(name = "字典key") + private Long dictionaryId; + + /** 字典信息 */ + @Excel(name = "字典信息") + private List dictionaryDatas; + +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DataAsset.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DataAsset.java new file mode 100644 index 0000000..cb31ab0 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DataAsset.java @@ -0,0 +1,68 @@ +package com.muyu.etl.domain; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.common.security.utils.SecurityUtils; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Date; + +/** + * 【请填写功能名称】对象 data_asset + * + * @author ruoyi + * @date 2024-04-22 + */ +@SuperBuilder +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DataAsset extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + private Long id; + + /** 数据接入ID */ + @Excel(name = "数据接入ID") + private Long dataSourceId; + + /** 表名称 */ + @Excel(name = "表名称") + private String tableName; + + /** 表备注 */ + @Excel(name = "表备注") + private String tableComment; + + /** 数据量 */ + @Excel(name = "数据量") + private Long tableCount; + + /** 资产模型 */ + @Excel(name = "资产模型") + private Long fields; + + public DataAsset dataAssetBuilder(DataSource dataSource, ResultSet resultSet) { + try { + return DataAsset.builder() + .tableName(resultSet.getString("t_name")) + .tableComment(resultSet.getString("table_comment") == null ? "-":resultSet.getString("table_comment")) + .tableCount(Long.valueOf(resultSet.getString("table_rows"))) + .fields(Long.valueOf(resultSet.getString("fields"))) + .dataSourceId(dataSource.getId()) + .createBy(SecurityUtils.getUsername()) + .createTime(new Date()) + .build(); + } catch (SQLException e) { + throw new RuntimeException(e); + } + + } +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DataSource.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DataSource.java new file mode 100644 index 0000000..145eec5 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DataSource.java @@ -0,0 +1,83 @@ +package com.muyu.etl.domain; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 【请填写功能名称】对象 data_source + * + * @author ruoyi + * @date 2024-04-20 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class DataSource extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** $column.columnComment */ + private String dataSourceName; + + /** $column.columnComment */ + private String linkAddress; + + /** $column.columnComment */ + private String port; + private String sql; + + /** $column.columnComment */ + private String databaseName; + + /** $column.columnComment */ + private String username; + + /** $column.columnComment */ + private String password; + + private String tableName; + + /** 数据连接参数 */ + @Excel(name = "数据连接参数") + private String connectionParam; + + /** 初始连接数量 */ + @Excel(name = "初始连接数量") + private Long initNum; + + /** 最大连接数量 */ + @Excel(name = "最大连接数量") + private Long maxNum; + private Long count; + + /** 最大等待时间 */ + @Excel(name = "最大等待时间") + private Long maxWaitTime; + + /** 最大等待次数 */ + @Excel(name = "最大等待次数") + private Long maxWaitSize; + + /** $column.columnComment */ + private String type; + + /** 数据来源名称 */ + @Excel(name = "数据来源名称") + private String systemName; + /** 连接驱动名称 */ + @Excel(name = "连接驱动名称") + private String jdbcDriver; + + /** 模式名称 */ + @Excel(name = "数据来源名称") + private String modeName; + +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/Dictionary.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/Dictionary.java new file mode 100644 index 0000000..d95a137 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/Dictionary.java @@ -0,0 +1,45 @@ +package com.muyu.etl.domain; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +/** + * 【请填写功能名称】对象 dictionary + * + * @author ruoyi + * @date 2024-04-24 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class Dictionary extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 字典名称 */ + @Excel(name = "字典名称") + private String dictionaryName; + + /** 字典key */ + @Excel(name = "字典key") + private String dictionaryKey; + + /** 数据源ID */ + @Excel(name = "数据源ID") + private Long dataSourceId; + + /** 字典数据集合 */ + @Excel(name = "数据源ID") + private List dictionaryDataList; + +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DictionaryData.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DictionaryData.java new file mode 100644 index 0000000..01277d0 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/DictionaryData.java @@ -0,0 +1,43 @@ +package com.muyu.etl.domain; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 【请填写功能名称】对象 dictionary_data + * + * @author ruoyi + * @date 2024-04-24 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class DictionaryData extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 字典表ID */ + @Excel(name = "字典表ID") + private Long dictionaryId; + + /** 字典标签 */ + @Excel(name = "字典标签") + private String label; + + /** 字典值 */ + @Excel(name = "字典值") + private String val; + + /** 是否修改 */ + @Excel(name = "字典值") + private Boolean isEdit=false; + +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/SourceAccredit.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/SourceAccredit.java new file mode 100644 index 0000000..35d929a --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/SourceAccredit.java @@ -0,0 +1,39 @@ +package com.muyu.etl.domain; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 【请填写功能名称】对象 source_accredit + * + * @author ruoyi + * @date 2024-04-25 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class SourceAccredit extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 部门id */ + @Excel(name = "部门id") + private Long deptId; + + /** 数据源id */ + @Excel(name = "数据源id") + private Long dataSourceId; + + + /** 用户id */ + @Excel(name = "用户id") + private Long userId; +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/AssetsModule.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/AssetsModule.java new file mode 100644 index 0000000..a7230b5 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/AssetsModule.java @@ -0,0 +1,35 @@ +package com.muyu.etl.domain.custom; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @ClassName AssetsModule + * @Description 描述 + * @Author Xin.Yao + * @Date 2024/4/21 9:54 + */ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class AssetsModule { + private HashMap structure; + private List> kvtList; + + private List tableAssets; + private TableDetail tableDetail; + + public AssetsModule assetsModuleBuilder(List> kvtList, HashMap map) { + return AssetsModule.builder() + .kvtList(kvtList) + .structure(map) + .build(); + } +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/Statistics.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/Statistics.java new file mode 100644 index 0000000..4357a08 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/Statistics.java @@ -0,0 +1,20 @@ +package com.muyu.etl.domain.custom; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName Statistics + * @Description 描述 + * @Author Xin.Yao + * @Date 2024/4/23 20:43 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Statistics { + private Long dataAsset; + private Long assetModel; + private Long dataModel; +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/TableAssets.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/TableAssets.java new file mode 100644 index 0000000..78440f4 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/TableAssets.java @@ -0,0 +1,61 @@ +package com.muyu.etl.domain.custom; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName TableAssets + * @Description 描述 + * @Author Xin.Yao + * @Date 2024/4/21 11:20 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class TableAssets { + /** + * 字段名 + */ + private String name; + /** + * 字段注释 + */ + private String comment; + /** + * 是否主键 + */ + private String isPrimaryKey; + /** + * 类型 + */ + private String type; + /** + * 映射类型 + */ + private String mappingType; + /** + * 长度 + */ + private String length; + /** + * 小数位 + */ + private String decimalPlaces; + /** + * 是否可为空 + */ + private String isNull; + /** + * 默认值 + */ + private String defaultValue; + /** + * 是否字典 + */ + private String isDict; + /** + * 字典key + */ + private String dictKey; +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/TableDetail.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/TableDetail.java new file mode 100644 index 0000000..6e35580 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/TableDetail.java @@ -0,0 +1,24 @@ +package com.muyu.etl.domain.custom; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @ClassName TableDetail + * @Description 描述 + * @Author Xin.Yao + * @Date 2024/4/21 18:27 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class TableDetail { + private String tableName; + private String tableComment; + private Long tableCount; + private List tableAssets; + +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/VTClass.java b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/VTClass.java new file mode 100644 index 0000000..da99adb --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-common/src/main/java/com/muyu/etl/domain/custom/VTClass.java @@ -0,0 +1,19 @@ +package com.muyu.etl.domain.custom; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassName TestClass + * @Description 描述 + * @Author Xin.Yao + * @Date 2024/4/19 20:31 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class VTClass { + private String value; + private String type; +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-remote/pom.xml b/muyu-modules/muyu-data-access/muyu-data-access-remote/pom.xml new file mode 100644 index 0000000..6c1eefa --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-remote/pom.xml @@ -0,0 +1,101 @@ + + + 4.0.0 + + com.muyu + muyu-data-access + 3.6.3 + + + muyu-data-access-remote + + + 17 + 17 + UTF-8 + + + + + com.muyu + muyu-data-access-common + 3.6.3 + + + + com.muyu + muyu-common-core + + + + + org.postgresql + postgresql + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + muyu-common-datasource + + + + + com.muyu + muyu-common-datascope + + + + + com.muyu + muyu-common-log + + + + + com.muyu + muyu-common-swagger + + + + + diff --git a/muyu-modules/muyu-data-access/muyu-data-access-remote/src/main/java/com/nuyu/data/access/remote/RemoteDataAccessService.java b/muyu-modules/muyu-data-access/muyu-data-access-remote/src/main/java/com/nuyu/data/access/remote/RemoteDataAccessService.java new file mode 100644 index 0000000..ff33187 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-remote/src/main/java/com/nuyu/data/access/remote/RemoteDataAccessService.java @@ -0,0 +1,17 @@ +package com.nuyu.data.access.remote; + +import com.muyu.common.core.constant.ServiceNameConstants; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.etl.domain.DataSource; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient(contextId = "remoteDataAccessService", + value = ServiceNameConstants.DATA_ACCESS_SERVICE, + fallbackFactory = DataAccessFallbackFactory.class) +public interface RemoteDataAccessService { + @PostMapping("/source/list") + public Result> list(@RequestBody DataSource dataSource); +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-remote/src/main/java/com/nuyu/data/access/remote/factory/DataManageFactory.java b/muyu-modules/muyu-data-access/muyu-data-access-remote/src/main/java/com/nuyu/data/access/remote/factory/DataManageFactory.java new file mode 100644 index 0000000..eb1bc56 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-remote/src/main/java/com/nuyu/data/access/remote/factory/DataManageFactory.java @@ -0,0 +1,4 @@ +package com.nuyu.data.access.remote.factory; + +public class DataManageFactory { +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/muyu-modules/muyu-data-access/muyu-data-access-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..8ca7b38 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.muyu.etl.factory.DataAccessFallbackFactory diff --git a/muyu-modules/muyu-data-access/muyu-data-access-server/src/main/java/com/muyu/etl/domain/model/AccreditModel.java b/muyu-modules/muyu-data-access/muyu-data-access-server/src/main/java/com/muyu/etl/domain/model/AccreditModel.java new file mode 100644 index 0000000..86fd426 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-server/src/main/java/com/muyu/etl/domain/model/AccreditModel.java @@ -0,0 +1,26 @@ +package com.muyu.etl.domain.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class AccreditModel { + + /** + * 用于存储与用户认证相关的模型ID + */ + private List userAccreditModelIds; + + /** + * 用于存储与部门认证相关的模型ID + */ + private List deptAccreditModelIds; + +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-server/src/main/java/com/muyu/etl/domain/req/AssetAccreditReq.java b/muyu-modules/muyu-data-access/muyu-data-access-server/src/main/java/com/muyu/etl/domain/req/AssetAccreditReq.java new file mode 100644 index 0000000..9f97ed7 --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-server/src/main/java/com/muyu/etl/domain/req/AssetAccreditReq.java @@ -0,0 +1,31 @@ +package com.muyu.etl.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +public class AssetAccreditReq { + + /** + * 存储部门ID的列表。 + */ + private List deptIds; + + /** + * 用户ID。 + */ + private Long userId; + + /** + * 数据资产ID。 + */ + private Long dataAssetId; + +} diff --git a/muyu-modules/muyu-data-access/muyu-data-access-server/src/main/java/com/muyu/etl/domain/req/SourceAccreditReq.java b/muyu-modules/muyu-data-access/muyu-data-access-server/src/main/java/com/muyu/etl/domain/req/SourceAccreditReq.java new file mode 100644 index 0000000..34e88aa --- /dev/null +++ b/muyu-modules/muyu-data-access/muyu-data-access-server/src/main/java/com/muyu/etl/domain/req/SourceAccreditReq.java @@ -0,0 +1,32 @@ +package com.muyu.etl.domain.req; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class SourceAccreditReq { + + /** + * 存储需要授权的部门ID列表。 + */ + private List deptIds; + + /** + * 请求授权的用户ID。 + */ + private Long userId; + + /** + * 源数据ID,标识了要授权的数据源。 + */ + private Long dataSourceId; + +} + diff --git a/muyu-modules/muyu-data-access/pom.xml b/muyu-modules/muyu-data-access/pom.xml new file mode 100644 index 0000000..d8db850 --- /dev/null +++ b/muyu-modules/muyu-data-access/pom.xml @@ -0,0 +1,22 @@ + + + 4.0.0 + + com.muyu + muyu-modules + 3.6.3 + + + muyu-data-access + pom + + muyu-data-access-server + muyu-data-access-client + muyu-data-access-remote + muyu-data-access-common + + + + diff --git a/muyu-modules/muyu-data-unit/pom.xml b/muyu-modules/muyu-data-unit/pom.xml new file mode 100644 index 0000000..46966bf --- /dev/null +++ b/muyu-modules/muyu-data-unit/pom.xml @@ -0,0 +1,100 @@ + + + 4.0.0 + + com.muyu + muyu-data-access + 3.6.3 + + + muyu-data-access-server + + + 17 + 17 + UTF-8 + + + + + com.muyu + muyu-data-access-common + 3.6.3 + + + + com.muyu + muyu-modules-system + 3.6.3 + + + + org.postgresql + postgresql + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + muyu-common-datasource + + + + + com.muyu + muyu-common-datascope + + + + + com.muyu + muyu-common-log + + + + + com.muyu + muyu-common-swagger + + + + diff --git a/muyu-modules/muyu-data-unit/src/main/java/com/muyu/data/unit/DataUnitApplication.java b/muyu-modules/muyu-data-unit/src/main/java/com/muyu/data/unit/DataUnitApplication.java new file mode 100644 index 0000000..8f54714 --- /dev/null +++ b/muyu-modules/muyu-data-unit/src/main/java/com/muyu/data/unit/DataUnitApplication.java @@ -0,0 +1,19 @@ +package com.muyu.data.unit; + +import com.muyu.common.security.annotation.EnableCustomConfig; +import com.muyu.common.security.annotation.EnableMyFeignClients; +import com.muyu.common.swagger.annotation.EnableCustomSwagger2; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; + +@EnableCustomConfig +@EnableCustomSwagger2 +@EnableMyFeignClients +@SpringBootApplication(exclude = DataSourceAutoConfiguration.class) +public class DataUnitApplication { + public static void main(String[] args) { + SpringApplication.run(DataUnitApplication.class, args); + } + +} diff --git a/muyu-modules/muyu-data-unit/src/main/resources/bootstrap.yml b/muyu-modules/muyu-data-unit/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..dac7272 --- /dev/null +++ b/muyu-modules/muyu-data-unit/src/main/resources/bootstrap.yml @@ -0,0 +1,33 @@ +# Tomcat +server: + port: 9212 + +# Spring +spring: + redis: + host: 101.34.248.9 + port: 6379 + password: jp@123 + application: + # 应用名称 + name: muyu-data-unit + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 101.34.248.9:8848 + config: + # 配置中心地址 + server-addr: 101.34.248.9:8848 + namespace: b9d88e07-8713-4ccd-8e98-d7c19f40fe74 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +logging: + level: + com.muyu.rule.engine.mapper: DEBUG diff --git a/muyu-modules/muyu-data-unit/src/main/resources/logback.xml b/muyu-modules/muyu-data-unit/src/main/resources/logback.xml new file mode 100644 index 0000000..ccca0e5 --- /dev/null +++ b/muyu-modules/muyu-data-unit/src/main/resources/logback.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-client/pom.xml b/muyu-modules/muyu-rule-engine/muyu-rule-engine-client/pom.xml new file mode 100644 index 0000000..19ea052 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-client/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + com.muyu + muyu-rule-engine + 3.6.3 + + + muyu-rule-engine-client + + + 17 + 17 + UTF-8 + + + + + com.muyu + muyu-rule-engine-remote + 3.6.3 + + + diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-client/src/main/java/com/muyu/rule/engine/client/config/RuleEngineClientRunner.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-client/src/main/java/com/muyu/rule/engine/client/config/RuleEngineClientRunner.java new file mode 100644 index 0000000..a5e83fd --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-client/src/main/java/com/muyu/rule/engine/client/config/RuleEngineClientRunner.java @@ -0,0 +1,26 @@ +package com.muyu.rule.engine.client.config; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.rule.engine.RemoteRuleEngineService; +import com.muyu.rule.engine.domain.EngineMaintenance; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +@Log4j2 +public class RuleEngineClientRunner implements ApplicationRunner { + @Autowired + private RemoteRuleEngineService remoteRuleEngineService; + @Override + public void run(ApplicationArguments args) throws Exception { + Result> result = remoteRuleEngineService.list(new EngineMaintenance()); + List engineMaintenanceList = result.getData().getRows(); + log.info(engineMaintenanceList); + } +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-client/src/main/java/com/muyu/rule/engine/client/config/RuleEngineClineConfig.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-client/src/main/java/com/muyu/rule/engine/client/config/RuleEngineClineConfig.java new file mode 100644 index 0000000..7b64810 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-client/src/main/java/com/muyu/rule/engine/client/config/RuleEngineClineConfig.java @@ -0,0 +1,9 @@ +package com.muyu.rule.engine.client.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Import; + +@ComponentScan +@Import({RuleEngineClientRunner.class}) +public class RuleEngineClineConfig { +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/muyu-modules/muyu-rule-engine/muyu-rule-engine-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..bfd835d --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.muyu.rule.engine.client.config.RuleEngineClineConfig diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/pom.xml b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/pom.xml new file mode 100644 index 0000000..a674f25 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.muyu + muyu-rule-engine + 3.6.3 + + + muyu-rule-engine-common + + + 17 + 17 + UTF-8 + + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + muyu-common-datasource + + + + + com.muyu + muyu-common-datascope + + + + + com.muyu + muyu-common-log + + + + + com.muyu + muyu-common-swagger + + + + + diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/constant/GenerateConstant.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/constant/GenerateConstant.java new file mode 100644 index 0000000..0687843 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/constant/GenerateConstant.java @@ -0,0 +1,28 @@ +package com.muyu.rule.engine.constant; + +/** + * @ClassName GenerateConstant + * @Description 描述 + * @Author Xin.Yao + * @Date 2024/5/7 19:45 + */ +public class GenerateConstant { + public static final String ACTION_IMPORT = "import com.muyu.rule.engine.action.ActionDiscard;"; + public static final String SCOPE_IMPORT = "import com.muyu.rule.engine.scope."; + public static final String PACKAGE_PATH = "package com.muyu.rule.rule.engine."; + public static final String str = "package com.muyu.rule.rule.engine.custom;\n" + + "import com.muyu.rule.engine.action.ActionDiscard;\n" + + "import com.muyu.rule.engine.scope.DataSetEngine;\n" + + "\n" + + "/**\n" + + " * @Author: YaoXin\n" + + " * @date: 2024/05/06\n" + + " * @Description: 测试-test\n" + + " * @Version: 1.0\n" + + " */\n" + + "public class engine_custom_testThree_test extends DataSetEngine {\n" + + " @Override\n" + + " public void execution () {\n" + + " }\n" + + "}"; +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/constant/PathConstant.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/constant/PathConstant.java new file mode 100644 index 0000000..c58dba2 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/constant/PathConstant.java @@ -0,0 +1,9 @@ +package com.muyu.rule.engine.constant; + +public class PathConstant { + public static final String JAVA_PATH = "D:\\work\\ruoyi-cloud-server\\muyu-modules\\muyu-rule-engine\\src\\main\\java\\com\\muyu\\rule\\engine\\custom\\"; + public static final String CLASS_PATH = "D:\\work\\ruoyi-cloud-server\\muyu-modules\\muyu-rule-engine\\target\\classes\\"; + public static final String PACKAGE_PATH_SERVICE = "com.muyu.rule.engine.custom"; + + +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/Engine.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/Engine.java new file mode 100644 index 0000000..4451999 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/Engine.java @@ -0,0 +1,59 @@ +package com.muyu.rule.engine.domain; + +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Engine extends BaseEntity { + /** + * 规则主键 + */ + private Long id; + /** + * 规则名称 + */ + private String name; + /** + * 规则类型 + */ + private String type; + /** + * 引擎编码 + */ + + private String code; + /** + * 级别 + */ + private String level; + /** + *引擎规范 + */ + private String engineCode; + + /** + * 是否激活 + */ + private String isActivate; + /** + * 规则状态 + */ + private String status; + /** + * 编辑文本 + */ + private String codeText; + /** + * 描述 + */ + private String description; + + private List versionList; + +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/EngineVersion.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/EngineVersion.java new file mode 100644 index 0000000..3f0071b --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/EngineVersion.java @@ -0,0 +1,22 @@ +package com.muyu.rule.engine.domain; + +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class EngineVersion extends BaseEntity { + private Long id; + private Long ruleEngineId; + private String name; + private String code; + private Integer status; + private String codeIng; + private String versionCode; + private Integer isActivate; + private String isTest; + private String description; +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/RuleBbbClass.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/RuleBbbClass.java new file mode 100644 index 0000000..2cbbc9f --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/RuleBbbClass.java @@ -0,0 +1 @@ +package com.muyu.rule.engine.domain; diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/RuleHhhClass.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/RuleHhhClass.java new file mode 100644 index 0000000..0345ace --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/RuleHhhClass.java @@ -0,0 +1,8 @@ +package com.muyu.rule.engine.domain; + + +public class RuleHhhClass { + public void test() { + System.out.println("亮哥好!!!"); + } +} \ No newline at end of file diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/RuleLalalaClass.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/RuleLalalaClass.java new file mode 100644 index 0000000..9f5aae3 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/RuleLalalaClass.java @@ -0,0 +1,8 @@ +package com.muyu.rule.engine.domain; + + +public class RuleLalalaClass { + public void test() { + System.out.println("亮哥好!!!五一快乐"); + } +} \ No newline at end of file diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/RuleMmClass.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/RuleMmClass.java new file mode 100644 index 0000000..ba5de02 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/RuleMmClass.java @@ -0,0 +1,8 @@ +package com.muyu.rule.engine.domain; + + +public class RuleMmClass { + public void test() { + System.out.println("4444788788878744"); + } +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/RuleMnmClass.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/RuleMnmClass.java new file mode 100644 index 0000000..8c99aeb --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/rule/engine/domain/RuleMnmClass.java @@ -0,0 +1,8 @@ +package com.muyu.rule.engine.domain; + + +public class RuleMnmClass { + public void test() { + System.out.println("444444"); + } +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-remote/pom.xml b/muyu-modules/muyu-rule-engine/muyu-rule-engine-remote/pom.xml new file mode 100644 index 0000000..d7e89e5 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-remote/pom.xml @@ -0,0 +1,32 @@ + + + 4.0.0 + + com.muyu + muyu-rule-engine + 3.6.3 + + + muyu-rule-engine-remote + + + 17 + 17 + UTF-8 + + + + + com.muyu + muyu-common-core + + + + com.muyu + muyu-rule-engine-common + 3.6.3 + + + diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-remote/src/main/java/com/muyu/rule/engine/RemoteRuleEngineService.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-remote/src/main/java/com/muyu/rule/engine/RemoteRuleEngineService.java new file mode 100644 index 0000000..faae4fe --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-remote/src/main/java/com/muyu/rule/engine/RemoteRuleEngineService.java @@ -0,0 +1,18 @@ +package com.muyu.rule.engine; + +import com.muyu.common.core.constant.ServiceNameConstants; +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.rule.engine.domain.Engine; +import com.muyu.rule.engine.factory.RemoteRuleEngineFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient(contextId = "remoteRuleEngineService", + value = ServiceNameConstants.RULE_ENGINE_SERVICE, + fallbackFactory = RemoteRuleEngineFallbackFactory.class) +public interface RemoteRuleEngineService { + @PostMapping("/maintenance/list") + public Result> list(@RequestBody Engine engine); +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-remote/src/main/java/com/muyu/rule/engine/factory/RemoteRuleEngineFallbackFactory.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-remote/src/main/java/com/muyu/rule/engine/factory/RemoteRuleEngineFallbackFactory.java new file mode 100644 index 0000000..6d65eb6 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-remote/src/main/java/com/muyu/rule/engine/factory/RemoteRuleEngineFallbackFactory.java @@ -0,0 +1,24 @@ +package com.muyu.rule.engine.factory; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.rule.engine.RemoteRuleEngineService; +import com.muyu.rule.engine.domain.EngineMaintenance; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +@Component +public class RemoteRuleEngineFallbackFactory implements FallbackFactory { + private static final Logger log = LoggerFactory.getLogger(RemoteRuleEngineFallbackFactory.class); + @Override + public RemoteRuleEngineService create(Throwable cause) { + return new RemoteRuleEngineService() { + @Override + public Result> list(EngineMaintenance engineMaintenance) { + return Result.error("规则引擎列表获取失败"); + } + }; + } +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/muyu-modules/muyu-rule-engine/muyu-rule-engine-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..a6728a7 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.muyu.rule.engine.factory.RemoteRuleEngineFallbackFactory diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/pom.xml b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/pom.xml new file mode 100644 index 0000000..8205f05 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/pom.xml @@ -0,0 +1,85 @@ + + + 4.0.0 + + com.muyu + muyu-rule-engine + 3.6.3 + + + muyu-rule-engine-server + + + 17 + 17 + UTF-8 + + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + com.mysql + mysql-connector-j + + + + + com.muyu + muyu-common-datasource + + + + + com.muyu + muyu-common-datascope + + + + + com.muyu + muyu-common-log + + + + + com.muyu + muyu-common-swagger + + + + + diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/controller/EngineController.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/controller/EngineController.java new file mode 100644 index 0000000..13c2b39 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/controller/EngineController.java @@ -0,0 +1,124 @@ +package com.muyu.engine.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.poi.ExcelUtil; +import com.muyu.common.core.web.controller.BaseController; +import com.muyu.common.core.web.page.TableDataInfo; +import com.muyu.engine.domain.Engine; +import com.muyu.engine.service.EngineService; +import org.apache.catalina.Engine; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 【请填写功能名称】Controller + * + * @author ruoyi + * @date 2024-05-02 + */ +@RestController +@RequestMapping("/maintenance") +public class EngineController extends BaseController { + + @Autowired + private EngineService engineService; + + /** + * 查询【请填写功能名称】列表 + */ + @GetMapping("/list") + public Result> list(Engine engine) + { + startPage(); + List list = engineService.selectEngineList(engine); + return getDataTable(list); + } + + /** + * 导出【请填写功能名称】列表 + */ + @PostMapping("/export") + public void export(HttpServletResponse response, Engine engine) + { + List list = engineService.selectEngineList(engine); + ExcelUtil util = new ExcelUtil(Engine.class); + util.exportExcel(response, list, "【请填写功能名称】数据"); + } + + /** + * 获取【请填写功能名称】详细信息 + */ + @GetMapping(value = "/{id}") + public Result getInfo(@PathVariable("id") Long id) + { + return success(engineService.selectEngineById(id)); + } + + /** + * 测试方法 + * @param code + * @return + */ + @GetMapping(value = "/TestMethod") + public Result testMethod(@RequestParam("code") String code) + { + return EngineService.testMethod(code); + } + + /** + * 新增【请填写功能名称】 + */ + @PostMapping + public Result add(@RequestBody Engine Engine) + { + return toAjax(EngineService.insertEngine(Engine)); + } + + /** + * 初始化规则引擎类 + */ + @PostMapping("/InitializeRuleEngine") + public Result initializeRuleEngine(@RequestBody Engine Engine) + { + return EngineService.initializeRuleEngine(Engine); + } + + /** + * 修改【请填写功能名称】 + */ + @PutMapping + public Result edit(@RequestBody Engine Engine) + { + return toAjax(EngineService.updateEngine(Engine)); + } + + /** + * 删除【请填写功能名称】 + */ + @DeleteMapping("/{ids}") + public Result remove(@PathVariable Long[] ids) + { + return toAjax(EngineService.deleteEngineByIds(ids)); + } + + /** + * 修改引擎是否激活 + */ + @PostMapping("/updIsActivate") + public Result updIsActivate(@RequestParam("id") Long id,@RequestParam("isActivate") String isActivate) { + EngineService.updIsActivate(id,isActivate); + return Result.success(); + } + /** + * 修改引擎状态 + */ + @PostMapping("updStatus") + public Result updStatus(@RequestParam("id") Long id,@RequestParam("status") String status) { + EngineService.updStatus(id,status); + return Result.success(); + } + +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/domain/RuleLalalaClass.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/domain/RuleLalalaClass.java new file mode 100644 index 0000000..9f5aae3 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/domain/RuleLalalaClass.java @@ -0,0 +1,8 @@ +package com.muyu.rule.engine.domain; + + +public class RuleLalalaClass { + public void test() { + System.out.println("亮哥好!!!五一快乐"); + } +} \ No newline at end of file diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/mapper/EngineMapper.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/mapper/EngineMapper.java new file mode 100644 index 0000000..1c0b12d --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/mapper/EngineMapper.java @@ -0,0 +1,28 @@ +package com.muyu.engine.mapper; + +import com.muyu.engine.domain.Engine; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface EngineMapper { + + List selectEngineList(Engine engine); + + Engine selectEngineById(Long id); + + int updateEngine(Engine engine); + + int deleteEngineByIds(Long[] ids); + + int deleteEngineById(Long id); + + int insertEngine(Engine engine); + + void updIsActivate(@Param("id") Long id, @Param("isActivate") String isActivate); + + void updStatus(@Param("id") Long id, @Param("status") String status); + +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/service/EngineService.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/service/EngineService.java new file mode 100644 index 0000000..46bbef8 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/service/EngineService.java @@ -0,0 +1,31 @@ +package com.muyu.engine.service; + +import com.muyu.common.core.domain.Result; +import org.apache.catalina.Engine; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public interface EngineService { + + List selectEngineList(Engine engine); + + Engine selectEngineById(Long id); + + Result testMethod(String code); + + int insertEngine(Engine engine); + + Result initializeRuleEngine(Engine engine); + + + int updateEngine(Engine engine); + + int deleteEngineByIds(Long[] ids); + int deleteEngineById(Long id); + + void updIsActivate(Long id,String isActivate); + + void updStatus(Long id, String status); +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/service/impl/EngineServiceImpl.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/service/impl/EngineServiceImpl.java new file mode 100644 index 0000000..f10a229 --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/service/impl/EngineServiceImpl.java @@ -0,0 +1,205 @@ +package com.muyu.engine.service.impl; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.core.utils.DateUtils; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.engine.ClassLoading.CustomClassLoader; +import com.muyu.engine.domain.Engine; +import com.muyu.engine.domain.EngineVersion; +import com.muyu.engine.mapper.EngineMapper; +import com.muyu.engine.service.EngineService; +import com.muyu.engine.service.EngineVersionService; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.tools.JavaCompiler; +import javax.tools.StandardJavaFileManager; +import javax.tools.ToolProvider; +import java.io.File; +import java.io.FileWriter; +import java.lang.reflect.Method; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +@Service +@Log4j2 +public class EngineServiceImpl implements EngineService { + + @Autowired + private EngineMapper engineMapper; + + @Autowired + private EngineVersionService engineVersionService; + @Override + public List selectEngineList(Engine engine) { + List engines = engineMapper.selectEngineList(engine); + return engines; + } + + @Override + public Engine selectEngineById(Long id) { + List versionList = engineVersionService.byId(id); + Engine engine = engineMapper.selectEngineById(id); + engine.setVersionList(versionList); + + return engine; + } + /** + * 插入一个新的引擎信息到数据库。 + * @param engine 引擎对象,包含引擎的相关信息。 + * @return 返回插入操作影响的行数。 + */ + @Override + public int insertEngine(Engine engine) { + // 生成引擎类的名称,规则是首字母大写,后面跟引擎代码,再加"class"后缀 + String className= "Rule"+Character.toUpperCase(engine.getCode().charAt(0))+engine.getCode().substring(1)+"Class"; + + // 设置创建者为当前登录用户的用户名 + engine.setCreateBy(SecurityUtils.getUsername()); + // 设置创建时间为当前时间 + engine.setCreateTime(DateUtils.getNowDate()); + + // 设置引擎的代码文本,生成一个空的Java类 + engine.setCodeText("package com.muyu.engine.domain;\n\n\n"+ + "public class " +className+"{\n"+ + "}"); + // 调用mapper层执行插入操作,并返回影响的行数 + return engineMapper.insertEngine(engine); + } + + + /** + * 测试方法,通过传入的代码字符串动态加载类并执行其中的方法。 + * @param code 代表要加载的规则类的代码标识,将用于构造类名。 + * @return 返回执行结果,成功则返回"测试成功",失败则返回错误信息。 + */ + @Override + public Result testMethod(String code) { + String className = "com.muyu.rule.engine.domain.Rule"+Character.toUpperCase(code.charAt(0)) + code.substring(1)+"Class"; + String classPath = "D:\\work\\2108A\\sxh\\muyu-modules\\muyu-rule-engine\\muyu-rule-engine-server\\target\\classes\\"+className.replace(".", "\\")+".class"; + try { + // 读取类文件 + byte[] classData = Files.readAllBytes(Paths.get(classPath)); + CustomClassLoader customClassLoader = new CustomClassLoader(); + Class aClass = customClassLoader.defineClassFromBytes(className,classData); + // 实例化类 + Object obj = aClass.newInstance(); + //获取类中所有方法 + Method[] methods = aClass.getDeclaredMethods(); + for (Method method : methods) { + method.invoke(obj); + } + customClassLoader = null; + } catch (Exception e) { + log.error(e.getMessage()); + Result.error("测试失败"); + } + + return Result.success("测试成功"); + } + + /** + * 初始化规则引擎。 + * 根据给定的引擎代码动态生成Java类,并编译该类。 + * + * @param engine 引擎对象,包含引擎的代码文本。 + * @return 返回初始化结果,成功则返回带有成功信息的Result对象,失败则返回带有失败信息的Result对象。 + */ + @Override + public Result initializeRuleEngine(Engine engine) { + try{ + // 根据引擎代码生成类名 + String className= "Rule"+Character.toUpperCase(engine.getCode().charAt(0))+engine.getCode().substring(1)+"Class"; + // 设置类文件路径 + String classPath = "D:\\work\\2108A\\sxh\\muyu-modules\\muyu-rule-engine\\muyu-rule-engine-server\\target\\classes\\"; + // 设置Java源文件路径 + String javaPath = "D:\\work\\2108A\\sxh\\muyu-modules\\muyu-rule-engine\\muyu-rule-engine-server\\src\\main\\java\\com\\muyu\\engine\\domain\\"; + // 拼接文件完整路径名 + String fileName=javaPath+className+".java"; + // 创建或获取文件及其父目录 + File file = new File(fileName); + File filePath = file.getParentFile(); + if (!filePath.exists()){ + filePath.mkdir(); + } + // 如果文件已存在,则删除 + if (file.exists()){ + file.delete(); + } + // 创建新文件 + file.createNewFile(); + // 写入引擎代码文本到文件 + FileWriter fileWriter = new FileWriter(file); + fileWriter.write(engine.getCodeText()); + fileWriter.flush(); + fileWriter.close(); + + // 使用系统Java编译器编译Java文件 + JavaCompiler systemJavaCompiler = ToolProvider.getSystemJavaCompiler(); + // 获取标准的Java文件管理器 + StandardJavaFileManager fileManager = systemJavaCompiler.getStandardFileManager(null, null, null); + // 将文件名转换为Java文件对象的可迭代集合 + Iterable javaFileObjects = fileManager.getJavaFileObjects(fileName); + // 设置编译选项,指定输出路径 + List list = Arrays.asList("-d", classPath); + // 创建编译任务 + JavaCompiler.CompilationTask task = systemJavaCompiler.getTask(null, fileManager, null, list, null, javaFileObjects); + // 执行编译任务并返回结果 + Boolean call = task.call(); + // 关闭文件管理器 + fileManager.close(); + + // 根据编译结果返回初始化结果 + if (call){ + return Result.success("初始化成功"); + } + }catch (Exception e){ + log.error("初始化失败"); + Result.error("初始化失败"); + } + + return Result.success("初始化失败"); + } + + @Override + public int updateEngine(Engine engine) { + engine.setUpdateBy(SecurityUtils.getUsername()); + engine.setUpdateTime(new Date()); + return engineMapper.updateEngine(engine); + + } + + @Override + public int deleteEngineByIds(Long[] ids) { + return engineMapper.deleteEngineByIds(ids); + } + + @Override + public int deleteEngineById(Long id) { + return engineMapper.deleteEngineById(id); + } + + @Override + public void updIsActivate(Long id,String isActivate) { + if (isActivate.equals("1")){ + engineMapper.updIsActivate(id,"2"); + }else if (isActivate.equals("2")){ + engineMapper.updIsActivate(id,"1"); + } + + } + + @Override + public void updStatus(Long id, String status) { + if (status.equals("0")){ + engineMapper.updStatus(id,"1"); + }else if (status.equals("1")){ + engineMapper.updStatus(id,"0"); + } + } + +} diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/service/impl/EngineVersionServiceImpl.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/service/impl/EngineVersionServiceImpl.java new file mode 100644 index 0000000..551199e --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/service/impl/EngineVersionServiceImpl.java @@ -0,0 +1,109 @@ +package com.muyu.engine.service.impl; + +import java.util.List; +import com.muyu.common.core.utils.DateUtils; +import com.muyu.common.security.utils.SecurityUtils; +import com.muyu.engine.domain.EngineVersion; +import com.muyu.engine.mapper.EngineVersionMapper; +import com.muyu.engine.service.EngineVersionService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + +/** + * 【请填写功能名称】Service业务层处理 + * + * @author ruoyi + * @date 2024-05-06 + */ +@Service +public class EngineVersionServiceImpl implements EngineVersionService { + + @Autowired + private EngineVersionMapper engineVersionMapper; + + + /** + * 查询【请填写功能名称】 + * + * @param id 【请填写功能名称】主键 + * @return 【请填写功能名称】 + */ + @Override + public EngineVersion selectEngineVersionById(Long id) + { + return engineVersionMapper.selectEngineVersionById(id); + } + + /** + * 查询【请填写功能名称】列表 + * + * @param engineVersion 【请填写功能名称】 + * @return 【请填写功能名称】 + */ + @Override + public List selectEngineVersionList(EngineVersion engineVersion) + { + return engineVersionMapper.selectEngineVersionList(engineVersion); + } + + /** + * 新增【请填写功能名称】 + * + * @param engineVersion 【请填写功能名称】 + * @return 结果 + */ + @Override + public int insertEngineVersion(EngineVersion engineVersion) + { + engineVersion.setCreateTime(DateUtils.getNowDate()); + engineVersion.setCreateBy(SecurityUtils.getUsername()); + engineVersion.setIsTest("1"); + return engineVersionMapper.insertEngineVersion(engineVersion); + } + + /** + * 修改【请填写功能名称】 + * + * @param engineVersion 【请填写功能名称】 + * @return 结果 + */ + @Override + public int updateEngineVersion(EngineVersion engineVersion) + { + engineVersion.setUpdateTime(DateUtils.getNowDate()); + return engineVersionMapper.updateEngineVersion(engineVersion); + } + + /** + * 批量删除【请填写功能名称】 + * + * @param ids 需要删除的【请填写功能名称】主键 + * @return 结果 + */ + @Override + public int deleteEngineVersionByIds(Long[] ids) + { + + return engineVersionMapper.deleteEngineVersionByIds(ids); + } + + /** + * 删除【请填写功能名称】信息 + * + * @param id 【请填写功能名称】主键 + * @return 结果 + */ + @Override + public int deleteEngineVersionById(Long id) + { + return engineVersionMapper.deleteEngineVersionById(id); + } + + @Override + public List byId(Long id) { + List engineVersion = engineVersionMapper.byId(id); + return engineVersion; + } + +}