各子图节点连通状态汇总(由子页面审计结果回填)
graph LR
ACQ["获客 Acquisition"]
CONV["转化 Conversion"]
DELV["服务交付 Delivery"]
PAY["收款 Payment"]
RET["留存复购 Retention"]
OPS["运营管理 Operations"]
INFRA["共享基础设施 Infrastructure"]
ACQ -->|"E1 获客-转化"| CONV
CONV -->|"E2 转化-交付"| DELV
DELV -->|"E3 交付-收款"| PAY
PAY -->|"E4 收款-留存"| RET
PAY -->|"E5 收款-运营"| OPS
DELV -->|"E6 交付-留存"| RET
RET -->|"E7 留存-转化"| CONV
RET -->|"E8 留存-获客"| ACQ
DELV -->|"E9 交付-运营"| OPS
INFRA -.-> ACQ
INFRA -.-> CONV
INFRA -.-> DELV
INFRA -.-> PAY
INFRA -.-> RET
INFRA -.-> OPS
style ACQ fill:#1a2332,stroke:#3b82f6,color:#e0e0e0
style CONV fill:#1a2332,stroke:#8b5cf6,color:#e0e0e0
style DELV fill:#1a2332,stroke:#06b6d4,color:#e0e0e0
style PAY fill:#1a2332,stroke:#22c55e,color:#e0e0e0
style RET fill:#1a2332,stroke:#f59e0b,color:#e0e0e0
style OPS fill:#1a2332,stroke:#ef4444,color:#e0e0e0
style INFRA fill:#161b22,stroke:#8b949e,stroke-dasharray:5,color:#8b949e
linkStyle 0 stroke:#f59e0b,stroke-width:2px,stroke-dasharray:5
linkStyle 1 stroke:#22c55e,stroke-width:2px
linkStyle 2 stroke:#22c55e,stroke-width:2px
linkStyle 3 stroke:#22c55e,stroke-width:2px
linkStyle 4 stroke:#22c55e,stroke-width:2px
linkStyle 5 stroke:#f59e0b,stroke-width:2px,stroke-dasharray:5
linkStyle 6 stroke:#f59e0b,stroke-width:2px,stroke-dasharray:5
linkStyle 7 stroke:#ef4444,stroke-width:2px,stroke-dasharray:5
linkStyle 8 stroke:#22c55e,stroke-width:2px
linkStyle 9 stroke:#8b949e,stroke-width:1px,stroke-dasharray:5
linkStyle 10 stroke:#8b949e,stroke-width:1px,stroke-dasharray:5
linkStyle 11 stroke:#8b949e,stroke-width:1px,stroke-dasharray:5
linkStyle 12 stroke:#8b949e,stroke-width:1px,stroke-dasharray:5
linkStyle 13 stroke:#8b949e,stroke-width:1px,stroke-dasharray:5
linkStyle 14 stroke:#8b949e,stroke-width:1px,stroke-dasharray:5
| 状态 | 边 | 涉及端口 | 代码路径 | 备注 |
|---|---|---|---|---|
| ⚠️ | E1 获客 → 转化 | API, Landing |
api/demo-request.jsservices/acquisition/gbp-sync-service.jsservices/templating/variable-engine.js
|
GBP Sync 存在但未配置 booking URL 到 Google 商家页面; Demo-request 仅发邮件通知,无自动化跟进到预约系统; 模板变量 booking_link 可用,但获客 Agent 未直接输出预约链接
|
| ✅ | E2 转化 → 交付 | Web, API, Kiosk |
api/public/booking.jsapi/checkin.jsservices/checkinService.js
|
Public Booking API 创建预约;Kiosk 预约自动触发 checkin; Checkin API 支持手机号/邮箱验证 + quick check-in; 预约状态从 booked → checked_in 链路完整 |
| ✅ | E3 交付 → 收款 | Web, API, POS |
frontend/.../checkout/[appointmentId]/page.tsxapi/payment/checkout-routes.jsapi/payment/intent-routes.js
|
Web 端 checkout 页面以 appointmentId 为入口; 支持 cash + POS card 两种支付方式; 支付完成后更新预约状态为 completed |
| ✅ | E4 收款 → 留存 | API |
api/payment/intent-routes.js (L223)services/loyalty/loyaltyService.js (onPaymentCompleted)api/loyalty.js (checkout/apply)
|
POS 支付完成自动调用 onPaymentCompleted();积分自动累加、会员等级自动升级; Checkout preview/apply/refund API 完整; 注意:cash 支付路径未见 loyalty 调用(仅 intent-routes 有) |
| ✅ | E5 收款 → 运营 | API |
services/commission/commissionRecorder.jsservices/reports/queries/revenue.jsservices/reports/queries/payroll.jsservices/reports/queries/sales-summary.js
|
支付完成触发 commission 记录(cash + card 均有); 交易数据流入 revenue/sales/payroll 等 20+ 报表查询; 数据管道完整 |
| ⚠️ | E6 交付 → 留存 | API |
services/automation/trigger-engine.js (SERVICE_COMPLETED)services/automation/event-emitter.jsservices/acquisition/review-evaluator.js
|
自动化引擎支持 service_completed 事件触发;Review evaluator 决策逻辑完整(tip 阈值、冷却期、周上限); 但 review solicitation 仅在 Agent tool 中调用,未作为 automation action 接入; 服务完成 → 自动营销链路通,→ review 请求链路松 |
| ⚠️ | E7 留存 → 转化 | API |
services/templating/variable-engine.js (L438)services/templating/legacy-compat.js
|
Email/SMS 模板变量 {{system.booking_link}} 可嵌入预约链接;营销自动化可发送包含 booking_link 的消息; 但缺少转化追踪 — 无法度量"从营销邮件到预约"的归因 |
| ❌ | E8 留存 → 获客 | - |
services/loyalty/referralService.jsservices/loyalty/referralRewardService.js
|
Referral 系统仅限 loyalty 积分奖励闭环; 无代码连接到 Acquisition Agent(GBP/SEO/Content); 推荐人带来的新客不会触发获客指标统计; Referral → 新客注册 → 获客归因链路完全缺失 |
| ✅ | E9 交付 → 运营 | Web, API |
services/timeClockService.jsservices/timeCardService.jsservices/reports/queries/payroll.js
|
Time Clock 系统记录员工工时(clock in/out/break); Time Cards 数据流入 payroll 报表查询; 排班 + 工时 + 服务记录三方汇入运营报表 |
点击卡片进入各价值环节的详细节点审计
| 级别 | 子图 | 问题 | 影响 |
|---|---|---|---|
| ❌ P0 | 收款 | 支付完成后 6 条扇出边分散在 4 个独立 call site,无统一 onPaymentCompleted() | 现金不累积分,POS 不记佣金,手动录入零副作用 |
| ❌ P0 | 转化 | Phone Bot 和 Agent Chat 绕过 conflict-detector 直接 INSERT | 双重预约风险,且无通知分发 |
| ❌ P0 | 基础设施 | 103 个非测试文件仍使用 pool.query 绕过统一数据访问层 | 租户数据泄露风险 |
| ❌ P1 | 基础设施 | CodePay 支付网关无 CircuitBreaker | Constitution 违规,支付降级无保护 |
| ❌ P1 | 获客 | publishPost() 从未被调用,内容发布管道断裂 | Content Agent 产出内容无法发布 |
| ❌ P1 | 基础设施 | 3 个 acquisition agent 未注册到 store-network | Agent 调度返回 undefined |
| ⚠️ P1 | 留存 | evaluationService 添加标签后未调用 automationEvents.tagAdded() | 标签-自动化触发链路断裂 |
| ⚠️ P1 | 服务交付 | Queue API 路由未挂载到 server.js | 前端 QueueManager 按钮不可用 |
| ⚠️ P2 | 运营 | 小费数据-薪酬链路断层 | 薪酬计算可能漏算小费 |
| ⚠️ P2 | 获客 | Content Agent 用内联 regex 而非共享 safety filter | 安全过滤标准不一致 |