02-parent.md 41 KB

用户使用场景 · 家长(Parent)

来源:AGENTS.md(双角色、五维能量、测评订单、家庭邀请二维码、成员关系编辑、健康报告主链路、饮食推荐、LangGraph AI)、API_REFERENCE.md、cfc-frontend/pages/*、黑盒方案 P-01~P-18。 关联用例:test-cases/parent.md(TC-P-01~TC-P-93 及跨角色 E2E)。


场景 P-1:创建家庭并生成邀请入口

用户故事:作为家庭第一人,我想创建家庭并邀请其他成员,以便全家共用一套健康/成长管理。

  • 角色:家长(创建者即家庭管理员)
  • 前置条件:已登录(默认 parent)。
  • 主流程
    1. 进入家庭模块 → 创建家庭(名称「测试家庭1」)。
    2. 系统生成唯一邀请码 + 邀请二维码(令牌 + 落地页)。
    3. 角色升级为「家庭管理员」,进入家庭首页。
  • 异常/边界:家庭名重复/为空 → 400 + 字段提示;重复创建家庭按业务规则限制。
  • 关联需求/设计:FamilyInviteController /api/family/invite/generate;cfclub 家庭邀请二维码特性。
  • 关联用例:TC-P-01

场景 P-2:邀请成员并维护家庭关系图

用户故事:作为家长,我想邀请爷爷加入并用关系标签管理成员,以便家庭结构清晰。

  • 角色:家长
  • 前置条件:家庭已创建;爷爷 C 微信/手机号可用。
  • 主流程
    1. 分享邀请码/二维码给 C → C 通过 register-with-invite 加入。
    2. 在成员管理添加成员资料(姓名/关系/生日/性别)。
    3. 用 RelationshipPicker 选择关系类型;编辑时将 C 的关系改为「外公」。
    4. 家庭关系图节点与关系标签同步更新。
  • 异常/边界:关系类型不存在 → 选择器不显示该项;删除成员前若有代管数据需确认。
  • 关联需求/设计:FamilyMembersController /api/family/member/*;关系类型 CRUD 在管理端(Web RelationshipTypes.vue)。
  • 关联用例:TC-P-02, TC-P-03, TC-P-04

场景 P-3:双角色切换(家长 ↔ 孩子视角)

用户故事:作为家长,我想临时以孩子视角查看 TA 的界面与数据,以便确认孩子端的体验。

  • 角色:家长
  • 前置条件:家庭含孩子 B(能登录或不能登录用户)。
  • 主流程
    1. 个人中心 → 切换视角 → 选择孩子 B。
    2. 界面切换为孩子端布局,数据隔离为 B 的视角。
    3. 切回家长端需二次校验(密码)。
  • 异常/边界:孩子端不能切回家长(登录即孩子视角,无家长入口);切换时若 B 为 local(无登录),数据由家长代管可见。
  • 关联需求/设计:POST /api/family/member/switch(替代已废弃 /api/family/user/switch-mode);双角色铁律。
  • 关联用例:TC-P-15

场景 P-4:创建任务并下发给孩子、审批完成

用户故事:作为家长,我想给孩子布置每日任务并在完成后给积分,以便培养习惯。

  • 角色:家长
  • 前置条件:家庭含孩子 B。
  • 主流程
    1. 创建任务(标题「睡前阅读」/ 成员 B / 积分 10 / 频率每日)。
    2. 任务出现在 B 的任务列表,状态「待执行」。
    3. B 完成后提交 → 家长端出现待审批。
    4. 家长「通过」→ B 积分 +N 并生成流水;「驳回」→ 退回重做。
  • 异常/边界:重复提交完成不重复发分;任务频率/截止日期边界。
  • 关联需求/设计:TaskController /api/tasks;积分 PointsController /api/points。
  • 关联用例:TC-P-05, TC-P-06

场景 P-5:心愿的创建—审批—兑换闭环

用户故事:作为家长,我想让孩子提心愿、我审批并扣积分兑换,以便激励正向行为。

  • 角色:家长(审批方)/ 孩子(创建方)
  • 前置条件:孩子 B 已创建心愿「买乐高」。
  • 主流程
    1. B 创建心愿(名称 + 所需积分)→ 进入家长待审批列表。
    2. 家长「通过」→ 扣除对应积分、进入兑换流程;「驳回」→ 心愿失效。
    3. 兑换成功,积分流水正确。
  • 异常/边界:积分不足时兑换被拦截;驳回后不可再兑换。
  • 关联需求/设计:WishController /api/wishes、RewardController /api/rewards。
  • 关联用例:TC-P-07

场景 P-6:查看五维能量与健康指数

用户故事:作为家长,我想一眼看到全家五维能量分配,以便掌握健康结构。

  • 角色:家长
  • 前置条件:家庭已有任务/打卡等能量产生记录。
  • 主流程
    1. 进入「身/心/智/行/富」维度首页。
    2. 展示家庭健康指数与五维能量分配,数值合理(总和=100%)。
    3. 查看能量流水(来源/时间)。
  • 异常/边界:能量比例配置错误导致不为 100% → 报警/修复;无数据时展示空态而非 500。
  • 关联需求/设计:EnergyController /api/energy;五维能量按比例分配。
  • 关联用例:TC-P-08

场景 P-7:申请测评(完整订单闭环)

用户故事:作为家长,我想为孩子预约专业测评,以便获得个性化方案。

  • 角色:家长
  • 前置条件:已绑定规划师 T;孩子 B 在家庭中。
  • 主流程
    1. 申请测评 → 选择孩子 B + 测评类型 + 规划师 T。
    2. 系统对 B 做孩子快照(时间点数据)。
    3. 支付环节完成 → 生成测评订单。
    4. 状态流转:已支付 → 待安排 → 已预约。
  • 异常/边界:未选规划师/未支付 → 订单不进入待安排;支付失败回滚。
  • ⚠️ 口径修正(来自 test-cases/deep-dive-assessment-appointment.md):真实实现为 订单 → 额度 → 预约 三段式。AssessmentOrder(pending→paid) 支付成功后生成「测评额度 AssessmentQuota」;POST /api/assessment/appointment/create 会先消耗一条额度,额度不足/过期直接报错、不落预约。「孩子快照」与「录入结果触发方案」在 AssessmentResult/DanAssessment 链路,不在预约创建环节。故完整闭环应为:购买套餐 → 订单 paid → 获得额度 → 创建预约(消耗额度) → 规划师确认/完成 → 录入结果生成方案。
  • 关联需求/设计:AssessmentAppointmentController /api/assessment/appointment/*、AssessmentOrder(pending/paid/cancelled/refunded)。
  • 关联用例:TC-P-09、TC-DV-01~10(见深挖文档)

场景 P-8:上传健康报告 PDF 并自动解析(主链路起点)

用户故事:作为家长,我想上传孩子的肠道菌群报告,以便系统自动解析出健康分与推荐。

  • 角色:家长
  • 前置条件:持有募极生物肠道菌群报告 PDF(样例 530010234-侯.json 对应报告)。
  • 主流程
    1. 上传 PDF(POST /api/media/upload 公开 + 报告解析入口)。
    2. 系统识别为 gut_flora 类型 → 三阶段:上传 → 解析预览 → 确认入库。
    3. 报告列表出现该报告,展示菌群健康分/平衡/多样性、菌种明细、疾病风险。
    4. 五维健康评分刷新。
  • 异常/边界:非募极生物报告 → 提示「请确认是募极生物肠道菌群报告」;解析失败进入未知聚类待运营自学习。
  • 关联需求/设计:健康报告 PDF 上传与解析(cfclub);/api/admin/report-parser/types 已注册 gut_flora。
  • 关联用例:TC-P-10, TC-P-11

场景 P-9:基于报告生成饮食推荐

用户故事:作为家长,我想根据菌群报告得到可吃/慎吃清单,以便安排一日三餐。

  • 角色:家长
  • 前置条件:P-8 报告已入库。
  • 主流程
    1. 打开「身 → 饮食推荐」。
    2. 按菌群报告生成食材推荐指数,展示可吃/慎吃食物列表。
  • 异常/边界:无报告时无推荐;推荐随报告更新而刷新。
  • 关联需求/设计:饮食推荐系统(前端 + 后端);基于报告数据。
  • 关联用例:TC-P-12

场景 P-10:生成 AI 健康方案并送审/发布

用户故事:作为家长,我想一键生成个性化健康方案,以便规划师审核后激活执行。

  • 角色:家长
  • 前置条件:孩子 B 已有报告;部分功能需购买会员解锁。
  • 主流程
    1. 选孩子 B + 目标「基于菌群检测报告的个性化健康管理方案」。
    2. 调用 LangGraph(AiGateway 转发)→ 生成 overview + 营养/饮食/运动三板块。
    3. 可逐板块重新生成/确认。
    4. 保存/提交 → 进入「已提交(待规划师审核)」或按配置直接发布。
  • 异常/边界:未购买会员点击生成 → 提示购买;AI 超时/Fallback → 友好提示而非 500。
  • 关联需求/设计:AI 统一走 LangGraph(9000),Java 经 AiGateway(熔断+超时+Fallback);禁绕。
  • 关联用例:TC-P-13, TC-P-14, TC-P-16

场景 P-12:查看积分流水与成长档案

用户故事:作为家长,我想核对积分明细和孩子成长记录,以便了解进展。

  • 角色:家长
  • 前置条件:已有任务/打卡/兑换记录。
  • 主流程
    1. 个人中心 → 积分明细(来源/变更/余额)。
    2. 成长记录页展示孩子成长轨迹。
    3. 时间格式统一 yyyy-MM-dd HH:mm:ss。
  • 异常/边界:积分与流水总额一致;删除/回退操作有对应负流水。
  • 关联需求/设计:PointsController、GrowthController /api/growth。
  • 关联用例:TC-P-17

场景 P-13:心愿创建-审批-兑换闭环(SC-P-13)

用户故事:作为家长,我想审批孩子心愿并扣积分兑换,以便激励正向行为。

  • 角色:家长
  • 前置条件:孩子已提交心愿(含目标积分)。
  • 主流程:①查看待审心愿 → 通过(扣孩子积分)→ 心愿兑换成功;②驳回 → 心愿失效。
  • 异常/边界:孩子积分不足拦截;重复审批幂等;已兑换不可驳回。
  • 关联需求/设计:WishController / RewardController。
  • 关联用例:TC-P-13

场景 P-14:心愿驳回/失效处理(SC-P-14)

用户故事:作为家长,我想驳回异常心愿并让其失效,以便收口。

  • 角色:家长
  • 前置条件:有心愿待审。
  • 主流程:驳回 → 心愿失效 → 孩子可重新提。
  • 异常/边界:已兑换不可驳回;驳回需填原因。
  • 关联需求/设计:WishController。
  • 关联用例:TC-P-14

场景 P-15:积分明细查看(SC-P-15)

用户故事:作为家长,我想核对孩子积分来源,以便了解激励效果。

  • 角色:家长
  • 前置条件:有积分流水。
  • 主流程:个人中心 → 积分明细(来源/变更/余额)→ 分页/时间筛选。
  • 异常/边界:分页正确;时间筛选边界正确。
  • 关联需求/设计:PointsController。
  • 关联用例:TC-P-15

场景 P-16:积分流水对账(SC-P-16)

用户故事:作为家长,我想确保积分账目一致,以便发现问题。

  • 角色:家长
  • 前置条件:有积分流水。
  • 主流程:比对积分总额与流水合计 → 不一致报警。
  • 异常/边界:删除/回退有对应负流水;不一致明确提示。
  • 关联需求/设计:PointsController。
  • 关联用例:TC-P-16

场景 P-17:查看五维能量/健康指数(SC-P-17)

用户故事:作为家长,我想看孩子五维能量与健康指数,以便掌握健康结构。

  • 角色:家长
  • 前置条件:孩子有能量数据。
  • 主流程:进入身/心/智/行/富 → 展示分配(总和=100%)→ 能量流水。
  • 异常/边界:比例配置错误≠100% 报警;无数据空态不 500。
  • 关联需求/设计:EnergyController。
  • 关联用例:TC-P-17

场景 P-18:能量流水查看(SC-P-18)

用户故事:作为家长,我想追溯孩子能量来源,以便了解增长。

  • 角色:家长
  • 前置条件:有能量流水。
  • 主流程:能量明细(任务/打卡/测评)→ 时间格式统一。
  • 异常/边界:时间格式统一;分页。
  • 关联需求/设计:EnergyController。
  • 关联用例:TC-P-18

场景 P-19:能量维度配置查看(SC-P-19)

用户故事:作为家长,我想理解五维口径,以便正确解读。

  • 角色:家长
  • 前置条件:配置已同步。
  • 主流程:查看身/心/智/行/富定义与权重。
  • 异常/边界:配置未同步时展示兜底。
  • 关联需求/设计:维度配置(Web 管理端)。
  • 关联用例:TC-P-19

场景 P-20:健康报告 PDF 上传解析(SC-P-20)

用户故事:作为家长,我想上传孩子菌群报告并自动解析,以便入库刷新健康数据。

  • 角色:家长
  • 前置条件:持有报告 PDF。
  • 主流程:选 PDF 上传 → 识别 gut_flora → 三阶段(上传/预览/确认)→ 入库刷新五维。
  • 异常/边界:非募极生物报告提示;解析失败进未知聚类;上传超时重试。
  • 关联需求/设计:健康报告解析中台 / POST /api/media/upload。
  • 关联用例:TC-P-20

场景 P-21:报告类型识别(SC-P-21)

用户故事:作为家长,我想确认报告自动判别类型,以便正确归档。

  • 角色:家长
  • 前置条件:已上传报告。
  • 主流程:解析 → 匹配已注册类型。
  • 异常/边界:未知类型进未知聚类待运营自学习。
  • 关联需求/设计:/api/admin/report-parser/types。
  • 关联用例:TC-P-21

场景 P-22:报告解析预览(SC-P-22)

用户故事:作为家长,我想入库前核对解析结果,以便确认无误。

  • 角色:家长
  • 前置条件:已解析待预览。
  • 主流程:看菌群健康分/平衡/多样性/菌种明细/疾病风险预览。
  • 异常/边界:预览数据异常提示不入库。
  • 关联需求/设计:解析中台。
  • 关联用例:TC-P-22

场景 P-23:报告确认入库(SC-P-23)

用户故事:作为家长,我想确认报告入库生效,以便刷新健康评分。

  • 角色:家长
  • 前置条件:预览无误。
  • 主流程:确认 → 报告进档案 → 五维刷新。
  • 异常/边界:确认前可取消不入库;重复确认幂等。
  • 关联需求/设计:解析中台。
  • 关联用例:TC-P-23

场景 P-24:多报告管理/对比(SC-P-24)

用户故事:作为家长,我想管理历史报告并对比,以便看变化。

  • 角色:家长
  • 前置条件:有多份报告。
  • 主流程:报告列表 → 查看/删除/对比。
  • 异常/边界:删除有关联方案时提示;类型一致才可比。
  • 关联需求/设计:报告管理。
  • 关联用例:TC-P-24

场景 P-25:报告趋势查看(SC-P-25)

用户故事:作为家长,我想看孩子健康趋势,以便评估干预。

  • 角色:家长
  • 前置条件:同类型报告≥2。
  • 主流程:同类型报告时间序列 → 趋势图。
  • 异常/边界:单报告无趋势;时间轴正确。
  • 关联需求/设计:报告/成长。
  • 关联用例:TC-P-25

场景 P-26:基于报告饮食推荐(SC-P-26)

用户故事:作为家长,我想按菌群报告安排饮食,以便精准调理。

  • 角色:家长
  • 前置条件:已有报告。
  • 主流程:身→饮食推荐 → 按菌群生成可吃/慎吃清单。
  • 异常/边界:无报告无推荐;随报告刷新。
  • 关联需求/设计:饮食推荐系统。
  • 关联用例:TC-P-26

场景 P-27:家庭食谱生成(SC-P-27)

用户故事:作为家长,我想生成一日三餐家庭食谱,以便可执行。

  • 角色:家长
  • 前置条件:有菌群报告+营养目标。
  • 主流程:基于菌群+目标 → 生成早/午/晚食谱(食材/用量/禁忌标注)。
  • 异常/边界:无报告降级通用食谱;忌口/过敏自动排除。
  • 关联需求/设计:饮食推荐系统 / 家庭食谱。
  • 关联用例:TC-P-27

场景 P-28:食谱按食材筛选/忌口(SC-P-28)

用户故事:作为家长,我想设忌口/过敏并重算食谱,以便个性化。

  • 角色:家长
  • 前置条件:已有食谱。
  • 主流程:设忌口/过敏 → 食谱重算排除项。
  • 异常/边界:忌口冲突时提示。
  • 关联需求/设计:饮食推荐。
  • 关联用例:TC-P-28

场景 P-29:食谱收藏/调整(SC-P-29)

用户故事:作为家长,我想收藏并微调食谱,以便沉淀常用。

  • 角色:家长
  • 前置条件:已有食谱。
  • 主流程:收藏食谱 → 手动微调(替换食材)。
  • 异常/边界:调整不破坏营养目标。
  • 关联需求/设计:饮食推荐。
  • 关联用例:TC-P-29

场景 P-30:食谱与营养目标对齐(SC-P-30)

用户故事:作为家长,我想核对食谱营养 vs 目标,以便达标。

  • 角色:家长
  • 前置条件:已有食谱+目标。
  • 主流程:看食谱营养合计 vs 目标。
  • 异常/边界:超标/不足提示。
  • 关联需求/设计:饮食推荐。
  • 关联用例:TC-P-30

场景 P-31:浏览测评类型(DAN 8 类)(SC-P-31)

用户故事:作为家长,我想了解可选测评类型,以便选择。

  • 角色:家长
  • 前置条件:测评页可用。
  • 主流程:测评页 → 列 DAN 8 类(mind/wisdom/cognition/learning/behavior/career/campus/adolescent)。
  • 异常/边界:类目数据来自后端字典;字典缺失降级。
  • 关联需求/设计:DanAssessmentController。
  • 关联用例:TC-P-31

场景 P-32:选择规划师(SC-P-32)

用户故事:作为家长,我想指定服务规划师,以便孩子获得专业支持。

  • 角色:家长
  • 前置条件:有可绑定规划师。
  • 主流程:测评选规划师 → 绑定的 T 列表。
  • 异常/边界:未绑定规划师提示先绑定;非本家庭规划师拒。
  • 关联需求/设计:测评订单。
  • 关联用例:TC-P-32

场景 P-33:购买测评套餐/下单(SC-P-33)

用户故事:作为家长,我想下单测评套餐,以便获得测评服务。

  • 角色:家长
  • 前置条件:套餐上架。
  • 主流程:选套餐 → 生成 AssessmentOrder(pending)。
  • 异常/边界:套餐下架不可下单;重复下单幂等。
  • 关联需求/设计:AssessmentOrder。
  • 关联用例:TC-P-33

场景 P-34:测评订单支付(SC-P-34)

用户故事:作为家长,我想完成支付,以便获得测评额度。

  • 角色:家长
  • 前置条件:有 pending 订单。
  • 主流程:支付 → 订单 pending→paid → 生成 AssessmentQuota。
  • 异常/边界:支付失败回滚不生成额度;重复支付幂等。
  • 关联需求/设计:支付 / AssessmentOrder。
  • 关联用例:TC-P-34

场景 P-35:获得测评额度(SC-P-35)

用户故事:作为家长,我想拿到可消耗额度,以便预约测评。

  • 角色:家长
  • 前置条件:订单已支付。
  • 主流程:支付成功 → 额度到账(含有效期)。
  • 异常/边界:额度过期不可用于预约;额度不可转赠。
  • 关联需求/设计:AssessmentQuota。
  • 关联用例:TC-P-35

场景 P-36:创建预约(消耗额度)(SC-P-36)

用户故事:作为家长,我想约规划师时间,以便安排测评。

  • 角色:家长
  • 前置条件:有可用额度。
  • 主流程:POST /api/assessment/appointment/create → 先消耗一条额度 → 落预约。
  • 异常/边界:额度不足/过期直接报错不落预约;预约时间冲突校验。
  • 关联需求/设计:AssessmentAppointmentController。
  • 关联用例:TC-P-36

场景 P-37:查看预约状态(SC-P-37)

用户故事:作为家长,我想掌握预约进度,以便安排。

  • 角色:家长
  • 前置条件:已创建预约。
  • 主流程:预约列表 → 状态(待确认/已确认/已完成/已取消/未到)。
  • 异常/边界:状态机守卫;越权查看拒。
  • 关联需求/设计:AssessmentAppointmentController。
  • 关联用例:TC-P-37

场景 P-38:取消预约(越权校验)(SC-P-38)

用户故事:作为家长,我想取消不再需要的预约,以便释放额度。

  • 角色:家长
  • 前置条件:预约待确认/已确认。
  • 主流程:取消 → 状态变更 → 额度按规则返还。
  • 异常/边界:非本人/非绑定规划师取消被拒;取消不退款逻辑按业务。
  • 关联需求/设计:AssessmentAppointmentController。
  • 关联用例:TC-P-38

场景 P-39:查看测评结果(DAN 报告)(SC-P-39)

用户故事:作为家长,我想看孩子测评分,以便了解能力结构。

  • 角色:家长
  • 前置条件:结果已录入。
  • 主流程:结果页 → 八类报告展示。
  • 异常/边界:结果未录入不展示;量纲标注。
  • 关联需求/设计:DanAssessmentResultDTO。
  • 关联用例:TC-P-39

场景 P-40:生成 AI 方案(SC-P-40)

用户故事:作为家长,我想一键生成个性化方案,以便得到行动指导。

  • 角色:家长
  • 前置条件:有报告/测评分。
  • 主流程:选孩子+目标 → LangGraph(AiGateway 转发) → 生成 overview+三板块。
  • 异常/边界:未购会员提示购买;AI 超时 AiGateway Fallback 不 500。
  • 关联需求/设计:AIChatController / AiGateway。
  • 关联用例:TC-P-40

场景 P-41:方案分板块重生成(SC-P-41)

用户故事:作为家长,我想迭代优化方案板块,以便精准。

  • 角色:家长
  • 前置条件:已有方案。
  • 主流程:逐板块重新生成/确认。
  • 异常/边界:重生成不丢其他板块。
  • 关联需求/设计:AIChatController。
  • 关联用例:TC-P-41

场景 P-42:方案编辑/调整(SC-P-42)

用户故事:作为家长,我想人工微调方案,以便贴合实际。

  • 角色:家长
  • 前置条件:已有方案。
  • 主流程:编辑方案文本/任务项。
  • 异常/边界:编辑后状态标记已改。
  • 关联需求/设计:方案管理。
  • 关联用例:TC-P-42

场景 P-43:查看生成的方案(SC-P-43)

用户故事:作为家长,我想审阅方案内容,以便确认。

  • 角色:家长
  • 前置条件:方案已生成。
  • 主流程:方案详情 → 看板块/任务。
  • 异常/边界:空方案不白屏。
  • 关联需求/设计:方案管理。
  • 关联用例:TC-P-43

场景 P-44:确认方案(送审/家长确认)(SC-P-44)

用户故事:作为家长,我想确认方案并送审,以便进入下一步。

  • 角色:家长
  • 前置条件:方案 generated。
  • 主流程:家长确认/提交规划师审核 → 状态 generated→reviewed。
  • 异常/边界:未确认不可激活;确认幂等。
  • 关联需求/设计:方案管理状态机。
  • 关联用例:TC-P-44

场景 P-45:方案直接发布(SC-P-45)

用户故事:作为家长,我想按配置直接发布方案,以便快速生效。

  • 角色:家长
  • 前置条件:配置允许直发。
  • 主流程:确认即发布 active。
  • 异常/边界:需审核配置时走审核流。
  • 关联需求/设计:方案管理。
  • 关联用例:TC-P-45

场景 P-46:激活方案生成任务(SC-P-46)

用户故事:作为家长,我想激活方案并生成可执行任务,以便孩子开始执行。

  • 角色:家长
  • 前置条件:方案已审核(reviewed)。
  • 主流程:激活 reviewed→active → 生成引导+模板任务 → 孩子端出现启动任务。
  • 异常/边界:已激活再激活不重复生成(幂等靠状态机);失败回滚不残半任务。
  • 关联需求/设计:方案激活任务分解。
  • 关联用例:TC-P-46

场景 P-47:查看方案下任务列表(SC-P-47)

用户故事:作为家长,我想跟踪方案关联任务,以便了解执行进度。

  • 角色:家长
  • 前置条件:方案已激活。
  • 主流程:方案 → 关联任务列表(状态/进度)。
  • 异常/边界:任务增删与方案同步;无任务空态。
  • 关联需求/设计:GrowthPlanController。
  • 关联用例:TC-P-47

场景 P-48:方案版本/历史(SC-P-48)

用户故事:作为家长,我想回溯方案变更,以便审计。

  • 角色:家长
  • 前置条件:方案有多版本。
  • 主流程:方案版本列表 → 对比。
  • 异常/边界:版本不可篡改;对比差异标注。
  • 关联需求/设计:方案管理。
  • 关联用例:TC-P-48

场景 P-49:进入 AI 成长教练对话(SC-P-49)⭐

用户故事:作为家长,我想从家长端进入 AI 成长教练对话,以便随时咨询。

  • 角色:家长(管家入口)
  • 前置条件:已登录;AI 服务可用。
  • 主流程:进对话 → POST /api/ai/health-coach/send → 多轮上下文。
  • 异常/边界:LangGraph 不可用 Fallback;敏感问题不泄露隐私。
  • 关联需求/设计:AIChatController;管家完整能力见 08-butler.md(SC-B-01~12,空号 03、08);真人管家见 09-human-butler.md(SC-H-01~07)。
  • 关联用例:TC-P-49

场景 P-50:成长记录查看(SC-P-50)

用户故事:作为家长,我想看孩子成长轨迹,以便回顾进步。

  • 角色:家长
  • 前置条件:有成长记录。
  • 主流程:成长记录页 → 时间线(任务/测评/报告/打卡)。
  • 异常/边界:数据缺失项跳过不报错。
  • 关联需求/设计:GrowthController。
  • 关联用例:TC-P-50

场景 P-51:成长里程碑(SC-P-51)

用户故事:作为家长,我想标记孩子关键节点,以便时间线高亮。

  • 角色:家长
  • 前置条件:已有成长记录。
  • 主流程:系统/手动标里程碑 → 时间线高亮。
  • 异常/边界:重复标幂等。
  • 关联需求/设计:GrowthController。
  • 关联用例:TC-P-51

场景 P-52:商品浏览/搜索(SC-P-52)

用户故事:作为家长,我想发现商品,以便选购。

  • 角色:家长
  • 前置条件:商城可用。
  • 主流程:商城列表/搜索/分类。
  • 异常/边界:下架商品不展示;空结果不报错。
  • 关联需求/设计:MallController / danshop。
  • 关联用例:TC-P-52

场景 P-53:商品详情(SC-P-53)

用户故事:作为家长,我想看商品详情,以便决策。

  • 角色:家长
  • 前置条件:商品上架。
  • 主流程:详情页(描述/价格/库存)。
  • 异常/边界:库存为 0 提示。
  • 关联需求/设计:MallController。
  • 关联用例:TC-P-53

场景 P-54:加购/下单(SC-P-54)

用户故事:作为家长,我想提交订单,以便购买。

  • 角色:家长
  • 前置条件:已登录;商品有货。
  • 主流程:加购 → 结算 → 生成订单。
  • 异常/边界:库存不足拦截;重复下单幂等。
  • 关联需求/设计:MallController。
  • 关联用例:TC-P-54

场景 P-55:订单支付(SC-P-55)

用户故事:作为家长,我想完成支付,以便收货。

  • 角色:家长
  • 前置条件:有 pending 订单。
  • 主流程:支付 → 订单 paid。
  • 异常/边界:支付失败回滚;重复支付幂等。
  • 关联需求/设计:支付。
  • 关联用例:TC-P-55

场景 P-56:订单查询/退款(SC-P-56)

用户故事:作为家长,我想管理订单并申请退款,以便售后。

  • 角色:家长
  • 前置条件:有订单。
  • 主流程:订单列表 → 详情/申请退款。
  • 异常/边界:已发货退款规则;重复退款拦截。
  • 关联需求/设计:订单服务。
  • 关联用例:TC-P-56

场景 P-57:优惠券使用(SC-P-57)

用户故事:作为家长,我想用券抵扣,以便省钱。

  • 角色:家长
  • 前置条件:持有效券。
  • 主流程:选券 → 结算抵扣。
  • 异常/边界:券过期/不满足门槛不可用。
  • 关联需求/设计:优惠券。
  • 关联用例:TC-P-57

场景 P-58:购买会员/套餐(SC-P-58)

用户故事:作为家长,我想购买会员,以便解锁高级能力。

  • 角色:家长
  • 前置条件:套餐上架。
  • 主流程:选档位 → 支付 → 权益生效。
  • 异常/边界:支付失败回滚;重复购买幂等。
  • 关联需求/设计:MemberController。
  • 关联用例:TC-P-58

场景 P-59:会员权益查看(SC-P-59)

用户故事:作为家长,我想明确会员权益,以便了解价值。

  • 角色:家长
  • 前置条件:已购会员。
  • 主流程:会员页 → 权益列表/有效期。
  • 异常/边界:权益随档位变化。
  • 关联需求/设计:MemberController。
  • 关联用例:TC-P-59

场景 P-60:会员续费(SC-P-60)

用户故事:作为家长,我想续费延长权益,以便持续使用。

  • 角色:家长
  • 前置条件:会员将到期。
  • 主流程:到期前续费 → 延期。
  • 异常/边界:续费叠加计算正确;重复续费幂等。
  • 关联需求/设计:MemberController。
  • 关联用例:TC-P-60

场景 P-61:联系人添加(SC-P-61)

用户故事:作为家长,我想管理外部联系人,以便联系。

  • 角色:家长
  • 前置条件:已登录。
  • 主流程:添加联系人(姓名/电话/关系)。
  • 异常/边界:重复号码去重。
  • 关联需求/设计:ContactCard / contact-detail。
  • 关联用例:TC-P-61

场景 P-62:联系人分组/导入(SC-P-62)

用户故事:作为家长,我想批量管理联系人,以便高效维护。

  • 角色:家长
  • 前置条件:已登录。
  • 主流程:建分组 → 导入(ContactImport)。
  • 异常/边界:导入格式错误行跳过并报告。
  • 关联需求/设计:ContactImport。
  • 关联用例:TC-P-62

场景 P-63:联系人详情/权限(SC-P-63)

用户故事:作为家长,我想查看并授权联系人,以便控制可见范围。

  • 角色:家长
  • 前置条件:已有联系人。
  • 主流程:联系人详情 → 设可见权限。
  • 异常/边界:越权查看被拒。
  • 关联需求/设计:ContactCard。
  • 关联用例:TC-P-63

场景 P-64:个人资料编辑(SC-P-64)

用户故事:作为家长,我想维护自身信息,以便账号准确。

  • 角色:家长
  • 前置条件:已登录。
  • 主流程:编辑昵称/头像/绑定手机。
  • 异常/边界:手机格式校验;敏感字段二次确认。
  • 关联需求/设计:AuthController。
  • 关联用例:TC-P-64

场景 P-65:消息通知/提醒设置(SC-P-65)

用户故事:作为家长,我想控制推送提醒,以便按需接收。

  • 角色:家长
  • 前置条件:已登录。
  • 主流程:设通知开关/提醒时间。
  • 异常/边界:关闭后仍保关键安全通知。
  • 关联需求/设计:消息服务。
  • 关联用例:TC-P-65

场景 P-66:隐私设置(SC-P-66)

用户故事:作为家长,我想设置数据共享范围,以便保护隐私。

  • 角色:家长
  • 前置条件:已登录。
  • 主流程:设数据共享范围。
  • 异常/边界:最小权限保底。
  • 关联需求/设计:隐私设置。
  • 关联用例:TC-P-66

场景 P-67:报告代传(家长替孩子/他人代传)(SC-P-67)

用户故事:作为家长,我想让孩子报告由他人代传,以便无原件也能解析。

  • 角色:家长(发起方)
  • 前置条件:持有报告或他人可上传。
  • 主流程:发起代传邀请 → 对方上传 PDF → 关联孩子档案解析入库。
  • 异常/边界:代传需授权令牌;越权代传他人孩子被拒;归属校验。
  • 关联需求/设计:报告代传/report-proxy。
  • 关联用例:TC-P-67

场景 P-68:家庭天盘查看(SC-P-68)

用户故事:作为家长,我想一眼看全家健康,以便统筹。

  • 角色:家长
  • 前置条件:家庭有成员数据。
  • 主流程:打开家庭天盘 → 聚合展示成员能量/报告/方案。
  • 异常/边界:数据缺失降级展示;仅本家庭成员可见。
  • 关联需求/设计:家庭天盘。
  • 关联用例:TC-P-68

场景 P-69:精准营养目标设定(SC-P-69)

用户故事:作为家长,我想设定营养/热量目标,以便指导饮食。

  • 角色:家长
  • 前置条件:已登录。
  • 主流程:设目标(热量/宏量营养素)→ 保存 → 影响食谱推荐。
  • 异常/边界:目标非法(负/超上限)拦截。
  • 关联需求/设计:精准营养。
  • 关联用例:TC-P-69

场景 P-70:舌诊/情绪照片采集(SC-P-70)

用户故事:作为家长,我想上传舌苔照辅助评估,以便了解健康。

  • 角色:家长
  • 前置条件:拍照权限已授权。
  • 主流程:拍照/上传 → 识别情绪标签 → 关联测评。
  • 异常/边界:非照片/模糊拒绝;隐私标注不外露。
  • 关联需求/设计:舌诊情绪识别。
  • 关联用例:TC-P-70

场景 P-71:账号注销(家长注销自身)(SC-P-71)

用户故事:作为家长,我想注销账号,以便合规退出。

  • 角色:家长
  • 前置条件:已登录。
  • 主流程:申请 → 身份验证 → 冷静期 → 数据归档/删除。
  • 异常/边界:有进行中订单/未结清拦截;注销后不可登录。
  • 关联需求/设计:AuthController。
  • 关联用例:TC-P-71

场景 P-72:个人/家庭数据导出(GDPR)(SC-P-72)

用户故事:作为家长,我想下载本人数据,以便数据主权。

  • 角色:家长
  • 前置条件:已登录。
  • 主流程:申请导出 → 生成加密包 → 下载。
  • 异常/边界:敏感字段脱敏;频次限制;越权导出被拒。
  • 关联需求/设计:数据导出(GDPR)。
  • 关联用例:TC-P-72

场景 P-73:多孩子切换孩子上下文(SC-P-73)

用户故事:作为家长,我想在多孩子间切换,以便分别管理。

  • 角色:家长
  • 前置条件:家庭有多孩子。
  • 主流程:选孩子 → 任务/报告/方案上下文切换。
  • 异常/边界:仅本家庭孩子可选;当前孩子态隔离。
  • 关联需求/设计:家庭/成员。
  • 关联用例:TC-P-73

场景 P-74:解绑/重新分配规划师(SC-P-74)

用户故事:作为家长,我想更换服务规划师,以便获取更匹配支持。

  • 角色:家长
  • 前置条件:已绑定规划师。
  • 主流程:解绑 → 重选 → 绑定。
  • 异常/边界:解绑前处理在途方案/预约;非本家庭规划师拒。
  • 关联需求/设计:规划师绑定。
  • 关联用例:TC-P-74

场景 P-75:优惠券领取(活动/分享)(SC-P-75)

用户故事:作为家长,我想领券入卡包,以便消费抵扣。

  • 角色:家长
  • 前置条件:活动在发券期。
  • 主流程:领券 → 入卡包。
  • 异常/边界:库存为0/已领拦截;重复领幂等。
  • 关联需求/设计:优惠券。
  • 关联用例:TC-P-75

场景 P-76:活动报名(名额/并发)(SC-P-76)

用户故事:作为家长,我想报名活动,以便参与。

  • 角色:家长
  • 前置条件:活动在报名期。
  • 主流程:报名 → 占名额 → 确认。
  • 异常/边界:并发超卖拦截;名额满拒;重复报名幂等。
  • 关联需求/设计:活动管理。
  • 关联用例:TC-P-76

场景 P-77:活动打卡/助力(营销)(SC-P-77)

用户故事:作为家长,我想参与打卡/裂变,以便获奖励。

  • 角色:家长
  • 前置条件:活动进行中。
  • 主流程:打卡 → 进度累计 → 助力。
  • 异常/边界:重复打卡幂等;刷量/机器行为拦截。
  • CF 值预估:打卡/助力为平台 CF 值产出点,操作入口须按 SC-X-22 展示「本操作预计 +N CF」(奖励以平台规则为准)。
  • 关联需求/设计:活动。
  • 关联用例:TC-P-77

场景 P-78:消息中心/通知查看(SC-P-78)

用户故事:作为家长,我想查看系统/任务/方案提醒,以便及时处理。

  • 角色:家长
  • 前置条件:有消息。
  • 主流程:打开消息中心 → 列表/已读。
  • 异常/边界:越权消息不可见;分页。
  • 关联需求/设计:消息服务。
  • 关联用例:TC-P-78

场景 P-79:推送/通知开关设置(SC-P-79)

用户故事:作为家长,我想控制接收,以便减少打扰。

  • 角色:家长
  • 前置条件:已登录。
  • 主流程:设开关/提醒时间。
  • 异常/边界:关键安全通知不可关闭。
  • 关联需求/设计:消息服务。
  • 关联用例:TC-P-79

场景 P-80:订阅/会员退款与发票(SC-P-80)

用户故事:作为家长,我想退会员/开发票,以便财务处理。

  • 角色:家长
  • 前置条件:已购会员。
  • 主流程:申请退 → 校验 → 退款/开票。
  • 异常/边界:已消费不退;重复退拦截;发票信息校验。
  • 关联需求/设计:会员/订单。
  • 关联用例:TC-P-80

场景 P-81:方案/任务草稿保存与恢复(SC-P-81)

用户故事:作为家长,我想暂存未完工作,以便续写。

  • 角色:家长
  • 前置条件:编辑中。
  • 主流程:存草稿 → 恢复继续。
  • 异常/边界:草稿有效期;恢复冲突提示。
  • 关联需求/设计:方案/任务。
  • 关联用例:TC-P-81

场景 P-82:全局搜索(报告/方案/任务/商品)(SC-P-82)

用户故事:作为家长,我想快速定位内容,以便高效查找。

  • 角色:家长
  • 前置条件:已登录。
  • 主流程:搜 → 结果按类型分流。
  • 异常/边界:越权结果过滤;空结果不报错。
  • 关联需求/设计:搜索。
  • 关联用例:TC-P-82

场景 P-83:意见反馈/在线客服(SC-P-83)

用户故事:作为家长,我想提反馈/接入客服,以便问题被解决。

  • 角色:家长
  • 前置条件:已登录。
  • 主流程:提交反馈/接入客服。
  • 异常/边界:敏感信息脱敏;附件大小限制。
  • 关联需求/设计:客服。
  • 关联用例:TC-P-83

场景 P-84:分享报告/方案给家人或规划师(SC-P-84)

用户故事:作为家长,我想共享内容,以便协作。

  • 角色:家长
  • 前置条件:有报告/方案。
  • 主流程:生成分享链接 → 对方查看。
  • 异常/边界:链接失效/权限校验;越权分享被拒。
  • 关联需求/设计:分享。
  • 关联用例:TC-P-84

场景 P-85:多端登录/会话互斥(SC-P-85)

用户故事:作为家长,我想多设备安全登录,以便防冒用。

  • 角色:家长
  • 前置条件:已登录设备。
  • 主流程:新设备登录 → 旧设备踢下线/二次验证。
  • 异常/边界:异常设备风控;退出清 token。
  • 关联需求/设计:AuthController。
  • 关联用例:TC-P-85

场景 P-86:成长打卡榜/家庭排行(SC-P-86)

用户故事:作为家长,我想看家庭排行,以便激励。

  • 角色:家长
  • 前置条件:家庭成员有打卡数据。
  • 主流程:看榜 → 排名/进度。
  • 异常/边界:数据仅本家庭可见;排名实时性。
  • CF 值预估:打卡上榜行为为平台 CF 值产出点,打卡入口须按 SC-X-22 展示「本操作预计 +N CF」。
  • 关联需求/设计:勋章/排行。
  • 关联用例:TC-P-86

注:SC-P-87~93(任务完成归因 / 心愿扣减 / 手动发放 / 每日上限 / 报告刷新 / 权重重算 / 文章互动)属「五维指标变化专项」,完整叙事见 07-five-dimension.md(ED 专项),对应用例 TC-P-87~93 见 test-cases/parent.md 对应专项段。