项目背景
业务现状:物理隔离
平台按终端划分,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')
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