为什么做这件事
美团 / 饿了么主打外卖配送,对中小餐饮的堂食场景覆盖薄;通用模板能跑,但跑不出协同与连锁这两个真实需求。
主流扫码点餐都是「一人一码」,几个人坐一桌互相看不到购物车、改菜会互相覆盖,最后只能口头协调,体验反而不如服务员人工点单。
美团、饿了么主打外卖配送,对堂食扫码场景覆盖薄。商户要么自研成本太高,要么用通用模板,菜单与经营方式都不贴合。
品牌方希望「菜单与品牌共享、库存与订单各店独立」,但通用模板做不到。多门店之间的菜单同步、维护态、数据搬家都需要工程级解决方案。
核心亮点
每张卡都对应一篇核心实现文档,配论文里同款的手绘流程图。
WebSocket 桌台共享购物车 + cart.version 乐观并发 + opId 幂等键,弱网与同桌并发写入不会重复扣减或丢失变更。
库存规格组按笛卡尔积自动生成 SKU;非库存规格通过 priceItemKey 在购物车与订单中独立计费、合并同款,支持电商级规格组合。
AdminScope 多对多授权 + 角色 rank 比较 + canManageSharedCatalog 动态计算位,实现「角色层级 + 共享菜单写权限」语义;连锁租户共享菜单、分店独立维护库存。
浏览器 / CDN / 进程内 / Redis / WebSocket 五层缓存按数据热度与时效性分级;读多写少走 ETag 协商缓存,必须即时感知的购物车与维护态改走 WS 主动推送,绕开缓存滞后。
Cache-Control 三层联动,命中即免回源 access_token / 维护态走进程内 Map + Redis 双层,分布式锁防击穿
实机截图
小程序双屏拼图呈现一段交互,Web 管理后台覆盖平台 / 租户 / 门店三视角。点击任一张可放大查看;左右键切换、Esc 关闭。
每张图为左前右后两屏拼接,呈现一段完整交互(如菜品详情 → 规格选择)。
同一套界面通过 X-Board 头切换视角,权限由后端实时核对 AdminScope 决定。








更多截图(规格管理、租户概览、平台门店列表等)见 完整截图集 →
系统架构
前后端分离的三端架构:所有重要的写入都收口在数据库事务里;Redis 把锁、广播、缓存抽出来做公共逻辑;客户端声明的租户与门店信息仅作为意图,授权由服务端实时核对。
微信小程序 / H5 + Web 管理端
Taro 4 + React 双端编译;MUI + Vite 后台
Express REST + 两路 WebSocket
公共中间件链统一收口鉴权、幂等、维护态、价格转换
目录 / 订单 / 桌台 / 同步 / 维护 / 微信
以「能力」聚合,通过 TypeORM 事务 + Redis 总线解耦
MySQL 8 + Redis 6.2 + COS
MySQL 业务真相源;Redis 仅承载可重建状态;COS 承载图片与导出快照
三个子项目 + 基础设施,技术栈按职责分组。
工程证据
后端集成测试为主的质量门禁、三端独立流水线、五层缓存的梯度实时性 — 把「能跑」做到「能交付」。
后端 Node.js + MySQL 8 + Redis 6.2 全部在一台腾讯云 Lighthouse 上由 docker-compose 起;小程序 H5、Web 管理端、Landing 三套静态产物直接发到腾讯云 COS,由 CDN 做边缘缓存与回源;图片、二维码、论文 PDF 也走同一套 COS。
后端:Docker 镜像 → TCR → SSH 远程拉镜像 + 蓝绿重启;Web 管理端 / 小程序 H5:dist 推 COS + CDN 刷新;论文:Typst 编译 → 上传 latest.json 指针。后端集成测试 + 90% 覆盖率门禁与 lint 一并卡在 CI。
资源
从论文 PDF、18 篇技术与产品文档、实机截图集到 GitHub 源码,每一条入口都可以独立打开。
Typst 编写的论文 PDF,覆盖系统设计、核心实现、测试与部署。在线阅读或直接下载。
在线阅读 →18 篇 markdown 文档:任务书、PRD、服务端 / 前端技术、接口规范、核心实现、CI/CD、进度报告。
浏览文档全集 →小程序、Web 管理端、平台/租户/门店三视角,所有界面分组铺开,点开任一张可放大。
查看完整截图集 →三端代码、CI/CD 工作流、单元测试与本地部署脚本都在仓库公开可见。
访问 GitHub →八篇专题,每篇聚焦一个模块的工程取舍。
桌台协同会话
同桌多人实时共享购物车的 WebSocket 协议与并发模型
规格、价格和库存模型
库存 / 非库存规格组与 SKU 笛卡尔积 + 行级锁的下单事务
小程序端路由管理
Taro 4 + React Router 双端路由的拆分与拦截
分类渲染与电梯锚定
点餐页菜单分类的 IntersectionObserver 锚定与滚动联动
鉴权与安全
JWT + AdminScope + 信任边界四条切分
平台多租户
三层角色 + 单店 / 连锁两类租户的统一抽象
数据导出与恢复
平台 / 租户 / 门店三层快照与克隆式恢复
缓存策略与实时性
五层缓存与梯度实时性的分配原则