摘要
随着校园生活节奏的加快,学生对外卖的需求日益增长。然而,传统的外卖服务存在诸多不便,如配送时间长、菜品选择有限、信息更新不及时等。为解决这些问题,本研究开发了一款校园外卖点餐系统,采用前端 Vue、后端 Spring Boot 技术栈,依托 MySQL 数据库搭建。用户可以在首页浏览菜品信息、新闻资讯,查看购物车,进行留言反馈。用户可在个人中心进行修改密码、订单管理、收货信息、评价信息、配送信息、我的收藏等操作;商家则可以管理订单、评价信息、菜品信息等;骑手可以查看评价信息、分配信息、接单信息。管理员可在后台首页管理各类用户,进行订单管理、配送信息、菜品类型、分配信息、轮播图、菜品信息、收货信息、新闻资讯、接单信息、菜单、订单信息、评价信息等多方面管理工作,为用户提供高效、便捷的外卖点餐体验。
关键词:校园外卖点餐系统;SpringBoot;Vue;MySQL
目录
摘要
Abstract
1 绪论
1.1 研究背景
1.2 研究意义
1.3 国内外研究现状
2 相关技术介绍
2.1 B/S框架
2.2 SpringBoot框架
2.3 Vue技术
2.4 MySQL数据库
3 需求分析
3.1 可行性分析
3.1.1 技术可行性
3.1.2 操作可行性
3.1.3 经济可行性
3.2 系统性能需求分析
3.3 功能需求分析
3.3.1 用户功能
3.3.2 商家功能
3.3.3 骑手功能
3.3.4 管理员功能
3.4 系统总体流程设计
3.4.1 数据开发流程
3.4.2 用户登录流程
3.4.3 系统操作流程
3.4.4 添加信息流程
3.4.5 修改信息流程
3.4.6 删除信息流程
4 系统设计
4.1 系统架构设计
4.2 系统总体功能设计
4.2.1 注册时序图
4.2.2 登录时序图
4.2.3 管理员修改用户信息时序图
4.2.4 管理员管理系统信息时序图
4.3 数据库设计
4.3.1 数据库实体设计
4.3.2 数据库表设计
5 系统实现
5.1 用户功能实现
5.1.1 浏览菜品信息
5.1.2 管理购物车
5.1.3 管理个人中心
5.2 商家功能实现
5.2.1 管理菜品信息
5.2.2 管理订单
5.3 骑手功能实现
5.3.1 处理接单信息
5.3.2 处理分配信息
5.4 管理员功能实现
5.4.1 增加菜品类型
5.4.2 新闻资讯管理
5.4.3 轮播图管理
6 系统测试
6.1 测试环境
6.2 测试目的
6.3 测试方法
6.4 测试内容
6.5 测试结论
7 总结
参考文献
致谢
附录
系统核心代码设计
用户注册
用户登录
修改密码
修改数据
删除数据
获取列表
图片上传
- 绪论
- 研究背景
随着校园生活节奏的加快,学生对外卖的需求日益增长。然而,传统的外卖服务存在诸多不便,如配送时间长、菜品选择有限、信息更新不及时等,这些问题不仅影响了学生的用餐体验,也限制了外卖服务在校园内的进一步发展。近年来,随着信息技术的快速发展,特别是互联网、移动应用和数据库技术的普及,为外卖服务的数字化转型提供了可能。开发一个校园外卖点餐系统,能够有效整合校园内外卖资源,优化服务流程,提升用户体验,增强服务竞争力。
-
- 研究意义
开发校园外卖点餐系统具有显著意义。它打破了时间与空间的限制,学生无论身处宿舍、教室还是图书馆,都能随时随地通过系统下单订餐,节省了往返食堂或校外就餐的时间,可将更多精力投入学习。系统整合校园周边及校内商家资源,丰富菜品种类,满足学生个性化的饮食偏好。对于商家而言,拓展了销售渠道,增加了营收。而且,系统规范了外卖配送流程,保障食品卫生与安全,提升校园餐饮服务质量,优化校园生活体验。
用户用例图如图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数据库搭建了平台架构,精心设计了用户注册登录、菜品管理、订单处理等核心功能的时序图,并完成了数据库的实体与表设计。系统实现过程中,用户能够实现首页浏览、菜品查询、在线支付及个人中心管理等功能,商家可以管理订单、评价信息、菜品信息等,骑手可以查看评价信息、分配信息、接单信息,管理员则能对系统用户、订单信息、配送信息、菜品类型等进行全面管控,各功能模块通过界面交互实现,操作流程简便直观。系统测试阶段,搭建了测试环境,选定了合适的测试方法,对注册登录、订单管理、在线支付等功能进行了全面测试,测试结果有力验证了平台的稳定性与可靠性。测试结论显示,平台功能符合设计预期,能够切实满足用户在线点餐的需求,为校园师生打造了一个高效、便捷的外卖点餐服务平台。