03-业务侧集成
规则中心本身只定义逻辑,真正的威力在于与各个业务模块的集成。本章节说明如何在业务模块中"挂载"规则。
业务类型枚举说明
规则中心支持的业务类型枚举如下表所示(请以代码 BusinessTypeEnum 为准):
| 类型值 | 枚举名 (Code) | 对应模块文档 | 说明 | 是否需要审批 |
|---|---|---|---|---|
| 0 | TASK_PUSH | 任务推送管理 | 任务推送 | 是 |
| 1 | LAUNCHER_AD | Launcher信息管理 | Launcher广告配置 | 是 |
| 2 | BLACKLIST | 黑名单配置 | 黑名单 | 是 |
| 3 | UOTA_UPGRADE | UOTA信息管理 | UOTA升级 | 否 |
| 4 | DOMAIN_DISTRIBUTION | 域名分发管理 | 域名分发之域名 | 否 |
| 5 | UOTA_DISTRIBUTION | 域名分发管理 | 域名分发之UOTA | 否 |
1. 规则配置 (绑定与解绑)
在业务侧集成规则的配置中,审批相关的业务(黑名单、launcher、任务推送)很特殊...
审批相关的业务(黑名单、launcher、任务推送)很特殊, 一条规则但凡被一条需要审批的业务绑定之后,就不能再绑定其它任何数据了,如果这时候这条规则去绑定mac资源,mac资源同样也会有只能1对1绑定的限制
在各个业务模块(例如“任务信息管理” -> “关联规则”)中,通常都有一个统一的规则配置界面(RuleBusinessTabs组件)。

1.1 绑定已有规则
在业务侧绑定已有规则的操作中,业务方不需要重新发明轮子,直接从规则中心选择已有的规则即可。
- 点击“绑定已有规则”。
- 在弹窗中选择在 01-规则清单管理 中配置好的规则。
1.2 新增规则自动加入
在业务侧新增规则自动加入的机制中,如果在业务侧点击"新增",系统会创建一个新的规则,并自动绑定到当前业务。
- 新增的规则会同步到规则中心,可供其他业务复用

1.3 前端组件集成 (开发人员参考)
面向开发人员的前端组件集成指南:对于开发人员,我们在前端框架中提供了开箱即用的 Vue 组件 RuleBusinessTabs。只需传入 business-type 和 business-id,即可在任何业务页面嵌入完整的规则管理功能。
<RuleBusinessTabs
:business-type="BusinessTypeEnum.DOMAIN_DISTRIBUTION"
:business-id="currentRow?.id"
/>
2. 业务侧的个性化配置
在业务侧对规则进行个性化配置,绑定规则后,业务侧还可以对规则进行二次配置。
当您在业务页面点击"新增MAC"时,系统实际上是将这些MAC地址追加绑定到您当前选中的那条规则上。
意味着:
- 如果您修改了这条规则(例如加了一个MAC),所有使用这条规则的其他业务也会受到影响
- 如果您的配置是当前业务独有的,建议新建一条规则,而不是修改公共规则
2.1 规则MAC配置
在业务侧的规则MAC配置中,为当前绑定的规则追加特定的MAC地址。

2.2 规则渠道配置
在业务侧的规则渠道配置中,可以对渠道进行管理。

2.3 规则地区配置
在业务侧的规则地区配置中,可以对地区进行管理。

