From 0bd1c39f4112ac1a6f29b6aaa61b6c79b97fea04 Mon Sep 17 00:00:00 2001 From: icanci Date: Sun, 30 Oct 2022 08:47:25 +0800 Subject: [PATCH] feat:icanci:common vo and id holder --- README.md | 6 +- .../cn/icanci/rec/admin/biz/package-info.java | 5 + .../admin/biz/service/IDGeneratorService.java | 15 ++ .../service/impl/IDGeneratorServiceImpl.java | 31 +++ .../icanci/rec/admin/biz/utils/IDHolder.java | 39 ++++ .../icanci/rec/admin/biz/utils/SnowFlake.java | 108 +++++++++++ .../dal/mongodb/daointerface/DomainDAO.java | 8 + .../java/cn/icanci/rec/common/BaseDataVO.java | 87 +++++++++ .../cn/icanci/rec/common/DataSourceVO.java | 182 ++++++++++++++++++ .../java/cn/icanci/rec/common/DomainVO.java | 34 ++++ .../java/cn/icanci/rec/common/MetadataVO.java | 78 ++++++++ .../java/cn/icanci/rec/common/SceneVO.java | 66 +++++++ .../java/cn/icanci/rec/common/StrategyVO.java | 18 ++ .../rec/common/enums/DataSourceTypeEnum.java | 49 +++++ .../icanci/rec/common/enums/DataTypeEnum.java | 56 ++++++ .../rec/common/enums/HttpRequestTypeEnum.java | 44 +++++ .../rec/common/enums/ResultTypeEnum.java | 52 +++++ .../rec/common/enums/ScriptTypeEnum.java | 53 +++++ 18 files changed, 928 insertions(+), 3 deletions(-) create mode 100644 rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/package-info.java create mode 100644 rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/IDGeneratorService.java create mode 100644 rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/IDGeneratorServiceImpl.java create mode 100644 rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/utils/IDHolder.java create mode 100644 rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/utils/SnowFlake.java create mode 100644 rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/DomainDAO.java create mode 100644 rec-common/src/main/java/cn/icanci/rec/common/BaseDataVO.java create mode 100644 rec-common/src/main/java/cn/icanci/rec/common/DataSourceVO.java create mode 100644 rec-common/src/main/java/cn/icanci/rec/common/DomainVO.java create mode 100644 rec-common/src/main/java/cn/icanci/rec/common/MetadataVO.java create mode 100644 rec-common/src/main/java/cn/icanci/rec/common/SceneVO.java create mode 100644 rec-common/src/main/java/cn/icanci/rec/common/StrategyVO.java create mode 100644 rec-common/src/main/java/cn/icanci/rec/common/enums/DataSourceTypeEnum.java create mode 100644 rec-common/src/main/java/cn/icanci/rec/common/enums/DataTypeEnum.java create mode 100644 rec-common/src/main/java/cn/icanci/rec/common/enums/HttpRequestTypeEnum.java create mode 100644 rec-common/src/main/java/cn/icanci/rec/common/enums/ResultTypeEnum.java create mode 100644 rec-common/src/main/java/cn/icanci/rec/common/enums/ScriptTypeEnum.java diff --git a/README.md b/README.md index 99cf451..0eef51d 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ REC(Rule Engine Component)规则引擎组件:提供统一的规则处理方式和策略。 -# 分支迭代说明 +## 分支迭代说明 - dev_vue_admin_template:第一个版本 @@ -15,6 +15,7 @@ REC(Rule Engine Component)规则引擎组件:提供统一的规则处理 - rec-admin-dal:数据库管理模块 - rec-admin-views:视图模块 - rec-admin-web:对前端接口模块 +- rec-common:模型模块 - rec-core:核心构件 - 核心处理流程 - rec-engine:规则引擎处理器 @@ -165,8 +166,7 @@ REC(Rule Engine Component)规则引擎组件:提供统一的规则处理 | **字段名称** | **类型** | **备注** | | --- | --- | --- | | domainCode | String | 域Code | -| sceneName | String | 场景名称 | -| sceneCode | String | 场景Code | +| scenePairs | List | 场景对 | - 元数据(文档名称:rec-metadata) diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/package-info.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/package-info.java new file mode 100644 index 0000000..ea00281 --- /dev/null +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/package-info.java @@ -0,0 +1,5 @@ +/** + * @author icanci + * @since 1.0 Created in 2022/10/30 07:04 + */ +package cn.icanci.rec.admin.biz; \ No newline at end of file diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/IDGeneratorService.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/IDGeneratorService.java new file mode 100644 index 0000000..cb796cb --- /dev/null +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/IDGeneratorService.java @@ -0,0 +1,15 @@ +package cn.icanci.rec.admin.biz.service; + +/** + * @author icanci + * @since 1.0 Created in 2022/10/30 08:43 + */ +public interface IDGeneratorService { + /** + * 生成唯一id + * + * @param prefix 前缀 + * @return id + */ + String generateNoBySnowFlake(String prefix); +} diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/IDGeneratorServiceImpl.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/IDGeneratorServiceImpl.java new file mode 100644 index 0000000..67cf097 --- /dev/null +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/IDGeneratorServiceImpl.java @@ -0,0 +1,31 @@ +package cn.icanci.rec.admin.biz.service.impl; + +import cn.icanci.rec.admin.biz.service.IDGeneratorService; +import cn.icanci.rec.admin.biz.utils.IDHolder; +import cn.icanci.rec.admin.biz.utils.SnowFlake; + +import org.apache.commons.lang3.RandomUtils; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.stereotype.Service; + +/** + * 分布式ID生成器 + * + * @author icanci + * @since 1.0 Created in 2022/10/30 08:43 + */ +@Service +public class IDGeneratorServiceImpl implements IDGeneratorService, InitializingBean { + /** 雪花序列号生成算法 */ + private final static SnowFlake SNOW_FLAKE = new SnowFlake(RandomUtils.nextInt(1, 9), RandomUtils.nextInt(1, 9)); + + @Override + public String generateNoBySnowFlake(String prefix) { + return prefix + SNOW_FLAKE.nextId(); + } + + @Override + public void afterPropertiesSet() throws Exception { + IDHolder.setIdGeneratorService(this); + } +} diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/utils/IDHolder.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/utils/IDHolder.java new file mode 100644 index 0000000..d2bb95f --- /dev/null +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/utils/IDHolder.java @@ -0,0 +1,39 @@ +package cn.icanci.rec.admin.biz.utils; + +import cn.icanci.rec.admin.biz.service.IDGeneratorService; + +/** + * id生成器 + * + * @author icanci + * @since 1.0 Created in 2022/10/30 07:04 + */ +public class IDHolder { + /** 分布式id服务 */ + private static IDGeneratorService idGeneratorService; + + private static final String DEFAULT_PREFIX = "REC"; + + public static void setIdGeneratorService(IDGeneratorService idGeneratorService) { + IDHolder.idGeneratorService = idGeneratorService; + } + + /** + * 通过雪花算法生成唯一id + * + * @param prefix 前缀 + * @return id + */ + public static String generateNoBySnowFlake(String prefix) { + return idGeneratorService.generateNoBySnowFlake(prefix); + } + + /** + * 通过雪花算法生成唯一id,默认 REC + * + * @return id + */ + public static String generateNoBySnowFlakeDefaultPrefix() { + return idGeneratorService.generateNoBySnowFlake(DEFAULT_PREFIX); + } +} \ No newline at end of file diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/utils/SnowFlake.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/utils/SnowFlake.java new file mode 100644 index 0000000..3159918 --- /dev/null +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/utils/SnowFlake.java @@ -0,0 +1,108 @@ +package cn.icanci.rec.admin.biz.utils; + +/** + * id生成器-雪花算法 + * + * snowflake的结构如下(每部分用-分开): + * 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000 + * 第一位为未使用,接下来的41位为毫秒级时间(41位的长度可以使用69年),然后是5位datacenterId和5位workerId(10位的长度最多支持部署1024个节点) ,最后12位是毫秒内的计数(12位的计数顺序号支持每个节点每毫秒产生4096个ID序号) + * 一共加起来刚好64位,为一个Long型。(转换成字符串长度为18) + * snowflake生成的ID整体上按照时间自增排序,并且整个分布式系统内不会产生ID碰撞(由datacenter和workerId作区分),并且效率较高。据说:snowflake每秒能够产生26万个ID。 + * + * @author icanci + * @since 1.0 Created in 2022/10/30 07:04 + */ +public class SnowFlake { + /** 起始的时间戳 */ + private static final long START_STAMP = 1480166465631L; + + /** 序列号占用的位数 */ + private static final long SEQUENCE_BIT = 12; + + /** 机器标识占用的位数 */ + private static final long MACHINE_BIT = 5; + + /** 数据中心占用的位数 */ + private static final long DATACENTER_BIT = 5; + + /** 每一部分的最大值 */ + private static final long MAX_DATACENTER_NUM = ~(-1L << DATACENTER_BIT); + + private static final long MAX_MACHINE_NUM = ~(-1L << MACHINE_BIT); + + private static final long MAX_SEQUENCE = ~(-1L << SEQUENCE_BIT); + + /** 每一部分向左的位移 */ + private static final long MACHINE_LEFT = SEQUENCE_BIT; + + private static final long DATACENTER_LEFT = SEQUENCE_BIT + MACHINE_BIT; + + private static final long TIMESTAMP_LEFT = DATACENTER_LEFT + DATACENTER_BIT; + + /** 数据中心 */ + private final long datacenterId; + + /** 机器标识 */ + private final long machineId; + + /** 序列号 */ + private long sequence = 0L; + + /** 上一次时间戳 */ + private long lastStamp = -1L; + + public SnowFlake(long datacenterId, long machineId) { + if (datacenterId > MAX_DATACENTER_NUM || datacenterId < 0) { + throw new IllegalArgumentException("datacenterId can't be greater than MAX_DATACENTER_NUM or less than 0"); + } + if (machineId > MAX_MACHINE_NUM || machineId < 0) { + throw new IllegalArgumentException("machineId can't be greater than MAX_MACHINE_NUM or less than 0"); + } + this.datacenterId = datacenterId; + this.machineId = machineId; + } + + /** + * 产生下一个ID + * + * @return 下一个ID + */ + public synchronized long nextId() { + long currStamp = getNewStamp(); + if (currStamp < lastStamp) { + throw new RuntimeException("Clock moved backwards. Refusing to generate id"); + } + if (currStamp == lastStamp) { + //相同毫秒内,序列号自增 + sequence = (sequence + 1) & MAX_SEQUENCE; + //同一毫秒的序列数已经达到最大 + if (sequence == 0L) { + currStamp = getNextMill(); + } + } else { + //不同毫秒内,序列号置为0 + sequence = 0L; + } + lastStamp = currStamp; + return //时间戳部分 + (currStamp - START_STAMP) << TIMESTAMP_LEFT + //数据中心部分 + | datacenterId << DATACENTER_LEFT + //机器标识部分 + | machineId << MACHINE_LEFT + //序列号部分 + | sequence; + } + + private long getNextMill() { + long mill = getNewStamp(); + while (mill <= lastStamp) { + mill = getNewStamp(); + } + return mill; + } + + private long getNewStamp() { + return System.currentTimeMillis(); + } +} \ No newline at end of file diff --git a/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/DomainDAO.java b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/DomainDAO.java new file mode 100644 index 0000000..070b112 --- /dev/null +++ b/rec-admin/rec-admin-dal/src/main/java/cn/icanci/rec/admin/dal/mongodb/daointerface/DomainDAO.java @@ -0,0 +1,8 @@ +package cn.icanci.rec.admin.dal.mongodb.daointerface; + +/** + * @author icanci + * @since 1.0 Created in 2022/10/30 07:05 + */ +public interface DomainDAO extends BaseDAO{ +} diff --git a/rec-common/src/main/java/cn/icanci/rec/common/BaseDataVO.java b/rec-common/src/main/java/cn/icanci/rec/common/BaseDataVO.java new file mode 100644 index 0000000..881c6e2 --- /dev/null +++ b/rec-common/src/main/java/cn/icanci/rec/common/BaseDataVO.java @@ -0,0 +1,87 @@ +package cn.icanci.rec.common; + +import cn.icanci.rec.common.enums.DataTypeEnum; +import cn.icanci.rec.common.enums.ResultTypeEnum; +import cn.icanci.rec.common.enums.ScriptTypeEnum; + +/** + * 基础数据 + * + * @author icanci + * @since 1.0 Created in 2022/10/30 07:36 + */ +public class BaseDataVO extends BaseVO { + /** + * 域Code + */ + private String domainCode; + /** + * 基础数据名称 + */ + private String fieldName; + /** + * 数据类型(布尔、字符串、数值、日期、元数据等) + */ + private DataTypeEnum dataType; + /** + * 脚本执行类型 + * + */ + private ScriptTypeEnum scriptType; + /** + * 脚本内容 + */ + private String scriptContent; + /** + * 脚本执行返回类型(只能是基本数据类型) + */ + private ResultTypeEnum resultType; + + public String getDomainCode() { + return domainCode; + } + + public void setDomainCode(String domainCode) { + this.domainCode = domainCode; + } + + public String getFieldName() { + return fieldName; + } + + public void setFieldName(String fieldName) { + this.fieldName = fieldName; + } + + public DataTypeEnum getDataType() { + return dataType; + } + + public void setDataType(DataTypeEnum dataType) { + this.dataType = dataType; + } + + public ScriptTypeEnum getScriptType() { + return scriptType; + } + + public void setScriptType(ScriptTypeEnum scriptType) { + this.scriptType = scriptType; + } + + public String getScriptContent() { + return scriptContent; + } + + public void setScriptContent(String scriptContent) { + this.scriptContent = scriptContent; + } + + public ResultTypeEnum getResultType() { + return resultType; + } + + public void setResultType(ResultTypeEnum resultType) { + this.resultType = resultType; + } +} diff --git a/rec-common/src/main/java/cn/icanci/rec/common/DataSourceVO.java b/rec-common/src/main/java/cn/icanci/rec/common/DataSourceVO.java new file mode 100644 index 0000000..2d931fc --- /dev/null +++ b/rec-common/src/main/java/cn/icanci/rec/common/DataSourceVO.java @@ -0,0 +1,182 @@ +package cn.icanci.rec.common; + +import cn.icanci.rec.common.enums.DataSourceTypeEnum; +import cn.icanci.rec.common.enums.HttpRequestTypeEnum; +import cn.icanci.rec.common.enums.ScriptTypeEnum; + +/** + * 数据源 + * + * @author icanci + * @since 1.0 Created in 2022/10/30 08:05 + */ +public class DataSourceVO extends BaseVO { + + /** + * 数据源名称 + */ + private String dataSourceName; + /** + * 数据源Code + */ + private String dataSourceCode; + /** + * 数据源类型 + */ + private DataSourceTypeEnum dataSourceType; + /** + * 数据源为脚本的执行数据集 + */ + private ScriptInfo scriptInfo; + /** + * 数据源为HTTP的执行数据集 + */ + private HttpInfo httpInfo; + /** + * 数据源为SQL的执行数据集 + */ + private SqlInfo sqlInfo; + + public String getDataSourceName() { + return dataSourceName; + } + + public void setDataSourceName(String dataSourceName) { + this.dataSourceName = dataSourceName; + } + + public String getDataSourceCode() { + return dataSourceCode; + } + + public void setDataSourceCode(String dataSourceCode) { + this.dataSourceCode = dataSourceCode; + } + + public DataSourceTypeEnum getDataSourceType() { + return dataSourceType; + } + + public void setDataSourceType(DataSourceTypeEnum dataSourceType) { + this.dataSourceType = dataSourceType; + } + + public ScriptInfo getScriptInfo() { + return scriptInfo; + } + + public void setScriptInfo(ScriptInfo scriptInfo) { + this.scriptInfo = scriptInfo; + } + + public HttpInfo getHttpInfo() { + return httpInfo; + } + + public void setHttpInfo(HttpInfo httpInfo) { + this.httpInfo = httpInfo; + } + + public SqlInfo getSqlInfo() { + return sqlInfo; + } + + public void setSqlInfo(SqlInfo sqlInfo) { + this.sqlInfo = sqlInfo; + } + + /** + * 数据源为脚本的执行数据集 + */ + public static class ScriptInfo { + /** + * 脚本执行类型 + * + */ + private ScriptTypeEnum scriptType; + /** + * 脚本内容 + */ + private String scriptContent; + + public ScriptTypeEnum getScriptType() { + return scriptType; + } + + public void setScriptType(ScriptTypeEnum scriptType) { + this.scriptType = scriptType; + } + + public String getScriptContent() { + return scriptContent; + } + + public void setScriptContent(String scriptContent) { + this.scriptContent = scriptContent; + } + } + + /** + * 数据源为HTTP的执行数据集 + */ + public static class HttpInfo { + /** + * 请求数据类型 + */ + private HttpRequestTypeEnum httpRequestType; + /** + * 请求接口 + */ + private String reqUrl; + /** + * 请求参数 + * + * @see HttpRequestTypeEnum#POST 时有效 + */ + private String reqParam; + + public HttpRequestTypeEnum getHttpRequestType() { + return httpRequestType; + } + + public void setHttpRequestType(HttpRequestTypeEnum httpRequestType) { + this.httpRequestType = httpRequestType; + } + + public String getReqUrl() { + return reqUrl; + } + + public void setReqUrl(String reqUrl) { + this.reqUrl = reqUrl; + } + + public String getReqParam() { + return reqParam; + } + + public void setReqParam(String reqParam) { + this.reqParam = reqParam; + } + } + + /** + * 数据源为SQL的执行数据集 + */ + public static class SqlInfo { + /** + * SQL 语句,只支持查询语句 + * + * 查询默认数据库 rec_ext + */ + private String sql; + + public String getSql() { + return sql; + } + + public void setSql(String sql) { + this.sql = sql; + } + } +} diff --git a/rec-common/src/main/java/cn/icanci/rec/common/DomainVO.java b/rec-common/src/main/java/cn/icanci/rec/common/DomainVO.java new file mode 100644 index 0000000..2b4470c --- /dev/null +++ b/rec-common/src/main/java/cn/icanci/rec/common/DomainVO.java @@ -0,0 +1,34 @@ +package cn.icanci.rec.common; + +/** + * 域 + * + * @author icanci + * @since 1.0 Created in 2022/10/30 07:13 + */ +public class DomainVO extends BaseVO { + /** + * 域名称 + */ + private String domainName; + /** + * 域Code + */ + private String domainCode; + + public String getDomainName() { + return domainName; + } + + public void setDomainName(String domainName) { + this.domainName = domainName; + } + + public String getDomainCode() { + return domainCode; + } + + public void setDomainCode(String domainCode) { + this.domainCode = domainCode; + } +} diff --git a/rec-common/src/main/java/cn/icanci/rec/common/MetadataVO.java b/rec-common/src/main/java/cn/icanci/rec/common/MetadataVO.java new file mode 100644 index 0000000..68f92ef --- /dev/null +++ b/rec-common/src/main/java/cn/icanci/rec/common/MetadataVO.java @@ -0,0 +1,78 @@ +package cn.icanci.rec.common; + +import java.util.List; + +/** + * 元数据 + * + * @author icanci + * @since 1.0 Created in 2022/10/30 07:22 + */ +public class MetadataVO extends BaseVO { + /** + * 域Code + */ + private String domainCode; + /** + * 元数据名称 + */ + private String metadataName; + /** + * 元数据对 + */ + private List metadataPairs; + + public String getDomainCode() { + return domainCode; + } + + public void setDomainCode(String domainCode) { + this.domainCode = domainCode; + } + + public String getMetadataName() { + return metadataName; + } + + public void setMetadataName(String metadataName) { + this.metadataName = metadataName; + } + + public List getMetadataPairs() { + return metadataPairs; + } + + public void setMetadataPairs(List metadataPairs) { + this.metadataPairs = metadataPairs; + } + + /** + * 元数据对 + */ + public static class MetadataPair { + /** + * key + */ + private String key; + /** + * value + */ + private String value; + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/rec-common/src/main/java/cn/icanci/rec/common/SceneVO.java b/rec-common/src/main/java/cn/icanci/rec/common/SceneVO.java new file mode 100644 index 0000000..490753e --- /dev/null +++ b/rec-common/src/main/java/cn/icanci/rec/common/SceneVO.java @@ -0,0 +1,66 @@ +package cn.icanci.rec.common; + +import java.util.List; + +/** + * 场景 + * + * @author icanci + * @since 1.0 Created in 2022/10/30 07:14 + */ +public class SceneVO extends BaseVO { + /** + * 域Code + */ + private String domainCode; + /** + * 场景对 + */ + private List scenePairs; + + public String getDomainCode() { + return domainCode; + } + + public void setDomainCode(String domainCode) { + this.domainCode = domainCode; + } + + public List getScenePairs() { + return scenePairs; + } + + public void setScenePairs(List scenePairs) { + this.scenePairs = scenePairs; + } + + /** + * 场景对 + */ + public static class ScenePair { + /** + * 场景名称 + */ + private String sceneName; + /** + * 场景Code + */ + private String sceneCode; + + public String getSceneName() { + return sceneName; + } + + public void setSceneName(String sceneName) { + this.sceneName = sceneName; + } + + public String getSceneCode() { + return sceneCode; + } + + public void setSceneCode(String sceneCode) { + this.sceneCode = sceneCode; + } + } +} diff --git a/rec-common/src/main/java/cn/icanci/rec/common/StrategyVO.java b/rec-common/src/main/java/cn/icanci/rec/common/StrategyVO.java new file mode 100644 index 0000000..afac7a7 --- /dev/null +++ b/rec-common/src/main/java/cn/icanci/rec/common/StrategyVO.java @@ -0,0 +1,18 @@ +package cn.icanci.rec.common; + +/** + * 策略 + * + * @author icanci + * @since 1.0 Created in 2022/10/30 08:39 + */ +public class StrategyVO extends BaseVO { + // domainCode String 域Code + //sceneCode String 场景Code + //strategyName String 策略组名称 + //dataSourceType String 数据源类型(脚本、接口、SQL) + //dataSourceCode String 数据源关联Code + //ruleType String 规则配置类型(默认为List) + //ruleListInfo Object 规则配置类型为List时候的规则数据 + //ruleTreeInfo Object 规则配置类型为Tree时候的规则数据 +} diff --git a/rec-common/src/main/java/cn/icanci/rec/common/enums/DataSourceTypeEnum.java b/rec-common/src/main/java/cn/icanci/rec/common/enums/DataSourceTypeEnum.java new file mode 100644 index 0000000..03e5b6a --- /dev/null +++ b/rec-common/src/main/java/cn/icanci/rec/common/enums/DataSourceTypeEnum.java @@ -0,0 +1,49 @@ +package cn.icanci.rec.common.enums; + +/** + * 数据源类型 + * + * @author icanci + * @since 1.0 Created in 2022/10/30 08:08 + */ +public enum DataSourceTypeEnum { + + /** + * SCRIPT + */ + SCRIPT("SCRIPT", "脚本"), + /** + * HTTP + */ + HTTP("HTTP", "HTTP"), + /** + * SQL + */ + SQL("SQL", "SQL"), + + ; + + DataSourceTypeEnum(String code, String desc) { + this.code = code; + this.desc = desc; + } + + private String code; + private String desc; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/rec-common/src/main/java/cn/icanci/rec/common/enums/DataTypeEnum.java b/rec-common/src/main/java/cn/icanci/rec/common/enums/DataTypeEnum.java new file mode 100644 index 0000000..0e8b24e --- /dev/null +++ b/rec-common/src/main/java/cn/icanci/rec/common/enums/DataTypeEnum.java @@ -0,0 +1,56 @@ +package cn.icanci.rec.common.enums; + +/** + * 数据类型(布尔、字符串、数值、日期、元数据等) + * + * @author icanci + * @since 1.0 Created in 2022/10/30 07:41 + */ +public enum DataTypeEnum { + /** + * 布尔 + */ + BOOLEAN("BOOLEAN", "布尔"), + /** + * 字符串 + */ + STRING("STRING", "字符串"), + /** + * 数值 + */ + NUMBER("NUMBER", "数值"), + /** + * 日期 + */ + DATE("DATE", "日期"), + /** + * 元数据 + */ + METADATA("METADATA", "元数据"), + + ; + + DataTypeEnum(String code, String desc) { + this.code = code; + this.desc = desc; + } + + private String code; + private String desc; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/rec-common/src/main/java/cn/icanci/rec/common/enums/HttpRequestTypeEnum.java b/rec-common/src/main/java/cn/icanci/rec/common/enums/HttpRequestTypeEnum.java new file mode 100644 index 0000000..cca322d --- /dev/null +++ b/rec-common/src/main/java/cn/icanci/rec/common/enums/HttpRequestTypeEnum.java @@ -0,0 +1,44 @@ +package cn.icanci.rec.common.enums; + +/** + * HTTP 请求数据类型 + * + * @author icanci + * @since 1.0 Created in 2022/10/30 08:11 + */ +public enum HttpRequestTypeEnum { + /** + * GET + */ + GET("GET", "GET"), + /** + * POST + */ + POST("POST", "POST"), + + ; + + HttpRequestTypeEnum(String code, String desc) { + this.code = code; + this.desc = desc; + } + + private String code; + private String desc; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/rec-common/src/main/java/cn/icanci/rec/common/enums/ResultTypeEnum.java b/rec-common/src/main/java/cn/icanci/rec/common/enums/ResultTypeEnum.java new file mode 100644 index 0000000..d83b344 --- /dev/null +++ b/rec-common/src/main/java/cn/icanci/rec/common/enums/ResultTypeEnum.java @@ -0,0 +1,52 @@ +package cn.icanci.rec.common.enums; + +/** + * 脚本执行返回类型 + * + * @author icanci + * @since 1.0 Created in 2022/10/30 07:56 + */ +public enum ResultTypeEnum { + /** + * Integer + */ + INTEGER("INTEGER", "Integer"), + /** + * Long + */ + LONG("LONG", "Long"), + /** + * Double + */ + DOUBLE("DOUBLE", "Double"), + /** + * String + */ + STRING("STRING", "String"), + + ; + + private String code; + private String desc; + + ResultTypeEnum(String code, String desc) { + this.code = code; + this.desc = desc; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/rec-common/src/main/java/cn/icanci/rec/common/enums/ScriptTypeEnum.java b/rec-common/src/main/java/cn/icanci/rec/common/enums/ScriptTypeEnum.java new file mode 100644 index 0000000..16552dc --- /dev/null +++ b/rec-common/src/main/java/cn/icanci/rec/common/enums/ScriptTypeEnum.java @@ -0,0 +1,53 @@ +package cn.icanci.rec.common.enums; + +/** + * 脚本类型 + * + * @author icanci + * @since 1.0 Created in 2022/10/30 07:48 + */ +public enum ScriptTypeEnum { + + /** + * GROOVY + */ + GROOVY("GROOVY", "Groovy脚本"), + /** + * MVEL2 + */ + MVEL2("MVEL2", "Mvel2.0脚本"), + /** + * JAVA_SCRIPT + */ + JAVA_SCRIPT("JAVA_SCRIPT", "JavaScript脚本"), + /** + * Json 取值 + */ + JSON("JSON", "Json取值"), + + ; + + private String code; + private String desc; + + ScriptTypeEnum(String code, String desc) { + this.code = code; + this.desc = desc; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} -- Gitee