版本 v3.0
日期 2026-08-15
密级 内部
编制 技术调研组
适用 管理层决策评审
版本沿革
| 版本 | 日期 | 主要变更 |
|---|---|---|
| v1.0 | 2026-08-14 | 地图可视化、详情下钻、基础统计三项需求的可行性调研 |
| v2.0 | 2026-08-14 | 补充账号安全处置、分级权限管控、异常提醒三项需求 |
| v3.0 | 2026-08-15 | 新增经营指标体系(销售额/地区业绩/渠道贡献)、大屏布局故事线、联动下钻、智能洞察、视觉规范、移动端轻量版;修正 v2.0 关于权限基础的一处判断 |
本报告所有技术判断均来自对现有系统代码的逐项检索,关键结论在附录 A 给出具体出处,可逐条复核。
为避免误导决策,先声明哪些内容可信、哪些待验证:
| 类别 | 状态 |
|---|---|
| 系统有没有这项数据、字段结构如何、现有功能怎么实现 | ✅ 已逐项验证 |
| IP 归属地解析能力(精度、速度) | ✅ 已实机跑通,结果见 §11.2 |
| 数据存量(多少机构填了地址、有多少笔订单、日均登录量) | ❌ 未实测。调研环境按规定不连接生产数据库 |
| 性能表现(大屏并发、查询耗时) | ❌ 未实测,缺生产同栈环境 |
凡涉及数量、比例、金额的地方,本报告一律不提供未经实测的数字。 需要实测的部分已整理为独立的《数据摸底 SQL》交付件,由具备权限的同事执行后回填。
这个项目值得做,且比最初设想的价值更大——但它的成败不取决于地图画得好不好看,取决于两件数据基础工作能不能补上。
最初的需求是把机构位置和登录情况画到地图上。调研中发现,系统的结算模块里已经存有完整的经营数据:每一笔服务订单的金额、每一次到账确认、每个渠道的收益分成、按账期的结算单——全都在库里,且与机构、渠道是强关联的。
这意味着这块屏可以从"运维监控屏"直接升级为"经营驾驶舱":左上角挂的不只是"今天多少人登录",而是总销售额、本月业绩、各省排名、各渠道贡献。
对管理层的意义:同样一次投入,交付的不是一个IT监控工具,而是一个经营决策看板。
系统从建立至今没有采集过机构的地理位置。没有省市字段,没有行政区划字典;机构地址在入驻表单里是选填项,审核环节不校验。
这一个缺口,同时卡住了四件事:
换个角度看,这也是好消息:补地址这一件事,一次性解锁四项能力。它的投入产出比,比最初评估的高得多。
系统里"销售额"有三种不同口径,数字互不相同:
| 口径 | 含义 | 特点 |
|---|---|---|
| 订单应收 | 签了单、约定要收的钱 | 反映签约规模,但含未收回的 |
| 确认到账 | 财务确认已经收到的钱 | 反映真实现金流入 |
| 收益快照 | 进入结算流程、可分成的钱 | 与渠道结算单严格对应 |
这三个数在任何时点都不会相等。 大屏必须明确主口径,否则会出现"大屏说本月 100 万、财务报表说 80 万"的局面——管理层对数据的信任一旦崩塌,这块屏就没人看了。
此外还有一个容易踩的坑:公司的结算账期是半月制(1-15 日为上半月,16 日至月末为下半月),不是自然月。大屏若按自然月统计"本月销售额",会与结算单对不上。
| 项目 | 内容 |
|---|---|
| 总工期 | 约 8~10 周(单人投入 38~48 人日) |
| 可提前方案 | 分级权限后置,整体提前约 1.5 周 |
| 关键前置 | 机构地址补录,须与技术开发并行启动(唯一一件加人也快不了的事) |
| 一次性投入、长期复用 | 机构地理数据将成为可复用的基础数据资产,支撑区域运营、渠道保护、市场投放等后续需求 |
跑一次数据摸底(6 条只读查询,约 1 分钟)。
结果直接决定项目排期是 8 周还是 12 周。在此之前的任何排期都是估算。
公司目前采用"渠道创建 → 机构入驻 → 机构账号独立登录"的三级管理模式:渠道由平台创建并负责拓展维护机构,机构提交入驻资料并签约后开通,机构下的席位账号独立登录使用系统,按席位售卖。
这套模式在扩张期运转正常,但管理侧的观测手段没有跟上:
看不到"在哪里"。 系统从未采集地域信息,无法回答"我们在哪些省有机构""哪个区域覆盖薄弱""某渠道的机构集中在哪"。
看不到"谁在用"。 登录记录完整落库,但只能逐条翻表格查询,无法一眼判断系统整体活跃程度,也无法察觉某区域机构的集体沉默。
看不到"钱的分布"。 经营数据(订单、到账、收益分成)虽然完整,但只能在结算模块里按账期、按渠道逐张单据查看,没有任何一个视图能同时回答"这个月卖了多少、哪个省卖得好、哪个渠道贡献大"。
发现问题到处置问题之间是断的。 即便发现异常账号,处置动作要切换到其他管理页面完成,中间隔着多次跳转查找。
调研确认了六项事实:
① 登录行为已完整落库,且记录真实公网 IP。
认证审计表完整记录每次登录的账号、IP、终端与精确时间,网关与应用的代理配置配套,记录的是用户真实公网地址而非机房内部地址。实时上屏不需要新增任何埋点。
② 渠道、机构、签约、登录、经营数据同处一个物理数据库。
结算系统虽已拆分为独立服务,但生产部署与核心系统同库共存(通过独立数据库账号做权限隔离)。跨模块关联可用一条 SQL 完成,不需要跨服务接口编排。
③ 经营数据结构完整、时间维度齐全。
服务订单(含金额、类型、席位数、状态、时间)、到账确认(含确认金额与确认时间)、收益快照(含实收、渠道分成、账期)、结算单(含账期总额、状态)四张表构成完整链路,且订单表已有"机构+时间"的复合索引。
④ 渠道级数据隔离已有生产级实现。
结算模块中,渠道账号访问自己的收益账本时,系统从数据库反查其所属渠道(不信任客户端声明)并据此过滤数据。这是一套已在生产运行的行级数据权限实现,大屏可直接沿用这一模式。
⚠️ 此处修正 v2.0 报告的一处判断。 v2.0 称"系统完全没有数据行级权限基础",该判断对核心系统成立,但忽略了结算模块已有的渠道隔离实现。修正后的结论是:渠道管理员权限可复用现有模式,只有区域管理员需从零建设。 这降低了权限阶段的实施风险。
⑤ 系统没有任何地理维度数据。
无省市字段,无行政区划字典。机构地址两个来源:门店分享名片的选点位置(业务不强制)、入驻签约地址(表单选填,审核只校验营业执照、门头照、视光师资质、设备照四类文件,不校验地址)。
⑥ 系统没有"在线状态"概念。
登录采用无状态令牌,登录后不打卡、不心跳、退出不落库。系统能回答"该账号今天上午十点登录过",无法回答"该账号此刻是否在线"。
按业务价值排序:
大屏最常见的失败方式,是把十几个图表平铺在屏幕上——每个图表单独看都对,合起来看不出结论。领导站在屏幕前三十秒,得不出任何判断,第二次就不会再来看。
本方案按"总览 → 分布 → 贡献 → 趋势 → 风险"的顺序组织,让视线自然流动,三十秒得出结论。
┌───────────────────────────────────────────────────────────────────────────┐
│ 渠道机构经营驾驶舱 2026-08-15 周五 14:32 [投屏模式] │
├──────────────────┬────────────────────────────────┬───────────────────────┤
│ ① 核心指标(左上) │ ② 中国地图(中央主区) │ ③ 排行榜(右上) │
│ │ │ │
│ 累计销售额 │ ● ● │ 省份业绩 TOP 10 │
│ ¥ 12,345,678 │ ● ●● │ ▓▓▓▓▓▓▓ 广东 ¥xxx │
│ │ ●● ● │ ▓▓▓▓▓ 江苏 ¥xxx │
│ 本月销售额 ↑12% │ ●●● │ ▓▓▓ 浙江 ¥xxx │
│ ¥ 1,234,567 │ ● ● │ ───────────────── │
│ │ │ 渠道贡献 TOP 10 │
│ 今日活跃机构 86 │ ● 在线 ● 今日活跃 │ ▓▓▓▓▓▓ 渠道A ¥xxx │
│ 渠道总数 12 │ ● 近期 ● 沉默 │ ▓▓▓▓ 渠道B ¥xxx │
│ 机构总数 328 │ │ │
│ 未定位 41 │ [全国] [华东] [华南] ... │ [切换:业绩/机构数] │
├──────────────────┴────────────────────────────────┼───────────────────────┤
│ ④ 活跃与业绩趋势(左下) │ ⑤ 异常提醒(右下上半) │
│ │ 🔴 多地登录 3 起 │
│ 登录次数 ╱╲ ╱╲ │ 🟠 非工作时间 7 次 │
│ ╱ ╲╱╲╱ ╲╱╲ │ 🟡 频繁重连 2 家 │
│ 活跃机构 ───────────── │ ──────────────── │
│ │ ⑥ 入驻/拓展进度(右下) │
│ 近 30 天 [7日|30日|90日] │ 机构A ▓▓▓▓░░ 资料待审 │
│ │ 机构B ▓▓▓▓▓▓ 已开通 │
├────────────────────────────────────────────────────┴───────────────────────┤
│ 💡 今日关键洞察:今日全国活跃机构 86 家,较昨日上升 5%,华东区贡献最大; │
│ 发现 3 起多地登录异常,建议关注。本月销售额已达上月同期的 112%。 │
└────────────────────────────────────────────────────────────────────────────┘
| 顺序 | 区域 | 回答什么问题 | 停留 |
|---|---|---|---|
| 第 1 眼 | ① 左上核心指标 | "整体怎么样?" 卖了多少、多少人在用 | 5 秒 |
| 第 2 眼 | ② 中央地图 | "分布在哪?" 哪里密集、哪里空白、谁在活跃 | 10 秒 |
| 第 3 眼 | ③ 右上排行榜 | "谁贡献大?" 哪个省、哪个渠道扛业绩 | 8 秒 |
| 第 4 眼 | ④ 左下趋势 | "在变好还是变坏?" | 5 秒 |
| 第 5 眼 | ⑤⑥ 右下风险与进度 | "有什么要我管的?" | 5 秒 |
| 收尾 | 💡 底部洞察 | "所以结论是什么?" 直接给判断 | 2 秒 |
设计要点:左上是视觉黄金位,放最重要的钱;中央面积最大,放最需要探索的地图;右侧竖排适合排行;底部横条适合趋势与结论。异常提醒放右下,是因为它需要被看到但不该抢戏——正常情况下这块应该是安静的。
需求原文中"左上:全国总览核心指标(总销售额、今日活跃机构数、渠道总数等)"已完整落地。此处仅补充两项:
本章逐项说明每个指标的数据来源、是否现成、图表选型与选型理由。
系统中存在三个可称为"销售额"的数据,数值互不相同:
| 口径 | 数据来源 | 业务含义 | 适用场景 |
|---|---|---|---|
| A. 订单应收 | 服务订单的应收金额 | 已签约、约定应收的金额 | 反映签约规模与销售势头 |
| B. 确认到账 | 到账确认的确认金额 | 财务已确认收到的金额 | 反映真实现金流入 |
| C. 收益结算 | 收益快照的实收金额 | 进入结算流程、可与渠道分成的金额 | 与渠道结算单严格对应 |
建议方案:主口径用 B(确认到账),副口径展示 A(订单应收)。
理由:
- 老板最关心"钱到账没有",到账金额是真实经营成果;
- 同时展示应收,可反映"已签未收"的规模,这本身是有价值的管理信息;
- C 口径与渠道结算强绑定,更适合放在渠道贡献榜(见 §3.3),而不是总销售额。
大屏呈现建议:主数字显示到账金额,下方小字标注"应收 ¥xxx,待收 ¥xxx"。一个指标讲清三件事。
公司结算账期是半月制:每月 1-15 日为上半月,16 日至月末为下半月。这是系统中已固化的规则。
风险:大屏若按自然月统计"本月销售额",与财务的结算单口径不一致,数字对不上。
建议:大屏默认按自然月展示(符合管理层直觉),但在指标旁的口径说明中明确标注"按自然月统计,与半月账期结算单口径不同",并提供切换到账期视图的选项。
| 指标 | 数据来源 | 现状 | 图表类型 | 选型理由 |
|---|---|---|---|---|
| 累计销售额 | 到账确认表 | ✅ 现成 | 大数字卡片 | 单一数值,字号是唯一重点,任何图表都是画蛇添足 |
| 今日销售额 | 到账确认表(按确认时间) | ✅ 现成 | 大数字 + 环比箭头 | 数值 + 趋势方向,箭头比百分比更快被识别 |
| 本月销售额 | 到账确认表 | ✅ 现成 | 大数字 + 进度条 | 进度条可对比上月同期,一眼看出快慢 |
| 同比 / 环比 | 到账确认表(按时间聚合) | ✅ 现成 | 箭头 + 百分比(红绿) | 上升绿、下降红,颜色先于文字被大脑处理 |
| 已签未收金额 | 服务订单应收 − 到账确认 | ✅ 现成 | 副指标小字 | 重要但非第一优先,不与主数字争夺注意力 |
| 项目 | 说明 |
|---|---|
| 数据来源 | 到账确认(金额)+ 机构(归属)+ 机构地理信息(省份) |
| 现状 | 🔴 金额现成,省份归属缺失 —— 卡在地理数据缺口 |
| 图表类型 | 横向条形图(TOP 10)+ 地图省份着色(双呈现) |
| 选型理由 | 横向条形图的省份名称可完整横排,中文标签不必倾斜;数值差异用长度表达最直观。地图着色负责"空间感知",条形图负责"精确排名",两者互补 |
说明:本指标是"补地址"这项工作最有价值的产出之一。地址一旦补齐,销售的地理分布立即可用,无需额外开发。
| 项目 | 说明 |
|---|---|
| 数据来源 | 收益快照(含渠道分成)+ 渠道表 |
| 现状 | ✅ 完全现成,且已有生产在用的聚合逻辑 |
| 图表类型 | 横向条形图 + 占比标签 |
| 选型理由 | 渠道数量通常在十几个量级,条形图排名清晰;不建议用饼图——饼图在超过 5 个分类时人眼无法比较相邻扇区大小,且远距离观看更难辨认 |
重要提示:系统已有渠道收益的聚合实现(用于结算单)。大屏必须复用该逻辑,不得另写一套,否则会出现大屏与结算单数字不一致的情况。
| 项目 | 说明 |
|---|---|
| 数据来源 | 认证审计表(登录次数)+ 行为流水表(活跃机构数) |
| 现状 | ✅ 现成,且相关字段已有索引 |
| 图表类型 | 双轴折线图(登录次数用面积折线,活跃机构数用实线) |
| 选型理由 | 折线是表达时间趋势的标准选择;两个指标量纲不同(次数 vs 家数)故用双轴;登录次数用半透明面积填充,可在视觉上区分主次而不增加颜色数量 |
| 时间粒度 | 默认近 30 天,可切 7 日 / 90 日 |
需求中希望用甘特图展示"机构入驻进度、渠道拓展进度"。调研结果如下:
系统已有的:机构入驻的完整状态流转(9 个状态)及各节点的实际发生时间(提交时间、审核时间、开通时间、服务起止时间);服务订单的 8 个状态及创建时间。
系统没有的:计划完成时间。真正的甘特图需要"计划工期 vs 实际工期"的对比,而系统只记录了实际发生的时间点,从未记录过"计划什么时候完成"。
| 方案 | 说明 | 图表类型 | 评价 |
|---|---|---|---|
| A. 状态泳道图(建议) | 展示每家在途机构当前处在哪个环节、已停留多久,超期的高亮 | 横向进度条 + 状态标签 | 零补录,且比甘特图更有决策价值——老板真正关心的是"卡在哪、卡多久了" |
| B. 真甘特图 | 保留计划工期对比 | 甘特图 | 需业务补录每个环节的计划时长标准,属新增管理流程 |
建议选 A,并配合一个入驻漏斗图(提交资料 → 审核通过 → 已付款 → 已开通,各环节数量与转化率)。漏斗图能立刻暴露"卡在哪个环节",这是渠道管理的核心抓手。
若业务坚持要甘特图,需先明确各环节的标准时长(如"资料审核 2 个工作日内完成"),补录后即可实现。
| 指标 | 数据来源 | 现状 | 图表类型 | 选型理由 |
|---|---|---|---|---|
| 多地登录 | 认证审计 + IP 归属地 | ✅ 可实现 | 告警列表 + 数字角标 | 异常是"待办事项"不是"统计数据",列表才能点击处置 |
| 非工作时间登录 | 认证审计(时间) | ✅ 可实现 | 同上 | 同上 |
| 频繁重连 | 认证审计(重复登录频次) | 🟡 代理指标 | 同上 | 详见 §7.6 |
| 异常趋势 | 上述汇总 | ✅ 可实现 | 迷你柱状图(近 7 日) | 放在告警区顶部,用于判断"异常是偶发还是持续" |
| # | 指标 | 数据是否现成 | 阻塞项 |
|---|---|---|---|
| 1 | 累计/今日/本月销售额、同比环比 | ✅ | 需业务确定主口径 |
| 2 | 各地区销售排名 | 🔴 金额有、省份无 | 地址补录 |
| 3 | 各渠道销售贡献 | ✅ 完全现成 | 无 |
| 4 | 机构活跃趋势 | ✅ | 无 |
| 5 | 入驻/拓展进度 | 🟡 实际时间有、计划时间无 | 需选方案 A 或补录 |
| 6 | 异常提醒 | ✅ 三项可实现,一项用代理指标 | 无 |
| 7 | 全国活跃机构数 | ✅ 复用现有口径 | 无 |
| 8 | 各省份活跃度 | 🔴 | 地址补录 |
| 9 | 各渠道机构分布 | ✅ | 无 |
结论:九项指标中,六项数据完全现成,两项卡在地址补录,一项需业务补充规则。
大屏不止"可看",还要"可查"。从看到异常到定位问题,应在三次点击内完成。
点击地图"广东省"
├→ 地图:广东省高亮放大,其余省份变暗,展开显示该省机构点位
├→ 右上排行榜:从"省份业绩榜"自动切换为"广东省内城市业绩榜"
├→ 右上渠道榜:过滤为"在广东有机构的渠道"排名
├→ 左上核心指标:全部切换为广东省口径,标题追加"· 广东省"
├→ 左下趋势图:切换为广东省的活跃与业绩趋势
└→ 顶部出现面包屑「全国 > 广东省」,点击可返回
关键设计:切换省份时,所有指标卡片的标题必须同步变化(如"本月销售额 · 广东省")。若标题不变而数字变了,会造成严重误读。
点击右上"渠道 A"
├→ 地图:该渠道名下机构点位高亮放大,其他机构降至 20% 透明度
├→ 左上核心指标:切换为该渠道口径
├→ 左下趋势图:切换为该渠道的业绩与活跃趋势
└→ 顶部面包屑「全国 > 渠道 A」
业务价值:渠道经理汇报时,一次点击就能看到自己负责渠道的全国分布与业绩,不必单独出报表。
点击"多地登录 · XX视光中心"
├→ 地图自动定位到该机构并高亮
├→ 弹出机构详情面板:
│ · 机构基础信息、归属渠道
│ · 本次异常详情(两地 IP、归属地、时间间隔)
│ · 近期登录记录
└→ 面板底部:处置按钮区(仅操作模式下可见,见 §9)
业务价值:这是"发现问题到解决问题"链路最短的一条,是大屏区别于静态报表的核心价值。
| 约定 | 说明 |
|---|---|
| 状态可回退 | 任何下钻都可通过面包屑逐级返回,且提供"重置"按钮一键回到全国视图 |
| 联动范围明示 | 下钻时被联动的区域有短暂高亮提示,让用户知道"哪些跟着变了" |
| 空数据处理 | 下钻后无数据的区域显示"该省暂无机构"而非空白图表 |
| 投屏模式自动巡航 | 无人操作 3 分钟后,可选自动轮播各大区视图(会议室常驻场景) |
大屏最大的价值不是展示数据,而是给出结论。老板不该自己从图表里推导判断。
在屏幕底部通栏,自动生成 1~2 句话的当日结论。
| 规则类型 | 触发条件 | 输出示例 |
|---|---|---|
| 活跃度变化 | 今日活跃机构数与昨日差异 > 5% | "今日全国活跃机构 86 家,较昨日上升 5%" |
| 区域贡献 | 找出活跃增量最大的大区 | "华东区贡献最大" |
| 业绩进度 | 本月累计与上月同期对比 | "本月销售额已达上月同期的 112%" |
| 异常汇总 | 当日异常事件数 > 0 | "发现 3 起多地登录异常,建议关注" |
| 沉默预警 | 连续 7 日无活动的机构数环比上升 | "有 12 家机构连续一周无登录,较上周增加 4 家" |
| 渠道异动 | 某渠道业绩环比变化 > 20% | "渠道 A 本月业绩环比增长 23%" |
不做趋势预测、不做原因归因、不做行动建议的自动生成。这类结论需要业务上下文,规则引擎给不出可靠答案,给错了比不给更糟。
| 元素 | 规格 | 说明 |
|---|---|---|
| 核心数字(销售额等) | 不低于屏幕高度的 1/10 | 1080P 屏即不小于 108px;4~6 米外可读 |
| 指标标题 | 核心数字的 1/3 左右 | 说明性文字,不抢主体 |
| 排行榜条目 | 屏幕高度的 1/30 以上 | 保证 3 米内可读 |
| 表格与明细 | 不低于 16px | 明细数据不属于远观内容,仅在近距离操作时查看 |
| 洞察通栏 | 屏幕高度的 1/25 以上 | 需被看清,但不与核心数字竞争 |
主色控制在 4 种以内:
| 用途 | 色系 | 说明 |
|---|---|---|
| 背景 | 深色(深蓝灰) | 深色背景在大屏环境下反光少、对比强,且长时间显示不刺眼 |
| 正常/主数据 | 蓝色系 | 中性、专业,作为主色调 |
| 活跃/增长 | 绿色系(青绿) | 用于活跃状态、正向增长 |
| 异常/告警 | 红色 / 橙色 | 红色仅用于真正需要立即处置的告警,不得用于装饰 |
硬性约束:
1. 红色是稀缺资源。 正常状态一律不用红色,否则真出问题时无法引起注意;
2. 机构点位四状态用同一色系的明度变化(在线最亮 → 沉默最暗),而非四种不同颜色,避免颜色数量失控;
3. 深色背景下文字对比度须满足无障碍标准,确保远距离和侧向观看的可读性;
4. 不依赖颜色单独传递信息 —— 状态除颜色外还需有形状或文字标识,兼顾色觉障碍人群。
| 允许 | 禁止 |
|---|---|
| 登录点亮的短暂高亮(约 3 秒后回落) | 3D 地图、3D 柱状图 |
| 数字变化的滚动过渡(不超过 1 秒) | 页面切换的过场动画 |
| 排行榜位次变化的平滑移动 | 持续旋转、闪烁、粒子特效 |
| 告警出现时的一次性闪烁提示 | 全屏扫光、飞线特效 |
理由:大屏是常年运行的,任何持续动效都会增加渲染负担并导致卡顿;3D 图表在远距离观看下会因透视产生数值误判(前面的柱子看起来比实际更大)——这是数据可视化的大忌。
| 视野层级 | 显示方式 |
|---|---|
| 全国视野 | 仅显示省级聚合:每省一个圆,大小表示机构数量,颜色表示活跃度 |
| 大区/省视野 | 显示城市级聚合:每市一个圆,标注数量 |
| 城市视野 | 显示单个机构点位,超过阈值时仍聚合,点击展开列表 |
这是必须的设计,不是可选项。 若全国视野直接铺所有机构点位,密集区域(如珠三角、长三角)会糊成一片,既看不清也拖慢渲染。
| 编号 | 子需求 | 现状 | 判定 |
|---|---|---|---|
| M1 | 中国地图底图、省级着色 | 前端无地图库 | 🆕 新建 |
| M2 | 机构点位按坐标落图 | 无坐标数据 | 🔴 卡点 |
| M3 | 登录后点位点亮 | 登录数据现成 | 🟡 部分 |
| M4 | 省级热力着色(活跃度/业绩) | 依赖 M2 | 🔴 卡点 |
| M5 | 三级点位聚合 | — | 🆕 新建(§6.4) |
| M6 | 省份下钻联动 | — | 🆕 新建(§4.2) |
两个现有来源均不可靠(见 §1.2)。建议三层兜底取值:
原则:绝不允许把未定位机构静默丢弃。
| 方案 | 含义 | 评价 |
|---|---|---|
| A. 注册地 | 签约时登记的位置 | 稳定权威,但不反映实际使用地 |
| B. 登录地 | 本次登录的 IP 归属地 | 实时性好,但城市级精度、移动网络会漂移 |
| C. 双轨(建议) | 底图点位用注册地,点亮用登录地 | 各用最合适的数据源;两者不一致本身就是风控信号 |
| 字段 | 来源 | 现状 |
|---|---|---|
| 机构名称、联系人、电话、启用状态、入驻时间 | 机构表 | ✅ 现成 |
| 归属渠道 | 签约档案 → 渠道表 | ✅ 现成 |
| 登录 IP(脱敏) | 认证审计表 | ✅ 现成 |
| 登录时段、终端类型 | 认证审计表 | ✅ 现成 |
| 在线状态 | — | 🔴 需先定口径 |
| 签约状态、席位数、有效期 | 签约档案、用户表 | ✅ 现成 |
| 该机构累计/本月业绩 | 到账确认、服务订单 | ✅ 现成(v3 新增) |
| 历史订单列表 | 服务订单 | ✅ 现成(v3 新增) |
| 近期活跃行为 | 行为流水表 | ✅ 现成 |
判定:详情面板九成以上是现成数据,只需查询组装。v3 版本新增了经营信息,使详情面板从"运维视角"升级为"客户视角"——点开一家机构,既看得到它在不在线,也看得到它贡献了多少业绩。
系统无心跳机制,无法精确回答"此刻是否在线"。建议用活跃度四级替代:
| 状态 | 口径(建议值,需业务确认) | 大屏表现 |
|---|---|---|
| 在线 | 最近 15 分钟内有登录或业务操作 | 最亮 + 呼吸动效 |
| 今日活跃 | 今日有登录或业务操作 | 亮 |
| 近期活跃 | 7 日内有活动 | 中 |
| 沉默 | 超过 7 日无活动 | 暗 |
优点:零新增埋点,纯查询实现,口径可解释可审计。
| 操作 | 现状 |
|---|---|
| 启用 / 禁用账号 | ✅ 已有接口 |
| 重置密码 | ✅ 已有接口 |
| 解锁被锁定账号 | ✅ 已有接口 |
| 操作日志 | ✅ 可复用现有审计表(含操作前后快照、操作理由、请求编号) |
| 强制下线 | 🔴 需改造 |
系统现有两套"下线"机制,均不能直接满足需求:
机制一:令牌黑名单。 用户主动退出时把其令牌加入黑名单。
局限:管理员踢人时,服务端并不持有对方的令牌(无状态令牌不落库),此机制用不上。
机制二:席位设备绑定。 席位账号的令牌携带设备标识,每次请求都与数据库记录比对,不一致即拒绝。
这是现成的能力:对机构席位账号,只需修改数据库中的设备标识,该账号所有请求立即失效——即时生效,几乎零成本。
对管理员、机构管理员、渠道账号则需新建机制:按账号记录失效时间戳,令牌校验时比对其签发时间。
⚠️ 最易遗漏的一点:访问令牌 30 分钟过期,但续期凭证最长可达一年。若只废止访问令牌,被踢用户 30 分钟后会自动续上——等于没踢。强制下线必须同时废止续期凭证。
见 §3 完整指标体系。此处强调一条:
所有指标口径必须与现有系统保持一致。 系统现有的机构洞察功能已有一套活跃度口径,结算模块已有一套渠道收益聚合逻辑。大屏必须复用,不得另写。 否则会出现同一指标在两个页面显示不同数字的情况,管理层对数据的信任会瞬间归零。
现有权限体系为"角色 → 菜单开关"结构,控制"能否进入某页面"。
但结算模块已实现了渠道级的数据行级隔离:渠道账号访问收益账本时,系统从数据库反查其所属渠道(不信任客户端声明),并据此过滤数据;账号停用或换绑后下一次请求即失效。
| 角色 | 现状 | 缺口 |
|---|---|---|
| 总管理员 | ✅ 已有,全量可见 | 无 |
| 渠道管理员 | 🟢 有成熟先例可复用 | 渠道账号目前不在管理后台准入名单,需开放准入或为渠道做独立大屏入口 |
| 区域管理员 | 🔴 全库无此概念 | 区域定义、区域与省份映射、管理员与区域绑定、角色本身——均需从零建设 |
数据范围过滤必须在后端接口层强制执行,不能靠前端隐藏。
前端隐藏只是"看不见",接口照样返回全量数据。渠道之间存在竞争关系,渠道 A 看到渠道 B 的机构名单与业绩,属于严重的商业信息泄露。 验收时必须专项测试:用渠道账号直接调用接口,验证返回数据确实被过滤。
处置类接口同样需要范围校验,不能只在查询接口做过滤——否则会出现"看不到但能操作"的越权漏洞。
| 异常类型 | 可行性 | 说明 |
|---|---|---|
| 多地登录 | ✅ 可实现 | 数据基础完备。可进一步做"物理不可达"判定(如 1 小时内两地登录) |
| 非工作时间登录 | ✅ 可实现 | 需注意时区换算,系统内有现成先例 |
| 异地登录(登录地 ≠ 注册地) | ✅ 可实现 | 采用双轨方案后自然获得 |
| 暴力破解 / 撞库 | ✅ 已有防护 | 系统已有失败次数限制与 IP 维度横向扫描防护,大屏只需展示已有信号 |
| 频繁掉线 | 🔴 当前无法实现 | 见下 |
系统目前物理上无法统计掉线。 没有心跳机制,也不记录会话终止——系统只知道"何时登录",不知道"何时断开",因此"掉线"事件在数据层不存在。
| 方案 | 说明 | 成本 |
|---|---|---|
| A. 代理指标(建议) | 用"短时间内重复登录次数异常"近似表征(频繁掉线通常伴随频繁重连) | 低 |
| B. 新增心跳上报 | 精确,但需改造全部客户端(H5、平板、小程序) | 高 |
| C. 本期不做 | 明确剔除 | 零 |
建议选 A,且大屏上必须如实标注为"频繁重连"而非"掉线"。指标名称与实际口径必须一致,这是数据可信度的底线。
系统现有的统一错误上报接口目前是占位实现,只写日志、不落表、不推送。已具备的推送通道有短信与微信订阅消息。
建议本期只做"大屏内提醒 + 落库可查",不做外部推送。 外部推送涉及告警规则配置、免打扰策略、误报处理,属独立的运营监控课题,混入本项目会显著拉长工期。
本章是全报告中最不该被跳过的一章。大屏失败的最常见原因不是技术,是"老板发现数字对不上,从此不再相信它"。
硬性原则:大屏不新增任何统计口径。
| 指标 | 必须复用的现有实现 |
|---|---|
| 活跃机构数 | 现有机构洞察模块的活跃口径 |
| 渠道收益 | 结算模块的收益聚合逻辑 |
| 登录统计 | 现有平台看板的登录口径 |
| 在线状态 | 本项目新定义,但一次定义后全系统统一 |
若某指标现有系统没有,先定义、后使用,并同步到相关报表,绝不允许大屏独有一套算法。
大屏核心指标区必须包含"未定位机构数",与机构总数并列展示。
理由:若全国 328 家机构中有 41 家没有地址,地图上只能显示 287 个点。如果不明示这 41 家的存在,管理层会误以为"我们只有 287 家机构",进而做出错误的市场判断。
这一条没有商量余地。宁可屏幕上难看,不可让数据说谎。
同理适用于:
- 金额统计中若有订单缺少金额,须标注"其中 X 笔金额待确认";
- 渠道排名中若有机构未关联渠道,须单列"未归属渠道"项。
每个指标卡片右上角设置一个小问号图标,鼠标悬停(或触屏点击)显示该指标的统计口径说明。
示例:
本月销售额
口径:本自然月内财务确认到账的金额合计
数据来源:到账确认记录
更新频率:每 15 秒
注意:与半月账期结算单口径不同
这个设计的真实作用,是在老板问"这数怎么和财务报表对不上"时,当场就能自证,而不是会后再查三天。这是保护项目本身的机制。
屏幕右上角常驻显示"数据更新于 HH:MM:SS",并在数据超过预期未更新时(如连续两个周期未刷新)显示醒目提示。
理由:大屏最危险的故障不是崩溃——崩溃看得见;而是静默停止更新,屏幕上还挂着昨天的数字,所有人以为是实时的。
| 模式 | 特征 |
|---|---|
| 投屏模式(默认) | 只读。所有处置按钮不可见(不是禁用,是不显示)。IP 全部脱敏。适合会议室、办公区常驻 |
| 操作模式 | 处置按钮可见。进入需重新输入密码。右上角显示醒目的模式标识与倒计时 |
切换规则:
- 投屏 → 操作:需重新输入当前登录账号的密码;
- 操作模式闲置超过设定时长(建议 5 分钟)自动退回投屏模式;
- 操作模式下屏幕边框显示警示色,让所有人都知道"现在这块屏是能动手的"。
设计理由:大屏常年挂着,若处置按钮长期可见,任何路过的人都可能误操作停掉客户账号。看板与操作台合一,必须有物理性的模式隔离。
| 要求 | 说明 |
|---|---|
| 二次确认 | 所有处置操作弹出确认框,明确显示"将对【XX机构 - XX账号】执行【禁用】" |
| 必填理由 | 理由为必填项,直接写入操作日志 |
| 实时留痕 | 操作日志实时可查,含操作人、时间、操作前后状态快照 |
| 状态立即回显 | 处置成功后,地图点位状态立即更新(如禁用后点位变灰),不等下一个刷新周期 |
| 失败明示 | 操作失败时明确提示原因,不静默失败 |
关于状态立即回显:这一条容易被忽略但极其重要。若管理员点了禁用、系统提示成功、但屏幕上点位还是亮的,人会本能地怀疑"到底成功没有",并可能重复操作。操作与反馈必须闭环。
| 角色 / 模式 | 显示方式 |
|---|---|
| 投屏模式(任何角色) | 220.181.**.** + 归属地 |
| 总管理员(操作模式) | 完整 IP + 归属地 |
| 渠道 / 区域管理员 | 220.181.**.** + 归属地 |
理由:归属地信息足以支撑业务判断(判断是否异地登录),完整 IP 只在深度排查时需要。默认最小化展示,是隐私合规的基本原则。
| 场景 | 应对 |
|---|---|
| 两人同时处置同一账号 | 处置请求携带请求编号做幂等(现有审计表已有该字段,系统内也有幂等实现先例) |
| 状态已被他人变更 | 操作前校验目标状态,已变更则提示"该账号状态已被 XXX 于 HH:MM 修改,请刷新后重试" |
| 责任追溯 | 操作日志记录前后快照,任何变更可追溯到人 |
┌────────────────────────────────────────────────────────────────┐
│ 数据驾驶舱大屏(全屏页面) │
│ ┌─────────┬────────────────────────┬─────────────────────┐ │
│ │ ① 指标模块│ ② 地图模块 │ ③ 排行模块 │ │
│ │ 销售/活跃 │ 分布/点亮/聚合/下钻 │ 省份榜/渠道榜 │ │
│ ├─────────┴────────────────────────┼─────────────────────┤ │
│ │ ④ 趋势模块 │ ⑤ 异常模块 │ │
│ │ 登录趋势/业绩趋势 │ ⑥ 进度模块 │ │
│ ├────────────────────────────────────┴─────────────────────┤ │
│ │ ⑦ 智能洞察模块(底部通栏) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ↓ 点击点位/告警 ⑧ 详情弹窗模块 │
│ └→ ⑨ 处置模块(受控·仅操作模式) │
└────────────────────────────────────────────────────────────────┘
↕
┌────────────────────────────────────────────────────────────────┐
│ ⑩ 权限模块(贯穿全部请求 · 后端强制) │
│ 菜单准入(已有) + 数据范围过滤(渠道可复用 / 区域需新建) │
└────────────────────────────────────────────────────────────────┘
↕
┌────────────────────────────────────────────────────────────────┐
│ 后端服务层 │
│ 大屏查询 │ 经营聚合 │ 处置服务 │ IP归属地 │ 异常检测 │ ⑪ 日志审计 │
└────────────────────────────────────────────────────────────────┘
↕
┌────────────────────────────────────────────────────────────────┐
│ 数据层(同一数据库 · 现有表为主) │
│ 机构│渠道│签约档案│服务订单│到账确认│收益快照│结算单 │
│ 登录审计│行为流水│操作审计 + 机构地理表(新) + 区域体系表(新) │
└────────────────────────────────────────────────────────────────┘
| 模块 | 要点 |
|---|---|
| ① 指标 | 口径复用现有实现;权限过滤后的口径需动态修改卡片标题;含未定位机构数 |
| ② 地图 | 三级聚合;四状态明度区分;登录点亮动效约 3 秒;未定位机构不落图但计数 |
| ③ 排行 | 横向条形图;支持业绩/机构数切换;点击触发联动下钻 |
| ④ 趋势 | 双轴折线;7/30/90 日切换;随下钻同步过滤 |
| ⑤ 异常 | 列表 + 数字角标 + 近 7 日迷你柱图;点击直达详情与处置 |
| ⑥ 进度 | 状态泳道 + 入驻漏斗;超期高亮 |
| ⑦ 洞察 | 模板化规则生成;最多两句;可点击下钻 |
| ⑧ 详情 | 基础信息 + 渠道 + 登录记录 + 经营数据;IP 按模式脱敏 |
| ⑨ 处置 | 仅操作模式可见;二次确认 + 必填理由;状态立即回显 |
| ⑩ 权限 | 菜单准入 + 数据范围双层;查询与处置接口均需校验 |
| ⑪ 审计 | 复用现有审计表;只增不改不删;提供查询页 |
| 方案 | 评价 |
|---|---|
| ECharts + 自托管中国地图数据(建议) | 无需申请密钥、无外网依赖、机构位置与登录 IP 不出网、省市下钻成熟、离线可用 |
| 高德 / 百度地图 JS API | 底图精美、自带地址解析,但需申请密钥并计费,机构坐标与登录位置需发送给第三方,页面依赖外网 |
建议 ECharts 方案,核心理由是合规与可控,而非成本。
需注意:现有前端图表库不支持地理投影,必须新增地图库依赖——这是本项目唯一需要新增的前端依赖。
采用离线 IP 归属地库,本机实测结果:
| 输入 IP | 解析结果 |
|---|---|
| 220.181.38.148 | 中国 · 北京 · 北京市 · 电信 |
| 61.139.2.69 | 中国 · 四川省 · 成都市 · 电信 |
| 58.216.0.1 | 中国 · 江苏省 · 常州市 · 电信 |
| 223.5.5.5 | 中国 · 浙江省 · 杭州市 · 阿里云 |
| 8.8.8.8 | 美国(境外可识别) |
| 172.18.0.1 | 内网IP(可识别机房内部地址) |
系统内已有 WebSocket 与 SSE 两种实时技术的先例,但本项目建议均不采用,使用定时轮询。
| 方案 | 评价 |
|---|---|
| 定时轮询(建议,15 秒) | 实现简单、无连接维护、断网自愈、鉴权沿用现有机制。大屏观众为内部管理人员,并发以个位数计 |
| SSE | 单向推送,但项目在连接关闭竞态上有多次踩坑记录;大屏常驻场景的断连重连、鉴权续期成本高 |
| WebSocket | 双向能力用不上(处置走普通接口更合适),维护成本最高 |
业务侧的"实时"指十几秒内可见,而非毫秒级。 轮询完全满足且最稳。
老板不在办公室时,也要能掌握全局。
移动端不是大屏的等比缩小——地图在手机上既看不清也点不准。移动端应回答三个问题:今天怎么样?有没有事?要不要管?
| 保留 | 简化 | 不做 |
|---|---|---|
| 核心指标卡片(销售额、活跃机构、渠道数) | 排行榜(仅 TOP 5) | 中国地图点位图 |
| 异常提醒列表 | 趋势图(仅 7 日) | 联动下钻 |
| 今日关键洞察 | 机构详情(精简版) | 复杂筛选 |
| — | — | 账号处置操作 |
关于是否支持移动端处置:建议不支持。 理由是移动端环境不可控(可能在地铁、餐厅),高危操作缺乏审慎条件;且移动端二次鉴权体验差。移动端定位是"感知",处置回到电脑端完成。
若业务坚持需要,建议仅开放"强制下线"一项(该操作可逆、风险最低),禁用与重置密码仍限电脑端。
| 方案 | 评价 |
|---|---|
| 响应式网页(建议) | 与大屏共用一套接口与权限,只需新增移动端布局,工作量小、无需额外发布渠道、随时可访问 |
| 独立 App | 成本高,需应用商店发布与版本维护,收益不明显 |
| 企业微信/公众号内嵌 | 可作为入口便捷性优化,后续按需追加 |
建议做响应式网页版,作为大屏项目的一个交付项,而非独立项目。预计增加 3~4 人日。
系统已部署于云端服务器,容器化编排,数据库、缓存、后端、前端各自独立,由网关统一对外提供加密服务。当前已是云端部署。
需注意:服务器资源配置偏紧,各容器均设有内存上限。这与 §15.4 的刷新压力评估直接相关。
| 模式 | 说明 | 评价 |
|---|---|---|
| A. 云端部署(建议) | 大屏作为现有管理后台的一个页面,随现有系统部署 | ✅ 数据零同步、权限零重建、运维零增量。浏览器打开即用,会议室投屏也是打开浏览器 |
| B. 本地部署 | 公司内网单独部署一套 | ❌ 需将生产数据同步至本地(一致性、安全性、同步链路均为新增成本),权限体系需重建;且离线场景下"实时上屏"本身不成立 |
| C. 混合(云端服务 + 本地展示终端) | 服务在云端,办公室配专用显示终端 | ✅ 本质仍是 A,仅增加一台常开显示设备 |
结论:采用云端部署。 若需固定大屏展示位,配一台专用终端常开浏览器即可,无需改变部署架构。
访问令牌 30 分钟过期。 大屏挂一整夜,次日清晨将出现空白或错误提示。
必须实现静默续期与断线重连提示。 这一条容易遗漏,须写入实施清单并在验收时专项检查(建议验收方式:大屏连续运行 24 小时后检查是否仍正常刷新)。
工作量为经验估算,非实测,按单人投入计算,不含需求评审与验收往返时间。
| 阶段 | 内容 | 估算 | 交付标志 |
|---|---|---|---|
| P0 数据地基 | 机构地理表、IP 归属地接入、存量地址解析、未定位清单、索引优化 | 4~5 人日 | 地理数据填充率达标 |
| P1 经营指标层 | 销售额口径落地、地区/渠道业绩聚合、趋势数据、复用现有聚合逻辑 | 4~5 人日 | 指标与结算报表数字一致 |
| P2 大屏主体 | 布局故事线、地图三级聚合、指标卡、排行榜、趋势图、详情弹窗、轮询、登录态保活 | 10~12 人日 | 可投屏演示 |
| P3 交互与洞察 | 三条联动下钻链路、智能洞察规则、口径说明浮层、数据时效提示 | 4~5 人日 | 下钻联动全通 |
| P4 账号处置 | 强制下线改造、双模式切换、二次鉴权、处置操作、状态立即回显、操作日志 | 5~6 人日 | 处置全链路留痕完整 |
| P5 分级权限 | 区域体系、数据范围过滤层、渠道后台准入、越权专项测试 | 5~7 人日 | 三种角色范围隔离验证通过 |
| P6 异常提醒 | 多地/异地/非工作时间/频繁重连检测、异常列表、一键处置 | 4~5 人日 | 可复现场景全部命中 |
| P7 移动端轻量版 | 响应式布局、移动端专属排布 | 3~4 人日 | 手机端可用 |
| 合计 | 39~49 人日 | 单人约 8~10 周 |
第 1 周 │ P0 数据地基 ─────────────┐
│ 【业务侧】地址补录 ────────┼──── 持续进行
第 2 周 │ P1 经营指标层 ───────────┘
第 3-4 周 │ P2 大屏主体
第 5 周 │ P3 交互与洞察
第 6 周 │ P4 账号处置
第 7-8 周 │ P5 分级权限 ┐
│ P7 移动端(并行) ┘
第 9 周 │ P6 异常提醒
第 10 周 │ 整体验收 + 24 小时常驻测试
| 节点 | 时间 | 可演示内容 |
|---|---|---|
| M1 | 第 2 周末 | 数据摸底结果 + 指标口径确认 |
| M2 | 第 4 周末 | 可投屏的大屏主体(最重要的一次演示) |
| M3 | 第 6 周末 | 完整交互 + 处置能力 |
| M4 | 第 10 周 | 全功能验收 |
建议在 M2 节点安排一次管理层评审。 此时大屏已可投屏,能获得真实反馈,且后续三个阶段仍有充分调整空间。
| 风险 | 等级 | 应对 |
|---|---|---|
| 机构地址覆盖率过低,地图与地区业绩榜大面积空白 | 🔴 最高 | 上线前先执行摸底 SQL。可定位率低于 70% 时不应进入前端开发。大屏必须显示"未定位机构数" |
| 销售额三口径混淆,数字与财务对不上 | 🔴 高 | 业务先定主口径;每个指标提供口径说明浮层;账期差异明确标注 |
| 地址文字不规范导致解析失败 | 🟡 中 | 失败进人工待办;提供后台手工指定省市入口;不追求 100% 自动化 |
| 登录 IP 为空或为内网地址 | 🟡 中 | 摸底 SQL 已含此项体检;若私网 IP 占比高,须先修部署配置 |
| 机构未关联渠道或订单缺少金额 | 🟢 低 | 单列"未归属"项如实展示,不静默丢弃 |
| 风险 | 等级 | 应对 |
|---|---|---|
| IP 归属地仅到城市级,移动网络会跨市漂移 | 🟡 中 | 明确标注"登录位置来自 IP 归属地,仅供参考";机构位置以签约地址为准,两者分开呈现 |
| IP 库版本较旧 | 🟡 中 | 上线前更新;解析不出显示"未知归属地"而非猜测;建立季度更新机制 |
| VPN / 企业专线导致登录地异常 | 🟢 低 | 触发"异地登录"提醒属功能而非缺陷,但告警说明需注明可能的正常原因 |
| 同城多机构点位重叠 | 🟢 低 | 三级聚合设计已覆盖(§6.4) |
| 风险 | 等级 | 应对 |
|---|---|---|
| 渠道管理员看到其他渠道的机构与业绩 | 🔴 高 | 后端强制过滤;可复用结算模块已验证的隔离模式;验收专项测试:用渠道账号直接调接口验证 |
| 越权处置(渠道管理员操作非本渠道账号) | 🔴 高 | 处置接口同样经过范围校验,不能只在查询接口过滤 |
| 大屏无人值守被误操作 | 🔴 高 | 双模式分离、二次鉴权、闲置自动退回只读(§9.1) |
| 处置权限授予过宽 | 🟡 中 | 查看权限与处置权限分开配置,默认不授予渠道/区域管理员 |
| 风险 | 等级 | 应对 |
|---|---|---|
| 轮询叠加导致数据库压力上升 | 🟡 中 | 15 秒轮询 + 服务端结果缓存(约 10 秒);必须补组合索引;实测后调整频率 |
| 经营指标聚合查询较重 | 🟡 中 | 金额聚合的时间跨度大,建议缓存周期长于活跃度指标(如 60 秒);指标间可采用差异化刷新频率 |
| 服务器资源本身偏紧 | 🟡 中 | 大屏查询均为只读,可考虑与业务查询错峰;上线前在测试环境压测,不在生产直接试 |
| 大屏常驻导致登录态过期白屏 | 🟡 中 | 静默续期 + 断线重连提示;验收含 24 小时常驻测试 |
| 风险 | 等级 | 应对 |
|---|---|---|
| 两人同时处置同一账号 | 🟡 中 | 请求编号幂等;操作前校验状态版本,已变更则提示刷新重试 |
| 操作了但屏幕没变化,导致重复操作 | 🟡 中 | 处置成功后状态立即回显,不等下一刷新周期(§9.2) |
| 责任不清 | 🟢 低 | 操作日志含前后快照,可追溯到人 |
| 风险 | 等级 | 应对 |
|---|---|---|
| IP 与位置信息展示范围过宽 | 🟡 中 | 按角色与模式分级脱敏;投屏模式默认打码(§9.3) |
| 大屏投屏公共区域,客户信息被无关人员看到 | 🟡 中 | 投屏模式下机构名称可选择部分打码;摆放位置需业务确认 |
| 数据外发第三方 | 🟢 低 | 已通过技术选型规避:IP 解析用本地离线库,地图用自托管数据,位置信息不出网 |
| 批量地址解析时外发机构地址 | 🟡 中 | 若需借助在线解析服务,须业务确认后执行,且仅用于一次性回填 |
| 数据留存期限不明确 | 🟢 低 | 现有登录审计的留存策略存在"注释与实现不一致"的情况,建议本项目一并明确并落实 |
| 场景 | 现在 | 建成后 |
|---|---|---|
| 了解本月经营情况 | 等财务/结算出报表 | 一屏可见,随时刷新 |
| 了解全国机构分布 | 导出表格人工统计 | 一屏可见 |
| 判断某区域是否活跃 | 无法直接回答 | 省份着色直接反映 |
| 查看某渠道贡献 | 人工关联多张单据 | 排行榜直出,可点击下钻 |
| 发现异常并处置 | 多页面跳转查找 | 点击告警,就地处置 |
本项目最持久的价值,可能不是那块屏幕,而是它促使我们把机构地理数据补齐并纳入常态维护。
这份数据一旦建立,可复用于:
这是一次性投入、长期复用的基础数据资产。
以下三条不满足,上述价值将大打折扣:
| 结论 | 出处 |
|---|---|
| 机构表字段、经纬度用途 | app/models/organization.py:11-58 |
| 统一用户表六角色、渠道绑定 | app/models/user.py:26-70,135-153 |
| 渠道表定义 | app/models/settlement.py:66-105 |
| 签约档案含渠道外键与地址 | settlement/backend/app/models/settlement.py:178-244 |
| 入驻表单地址为选填、审核只校验四类证照 | settlement/backend/app/api/settlement/store_signup.py:98,126-136 |
| 服务订单表(金额/类型/席位/状态/索引) | settlement/backend/app/models/settlement.py:510-583 |
| 到账确认表(确认金额、确认时间) | settlement/backend/app/models/settlement.py:358-374 |
| 收益快照表(实收、渠道分成、账期) | settlement/backend/app/models/settlement.py:375-434 |
| 结算单表(账期总额、状态) | settlement/backend/app/models/settlement.py:435-464 |
| 半月账期规则(H1/H2) | settlement/backend/app/services/settlement/periods.py:13,25-28,39 |
| 现有渠道收益聚合逻辑(大屏须复用) | settlement/backend/app/services/settlement/settlement_statements.py:610,785,943 |
| 渠道级数据隔离已有实现(服务端反查、不信任声明) | settlement/backend/app/auth/zhaoyang_permissions.py:289-314、settlement/backend/app/api/settlement/revenue_ledger.py:22,212,237 |
| 登录审计表字段(IP 为原生地址类型) | app/models/audit.py:24-60 |
| 管理端 / 席位登录写审计 | app/services/auth_service.py:249-256、app/api/seat_auth.py:362-369 |
| 网关传递真实 IP | deploy/nginx/chat.tongban.love.conf:107-111 |
| 生产容器启用代理头解析 | deploy/Dockerfile.api:67 |
| 结算与核心同库共存、账号隔离 | settlement/deploy/docker-compose.prod.yml:32-34、settlement/db/grants.sql:33-48 |
| 令牌黑名单按令牌串拉黑(无法按账号踢人) | app/services/auth_service.py:357-360、app/auth/middleware.py:64-68 |
| 席位设备绑定每请求校验(现成踢下线能力) | app/auth/middleware.py:255-257,372-373 |
| 令牌含签发时间(可支撑按账号失效改造) | app/auth/jwt_local.py:63-64 |
| 访问令牌 30 分钟 / 续期凭证最长一年 | app/auth/jwt_local.py:26-29 |
| 启停、重置密码、解锁接口已存在 | app/api/admin_users.py:163,185,203、app/services/seat_service.py:288,445 |
| 通用操作审计表(含前后快照、请求编号) | settlement/backend/app/models/settlement.py:615-639 |
| 权限表仅为「角色-菜单」二元组 | app/models/role_menu_permission.py:10-23 |
| 后台准入角色白名单不含渠道角色 | app/core/menu_registry.py:14-15 |
| 全库无区域 / 大区概念 | 检索 region/区域/大区 → 0 业务命中 |
| 错误上报为占位实现(只记日志、无推送) | app/services/incident_logger.py:1-12,44 |
| 已有暴力破解与 IP 横向扫描防护 | app/api/seat_auth.py:141-190 |
| 时区处理先例 | app/api/admin_activity.py:37,157 |
| 实时通信先例(WebSocket / SSE) | app/api/voice_gateway.py:13、app/api/h5_chat.py:662-664 |
| 现有活跃机构统计口径 | app/api/admin_activity.py:674,827,840 |
| 前端无地图库、图表库不支持地理投影 | web/package.json:14-44 |
| 无 IP 归属地能力 | 检索 geoip/ip2region/maxmind → 0 业务命中 |
| IP 归属地实测结果 | 本机真实执行,见 §11.2 |
| 编号 | 事项 | 建议方案 | 影响 | 紧急度 |
|---|---|---|---|---|
| D1 | 销售额主口径(应收/到账/收益) | 主口径用到账,副口径展示应收 | P1 阶段前置输入 | 🔴 高 |
| D2 | 区域如何划分(几个大区、各含哪些省) | 待业务定义 | P5 阶段前置输入 | 🔴 高 |
| D3 | 地址补录责任人与时间 | 摸底后确定 | 全项目关键路径 | 🔴 高 |
| D4 | 地图点位代表注册地还是登录地 | 双轨方案 | 数据模型 | 🟡 中 |
| D5 | 在线状态口径与时间窗 | 活跃度四级 + 15 分钟 | 统计口径 | 🟡 中 |
| D6 | 进度展示用状态泳道还是真甘特图 | 状态泳道 + 入驻漏斗 | 是否需补录计划时长 | 🟡 中 |
| D7 | "频繁掉线"如何处理 | 用"频繁重连"代理指标 | 是否需改造客户端 | 🟡 中 |
| D8 | 渠道/区域管理员是否有处置权 | 建议默认无 | 权限模型复杂度 | 🟡 中 |
| D9 | 大屏是否投屏公共区域 | — | 脱敏策略强度 | 🟢 低 |
| D10 | 移动端是否需要处置能力 | 建议不需要,或仅开放强制下线 | 移动端范围 | 🟢 低 |
| D11 | P5 分级权限能否后置 | 若可后置整体提前约 1.5 周 | 上线节奏 | 🟢 低 |
| D12 | 一次性地址回填能否使用在线解析服务 | 需业务确认 | 合规 | 🟢 低 |
以下查询必须在具备权限的环境执行,结果回填后本报告的数据侧论证方为完整。全部为只读查询,不修改任何数据,执行约 1 分钟。
| 编号 | 查询内容 | 决定什么 |
|---|---|---|
| SQL-1 | 机构地址覆盖率(两来源合并可定位率) | 地图与地区业绩榜是否可行;全项目排期 |
| SQL-2 | 登录 IP 真实性体检(私网地址占比) | 登录点亮是否成立;部署配置是否需修复 |
| SQL-3 | 登录角色构成 | 详情面板设计 |
| SQL-4 | 渠道维度机构分布 + 审计留存跨度 | 渠道卡片数据基础;历史回看范围 |
| SQL-5 | 服务订单与到账金额分布(三口径实际差异) | 销售额口径决策的事实依据 |
| SQL-6 | 订单与收益的时间跨度、账期覆盖情况 | 趋势图与同比环比可回溯范围 |
完整可执行脚本与结果解读说明见配套交付件《数据摸底 SQL》。
核心判据:
| 指标 | 结果 | 行动 |
|---|---|---|
| 机构可定位率 | ≥ 70% | 按原计划推进 |
| 40% ~ 70% | 技术开发与地址补录并行 | |
| < 40% | 先补数据,暂缓前端开发 | |
| 登录 IP 私网占比 | 接近 0 | 正常,登录点亮可行 |
| 明显偏高 | 先修部署配置,修复后的新数据才可用 |
本报告为调研结论,不含任何已实施的代码改动。数据层结论待摸底查询执行后回填。调研环境未连接生产数据库,报告中不提供任何未经实测的数据指标。