跳到主要内容

03-业务侧集成

核心概念:规则引擎 | 03-业务侧集成 | 概览

规则中心本身只定义逻辑,真正的威力在于与各个业务模块的集成。本章节说明如何在业务模块中"挂载"规则。


核心概念:规则引擎 | 03-业务侧集成 | 业务类型枚举说明

业务类型枚举说明

规则中心支持的业务类型枚举如下表所示(请以代码 BusinessTypeEnum 为准):

类型值枚举名 (Code)对应模块文档说明是否需要审批
0TASK_PUSH任务推送管理任务推送
1LAUNCHER_ADLauncher信息管理Launcher广告配置
2BLACKLIST黑名单配置黑名单
3UOTA_UPGRADEUOTA信息管理UOTA升级
4DOMAIN_DISTRIBUTION域名分发管理域名分发之域名
5UOTA_DISTRIBUTION域名分发管理域名分发之UOTA

核心概念:规则引擎 | 03-业务侧集成 | 1. 规则配置 (绑定与解绑)

1. 规则配置 (绑定与解绑)

在业务侧集成规则的配置中,审批相关的业务(黑名单、launcher、任务推送)很特殊...

审批相关的业务(黑名单、launcher、任务推送)很特殊, 一条规则但凡被一条需要审批的业务绑定之后,就不能再绑定其它任何数据了,如果这时候这条规则去绑定mac资源,mac资源同样也会有只能1对1绑定的限制

在各个业务模块(例如“任务信息管理” -> “关联规则”)中,通常都有一个统一的规则配置界面(RuleBusinessTabs组件)。

规则绑定列表


核心概念:规则引擎 | 03-业务侧集成 | 1.1 绑定已有规则

1.1 绑定已有规则

在业务侧绑定已有规则的操作中,业务方不需要重新发明轮子,直接从规则中心选择已有的规则即可。

绑定已有规则


核心概念:规则引擎 | 03-业务侧集成 | 1.2 新增规则自动加入

1.2 新增规则自动加入

在业务侧新增规则自动加入的机制中,如果在业务侧点击"新增",系统会创建一个新的规则,并自动绑定到当前业务。

  • 新增的规则会同步到规则中心,可供其他业务复用

新增规则


核心概念:规则引擎 | 03-业务侧集成 | 1.3 前端组件集成 (开发人员参考)

1.3 前端组件集成 (开发人员参考)

面向开发人员的前端组件集成指南:对于开发人员,我们在前端框架中提供了开箱即用的 Vue 组件 RuleBusinessTabs。只需传入 business-typebusiness-id,即可在任何业务页面嵌入完整的规则管理功能。

<RuleBusinessTabs 
:business-type="BusinessTypeEnum.DOMAIN_DISTRIBUTION"
:business-id="currentRow?.id"
/>

核心概念:规则引擎 | 03-业务侧集成 | 2. 业务侧的个性化配置

2. 业务侧的个性化配置

在业务侧对规则进行个性化配置,绑定规则后,业务侧还可以对规则进行二次配置

重要提示

当您在业务页面点击"新增MAC"时,系统实际上是将这些MAC地址追加绑定到您当前选中的那条规则上。

意味着:

  • 如果您修改了这条规则(例如加了一个MAC),所有使用这条规则的其他业务也会受到影响
  • 如果您的配置是当前业务独有的,建议新建一条规则,而不是修改公共规则

核心概念:规则引擎 | 03-业务侧集成 | 2.1 规则MAC配置

2.1 规则MAC配置

在业务侧的规则MAC配置中,为当前绑定的规则追加特定的MAC地址。 规则MAC配置


核心概念:规则引擎 | 03-业务侧集成 | 2.2 规则渠道配置

2.2 规则渠道配置

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

规则渠道配置


核心概念:规则引擎 | 03-业务侧集成 | 2.3 规则地区配置

2.3 规则地区配置

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

规则地区配置


核心概念:规则引擎 | 03-业务侧集成 | 3. 机顶盒调用 (底层逻辑)

3. 机顶盒调用 (底层逻辑)

机顶盒调用规则引擎的底层逻辑:此部分为系统后台运行机制,没有可视化界面。 当机顶盒请求服务器时,系统会在后台自动触发规则引擎的匹配流程。

3.1 详细匹配流程

机顶盒规则匹配详细流程如下:

Mermaid Diagram Code:

flowchart TD
    Start("开始") --> Input("1. 输入信息<br/>(MAC, 业务类型)")
    Input --> Complete("2. 信息补全<br/>(查询设备画像)")
    Complete --> InitialScreen("3. 初筛<br/>(MAC/渠道/地区/无限制)")
    InitialScreen --> FineScreen("4. 精筛<br/>(执行EL表达式)")
    FineScreen --> Result("5. 返回结果<br/>(业务ID集合)")
    Result --> End("结束")

