← Back to Blog

技术设计方案文档:“X超”智能体育助手小程序

24 min read(4611 words)

技术设计方案文档:“X超”智能体育助手小程序

文档状态: V1.0 创建日期: 2026-04-22 负责人: 高级架构师团队


一、业务定义与验收说明 (Product & Acceptance Spec)

1.1 需求描述

本项目旨在为大型体育赛事(对标“中网”)开发一款名为“X超”的微信小程序智能助手。该小程序需绑定客户自有公众号,为观赛用户提供一站式服务,核心解决停车难、找座难、信息获取难的问题。 核心功能优先级排序:

  1. P0 (核心流程): 车位一览与推荐、票务信息查询核验。
  2. P1 (体验增强): 观赛规则智能问答、基础版(非AR)座位分区导览。
  3. P2 (噱头/二期): AR分色实景导览。

1.2 核心指标

指标维度指标项目标值验收标准
性能小程序首屏加载< 1.5s4G弱网环境下首屏FCP
性能车位数据更新延迟< 30sAPI轮询间隔与数据落库时差
业务票务查询成功率99.9%排除三方票务系统故障外
业务问答准确率(关键词匹配)95%覆盖知识库内50-100条标准问法
体验基础路线导览成功率98%用户点击“导航”后成功拉起地图

1.3 不做清单 (Out of Scope)

  • 不做 自建二维码生成与验票系统(仅做展示与核验跳转/查询)。
  • 一期不做 复杂的AI大模型对话(仅用关键词匹配+云端兜底)。
  • 一期不做 真实的3D建模/点云扫描AR导航(仅做模拟AR2D高精度室内地图导航)。
  • 不做 iOS/Android 全机型AR深度适配(AR功能若上,仅支持主流高端机型,低端机自动降级为2D地图)。
  • 不做 后端服务器硬件采购与机房托管(全栈云开发/云托管)。

1.4 术语表

术语定义
X超小程序项目代号
三方票务指大麦、猫眼或客户私有票务系统API。
兜底方案当AR失效或GPS弱时,回归到2D地图文字引导或人工客服。
分色/分区指体育场看台的颜色区域划分(如A区红色,B区蓝色),用于快速定位。

1.5 价值评估

  • 用户价值:减少30%寻车位时间,100%消除因找不到座位导致的场内拥堵。
  • 商业价值:增强公众号粉丝粘性,降低现场引导志愿者人力成本。
  • 技术价值:沉淀高并发赛事场景下的缓存穿透与降级方案。

1.6 风险评估 (关键!依据批复深化)

风险项风险等级影响应对/缓解措施
三方票务API不稳定/无权限票务功能不可用,项目延期。1. 合同前置:明确需主办方提供API文档与测试Key。
2. Mock机制:开发阶段基于Mock数据先行。
3. 降级文案:接口超时展示“票务系统繁忙,请稍后或出示纸质票”。
停车场API覆盖不全/数据不准推荐错误车位,引发投诉。1. 冗余设计:支持手动录入车位余量(运营后台)。
2. 信心指数:UI显示数据更新时间,超过5分钟提示“数据仅供参考”。
场馆GPS信号弱/AR漂移导航失效,用户迷失。1. 技术选型降级:一期不做真实AR,改用2D矢量地图+蓝牙信标辅助定位。
2. 产品兜底:提供“拍照识图”功能(拍照当前场景,后台返回文字路径指引)。
客户UI/UX一票否决反复修改,上线延期。1. 采用成熟的组件库(TDesign)。
2. 快速产出高保真交互原型图确认,再编码。
资源资质到位慢开发环境阻塞。1. 开发方垫资开通云资源(Serverless按量付费)。
2. 域名、SSL证书提前申请,预留备案时间。

二、业务模块与总体架构 (Business Modules & Overall Architecture)

2.1 核心业务流程时序图 (车位+票务+导览)

2.2 DDD 限界上下文防腐

上下文 (Bounded Context)核心职责防腐层 (Anti-Corruption Layer)
车位上下文 (Parking Context)停车场聚合、余位计算、推荐算法ParkingAdapter 屏蔽不同停车场数据源(API A返回XML,API B返回JSON)的差异,统一转换为内部ParkingLot实体。
票务上下文 (Ticket Context)票夹展示、座位信息核验TicketTranslator 屏蔽大麦/猫眼/私有票务的数据字段差异。绝不直接暴露三方原始错误码给前端
导览上下文 (Navigation Context)场馆GIS、路径规划、区域定位LocationGateway 封装微信小程序定位API与蓝牙信标SDK。若GPS精度&lt;10米,自动降级为手动选点。
问答上下文 (FAQ Context)知识库检索、高频问题匹配意图识别层:优先Elasticsearch/本地缓存关键词匹配,若无结果再调用云端AI API(如文心一言/通义千问),节省Token成本。

2.3 爆炸半径控制

  • 部署隔离:车位服务、票务服务、基础用户服务独立部署在云托管的不同版本/服务中。
  • 故障降级
    • 车位API挂 -> 前端展示静态地图+“停车场运营信息更新中”+ 客服电话。
    • 票务API挂 -> 依然展示本地缓存的票务基本信息(若有),禁止白屏

