交付出件箱

← 返回出件箱

C 端方案 v0.7 · 自检报告(拿代码验假设,不是读稿子)

dev2 · 2026-08-21 · 方法:把方案里每条"复用现成/零改动"的话,回代码 grep 验一遍
结论:2 个真窟窿(必须补) · 3 个待确认 · 1 条我写错了的表述


🔴 窟窿 1:「一期门店不可看孩子档案/报告」这条,现有埋点会漏

方案写的:Q2 一期门店不可见家长数据。

代码事实:C 端的行为与报告图是按机构落表的 ——

seat_activity_log:  org_id + actor_type(org_seat/h5_user/temp_link/miniapp/admin) + event_type
report_image:       org_id + actor_type + actor_id + report_ref + oss_key

子席位家长在 C 端问答、传报告,如果沿用 h5_user 这个 actor_type 落在门店的 org_id 下,
那家长的行为流水与报告图就混进了门店那条机构线。

要补的:
1. _ACTOR_TYPES 需要新增一档(如 sub_seat),让家长行为可被单独识别与过滤
2. 明确家长的档案/检查记录/报告图属于"家长私域",不进任何以 org 维度对门店暴露的视图
3. 反向 grep 一遍所有按 org_id 聚合的读接口,逐个确认是否要排除子席位

目前的缓解(但不能当解决):org-insights 等 8 个活动类接口全是
require_role("admin")(实测该文件 8/8 都是 admin,无机构角色入口)⇒ 今天门店看不到。
但这只是"现在没开口子",不是设计上隔离了 —— 哪天给门店开个洞察页就漏。


🔴 窟窿 2:秒读「6 次 / 账号 / 365 天」是新机制,不是复用

方案写的:配额表预留"购买次数"字段(听起来像现成表加个字段)。

代码事实:现有 h5_quota_usage 是 org_id + date(YYYY-MM-DD)+ message_count/image_count,
机构维度、按天。而我们要的是 按账号、按 365 天窗口、按秒读次数 —— 三个维度全不一样,
four_l_report.py 里也 grep 不到任何 quota 引用(即秒读目前根本没接配额)。

要补的:这是新建配额模型 + 在秒读入口加扣减,不是"预留字段"。
工作量要单独算,别按"改个字段"估。同时要定:
- 起算点存哪(子席位开通日 → 到期日),跨年怎么滚
- 解析失败不扣次 ⇒ 扣减必须在解析成功后,失败要能回滚


⚠️ 待确认 3:B 端「子席位开通」放的那个设置页,门店进得去吗

我原说放 (dashboard)/settings/page.tsx。实测该页现有分区是
机构基本信息 / AI 医生人格 / AI 客服 / 文本兜底大模型 / 多模态视觉大模型 / 应用配置 / 回调 URL
—— 通篇是平台配置口径,且我 grep 不到该页的角色判断(既没查到 org 角色可进的证据,
也没查到禁止的证据)。

⇒ 开工前必须确认:门店账号登录后能不能看到这个页面。
若不能,「子席位开通」得另找门店端入口(或新建),这会改动一期范围。


⚠️ 待确认 4:到期停用由谁来跑

方案写了"到期自动停用",但没定执行者。仓库里 grep 到 org_service / seat_service
里有到期相关逻辑,但我没确认存在一个定时任务在跑子席位到期。
⇒ 需定:定时任务(每天扫)还是登录时惰性判断。建议惰性判断为主(登录即校验到期,
零新增定时任务),后台列表的"已到期"状态用 SQL 条件算,不依赖后台作业。


⚠️ 待确认 5:家长产生的 AI 用量算谁的

C 端问答不限次 + 秒读要调大模型,都是真金白银的算力。方案只说了"子席位不进结算口径"
(那是分成口径),但没说用量成本记在哪。
⇒ 建议:用量仍按 org 归集(便于看哪家店的家长在用),但在报表里可区分子席位,
与"门店不可见家长内容"不冲突(看数量不看内容)。这条要长官定。


✏️ 更正 1:我在方案里那句话说重了

方案原文:「复用现有开关下发机制,前端结构零改」。

准确说法:开关下发是机构级的(api_v1.py 按 org 配置返回 enable_*)。
子席位要的是"机构开关 ∩ 子席位白名单",后端得加一层按登录身份收敛的逻辑;
前端确实基本不用改(它只认下发的开关),但"零改"只对前端成立,后端有活。
稿子里这句已按此更正口径理解,出技术方案时会写清。


没问题的部分(验过,可放心)

云机环境 · 非验收证据。