flowchart TD
%% ============ 颜色定义 ============
classDef actor fill:#e1f5fe,stroke:#0288d1,stroke-width:2px
classDef action fill:#fff3e0,stroke:#f57c00,stroke-width:1px
classDef system fill:#e8f5e9,stroke:#388e3c,stroke-width:1px
classDef decision fill:#fce4ec,stroke:#d32f2f,stroke-width:1px
classDef role fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1px
subgraph 注册与准备
P1(("家长<br>开始")) --> P2[微信授权登录]
P2 --> P3[创建/加入家庭]
P3 --> P4[添加孩子为家庭成员]
end
subgraph 选购套餐与下单
P4 --> S1[浏览测评套餐/材料<br>POST /material/list]
S1 --> S2[选择成长规划师<br>浏览规划师列表]
S2 --> S3{是否首次测评?}
S3 -->|是| S4[填写孩子信息快照<br>身高/体重/学校等]
S3 -->|否| S5[选择已有孩子档案]
S4 --> S6[创建订单含预约信息<br>POST /order/create]
S5 --> S6
S6 --> S7[选择支付方式<br>POST /order/pay]
S7 --> S8[支付完成<br>订单状态: paid]
end
subgraph 预约与执行
S8 --> A1[系统创建预约记录<br>POST /appointment/create]
A1 --> A2[规划师确认预约<br>POST /appointment/confirm]
A2 --> A3[家长与孩子赴约<br>线下/线上测评]
A3 --> A4[规划师完成测评执行<br>POST /appointment/complete]
end
subgraph 结果录入与上传
A4 --> R1{报告来源?}
R1 -->|系统执行端录入| R2[规划师录入测评结果<br>POST /result/record]
R1 -->|PDF报告上传| R3[上传DAN PDF报告<br>POST /dan-assessment/report/parse-preview]
R3 --> R4[AI解析PDF<br>Phase 1 /parse-preview]
R4 --> R5[家长预览解析结果<br>编辑/确认]
R5 --> R6[确认入库<br>Phase 2 /confirm]
R6 --> R7[独立化流程: <br>/api/dan-report/confirm]
R7 --> R8[完成分析<br>/complete-analysis]
R2 --> R9[测评结果写入<br>DanAssessmentResult]
R8 --> R9
end
subgraph 测评报告与AI解读
R9 --> V1[家长查看测评报告]
V1 --> V2{是否需要<br>AI解读?}
V2 -->|是| V3[AI聊天解读<br>POST /api/ai/chat/send<br>传入 reportId]
V3 --> V4[AI分析各维度得分<br>注意力/记忆力/逻辑等]
V4 --> V5[AI生成个性化建议<br>训练方案/改善计划]
V5 --> V6[家长查看AI解读结果]
V2 -->|否| M1
end
subgraph 专业身份介入
V6 --> M1{是否需要<br>深度服务?}
M1 -->|全方位跟进| M2[管家介入]
M1 -->|成长规划| M3[规划师深度介入]
M1 -->|自行训练| M4[查看成长档案]
M2 --> M2a[申请管家服务]
M2a --> M2b[管家审核建档]
M2b --> M2c[管家协调规划师+营养师]
M2c --> M2d[定期跟踪测评进展]
M2d --> M4
M3 --> M3a[规划师分析测评报告]
M3a --> M3b[规划师制定成长任务]
M3b --> M3c[孩子执行任务<br>含小游戏训练]
M3c --> M3d[规划师审核任务]
M3d --> M3e[调整下一阶段方案]
M3e --> M4
end
subgraph 成长档案追踪
M4 --> T1[测评结果进入成长档案<br>GrowthRecordController]
T1 --> T2[系统生成五维能量变化]
T2 --> T3[家长查看成长趋势]
T3 --> T4{是否需要<br>下一轮测评?}
T4 -->|是| S1
T4 -->|否| T5[结束]
end
%% ============ 角色标注 ============
RP1(("👤 家长")):::actor
RC(("👶 孩子")):::actor
RT(("📋 成长规划师")):::role
RA(("🤖 AI教练")):::role
RB(("🏠 管家")):::role
P4 -.- RC
S2 -.- RT
A2 -.- RT
A4 -.- RT
V3 -.- RA
M2 -.- RB
M3 -.- RT
| 角色 | 系统映射 | 职责 |
|---|---|---|
| 家长 | role=parent |
发起测评、选购套餐、下单支付、查看报告、选择服务 |
| 孩子 | role=child |
接受测评、执行训练任务 |
| 成长规划师 | role=teacher |
确认预约、执行测评、录入结果、制定改善任务、审核跟踪 |
| AI教练 | AIChatController + Dify + DAN知识库 |
自动解析PDF报告、解读维度得分、生成建议与训练方案 |
| 管家 | ButlerService / butler role |
全程服务协调,对接规划师/营养师等资源 |
| 管理员 | role=admin |
测评材料管理、套餐配置、审核管理(后台) |
docs/flows/health-detection-flow.mddocs/flows/dan-assessment-flow.md使用支持 Mermaid 的 Markdown 渲染器(如 GitHub、VS Code 插件)查看流程图。两张图分别覆盖了完整的用户旅程和所有角色交互节点。