3. 机顶盒调用 (底层逻辑)
机顶盒调用规则引擎的底层逻辑:此部分为系统后台运行机制,没有可视化界面。 当机顶盒请求服务器时,系统会在后台自动触发规则引擎的匹配流程。
3.1 详细匹配流程
机顶盒规则匹配详细流程如下:
其中“精筛”步骤中执行的 EL 表达式可以非常复杂,例如:描述“渠道名称包含 2024,且 (SDK 版本以 rk 开头,或者激活时间在 2026-01-01 到 2026-01-30 之间)”这一组合条件的表达式;具体形式可参考规则中心概念文档中的示例。
3.2 交互时序图
以下展示了设备、业务服务、规则引擎之间的交互时序:
3.3 域名分发示例
域名分发业务的规则调用示例:
3.3.1 参数说明
-
测试环境接口地址:http://192.168.1.87:8742/app-api/hnc2fng/ghbn1hebdsh2/yh65hbfvg3jfdbs
-
入参:设备上报的信息。
{
"platform": "Allwinner",
"mac": "9C:00:D4:5B:16:03",
"cpu": "02c001811460462079468908603105d4"
}
- 出参:经过规则计算后,返回给设备的服务器地址。
{
"code": 200,
"data": {
"uotaApps": [
{
"id": 2,
"infraFileId": 6517,
"url": "http://192.168.1.87:9000/nebula-ids/cc8c01a176b04b7087932cb3caf57b599c7c99dd48dbfa14bca7635020faebb7.apk",
"size": 4747893,
"packageName": "com.android.netservice",
"versionCode": 49,
"versionName": "netservice-3.4.9-allwinner",
"platform": "allwinner",
"md5": "51399d1701adf0c13aab536fb91c0dc1"
}
],
"domains": [
{
"id": 7,
"type": 0,
"domainNames": "akrdinfo2.cn"
}
]
},
"msg": ""
}
这个过程完全是自动化的,毫秒级完成,确保每个设备都能获取到符合其特征的精准配置。
3.3.2 apiFox提交数据

4. 设备数量统计
规则引擎为各业务模块提供了统一的设备数量统计机制,帮助运营人员直观地了解策略覆盖的设备范围。
4.1 支持业务
目前以下业务场景的列表页及详情页支持查看设备数量:
- 域名分发:域名列表、UOTA列表
- 黑名单:黑名单列表
- Launcher广告:Launcher广告位配置
- 任务推送:APK任务推送
- UOTA升级:UOTA自升级配置
4.2 交互说明
列表展示
在业务列表中,系统会显示当前策略覆盖的设备去重总量。
- 如果显示具体数字(如 1024),表示这是最近一次计算的缓存结果。
- 如果显示 【未计算】 或 --,表示该条数据尚未触发过计算。


重新计算
点击列表中的设备数量(或【未计算】区域),将弹出详情浮层或对话框。
- 查看详情:可以查看最近一次的计算时间。
- 重新计算:点击 【重新计算】 按钮,系统将实时扫描数据库,重新统计覆盖的设备数量并更新缓存。
-6168e55feab6300df1fb691d52ecc006.png)
4.3 统计规则与限制
为了让您更好地理解设备统计数据的含义,请注意以下计算规则:
-
计算依据(仅MAC与渠道)
- 统计仅基于 MAC配置 和 渠道配置 进行计算。
- 忽略项:更高级的过滤条件(如地区限制、EL表达式逻辑)在统计时会被忽略。因此,统计结果代表的是策略的最大潜在影响范围,而非最终实际命中的精确值。
-
去重逻辑
- 单条规则内:如果一条规则同时配置了 MAC 和渠道,系统取两者的交集。
- 多条规则间:如果一个业务绑定了多条规则,系统会将各条规则覆盖的设备取并集,并自动去除重复设备。
-
全量设备判定
- 如果一条规则未配置任何 MAC 或渠道,系统视为全量设备。
- 如果一个业务绑定的多条规则中,只要有任意一条是全量规则,则整个业务的统计结果即为全量设备。
5. 集成常见问题 (FAQ)
4.1 为什么绑定了规则但设备没有生效?
- 缓存原因:规则引擎有缓存机制(Redis + 本地缓存),修改后通常需要等待几秒或手动触发刷新。
- 审批状态:对于需要审批的业务(如黑名单),规则变更后必须通过审批流程才能生效。
- 匹配条件:检查设备的画像数据(MAC/渠道/地区)是否真的符合规则设定的条件。
- 数量限制:某些业务类型可能有数量限制(例如只返回优先级最高的一条),请检查业务侧的限制逻辑。
4.2 如何调试规则匹配?
- 使用后台提供的“规则模拟测试”功能(如果有)。
- 查看
RuleRunUtil的日志输出,确认“初筛”和“精筛”的通过情况。