其中“精筛”步骤中执行的 EL 表达式可以非常复杂,例如:描述“渠道名称包含 2024,且 (SDK 版本以 rk 开头,或者激活时间在 2026-01-01 到 2026-01-30 之间)”这一组合条件的表达式;具体形式可参考规则中心概念文档中的示例。


核心概念:规则引擎 | 03-业务侧集成 | 3.2 交互时序图

3.2 交互时序图

以下展示了设备、业务服务、规则引擎之间的交互时序:

Mermaid Diagram Code:

sequenceDiagram
    participant Device as "设备 (Device)"
    participant Service as "业务服务 (Service)"
    participant RuleEngine as "规则引擎 (Rule Engine)"
    participant DB as "数据库/缓存 (DB/Cache)"

    Device->>Service: 请求配置 (MAC, Params)
    Service->>RuleEngine: 调用 matchBusinessIds(Type, MAC)
    RuleEngine->>DB: 获取设备画像 & 候选规则
    DB-->>RuleEngine: 返回数据
    RuleEngine->>RuleEngine: 执行匹配逻辑 (初筛 + 精筛)
    RuleEngine-->>Service: 返回匹配的 Business IDs
    Service->>DB: 根据 Business IDs 查询业务配置
    DB-->>Service: 返回配置详情
    Service-->>Device: 返回最终配置 JSON

核心概念:规则引擎 | 03-业务侧集成 | 3.3 域名分发示例

3.3 域名分发示例

域名分发业务的规则调用示例:

3.3.1 参数说明

{
"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": ""
}

这个过程完全是自动化的,毫秒级完成,确保每个设备都能获取到符合其特征的精准配置。


核心概念:规则引擎 | 03-业务侧集成 | 3.3.2 apiFox提交数据

3.3.2 apiFox提交数据

apiFox提交数据


核心概念:规则引擎 | 03-业务侧集成 | 4. 设备数量统计

4. 设备数量统计

规则引擎为各业务模块提供了统一的设备数量统计机制,帮助运营人员直观地了解策略覆盖的设备范围。

4.1 支持业务

目前以下业务场景的列表页及详情页支持查看设备数量:

  • 域名分发:域名列表、UOTA列表
  • 黑名单:黑名单列表
  • Launcher广告:Launcher广告位配置
  • 任务推送:APK任务推送
  • UOTA升级:UOTA自升级配置

4.2 交互说明

列表展示

在业务列表中,系统会显示当前策略覆盖的设备去重总量。

  • 如果显示具体数字(如 1024),表示这是最近一次计算的缓存结果。
  • 如果显示 【未计算】--,表示该条数据尚未触发过计算。

黑名单列表设备数量

任务推送列表设备数量

重新计算

点击列表中的设备数量(或【未计算】区域),将弹出详情浮层或对话框。

  • 查看详情:可以查看最近一次的计算时间。
  • 重新计算:点击 【重新计算】 按钮,系统将实时扫描数据库,重新统计覆盖的设备数量并更新缓存。

设备数量详情与重算

4.3 统计规则与限制

为了让您更好地理解设备统计数据的含义,请注意以下计算规则:

  1. 计算依据(仅MAC与渠道)

    • 统计仅基于 MAC配置渠道配置 进行计算。
    • 忽略项:更高级的过滤条件(如地区限制EL表达式逻辑)在统计时会被忽略。因此,统计结果代表的是策略的最大潜在影响范围,而非最终实际命中的精确值。
  2. 去重逻辑

    • 单条规则内:如果一条规则同时配置了 MAC 和渠道,系统取两者的交集
    • 多条规则间:如果一个业务绑定了多条规则,系统会将各条规则覆盖的设备取并集,并自动去除重复设备。
  3. 全量设备判定

    • 如果一条规则未配置任何 MAC 或渠道,系统视为全量设备
    • 如果一个业务绑定的多条规则中,只要有任意一条是全量规则,则整个业务的统计结果即为全量设备

核心概念:规则引擎 | 03-业务侧集成 | 5. 集成常见问题 (FAQ)

5. 集成常见问题 (FAQ)

4.1 为什么绑定了规则但设备没有生效?

  1. 缓存原因:规则引擎有缓存机制(Redis + 本地缓存),修改后通常需要等待几秒或手动触发刷新。
  2. 审批状态:对于需要审批的业务(如黑名单),规则变更后必须通过审批流程才能生效。
  3. 匹配条件:检查设备的画像数据(MAC/渠道/地区)是否真的符合规则设定的条件。
  4. 数量限制:某些业务类型可能有数量限制(例如只返回优先级最高的一条),请检查业务侧的限制逻辑。

4.2 如何调试规则匹配?

  • 使用后台提供的“规则模拟测试”功能(如果有)。
  • 查看 RuleRunUtil 的日志输出,确认“初筛”和“精筛”的通过情况。
AI 问答