| 项目 | Star | 前端 | 后端 | 数据库 | 商户模式 | 抢单功能 | 综合评分 |
|---|---|---|---|---|---|---|---|
| DSO2O 外卖 | 1,953 | UniApp | ThinkPHP 6 | MySQL | 多商户 | ✅ 自动派单 + 抢单 | 92/100 |
| 叮点跑腿 ddrun | 1,211 | UniApp | Midway 3.0 | MySQL | 单商户 | ✅ 抢单 + 智能分配 | 88/100 |
| 万岳外卖系统 | 815 | UniApp | ThinkCMF + PhalApi | MySQL | 多商户 | ✅ 抢单 + 智能派单 | 85/100 |
| 暹罗外卖 | 479 | 原生小程序 | Spring Cloud | MySQL + Redis | 多商户 | ❌ 骑手端未开源 | 55/100 |
| MiniRun 校园跑腿 | 174 | 微信小程序 | 微信云开发 | 云数据库 | 单商户 | ⚠️ 任务接单 | 65/100 |
技术方案
| 层级 | 技术栈 |
|---|---|
| 前端(小程序) | UniApp(跨端:微信小程序 + APP) |
| 后端 | ThinkPHP V6.0 + PHP + Composer 组件化 |
| 数据库 | MySQL + Redis / Memcached 缓存 |
| 实时通信 | Socket 长连接(骑手端实时订单推送) |
| 部署 | 宝塔面板一键部署 / 常规 LNMP |
前端(小程序端)功能完成度
⚠️ 注意:小程序源码在独立 UniApp 仓库中(非本仓库),本仓库包含 PC 端模板和静态资源。
| 功能模块 | 完成度 | 说明 |
|---|---|---|
| 用户下单 | ✅ 完整 | 商品浏览、购物车、在线下单、支付,支持多门店 |
| 配送方式选择 | ✅ 完整 | 外卖配送、到店自取、预约配送、同城跑腿、商家自配/平台配送/达达第三方配送 |
| 骑手抢单界面 | ✅ 完整 | 骑手端独立页面,订单大厅可抢订单,GatewayWorker WebSocket 实时推送 |
| 订单状态追踪 | ✅ 完整 | 全流程状态展示 + 订单日志 + 配送员地图定位 |
| 实时通知 | ✅ 完整 | GatewayWorker WebSocket 长连接实时推送 |
| 商户管理界面 | ✅ 完整 | PC 商家端 + 商家手机端,商品/订单/店铺管理 |
后端功能完成度
| 功能模块 | 完成度 | 说明 |
|---|---|---|
| 订单管理 | ✅ 完整 | 完整订单生命周期,含商品订单 + 跑腿订单 + 服务订单 |
| 配送方式配置 | ✅ 完整 | 后台可配置配送费计算规则、配送范围、支持三种配送模式 |
| 骑手抢单引擎 | ✅ 完整 | WebSocket 推送抢单 + 自动派单 + 指定配送员,三种模式灵活切换 |
| 多商户管理 | ✅ 完整 | 多商户入驻、店铺等级、保证金、自营店铺,80+ 管理模块 |
| 骑手管理 | ✅ 完整 | 配送员注册/结算/投诉/保证金,平台配送 + 达达第三方配送 |
| 支付集成 | ✅ 完整 | 微信 JSAPI/扫码、支付宝 APP、预存款、充值卡 |
| 后台管理 | ✅ 完整 | 80+ 管理模块:站点/会员/商品/店铺/交易/营销/统计/跑腿/上门服务 |
核心亮点
• 双模式配送:同时支持自动派单和骑手抢单,可根据运营需求灵活切换
• 多业务线:外卖 + 跑腿 + 家政,可扩展为综合本地生活平台
• 城市级管理:支持多城市运营,每个城市独立后台管理
• 部署简单:宝塔面板一键部署,降低运维门槛
技术方案
| 层级 | 技术栈 |
|---|---|
| 前端(小程序) | UniApp(Vue 50.2% + TypeScript 40.4% + JavaScript 7.9%) |
| 后端 | Midway 3.0(Node.js 框架,企业级 IoC/DI) |
| 管理后台 | Nuxt 2.x(Vue SSR) |
| 数据库 | MySQL |
| Node 版本 | Node.js 16.x |
前端(小程序端)功能完成度
| 功能模块 | 完成度 | 说明 |
|---|---|---|
| 用户下单 | ✅ 完整 | 发布跑腿任务(帮送/帮买/帮取),填写地址、物品、时间要求 |
| 配送方式选择 | ✅ 完整 | 帮送、帮买、帮取三大服务类型,优惠券/积分抵扣/小费 |
| 骑手抢单界面 | ⚠️ 部分 | 骑手端任务大厅,按距离排序展示空闲订单,先到先得,无并发锁保护 |
| 订单状态追踪 | ⚠️ 部分 | 完整状态时间线(创建/支付/接单/送完/完成),但无实时 GPS 地图追踪 |
| 实时通知 | ⚠️ 部分 | 依赖微信订阅消息推送,无 WebSocket 实时推送 |
| 商户管理界面 | ❌ 无 | 纯 C2C 跑腿模式,无商户模块 |
后端功能完成度
| 功能模块 | 完成度 | 说明 |
|---|---|---|
| 订单管理 | ✅ 完整 | 30+ 字段全生命周期,状态机:-2取消/-1关闭/0未付/1已付待接/2接单配送/3已送达/4完成 |
| 配送方式配置 | ✅ 完整 | 阶梯计价:起步价 + 距离阶梯 + 重量阶梯 + 时段加价,腾讯地图 API 计算距离 |
| 骑手抢单引擎 | ⚠️ 部分 | 广播池模型:所有骑手可见(status=1 且 riderNo=null),按距离排序,先到先得。无分布式锁,无智能派单算法 |
| 骑手管理 | ✅ 完整 | 注册→审核→启停接单→收入统计→银行卡→提现,Nuxt 管理后台 CRUD |
| 支付与提现 | ⚠️ 部分 | 微信支付完整实现(统一下单+回调+退款),支付宝/QQ 仅枚举未实现 |
| 定时任务 | ✅ 完整 | 三个延迟队列:15分钟未付自动关闭 / 2小时未接单自动取消 / 2小时送达后自动完成 |
| 后台管理 | ✅ 完整 | Nuxt2 + Ant Design Vue:城市/计价/订单/骑手/优惠券/配置/资金走势全覆盖 |
核心亮点
• Node.js 高性能后端:Midway 3.0 + TypeScript + TypeORM,架构清晰,代码质量高
• 智能阶梯计价:起步价 + 距离/重量/时段多维计价,腾讯地图 API 自动算距
• 完整的资金流转:平台/代理/骑手收入自动分账,可配置比例
• 局限性:纯跑腿模式无商户端;抢单无并发锁;无实时 GPS 追踪
技术方案
| 层级 | 技术栈 |
|---|---|
| 前端(小程序) | UniApp(Vue 60.5% + JavaScript 33.4%) |
| 后端 | ThinkCMF(内容管理框架)+ PhalApi(API 框架) |
| 数据库 | MySQL |
| 实时通信 | WebSocket 长连接 + PHPExcel 数据导出 |
| 异步处理 | 队列管理(Queue) |
前端(小程序端)功能完成度
| 功能模块 | 完成度 | 说明 |
|---|---|---|
| 用户下单 | ✅ 完整 | 在线点餐、购物车、下单支付,支持连锁餐饮、闪送跑腿 |
| 配送方式选择 | ✅ 完整 | 外卖配送、到店自取、预约配送、扫码点餐、闪送 |
| 骑手抢单界面 | ✅ 完整 | Graborders 抢单组件、Transferorder 转单、cancleorder 取消,任务地图展示 |
| 订单状态追踪 | ✅ 完整 | Missionmap 任务地图 + detailmap 配送地图,实时状态更新 |
| 实时通知 | ✅ 完整 | WebSocket 实时推送新订单(后端 Swoole 实现) |
| 商户管理界面 | ✅ 完整 | 商家端独立页面:商品/订单/评论/利润/核销/优惠券/营业时间/规格管理 |
后端功能完成度
⚠️ 注意:此仓库仅包含前端代码,后端在独立仓库 wanyue_waimai_web(ThinkCMF + PHP + Swoole)。
| 功能模块 | 完成度 | 说明 |
|---|---|---|
| 订单管理 | ✅ 完整 | 完整订单生命周期,含排队叫号、预约调度、退款处理 |
| 配送方式配置 | ✅ 完整 | 配送费、配送范围、配送方式后台灵活配置 |
| 骑手抢单引擎 | ✅ 完整 | 接单池抢单 + 系统智能派单 + 转单功能 |
| 多商户管理 | ✅ 完整 | 多商户入驻、连锁餐饮支持、店铺审核 |
| 骑手管理 | ✅ 完整 | 骑手管理、配送结算、投诉处理、收入统计、提现 |
| 支付集成 | ✅ 完整 | 微信支付 + 支付宝 |
| 后台管理 | ✅ 完整 | 总管理后台 + 城市配送后台,五端全覆盖 |
核心亮点
• 五端完整:用户端 + 商家端 + 骑手端 + 总后台 + 城市配送,业界最完整的开源外卖方案
• 双模式配送:接单池抢单 + 智能派单并存,支持转单
• WebSocket 实时性:骑手端实时收到新订单推送
• 队列管理:异步处理订单,提高并发能力
• 连锁餐饮:支持多门店连锁运营
骑手抢单功能在开源版中为空实现。 代码注释明确写着"目前商家自配送,配送费打到商家余额中",骑手配送分支为空。骑手端小程序代码未开源(需加 QQ 群获取)。骑手服务仅有 CRUD 和登录,无在线状态、无地理位置、无订单分配、无收入钱包。
技术方案
| 层级 | 技术栈 |
|---|---|
| 前端(小程序) | 原生微信小程序(wxapplet-siam-user) |
| 管理后台 | Vue 2.5 + Element UI(vue-siam-admin + vue-siam-shop) |
| 后端 | Spring Cloud Hoxton + Spring Cloud Alibaba + Spring Boot 2.2.2(13 个微服务) |
| 中间件 | Redis + Redisson + RocketMQ(延迟队列/事务消息)+ RabbitMQ |
| 可观测性 | Sentinel + Seata + SkyWalking + Prometheus + Grafana + ELK |
| 数据库 | MySQL + MyBatis-Plus 3.1.2 |
| 实时通信 | WebSocket |
前端(小程序端)功能完成度
| 功能模块 | 完成度 | 说明 |
|---|---|---|
| 用户下单 | ✅ 完整 | 商品浏览、多规格 SKU、购物车、下单支付,完整价格计算 |
| 配送方式选择 | ⚠️ 部分 | 仅支持自取和配送两种,deliveryWay 始终为 1(商家自配送),平台骑手配送未实现 |
| 骑手抢单界面 | ❌ 未开源 | README 提及 uniapp-siam-rider 但代码不在仓库中,需加 QQ 群获取 |
| 订单状态追踪 | ⚠️ 部分 | 订单状态机完整(11 种状态),但无配送轨迹追踪(无骑手位置节点) |
| 实时通知 | ✅ 完整 | WebSocket 通知商家新订单、支付成功等 |
| 商户管理界面 | ✅ 完整 | 商家后台(vue-siam-shop):订单/商品/门店/促销/账单/提现全覆盖 |
后端功能完成度
| 功能模块 | 完成度 | 说明 |
|---|---|---|
| 订单管理 | ✅ 完整 | 完整下单逻辑:购物车校验→价格计算→订单号生成→支付截止→状态初始化 |
| 支付 | ✅ 完整 | 微信支付集成,支付回调→状态流转→资金冻结→WebSocket 通知 |
| 商家接单 | ✅ 完整 | 商家接单后自取订单转待处理、外卖订单转待配送,WebSocket 推送 |
| 配送方式配置 | ⚠️ 部分 | 仅支持商家自配送,平台骑手配送分支为空(handleRiderIncome 注释确认) |
| 骑手抢单引擎 | ❌ 缺失 | 骑手表仅 5 字段(id/shopId/realname/phone/sex),无在线状态/地理位置/钱包,无抢单/派单 API |
| 多商户管理 | ✅ 完整 | 商户入驻审核、门店管理、商品管理、订单管理、账单/提现管理 |
| 骑手管理 | ⚠️ 基础 | 仅有骑手 CRUD 和登录,无审核/等级/排班/收入明细 |
| 后台管理 | ✅ 完整 | 超管后台:会员管理 + 系统设置 + 全模块管理 |
核心亮点
• 企业级微服务架构:13 个微服务模块,Spring Cloud Alibaba 全家桶(Eureka/Zuul/Sentinel/Seata)
• 订单管理成熟:完整下单/支付/退款流程,11 种订单状态机,退款审批流完善
• 营销功能丰富:优惠券、满减规则、邀请返现、积分商城
• 核心缺陷:骑手抢单配送为空实现,仅支持商家自配送;骑手端小程序未开源
技术方案
| 层级 | 技术栈 |
|---|---|
| 前端 | 微信小程序原生框架(JavaScript 100%)+ Vant 组件库 |
| 后端 | 微信云开发(云函数 + 云数据库 + 云存储 + 云定时器) |
| 地图 | 腾讯地图 SDK(定位、线路计算) |
| 消息推送 | 微信订阅消息 |
| 支付 | 微信支付(云开发集成) |
前端(小程序端)功能完成度
| 功能模块 | 完成度 | 说明 |
|---|---|---|
| 用户下单 | ✅ 完整 | 任务发布:代购食物、快递取送、打印文件等 |
| 配送方式选择 | ⚠️ 部分 | 仅任务分类选择,无复杂配送方式配置 |
| 骑手抢单界面 | ⚠️ 部分 | 任务大厅浏览 + 接单,但非严格意义上的抢单(无并发锁) |
| 订单状态追踪 | ✅ 完整 | 云数据库实时更新,状态流转清晰 |
| 实时通知 | ⚠️ 部分 | 微信订阅消息推送,非实时 WebSocket |
| 商户管理界面 | ❌ 无 | 无商户概念,纯 C2C 任务模式 |
后端(云函数)功能完成度
| 功能模块 | 完成度 | 说明 |
|---|---|---|
| 任务管理 | ✅ 完整 | 云函数实现任务 CRUD、分类管理 |
| 接单逻辑 | ⚠️ 部分 | 基础接单功能,无分布式锁,高并发可能重复接单 |
| 用户认证 | ✅ 完整 | 微信登录,角色管理(用户 vs 跑腿者) |
| 定时器 | ✅ 完整 | 云定时器处理超时任务、清理过期数据 |
| 支付 | ✅ 完整 | 微信支付云开发集成 |
| 局限性 | ⚠️ 明显 | 云开发有容量限制,不适合大规模商用;无商户管理 |
核心亮点
• 零运维:基于微信云开发,无需服务器、域名、备案
• 快速上手:适合毕业设计、个人学习、校园小范围运营
• 局限性明显:非外卖场景(纯跑腿)、无商户管理、并发能力有限、抢单逻辑不够严谨
按场景推荐
| 使用场景 | 推荐项目 | 理由 |
|---|---|---|
| 快速搭建完整外卖平台 | 万岳外卖系统 | 五端完整(用户/商家/骑手/总后台/城市后台),开箱即用,PHP 生态成熟 |
| 学习 Spring Cloud 外卖架构 | 暹罗外卖 | 微服务架构设计规范,订单/支付/退款流程成熟。但骑手抢单未实现,需自行开发配送模块 |
| 专注跑腿业务(非外卖) | 叮点跑腿 ddrun | Node.js 高性能后端,智能计价,分销系统,专注跑腿场景 |
| 轻量级/个人/毕业设计 | MiniRun 校园跑腿 | 零运维成本,云开发 Serverless,快速部署 |
| 综合本地生活平台 | DSO2O 外卖 | 外卖 + 跑腿 + 家政多业务线,宝塔一键部署,社区活跃 |
骑手抢单功能对比
| 项目 | 抢单模式 | 实时通知 | 智能派单 | 转单 | 并发安全 |
|---|---|---|---|---|---|
| DSO2O | WebSocket 推送 + 抢单 | GatewayWorker WS | ✅ 自动派单 | ✅ | ✅ 数据库锁 |
| 万岳外卖 | 接单池 + Graborders | WebSocket (Swoole) | ✅ 智能派单 | ✅ Transferorder | ✅ 队列 + 锁 |
| 暹罗外卖 | ❌ 未实现 | WebSocket | ❌ | ❌ | ❌ 无 |
| 叮点跑腿 | 广播池(先到先得) | ⚠️ 订阅消息 | ❌ 无 | ❌ | ⚠️ 仅 DB 事务 |
| MiniRun | 任务大厅接单 | 订阅消息 | ❌ | ❌ | ❌ 无并发锁 |
最终推荐
万岳外卖系统 — 如果目标是快速搭建一个包含骑手抢单功能的完整外卖平台,万岳是最佳选择。五端完整、开箱即用、PHP 生态成熟、部署简单,抢单/派单/转单功能齐全。
暹罗外卖 — 如果团队熟悉 Java/Spring Cloud,需要企业级的高可用架构,暹罗的微服务方案和可观测性体系是最佳参考。但部署和运维门槛较高。
DSO2O 外卖 — 如果需要综合本地生活平台(外卖 + 跑腿 + 家政),DSO2O 是最活跃的选择,Star 数最高,支持宝塔一键部署。