总览对比 5 个项目核心指标一览

项目 | 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

DSO2O 外卖 gitee.com/csdeshang/DSO2O_open · ⭐ 1,953
项目简介
专业 O2O 本地生活平台，支持外卖送餐、同城跑腿、家政上门服务。ThinkPHP 6 + UniApp 架构，社区活跃度高，支持宝塔面板一键部署。

### 技术方案

层级 | 技术栈
--- | ---
前端（小程序） | UniApp（跨端：微信小程序 + APP）
后端 | ThinkPHP V6.0 + PHP + Composer 组件化
数据库 | MySQL + Redis / Memcached 缓存
实时通信 | Socket 长连接（骑手端实时订单推送）
部署 | 宝塔面板一键部署 / 常规 LNMP

### 前端（小程序端）功能完成度

⚠️ 注意：小程序源码在独立 UniApp 仓库中（非本仓库），本仓库包含 PC 端模板和静态资源。

功能模块 | 完成度 | 说明
--- | --- | ---
用户下单 | ✅ 完整 | 商品浏览、购物车、在线下单、支付，支持多门店
配送方式选择 | ✅ 完整 | 外卖配送、到店自取、预约配送、同城跑腿、商家自配/平台配送/达达第三方配送
骑手抢单界面 | ✅ 完整 | 骑手端独立页面，订单大厅可抢订单，GatewayWorker WebSocket 实时推送
订单状态追踪 | ✅ 完整 | 全流程状态展示 + 订单日志 + 配送员地图定位
实时通知 | ✅ 完整 | GatewayWorker WebSocket 长连接实时推送
商户管理界面 | ✅ 完整 | PC 商家端 + 商家手机端，商品/订单/店铺管理

### 后端功能完成度

功能模块 | 完成度 | 说明
--- | --- | ---
订单管理 | ✅ 完整 | 完整订单生命周期，含商品订单 + 跑腿订单 + 服务订单
配送方式配置 | ✅ 完整 | 后台可配置配送费计算规则、配送范围、支持三种配送模式
骑手抢单引擎 | ✅ 完整 | WebSocket 推送抢单 + 自动派单 + 指定配送员，三种模式灵活切换
多商户管理 | ✅ 完整 | 多商户入驻、店铺等级、保证金、自营店铺，80+ 管理模块
骑手管理 | ✅ 完整 | 配送员注册/结算/投诉/保证金，平台配送 + 达达第三方配送
支付集成 | ✅ 完整 | 微信 JSAPI/扫码、支付宝 APP、预存款、充值卡
后台管理 | ✅ 完整 | 80+ 管理模块：站点/会员/商品/店铺/交易/营销/统计/跑腿/上门服务

### 核心亮点

• 双模式配送：同时支持自动派单和骑手抢单，可根据运营需求灵活切换

• 多业务线：外卖 + 跑腿 + 家政，可扩展为综合本地生活平台

• 城市级管理：支持多城市运营，每个城市独立后台管理

• 部署简单：宝塔面板一键部署，降低运维门槛

叮点跑腿 ddrun gitee.com/landalfyao/ddrun · ⭐ 1,211
项目简介
专注跑腿场景的完整系统，后端采用 Midway 3.0（Node.js），管理后台基于 Nuxt 2.x，小程序端使用 UniApp。核心功能涵盖帮送、帮买、骑手抢单、智能分配、提现等。

### 技术方案

层级 | 技术栈
--- | ---
前端（小程序） | 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 追踪

万岳外卖系统 gitee.com/WanYueKeJi/wanyue_waimai_uniapp · ⭐ 815
项目简介
最完整的同城外卖开源系统，包含用户端、商家端、配送端（骑手）、总管理后台、城市配送后台五大端口。PHP ThinkCMF + PhalApi 架构，WebSocket 长连接，队列管理。

### 技术方案

层级 | 技术栈
--- | ---
前端（小程序） | 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 实时性：骑手端实时收到新订单推送

• 队列管理：异步处理订单，提高并发能力

• 连锁餐饮：支持多门店连锁运营

暹罗外卖 gitee.com/siam1026/siam-cloud · ⭐ 479
项目简介
基于 Spring Cloud 微服务架构的多商户外卖配送系统，对标美团/饿了么。包含用户端小程序、商家管理后台、超管调度后台。v1.1 版本，2023 年 12 月开源。
⚠️ 重要发现

骑手抢单功能在开源版中为空实现。 代码注释明确写着"目前商家自配送，配送费打到商家余额中"，骑手配送分支为空。骑手端小程序代码未开源（需加 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 种订单状态机，退款审批流完善

• 营销功能丰富：优惠券、满减规则、邀请返现、积分商城

• 核心缺陷：骑手抢单配送为空实现，仅支持商家自配送；骑手端小程序未开源

MiniRun 校园跑腿 github.com/dearancelan/MiniRun · ⭐ 174
项目简介
面向校园场景的跑腿小程序，基于微信云开发（Serverless），无需独立后端服务器。支持代购食物、快递取送、打印文件等任务发布与接单。适合毕业设计或轻量级项目。

### 技术方案

层级 | 技术栈
--- | ---
前端 | 微信小程序原生框架（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 数最高，支持宝塔一键部署。