本地化外卖平台设计方案:用户端、商户端、骑手端三端协同开发

简介: 本文详解县域/社区级本地化外卖平台三端协同开发方案,涵盖用户、商户、骑手共用API架构,基于MQ+WebSocket实现实时订单状态同步,含LBS定位、微信支付、调度流转与数据统计,支持快速落地闭环运营。

本地化外卖平台设计方案:用户端、商户端、骑手端三端协同开发

县域、社区级的本地化外卖平台,核心难点在于用户端、商户端、骑手端三端业务协同。订单数据、履约状态、消息通知需要多端实时同步,任何一端数据不同步,都会造成漏单、配送异常等问题。搭建本地化外卖平台,不能只单独开发每个端,要重点打通三端之间的业务链路,实现下单‑接单‑派单‑配送完整闭环。

本文将从三端协同整体架构、各端核心功能、数据表、关键代码、订单流转、地图能力、支付处理、统计、技术选型、扩展方向讲解本地化外卖三端协同开发思路。
同城外卖1.jpeg

一、本地化外卖平台整体架构设计

采用前后端分离架构,用户端、商户端、骑手端共用同一套API服务层,通过消息队列+websocket实现多端消息实时推送,保证订单状态变更三端同步更新;平台管理后台负责全局配置与监控。

1. 用户端小程序

面向点餐消费者,主要能力:

  • 周边商家浏览、商品筛选搜索
  • 商品查看、规格选择、购物车管理
  • 收货地址维护、下单与在线支付
  • 订单查询,实时查看商家接单、骑手配送进度
  • 订单评价、售后退款申请

2. 商户端(小程序+PC后台)

面向本地餐饮商家,主要能力:

  • 店铺信息、营业时间、配送范围维护
  • 商品分类管理、商品上下架、库存管控
  • 新订单实时提醒、接单/拒单、确认出餐
  • 店铺营销配置,查看门店营收与订单流水

3. 骑手配送端(小程序)

面向配送人员,主要能力:

  • 上线/下线切换在线接单状态
  • 接收系统派单或者参与抢单
  • 更新取餐、送达履约状态
  • 骑手导航,收益明细、提现申请

4. 平台管理后台

平台统一管控:

  • 用户、商户、骑手账号审核管理
  • 全局订单监控,异常订单人工干预
  • 佣金比例配置、财务结算、数据统计

整体架构示意:

 用户小程序
      |
商户端 ---- API服务层 + 消息推送 ---- 管理后台
      |
骑手端
      |
MySQL + Redis + MQ消息队列

二、三端协同核心功能设计

1. 商家商品模块(商户端维护,用户端展示)

商户在商户端维护商品信息,用户端小程序读取展示,商品数据统一由后端管控。

商品数据表:

CREATE TABLE goods (
 id INT PRIMARY KEY AUTO_INCREMENT,
 shop_id INT COMMENT '所属商户ID',
 name VARCHAR(100) COMMENT '商品名称',
 image VARCHAR(255) COMMENT '商品图片',
 price DECIMAL(10,2) COMMENT '售价',
 stock INT COMMENT '库存',
 status TINYINT DEFAULT 1 COMMENT '1上架 0下架'
);

商品查询接口(Node.js)

router.get('/goods/list', async(req,res)=>{
   
    const goods = await Goods.findAll({
   
        where:{
   
            shop_id:req.query.shopId,
            status:1
        }
    })
    res.json({
   
        code:200,
        data:goods
    })
})

协同说明:商户端修改商品库存、上下架,直接修改数据库,用户端刷新即可获取最新商品数据。

三、购物车、订单生成与三端消息联动

用户端加入购物车提交订单,支付成功之后,后端发送消息通知商户端新订单提醒;商户接单后,订单流入调度模块推送给骑手端。

购物车金额计算函数:

function calculateCartAmount(cart){
   
    let total = 0;
    cart.forEach(item=>{
   
        total += item.price * item.number;
    })
    return total;
}

创建订单并且推送消息示例:

async function createOrder(userId,cart,shopId,deliveryFee){
   
    const goodsAmount = calculateCartAmount(cart);
    const payAmount = goodsAmount + deliveryFee;
    const order = await Order.create({
   
        user_id:userId,
        shop_id:shopId,
        goods_amount:goodsAmount,
        delivery_fee:deliveryFee,
        pay_amount:payAmount,
        status:'待支付'
    })
    //支付成功后推送消息给商户端,提醒有新订单
    await mqProducer.send("order-new-topic",JSON.stringify(order));
    return order;
}