2.4 架构演进与扩展性预留

  • AR模块预留Navigation Context内部设计 IARProvider 接口。
    • V1.0 实现:MockARProvider (仅显示箭头贴纸+相机背景,无SLAM定位)。
    • V2.0 实现:ARKitProvider (需iPhone 12+ / 高端Android支持)。

2.5 组织匹配与容错

  • 前端团队:负责小程序UI/UX及交互,不深入处理三方API差异。
  • 后端团队:通过BFF层(Backend for Frontend)聚合原子服务,屏蔽后端复杂度,前端只需调用一个聚合接口。

三、成本与资源估算 (FinOps)

3.1 算力估算 (基于微信云托管)

  • 场景:赛事期间日活约 1-2万人,并发请求主要集中在赛前2小时。
  • 规格:最小副本数 2 (0.25核0.5G) + 弹性伸缩最大至 10。
  • 预估月费:¥500 - ¥1500 (按量计费,非赛事期间缩容至0)。

3.2 存储与带宽成本

  • CDN流量:小程序代码包+场馆地图SVG/PNG资源,约 50GB/月 -> ¥100
  • 数据库:云开发文档型数据库,存储票务缓存、用户问答日志 -> ¥50

3.3 流量精算 (API调用费用)

服务预估调用量单价月成本
三方票务API1万次查询通常主办方免费提供¥0
云端AI大模型500次兜底调用 (Token)¥0.02/次¥10
地图API (路径规划)2万次微信小程序自带/免费额度内¥0

四、编码实施与数据设计规范

4.1 业务流程与状态流转

显式状态机图 (票务查询状态)

异常分支与补偿时序图 (车位推荐)

  • 异常:停车场API超时或返回乱码。
  • 补偿
    1. 后台定时任务(Cron)每5分钟抓取一次数据存入数据库。
    2. API实时查询失败时,降级读取数据库最后一次成功的时间戳数据
    3. 若数据库也为空,返回静态配置的停车场列表(仅名称和固定电话)。

4.2 数据架构与生命周期

缓存防御策略 (重点解决车位高频查询)

  • 缓存穿透:车位ID不存在 -> 布隆过滤器 (预热所有合法停车场ID)。
  • 缓存击穿:热门场馆车位Key过期 -> 互斥锁 (Redisson) 保证只有一个线程去拉取三方API重构缓存。
  • 缓存雪崩:所有车位Key同时过期 -> 随机TTL (30s + Random(1~10s))。

数据量级预估与归档策略

  • 问答日志表:单日预估500条,按月归档至冷存储(COS),保留3个月。

4.3 接口设计与安全防御

明确错误码映射表 (票务模块)

三方票务原始错误内部错误码前端用户可见文案
TICKET_NOT_FOUND404001暂无您的购票记录,请核对登录手机号。
ORDER_NOT_PAID402001订单尚未支付,请完成支付后重试。
API_RATE_LIMIT429001当前查询人数较多,请稍后再试。
SYSTEM_ERROR500000系统繁忙,请下拉刷新或查看实体票。

水平越权校验逻辑 (关键安全点)

  • 场景:用户查看 ticketId=1001 的详情。
  • 逻辑:后端服务层必须校验 SELECT user_id FROM ticket WHERE id = 1001
  • 强制约束禁止仅依赖前端传入的 userId 参数进行查询。必须从 Header 解析的 JWT Token 中提取当前登录用户ID。

4.4 稳定性与容灾设计

强依赖降级预案

强依赖服务核心功能降级预案 (B计划)
三方票务API展示电子票提示用户出示购票短信或纸质票,展示静态座位图。
场馆GPS信号AR/实景导航强制切换至2D地图模式,展示文字路标(“向前50米右转”)。
停车场API显示余位显示“当前余位数据更新延迟,仅供参考”,展示静态评价(车位充足/紧张)。

P0 告警规则提案

  • 票务接口成功率 < 95% (5分钟内) -> 电话告警运维/开发。
  • 车位接口响应时间 P99 > 2s -> 钉钉群告警,排查三方API网络。

五、测试策略与质量门禁

异常场景测试覆盖矩阵 (AR与GPS专项)

场景前置条件预期结果
GPS信号弱进入室内/地下室App自动提示“检测到GPS信号弱,已切换至室内地图模式”。
AR初始化失败低端Android机自动跳过AR,直接展示2D指北针。
摄像头权限拒绝点击“AR导航”弹窗引导去设置页开启,同时保留“文字导航”入口。
三方票务返回乱码Mock Server配置小程序不Crash,展示通用错误提示。

六、上线回滚与运维手册

6.1 功能开关 (Feature Flag)

  • FEATURE_AR_ENABLE:默认 OFF。上线一周稳定后,仅对白名单用户(测试机型)开放 ON
  • FEATURE_AI_ENABLE:默认 ON。若云AI费用超标,一键切换为纯本地关键词模式。

