BI

魔方多终端项目适配方案

项目背景

业务现状:物理隔离

平台按终端划分,App/H5 拆分为独立的 AppID,底层数据表物理隔离。

前端交互逻辑 切换 AppID

新项目类型:数据互通

新增“互通型”业务,App与H5需共用同一项目容器,底层数据合并。

数据存储层 单库单表聚合

核心挑战与诉求

  • 🎯维持前端“顶部 Tab”既有体验
  • 🎯实现单项目内的逻辑视图参数过滤
  • 🎯解决无筛选项报表的“黑盒”冲突

架构对比

系统项目分类策略对比 💡 试试点击下方的 Tab 切换查看不同链路效果

Legacy Mode

物理隔离模式 (存量)

前端操作
切换全局环境变量
change appid = 10100002
AppID (多端) 10100002
AppID (APP) 1010000201
AppID (H5) 1010000202
  • 各端数据物理隔离,表结构可不同
  • 对现有存量项目保持绝对兼容
New Feature

数据互通模式 (新增)

前端操作
触发全局拦截器 (Context Filter)
set global_terminal_filter = 'app, h5'
单表互通 数据库: AppID 10100042
WHERE channel.terminal IN ('app', 'h5')
  • 底层存储一份数据,通过渠道类型区分不同端
  • 全局传参限制数据范围和筛选项

报表适配方案

各类型报表的全场景适配策略与控制机制

报表类型 备注 渠道筛选 控制方式 适配方案
运营-通用报表 项目概况 后端 全局传参限制数据范围
iOS对账 数分 仅app模板有,h5模板无该报表
其它通用报表 后端 全局传参限制数据范围和筛选项
运营-定制报表 数分自由配置 ⚠️ 数分 子项目可在后台绑定单独模板,以控制可见报表范围
分析-多维看板 数分自由配置 ⚠️ 数分 每个看板都走单独分享机制,可由数分控制适配

产品适配方案

前后端及配置层的核心重构点清单

后台改动:项目配置项扩展

在现有的“编辑子项目”弹窗逻辑中,增加多终端方案类型的开关,并基于选项动态展示配置项。

编辑子项目

子项目 1

前台改动:切换终端动态适配数据范围和筛选项

切换不同端 Tab 时,后端对前端进行全局传参,通过 channel 的 terminal 字段,控制对应端下仅有该端数据、仅有该端渠道筛选

筛选渠道
只有含有项目数据的渠道才会显示在渠道列表中 全部渠道表

数据报表

数据日期 渠道 新增账号数
2026-04-13 游卡-iOS(410004) 1,245
2026-04-13 游卡-安卓(310003) 3,450
2026-04-13 TapTap-安卓(官方)(310004) 2,104
2026-04-13 微信-H5(120001) 8,302
2026-04-13 抖音-H5(120005) 5,110