三端协同订单完整状态流转:

【用户端】提交订单→待支付
 ↓用户完成支付
【用户端】状态:已支付 →【商户端】收到新订单提醒
 ↓商户端接单
【商户端】状态:已接单 →【调度服务】分配骑手 →【骑手端】收到订单推送
 ↓骑手端取餐
【骑手端】状态:配送中 →【用户端】同步看到配送中
 ↓骑手端确认送达
【骑手端】状态:已完成 →【用户端、商户端】同步更新订单完成

四、骑手端履约状态管理

骑手端修改订单履约状态,后端更新数据库,同时推送事件,把最新状态同步给用户端和商户端,实现三端数据协同。

订单状态常量:

const orderStatus={
   
    WAIT_PAY:1,     //待支付
    PAID:2,         //已支付
    SHOP_ACCEPT:3,  //商户已接单
    DELIVERING:4,   //配送中
    FINISH:5        //订单完成
}

骑手更新配送状态接口:

router.post('/rider/updateOrderStatus',async(req,res)=>{
   
    const {
   orderId,status,riderId}=req.body;
    const orderInfo = await Order.findByPk(orderId);
    //校验订单属于当前骑手
    if(orderInfo.rider_id !== riderId){
   
        return res.json({
   code:500,message:"无权操作该订单"})
    }
    await Order.update({
   status:status},{
   where:{
   id:orderId}});
    //推送状态变更事件,同步更新用户端、商户端页面
    await mqProducer.send("order-status-change",JSON.stringify({
   orderId,status}));
    res.json({
   message:"状态更新成功"})
})

协同关键点:不要依靠前端各自修改状态;所有状态变更必须经过后端,后端统一推送事件,三端接收事件刷新UI,避免多端状态不一致。

五、地图LBS位置协同能力

  • 用户端:上报收货地址经纬度,校验商家配送范围
  • 骑手端:定时上报实时位置存入Redis
  • 用户端:订阅骑手位置,展示骑手实时位置轨迹
  • 骑手端:获取商家到收货地址路线规划

地图路线接口示例:

function getDeliveryRoute(start,end){
   
    return axios.get(
        "[https://api.map.com/direction](https://api.map.com/direction)",
        {
   
            params:{
   
                origin:start,
                destination:end
            }
        }
    )
}

六、微信支付三端联动处理

用户端完成支付,后端回调更新订单状态,推送消息通知商户端有新待接单订单。

支付业务流程:

【用户端】提交订单
↓
生成业务订单记录
↓
用户端调起微信支付
↓
微信异步回调后端
↓
后端更新订单状态为已支付
↓
MQ推送事件,【商户端】收到新订单提醒

支付回调示例代码:

router.post('/pay/notify', async(req,res)=>{
   
    let orderNo=req.body.out_trade_no;
    const order = await Order.findOne({
   where:{
   order_no:orderNo}})
    await Order.update({
   
        status:"已支付"
    },{
   
        where:{
   
            id:order.id
        }
    });
    //推送新订单消息给到商户端
    await mqProducer.send("order-new-topic",JSON.stringify(order));
    res.send("success");
})

七、后台数据统计功能

平台统计订单、商户营收、骑手接单数据,评估三端业务运行情况。

统计每日订单数量SQL:

SELECT 
DATE(create_time) AS day, COUNT(*) AS order_count
FROM orders
GROUP BY day;

统计商户营收:

SELECT shop_id,sum(pay_amount) AS shop_income
FROM orders
WHERE status=5
GROUP BY shop_id;

统计骑手完成订单:

SELECT rider_id,COUNT(id) AS finish_num
FROM orders
WHERE status=5
GROUP BY rider_id;

通过统计数据,运营可以发现订单流转卡点,例如商户接单慢、骑手接单量不足等三端协同问题。

八、开发技术选型

小程序端

  • 微信小程序原生开发
  • UniApp
  • Taro

后端

  • Java Spring Boot
  • Node.js
  • PHP Laravel

数据库&缓存&消息组件

  • MySQL:存储订单、商户、骑手、商品业务数据
  • Redis:缓存商品、骑手地理位置
  • MQ(RocketMQ/RabbitMQ):订单事件,实现三端消息推送
  • WebSocket:前端实时接收订单状态变更

