摘要
随着校园生活节奏的加快,学生对外卖的需求日益增长。然而,传统的外卖服务存在诸多不便,如配送时间长、菜品选择有限、信息更新不及时等。为解决这些问题,本研究开发了一款校园外卖点餐系统,采用前端 Vue、后端 Spring Boot 技术栈,依托 MySQL 数据库搭建。用户可以在首页浏览菜品信息、新闻资讯,查看购物车,进行留言反馈。用户可在个人中心进行修改密码、订单管理、收货信息、评价信息、配送信息、我的收藏等操作;商家则可以管理订单、评价信息、菜品信息等;骑手可以查看评价信息、分配信息、接单信息。管理员可在后台首页管理各类用户,进行订单管理、配送信息、菜品类型、分配信息、轮播图、菜品信息、收货信息、新闻资讯、接单信息、菜单、订单信息、评价信息等多方面管理工作,为用户提供高效、便捷的外卖点餐体验。
关键词:校园外卖点餐系统;SpringBoot;Vue;MySQL
目录
- 绪论
- 研究背景
随着校园生活节奏的加快,学生对外卖的需求日益增长。然而,传统的外卖服务存在诸多不便,如配送时间长、菜品选择有限、信息更新不及时等,这些问题不仅影响了学生的用餐体验,也限制了外卖服务在校园内的进一步发展。近年来,随着信息技术的快速发展,特别是互联网、移动应用和数据库技术的普及,为外卖服务的数字化转型提供了可能。开发一个校园外卖点餐系统,能够有效整合校园内外卖资源,优化服务流程,提升用户体验,增强服务竞争力。
-
- 研究意义
开发校园外卖点餐系统具有显著意义。它打破了时间与空间的限制,学生无论身处宿舍、教室还是图书馆,都能随时随地通过系统下单订餐,节省了往返食堂或校外就餐的时间,可将更多精力投入学习。系统整合校园周边及校内商家资源,丰富菜品种类,满足学生个性化的饮食偏好。对于商家而言,拓展了销售渠道,增加了营收。而且,系统规范了外卖配送流程,保障食品卫生与安全,提升校园餐饮服务质量,优化校园生活体验。
用户用例图如图3-1所示。
商家用例图如图3-2所示。
骑手用例图如图3-3所示。
管理员用例图如图3-4所示。
-
- 系统总体功能设计
系统功能结构图如图4-2所示。
数据库表设计基于实体设计,将抽象的实体映射为具体的表结构。设计过程中,为每个实体定义表名、字段名及数据类型 [10]。根据业务需求,合理定义主键、外键及约束条件,确保表之间的关联性,例如通过外键建立用户表和角色表之间的关系。表设计时注重数据存储的完整性、一致性,并通过索引优化查询效率,最终确保数据库结构能够支持系统的功能需求。以下是系统的数据库表设计展示。
表名:cart
功能:购物车
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
tablename |
varchar |
200 |
商品表名 |
caipinxinxi |
|
goodid |
bigint |
商品id |
|||
goodname |
varchar |
200 |
商品名称 |
||
picture |
longtext |
4294967295 |
图片 |
||
buynumber |
int |
购买数量 |
|||
price |
double |
单价 |
|||
discountprice |
double |
折扣价 |
|||
userid |
bigint |
用户id |
|||
shangjiazhanghao |
varchar |
200 |
商户名称 |
表名:menu
功能:菜单
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
menujson |
longtext |
4294967295 |
菜单 |
表名:shouhuoxinxi
功能:收货信息
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
dingdanbianhao |
varchar |
200 |
订单编号 |
||
caipinmingcheng |
varchar |
200 |
菜品名称 |
||
caipinxinxi |
varchar |
200 |
菜品信息 |
||
caipinxiangqing |
varchar |
200 |
菜品详情 |
||
caipintupian |
longtext |
4294967295 |
菜品图片 |
||
shangjiazhanghao |
varchar |
200 |
商家账号 |
||
caipinleixing |
varchar |
200 |
菜品类型 |
||
qishouzhanghao |
varchar |
200 |
骑手账号 |
||
zhanghao |
varchar |
200 |
账号 |
||
shouhuoshijian |
datetime |
收货时间 |
表名:jiedanxinxi
功能:接单信息
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
dingdanbianhao |
varchar |
200 |
订单编号 |
||
caipinmingcheng |
varchar |
200 |
菜品名称 |
||
caipinxinxi |
varchar |
200 |
菜品信息 |
||
caipinxiangqing |
varchar |
200 |
菜品详情 |
||
caipintupian |
longtext |
4294967295 |
菜品图片 |
||
shangjiazhanghao |
varchar |
200 |
商家账号 |
||
caipinleixing |
varchar |
200 |
菜品类型 |
||
qishouzhanghao |
varchar |
200 |
骑手账号 |
||
zhanghao |
varchar |
200 |
账号 |
||
jiedanshijian |
datetime |
接单时间 |
表名:shangjia
功能:商家
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
shangjiazhanghao |
varchar |
200 |
商家账号 |
||
mima |
varchar |
200 |
密码 |
||
touxiang |
longtext |
4294967295 |
头像 |
||
xingbie |
varchar |
200 |
性别 |
||
xingming |
varchar |
200 |
姓名 |
表名:fenpeixinxi
功能:分配信息
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
dingdanbianhao |
varchar |
200 |
订单编号 |
||
caipinmingcheng |
varchar |
200 |
菜品名称 |
||
caipinxinxi |
varchar |
200 |
菜品信息 |
||
caipinxiangqing |
varchar |
200 |
菜品详情 |
||
caipintupian |
longtext |
4294967295 |
菜品图片 |
||
shangjiazhanghao |
varchar |
200 |
商家账号 |
||
caipinleixing |
varchar |
200 |
菜品类型 |
||
qishouzhanghao |
varchar |
200 |
骑手账号 |
||
zhanghao |
varchar |
200 |
账号 |
表名:discusscaipinxinxi
功能:菜品信息评论表
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
refid |
bigint |
关联表id |
|||
userid |
bigint |
用户id |
|||
avatarurl |
longtext |
4294967295 |
头像 |
||
nickname |
varchar |
200 |
用户名 |
||
content |
longtext |
4294967295 |
评论内容 |
||
reply |
longtext |
4294967295 |
回复内容 |
表名:dingdanxinxi
功能:订单信息
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
dingdanbianhao |
varchar |
200 |
订单编号 |
||
caipinmingcheng |
varchar |
200 |
菜品名称 |
||
caipinxinxi |
varchar |
200 |
菜品信息 |
||
caipinxiangqing |
varchar |
200 |
菜品详情 |
||
caipintupian |
longtext |
4294967295 |
菜品图片 |
||
shangjiazhanghao |
varchar |
200 |
商家账号 |
||
caipinleixing |
varchar |
200 |
菜品类型 |
||
zhanghao |
varchar |
200 |
账号 |
表名:config
功能:轮播图
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
value |
longtext |
4294967295 |
值 |
||
url |
longtext |
4294967295 |
链接 |
||
name |
varchar |
200 |
名称 |
表名:qishou
功能:骑手
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
qishouzhanghao |
varchar |
200 |
骑手账号 |
||
mima |
varchar |
200 |
密码 |
||
touxiang |
longtext |
4294967295 |
头像 |
||
xingbie |
varchar |
200 |
性别 |
||
xingming |
varchar |
200 |
姓名 |
表名:pingjiaxinxi
功能:评价信息
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
dingdanbianhao |
varchar |
200 |
订单编号 |
||
caipinmingcheng |
varchar |
200 |
菜品名称 |
||
caipinxinxi |
varchar |
200 |
菜品信息 |
||
caipinxiangqing |
varchar |
200 |
菜品详情 |
||
caipintupian |
longtext |
4294967295 |
菜品图片 |
||
shangjiazhanghao |
varchar |
200 |
商家账号 |
||
caipinleixing |
varchar |
200 |
菜品类型 |
||
qishouzhanghao |
varchar |
200 |
骑手账号 |
||
zhanghao |
varchar |
200 |
账号 |
||
pingjia |
varchar |
200 |
评价 |
||
pingjiashijian |
datetime |
评价时间 |
表名:yonghu
功能:用户
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
zhanghao |
varchar |
200 |
账号 |
||
mima |
varchar |
200 |
密码 |
||
touxiang |
longtext |
4294967295 |
头像 |
||
xingbie |
varchar |
200 |
性别 |
||
xingming |
varchar |
200 |
姓名 |
||
money |
double |
余额 |
0 |
表名:caipinxinxi
功能:菜品信息
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
caipinmingcheng |
varchar |
200 |
菜品名称 |
||
caipinxinxi |
varchar |
200 |
菜品信息 |
||
caipinxiangqing |
varchar |
200 |
菜品详情 |
||
caipintupian |
longtext |
4294967295 |
菜品图片 |
||
price |
double |
价格 |
|||
thumbsup_number |
int |
赞 |
|||
crazily_number |
int |
踩 |
|||
storeup_number |
int |
收藏数 |
|||
discuss_number |
int |
评论数 |
|||
click_number |
int |
点击次数 |
|||
shangjiazhanghao |
varchar |
200 |
商家账号 |
||
caipinleixing |
varchar |
200 |
菜品类型 |
表名:peisongxinxi
功能:配送信息
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
dingdanbianhao |
varchar |
200 |
订单编号 |
||
caipinmingcheng |
varchar |
200 |
菜品名称 |
||
caipinxinxi |
varchar |
200 |
菜品信息 |
||
caipinxiangqing |
varchar |
200 |
菜品详情 |
||
caipintupian |
longtext |
4294967295 |
菜品图片 |
||
shangjiazhanghao |
varchar |
200 |
商家账号 |
||
caipinleixing |
varchar |
200 |
菜品类型 |
||
qishouzhanghao |
varchar |
200 |
骑手账号 |
||
zhanghao |
varchar |
200 |
账号 |
||
peisongshijian |
datetime |
配送时间 |
表名:users
功能:管理员
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
username |
varchar |
200 |
用户名 |
||
password |
varchar |
200 |
密码 |
||
role |
varchar |
200 |
角色 |
管理员 |
表名:caipinleixing
功能:菜品类型
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
caipinleixing |
varchar |
200 |
菜品类型 |
表名:orders
功能:商品订单
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
orderid |
varchar |
200 |
订单编号 |
||
tablename |
varchar |
200 |
商品表名 |
caipinxinxi |
|
goodid |
bigint |
商品id |
|||
goodname |
varchar |
200 |
商品名称 |
||
picture |
longtext |
4294967295 |
图片 |
||
buynumber |
int |
购买数量 |
|||
price |
double |
单价 |
|||
discountprice |
double |
折扣价 |
|||
total |
double |
总价 |
|||
discounttotal |
double |
折扣总价格 |
|||
type |
varchar |
200 |
支付类型 |
||
status |
varchar |
200 |
订单状态 |
||
address |
varchar |
200 |
地址 |
||
tel |
varchar |
200 |
电话 |
||
consignee |
varchar |
200 |
收货人 |
||
remark |
varchar |
200 |
备注 |
||
logistics |
longtext |
4294967295 |
物流 |
||
role |
varchar |
200 |
用户角色 |
||
userid |
bigint |
用户id |
|||
shangjiazhanghao |
varchar |
200 |
商户名称 |
表名:token
功能:token表
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
userid |
bigint |
用户id |
|||
username |
varchar |
100 |
用户名 |
||
tablename |
varchar |
100 |
表名 |
||
role |
varchar |
100 |
角色 |
||
token |
varchar |
200 |
密码 |
||
addtime |
timestamp |
新增时间 |
CURRENT_TIMESTAMP |
||
expiratedtime |
timestamp |
过期时间 |
CURRENT_TIMESTAMP |
表名:news
功能:新闻资讯
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
title |
varchar |
200 |
标题 |
||
introduction |
longtext |
4294967295 |
简介 |
||
picture |
longtext |
4294967295 |
图片 |
||
content |
longtext |
4294967295 |
内容 |
表名:storeup
功能:我的收藏
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
id |
bigint |
主键 |
主键 |
||
addtime |
timestamp |
创建时间 |
CURRENT_TIMESTAMP |
||
refid |
bigint |
refid |
|||
tablename |
varchar |
200 |
表名 |
||
name |
varchar |
200 |
名称 |
||
picture |
longtext |
4294967295 |
图片 |
||
type |
varchar |
200 |
类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注) |
1 |
|
inteltype |
varchar |
200 |
推荐类型 |
||
remark |
varchar |
200 |
备注 |
||
userid |
bigint |
用户id |
-
- 用户功能实现
- 浏览菜品信息
- 用户功能实现
用户可以浏览详细的菜品信息,包括菜品的名称、价格、描述、图片等。系统提供多种分类和搜索功能,帮助用户快速找到感兴趣的菜品。浏览菜品信息界面如图5-1所示。
-
-
- 管理购物车
-
用户可以将心仪的菜品加入购物车,随时查看购物车内的菜品和总价。用户可以调整菜品数量、删除菜品,系统会实时更新购物车信息。管理购物车界面如图5-2所示。
-
-
- 管理个人中心
-
用户可以在个人中心管理个人信息,包括修改密码、查看订单管理、收货信息、评价信息、配送信息等。用户可以查看历史订单详情,对已完成的订单进行评价,查看配送状态,还可以管理我的收藏。管理个人中心界面如图5-3所示。
-
- 商家功能实现
- 管理菜品信息
- 商家功能实现
商家可以管理菜品信息,包括添加、编辑和删除菜品。商家可以上传菜品图片、描述、价格等详细信息,确保菜品展示的准确性和吸引力。商家还可以根据季节和活动调整菜品信息,优化菜单,提升用户体验。管理菜品信息界面如图5-4所示。
-
-
- 管理订单
-
商家需要处理订单管理。在订单管理界面,涵盖已取消订单、已支付订单等多种状态分类。商家可及时查看新订单信息,根据订单状态进行相应操作。管理订单界面如图5-5所示。
-
- 管理员功能实现
- 增加菜品类型
- 管理员功能实现
管理员可以增加新的菜品类型,以丰富平台的菜品分类。管理员还可以对已有的菜品类型进行编辑和删除操作,灵活调整菜品分类,满足商家和用户的需求。增加菜品类型界面如图5-8所示。
- 总结
本研究围绕校园外卖点餐系统,从规划到落地,完成了平台开发的全流程。需求分析阶段,通过深入调研,明确了平台在技术、操作及经济层面的可行性,并详细梳理了用户、商家、骑手与管理员的功能需求。系统总体流程设计覆盖了用户注册登录、菜品信息浏览、订单管理及各类信息处理等核心流程,为后续开发奠定了坚实基础。在系统设计环节,采用B/S架构,利用Spring Boot框架、Vue技术和MySQL数据库搭建了平台架构,精心设计了用户注册登录、菜品管理、订单处理等核心功能的时序图,并完成了数据库的实体与表设计。系统实现过程中,用户能够实现首页浏览、菜品查询、在线支付及个人中心管理等功能,商家可以管理订单、评价信息、菜品信息等,骑手可以查看评价信息、分配信息、接单信息,管理员则能对系统用户、订单信息、配送信息、菜品类型等进行全面管控,各功能模块通过界面交互实现,操作流程简便直观。系统测试阶段,搭建了测试环境,选定了合适的测试方法,对注册登录、订单管理、在线支付等功能进行了全面测试,测试结果有力验证了平台的稳定性与可靠性。测试结论显示,平台功能符合设计预期,能够切实满足用户在线点餐的需求,为校园师生打造了一个高效、便捷的外卖点餐服务平台。