# rule-engine **Repository Path**: aliseph/rule-engine ## Basic Information - **Project Name**: rule-engine - **Description**: 🔥🔥🔥📌 规则引擎 📌 RuleEngine 基于web可视化配置,简单高效快捷。业务逻辑实现不再依赖于代码开发,可零代码实现复杂业务逻辑! - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: http://ruleengine.cn - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 110 - **Created**: 2023-05-05 - **Last Updated**: 2023-05-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 📌 规则引擎 RuleEngine 📌 [![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html) [![GitHub Stars](https://img.shields.io/github/stars/rule-engine/rule-engine)](https://github.com/rule-engine/rule-engine/stargazers) [![GitHub Forks](https://img.shields.io/github/forks/rule-engine/rule-engine)](https://github.com/rule-engine/rule-engine/fork) [![GitHub issues](https://img.shields.io/github/issues/rule-engine/rule-engine.svg)](https://github.com/rule-engine/rule-engine/issues) [![Percentage of issues still open](http://isitmaintained.com/badge/open/rule-engine/rule-engine.svg)](https://github.com/rule-engine/rule-engine/issues "Percentage of issues still open") #### 开源不易,请尊重作者劳动成果,作者白天工作,晚上下班与周末维护此项目,如果对你有帮助辛苦给个star,这是对我最大的鼓励。 #### 业务逻辑实现不再依赖于代码开发,可零代码实现复杂业务逻辑。 前端代码地址:https://gitee.com/qwding/rule-engine-front 项目展示地址:http://ruleengine.cn/ 申请登录权限联系QQ:761945125,Email:761945125@qq.com ### 关于提出Bug奖励 如果项目在使用过程中,发现项目缺陷或者漏洞等问题,可以在以下地址中提出问题反馈: Gitee:https://gitee.com/qwding/rule-engine/issues Github:https://github.com/rule-engine/rule-engine/issues 提出一个问题奖励2元(请大家不要嫌少哦!此项目属于非盈利项目,纯属个人兴趣开源以及开发,我们只想把此项目更加完善!) 提出问题后请联系作者打款。 注意: - 每天奖励数量最多10个。 - 重复问题没有奖励。 ### 技术文档 简单使用:https://blog.csdn.net/weixin_42756198/article/details/109680143 详细文档:http://ruleengine.cn/doc ### 技术栈/版本介绍: - 所涉及的相关的技术有: - SpringBoot 2.1.2 - RabbitMQ - Redis、Redisson - MySQL 5.7.9 - Mybatis-plus(后期有时间可能去除Mybatis-plus) - Maven 3.3 - Swagger ### 规则如何调用 通过在 http://ruleengine.cn 配置规则,例如配置的规则如下: | 规则配置信息展示 | |---| | ![rule-config](https://boot-rule.oss-cn-beijing.aliyuncs.com/rule-config.png)| 配置完成后我们就可以调用接口来执行引擎中的规则了 ``` POST http://ruleserver.cn/ruleEngine/generalRule/execute Content-Type: application/json { "code": "phoneRuletest", "workspaceCode": "default", "accessKeyId": "略", "accessKeySecret": "略", "param": { "phone": "13400000000" } } ``` 现在我们让此使用方式更加简单易用! 调用规则方项目pom.xml文件引入以下依赖 ```pom cn.ruleengine rule-engine-client 2.0 ``` SpringBoot项目application.yml配置文件配置如下: ```yml rule.engine: baseUrl: http://ruleserver.cn workspaceCode: default accessKeyId: root accessKeySecret: 123456 # 可选配置 feignConfig: request: connectTimeoutMillis: 3000 readTimeoutMillis: 3500 retryer: period: 2000 maxPeriod: 2000 maxAttempts: 3 ``` 然后编写如下代码进行测试: ```java @EnableRuleEngine @RunWith(SpringRunner.class) @SpringBootTest public class RuleTest { @Resource private RuleEngineClient ruleEngineClient; @Test public void test() { // 构建规则请求参数 PhoneTestRule phoneTestRule = new PhoneTestRule(); phoneTestRule.setPhone("134000000000"); // 调用执行引擎中的规则 GeneralRule generalRule = this.ruleEngineClient.generalRule(); Output output = generalRule.execute(phoneTestRule); System.out.println(output); } } @Data @Model(code = "phoneRuletest") public class PhoneTestRule { /** * ElementField可选,默认code为属性name */ @ElementField(code = "phone") private String phone; } ``` 我们默认使用Feign请求,当然你也可以自定义,只需要在项目中配置如下代码: ```java @Component @Import({RestTemplate.class}) public class RuleEngineClientConfig { @Resource private RestTemplate restTemplate; @Bean public GeneralRuleInterface generalRuleInterface() { return new GeneralRuleInterface() { @Override public ExecuteResult execute(ExecuteParam executeParam) { return restTemplate.postForObject("http://ruleserver.cn/ruleEngine/generalRule/execute", executeParam, ExecuteResult.class); } @Override public IsExistsResult isExists(IsExistsParam existsParam) { // TODO: 2020/12/30 return null; } @Override public BatchExecuteResult batchExecute(BatchParam batchParam) { // TODO: 2020/12/30 return null; } }; } } ``` 现在你就已经学会了如何使用,更多使用方式敬请期待! ### 下一步进展 - 优化代码,提高配置体验(进行中) - 规则版本(开发中) - 规则监控(待开发) - 评分卡(待开发) - 决策树(待开发) - 元素组(待开发) - 提供规则、规则集、决策表延迟加载功能,以及定时清理长时间未使用的规则、规则集、决策表功能(待开发) 目前忙于工作,功能待完善,欢迎有兴趣伙伴加入我们! ### 捐助霸王洗发水 作者为了此项目经常熬夜到凌晨才设计完成核心部分以及整体运转,头发掉很多,后来见到了传说中的霸王洗发水,看下自己的口袋,含下买不起的泪水,辛苦捐助一瓶霸王洗发水吧! | 支付宝 |微信| |---|---| | ![支付宝](https://boot-rule.oss-cn-beijing.aliyuncs.com/%E6%94%AF%E4%BB%98%E5%AE%9D.png)| ![微信](https://boot-rule.oss-cn-beijing.aliyuncs.com/WechatIMG2.jpeg)| ### 如果觉得本项目对您有任何一点帮助,请点右上角 "Star" 支持一下, 并向您的基友、同事们宣传一下吧,谢谢!