服务部署

  • Linux服务器
  • Nginx
  • Docker

SpringBoot项目目录参考

local‑takeout‑system

├── user          用户端业务模块
├── merchant      商户端业务模块
├── rider         骑手端业务模块
├── order         订单核心模块
├── dispatch      订单调度模块
├── message‑push  多端消息推送模块
├── payment       支付模块
└── admin         平台后台

九、后期扩展方向

基础三端协同能力完成后,可迭代更多业务能力。

用户端扩展

  • 优惠券、会员、收藏店铺
  • 预订单、到店自提

商户端扩展

  • 商户营销工具:满减、折扣活动
  • 订单小票打印、门店多账号子账号

骑手端扩展

  • 接单限制设置、小休暂停接单
  • 异常上报,遇到问题提交工单给平台

平台协同增强

  • 消息多渠道兜底:websocket+小程序订阅消息,防止消息丢失
  • 三端状态不一致的补偿校验定时任务
  • 多商家入驻、平台抽佣结算

数据运营

  • 用户消费统计
  • 商户接单超时统计
  • 骑手履约、超时统计
    同城外卖5.png

总结

本地化外卖平台,重点不在于分别实现用户、商户、骑手三个端,而在于三端业务协同。所有订单状态变更统一由后端处理,通过消息队列、WebSocket把事件同步分发到三端,避免前端各自维护状态造成数据错乱。

开发时要完整跑通从用户下单支付、商户接单、骑手配送直到订单完成的完整业务闭环。基于这套三端协同底座,还可以继续叠加会员营销、自提、多商家结算等功能,适配县城、社区等不同本地化外卖业务场景。
同城外卖4.jpeg

相关文章
|
8天前
|
JavaScript API iOS开发
DeepSeek Harness下载、安装、配置一篇搞定(2026整理,送常用插件)
DeepSeek Harness(DSH)是DeepSeek于2026年开源的MIT协议AI Agent框架,支持插件化组装模型、工具、沙箱与UI,兼容主流大模型。本文提供免Node.js的桌面端安装包(Win/macOS),含详细图文教程及热门插件推荐。
3590 34
|
7天前
|
Linux 开发工具 iOS开发
Codex保姆级教程(下载+安装+登录+使用,含所有版本,2026最新)
Codex是OpenAI推出的开源AI编程智能体,本地运行,可理解整个代码库,支持自然语言指令改代码、执行命令、跑测试、修Bug,兼容Win/macOS/Linux。(239字)
3052 10
|
3天前
|
云安全 人工智能 安全
|
8天前
|
iOS开发 Docker MacOS
【2026实测】Docker Desktop下载、安装、汉化、配置教程(附官网安装包)
Docker Desktop 是 Docker 官方推出的桌面容器管理工具,集成引擎、CLI、图形界面与 Kubernetes,支持 Win/macOS/Linux。2026 最新版 4.88.1 强化 ARM 原生运行、镜像加速及资源可视化,附中文汉化与国内镜像配置指南。
1639 6
|
9天前
|
安全 算法 定位技术
《高性价比人生指南》完整原版:普通人用最少的资源,过好这一生的底层逻辑~How To Live Better
📖《高性价比人生指南》是一份基于实证、拒绝焦虑的生存手册,倡导以“人生时薪”为视角,重新计算时间、金钱与精力的成本与收益。它不承诺逆袭,只教人算清账:省下的钱若耗掉时间便亏;买体验比买物品更值;睡眠是最高杠杆的健康投资;关系贵在情绪价值而非表面热络;学习重在改变行为而非自我安慰。核心理念:用低成本、高回报的微小行动,换取长期的选择权——不是成为谁,而是掌控自己人生的主动权。
2006 4
|
云安全 安全 网络安全
|
21天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
3804 55
|
13天前
|
人工智能 JSON Linux
【保姆级】ComfyUI部署教程(下载+安装+配置+工作流,2026最新)
ComfyUI 是一款开源节点式AI生成工具,支持图像、视频、音频及3D内容创作。通过拖拽连线组合模型加载、提示词、采样等节点,构建可复用、易修改的工作流,兼容SD1.5、SDXL、Flux、Qwen Image等主流模型。