同步操作将从 千面/drool-rule 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Drools(JBoss Rules)具有一个易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高。业务分析师或审核 人员可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。
对系统的使用人员
对IT开发人员
spring-boot 2.4.1
drools 7.14.0.Final
mysql 8
mybatis-plus 3.2.0
1.通过模板生成 drl
2.启动时加载数据库中 drl
3.动态加载(可以指定分组) drl
4.根据分组id触发规则
5.根据分组id删除分组规则
1.修改 application-dev.yml
中的数据库文件
2.RuleApplication
启动
3.访问 http:127.0.0.1:8080/api/ruleApi/genRule/{tempCode}/{bizId}
tempCode
可以查看 com.github.xiaoy.droolrule.constant.TemplateGenEnum
可以根据不同的生成器生成不同的 drl
.bizId
为业务规则保存的位置主键
4.访问 http:127.0.0.1:8080/api/ruleApi/reload/{tempCode}/{groupId}
将指定的规则加到内存中。
5.如果重新生成了 drl
文件,需要访问 http:127.0.0.1:8080/api/ruleApi/{tempCode}/reload/{groupId}
刷新内存中的规则
6.触发规则:http:127.0.0.1:8080/api/ruleApi/fire/{tempCode}/{groupId}
其中 groupId
为需要触发的一组规则.
Map参数中key,可以找对应的实体类,如 com.github.xiaoy.droolrule.param.DeveloperSettlementParam
{
"assessmentDate": "2021-01-12",
"commissionType": "1",
"houseType": "1",
"jumpPoint": "1",
"salesAmount": 1000000
}
7.访问 http:127.0.0.1:8080/api/ruleApi/reload
加载所有规则到内存中
droolsRuleTemp/DeveloperSettlement.ftl
对应业务的规则模板,使用的 freemarker
模板引擎
com.github.xiaoy.droolrule.gen.param.DeveloperSettlementTemp
模板对应参数,用于生成模板。
业务在页面上修改规则时,会将必要的参数填充进去,以便生成对应的 drl
文件。
com.github.xiaoy.droolrule.param.DeveloperSettlementParam
用于匹配规则,返回值会写入到 List<BigDecimal> result
里面,
因为可能会匹配到多个,所以使用集合。
com.github.xiaoy.droolrule.gen.impl.BaseRuleGen
模板生成类基类,提供公用方法
com.github.xiaoy.droolrule.gen.impl.DeveloperSettlementRuleGenImpl
对应模板的生成器,调用 com.github.xiaoy.droolrule.gen.RuleGen.generateRule
方法时,会生成 drl
文件的字符串,会保存到 re_rule_config
表中,会返回一个 groupId
,业务数据中需要保存这个值,以便在调用规则时使用。
com.github.xiaoy.droolrule.init.InitRuleLoader
在启动时,会去查询 re_rule_info
表中有效的数据,将对应的规则加入到内存中。
com.github.xiaoy.droolrule.utils.KieSessionHelper
通过 groupId
获取对应的 KieSession
,以便操作对应分组的规则。
com.github.xiaoy.droolrule.utils.SnowFlakeUtil
生成 groupId
工具类,雪花算法,生成唯一
com.github.xiaoy.droolrule.api.RuleApi
提供一个示例 api
1.在 droolsRuleTemp
中编写对就的规则模板
2.在 com.github.xiaoy.droolrule.gen.param
中添加对应的模板参数实体类
3.继承 com.github.xiaoy.droolrule.gen.RuleGen
实现 getTemplateFileName
返回模板名称 和 checkTempData
查检模板数据的方法
4.实现 com.github.xiaoy.droolrule.service.RuleInfoService
,接口主要用于规则的查询,规则的更新和规则参数的查询
5.在 com.github.xiaoy.droolrule.param
中添加对应的规则匹配实体类,用于规则匹配
6.在 com.github.xiaoy.droolrule.constant.DroolsRuleGenCst
中添加模板生成器类(实现 RuleGen
接口的类)和规则服务类(实现 RuleInfoService
接口的类)
7.在 com.github.xiaoy.droolrule.constant.TemplateGenEnum
中添加添加规则枚举
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。