6.2 数据库回滚 DDL

  • 原则:只做新增字段绝不删除字段/重命名字段
  • 回滚方案:代码回滚至旧版本,新字段留空不影响旧逻辑。

附、架构决策记录 (ADR)

ADR-01-2026-04-22: 关于AR导航技术选型的决策

  • 背景:客户提出AR分色导览,但项目周期紧、全机型覆盖难度大、场馆GPS信号差。
  • 结论一期采用“伪AR + 高精度2D矢量图”策略
    1. 伪AR:仅调用摄像头显示实景,叠加固定的箭头UI贴纸,不做空间计算(SLAM)。
    2. 2D矢量图:基于座位号计算逻辑路径,在SVG地图上高亮路线。
  • 后果
    • 正面:开发工作量减少80%,规避了80%的Android机型兼容性崩溃风险,稳定性高。
    • 负面:缺乏真实的AR沉浸感,可能无法满足客户对“噱头”的最高期待。
  • 替代方案:集成商汤/视+ AR SDK(被否决,成本高,开发周期长,且仍需扫描建模)。

功能拆分与工期评估表

优先级一级功能模块二级功能三级功能/详细说明预估工期 (人日)备注与关键依赖
P0基础架构与框架小程序初始化公众号绑定与跳转逻辑2需提前完成公众号关联配置
微信云托管环境搭建与域名备案3依赖基础设施资源到位速度
全局用户授权与手机号绑定2
车位一览系统数据接入层三方停车场API对接与适配 (ParkingAdapter)3高风险:需协调三方提供文档与Key
停车场数据定时抓取CronJob与降级库构建2兜底方案:API失效时读取降级库
业务逻辑层实时余位计算与缓存策略 (Redis布隆过滤器)3防止缓存穿透/击穿
空位充足度推荐算法 (红/黄/绿饱和度)1
前端展示层地图组件集成与停车场标记点渲染3
车位详情页与一键导航 (跳转地图App)2
票务信息查询数据接入层三方票务系统对接 (TicketTranslator)4高风险:需主办方开通API权限
票务数据Mock机制 (应对开发期接口未就绪)1并行开发保障
业务逻辑层票夹信息聚合与座位号格式化展示2
水平越权校验逻辑 (基于JWT Token)1安全红线
前端展示层电子票根样式开发 (座位号/区域/时间)2
票务核验状态展示 (仅查询,不生成码)1
P0小计32 人日约 1.5 个月 (按1人全栈/2人并行估算)
P1观赛规则问答知识库构建50-100条FAQ结构化整理与导入2内容由客户提供
检索逻辑本地关键词匹配引擎 (Elasticsearch/本地缓存)3优先本地匹配,节约AI成本
云端AI大模型API兜底调用1仅本地无结果时调用
前端交互智能问答悬浮窗与对话界面2
基础分区导览2D场馆地图场馆2D矢量图绘制 (基于座位分区图)5核心工作:需要高清底图与坐标标定
逻辑引擎座位号解析与区域坐标映射算法3输入"A区15排"映射至SVG路径
前端展示SVG交互式地图渲染与高亮路线3
兜底方案静态文字路径指引与"拍照识图"后台人工接口2解决GPS信号弱问题
后台管理系统运营配置停车场手动录入/修改余量界面2应对API数据不准
知识库问答内容CMS管理2
P1小计25 人日约 1.2 个月 (可与P0并行开发)
P2AR实景导览伪AR相机层调用手机摄像头与背景流获取2按伪AR设计 (无SLAM)
叠加渲染层2D指北针/箭头贴纸在屏幕固定位置绘制2不做空间计算,避免全机型适配坑
机型兼容降级低端机/安卓适配检查与自动降级至2D地图3核心是降级策略实现
分色分区适配根据座位区域渲染不同颜色边框滤镜 (伪色)1
P2小计8 人日约 0.4 个月 (仅开发伪AR噱头版)
测试与发布质量保障全链路联调P0/P1接口联调与异常场景覆盖5必须Mock三方API异常
性能与兼容性小程序真机调试 (iOS/Android主流机型)3
上线发布灰度发布配置 (Feature Flag)、生产环境验证2
测试小计10 人日约 0.5 个月

汇总工期与交付建议

阶段内容范围预估周期 (并行2人团队)里程碑交付物
一期交付P0 车位 + 票务3.5 - 4 周核心功能可用版本 (解决停车与验票痛点)
二期交付P1 问答 + 2D导览 + 后台累计 6 - 7 周完整运营版本 (包含后台内容维护能力)
三期交付P2 伪AR导览累计 8 - 9 周全功能版本 (满足噱头需求且稳定降级)

风险缓冲说明

  • 上述工期未包含三方API资质审批等待期。若主办方提供大麦/猫眼API文档和Key延迟,P0票务功能将存在延期风险,建议合同中明确约定接口交付时间节点。
  • 若客户坚持要求真实SLAM空间计算AR(非伪AR),P2部分工期需追加至30人日以上,且需额外预留硬件扫描建模时间。

这篇内容对你有帮助吗?