✨ 一、项目概述
1.1 项目背景与商业模式解析
随着校园经济的发展,外卖与跑腿服务在高校中的需求激增。学生群体由于作息规律、课程安排等限制,频繁使用外卖与代购服务。而校园外卖跑腿平台正是基于这一痛点而诞生,提供了高效、便捷的校内配送解决方案。其主要商业模式包括:
-
商家入驻:平台招募校园周边或校内的商家入驻,提供餐品、饮品、文具、零食等商品。
-
订单调度与配送:用户下单后,商家接单并制作,平台分配骑手进行取餐与配送。
-
佣金与跑腿费盈利:平台通过订单抽成(如与商家谈成9折)、跑腿费和配送费获利。
-
批量配送:为提高效率,可采用批量取餐、统一配送的方式,一次配送多单。
-
多端架构:平台分为用户端、商家端、骑手端、管理后台,提供完整的业务闭环。
1.2 核心功能与业务流程
✅ 用户端
-
商品浏览、搜索、分类
-
下单、支付、订单跟踪
-
跑腿服务申请与进度查看
-
校内地址管理
-
实时通知与评价
✅ 商家端
-
商品管理(新增、修改、上下架)
-
订单接收与处理
-
营业状态与配送范围管理
-
数据统计与结算
✅ 骑手端
-
待取餐订单列表
-
配送中订单追踪
-
一键取餐与送达确认
-
收入与结算管理
✅ 管理后台
-
用户管理:学生、商家、骑手
-
订单管理与分配
-
商品审核与结算
-
数据统计与分析
-
校园区域与楼栋管理
1.3 技术选型与架构设计
✅ 前端
-
用户端、商家端、骑手端:
uniapp + vue3
(跨平台开发,支持H5、小程序、APP) -
管理后台:
vue3 + element-ui
(提供后台管理与数据可视化)
✅ 后端
-
服务框架:
Spring Boot 3.x
(轻量级、高效开发) -
持久层框架:
MyBatis Plus
(简化数据操作) -
数据库:
MySQL 8.x
(存储用户、订单、商品、跑腿等数据) -
缓存服务:
Redis
(存储热门商品、骑手定位、订单状态等数据) -
消息队列:
RabbitMQ
或Kafka
(订单异步处理,提高并发性能) -
API文档:
Swagger3
(接口调试与测试)
✅ 部署架构
-
服务器:Linux + Nginx + Docker + MySQL + Redis
-
小程序端:微信小程序发布,支持Android与iOS
-
后台管理:通过PC端访问,支持权限管理与数据统计
🔥 二、系统架构设计
2.1 系统架构图
diff
复制编辑
+-----------------------------------+ | 用户端 (UniApp) | | | | 下单、支付、订单追踪、评价 | +-----------------------------------+ ↓ +-----------------------------------+ | 商家端 (UniApp) | | | | 订单接收、制作、配送管理 | +-----------------------------------+ ↓ +-----------------------------------+ | 骑手端 (UniApp) | | | | 取餐、配送、确认送达 | +-----------------------------------+ ↓ +-----------------------------------+ | 管理后台 (Vue3) | | | | 用户管理、订单管理、统计报表 | +-----------------------------------+ ↓ +-----------------------------------+ | 后端服务层 | | Spring Boot + MyBatis + Redis | | RabbitMQ + JWT + Swagger | +-----------------------------------+ ↓ +-----------------------------------+ | 数据存储层 | | MySQL (订单、用户、商品、骑手数据) | | Redis (缓存、订单状态、定位) | +-----------------------------------+
2.2 数据库设计
🛒 用户表(user)
字段 | 类型 | 说明 |
---|---|---|
id | BIGINT | 用户ID |
username | VARCHAR(50) | 用户名 |
password | VARCHAR(100) | 密码(加密存储) |
phone | VARCHAR(15) | 手机号 |
address | TEXT | 地址信息 |
create_time | TIMESTAMP | 注册时间 |
update_time | TIMESTAMP | 更新时间 |
🍔 商品表(product)
字段 | 类型 | 说明 |
---|---|---|
id | BIGINT | 商品ID |
name | VARCHAR(100) | 商品名称 |
price | DECIMAL(10,2) | 商品价格 |
stock | INT | 库存数量 |
merchant_id | BIGINT | 商家ID |
category_id | BIGINT | 分类ID |
create_time | TIMESTAMP | 创建时间 |
🚴 骑手表(rider)
字段 | 类型 | 说明 |
---|---|---|
id | BIGINT | 骑手ID |
name | VARCHAR(50) | 骑手姓名 |
phone | VARCHAR(15) | 手机号 |
location | VARCHAR(255) | 定位信息 |
status | INT | 状态(空闲/配送中) |
📦 订单表(order)
字段 | 类型 | 说明 |
---|---|---|
id | BIGINT | 订单ID |
user_id | BIGINT | 用户ID |
rider_id | BIGINT | 骑手ID |
product_id | BIGINT | 商品ID |
status | INT | 状态(待取餐/配送中) |
create_time | TIMESTAMP | 下单时间 |
update_time | TIMESTAMP | 更新时间 |
⚙️ 三、核心技术实现
3.1 用户端实现
-
使用
uniapp
开发微信小程序,结合vue3
语法,封装接口模块。 -
核心页面:
-
首页(商品展示、分类)
-
商品详情页(规格选择、下单)
-
地址管理
-
订单详情页(状态跟踪)
-
3.2 商家端实现
-
商家使用
uniapp
接单 -
实现功能:
-
接收订单,开始制作
-
配送信息管理
-
商品管理与上下架
-
3.3 骑手端实现
-
骑手使用
uniapp
接单、取餐、配送。 -
核心功能:
-
骑手定位:使用
腾讯地图API
或高德地图API
-
实时接单推送
-
骑手收入结算
-
💡 四、性能优化与扩展
✅ 高并发处理
-
使用
RabbitMQ
消息队列进行异步处理,防止高并发下订单积压。 -
Redis
存储订单状态,减少数据库压力。
✅ 数据缓存
-
将热门商品、分类等数据存储到
Redis
中,提升访问速度。
✅ 限流与防刷
-
使用
Redis
实现限流,防止恶意请求。 -
骑手端与用户端使用
JWT
进行接口安全验证。
🔥 五、部署与上线
-
使用
Docker
容器化部署 -
前后端分离,使用
Nginx
反向代理 -
配置HTTPS证书,确保数据安全
✅ 如果你对源码感兴趣或有定制需求,欢迎联系我一起探讨!🚀