首页 > 编程语言 >基于springboot + vue的网上订餐系统的设计与实现(附源码)

基于springboot + vue的网上订餐系统的设计与实现(附源码)

时间:2024-11-05 17:18:35浏览次数:3  
标签:vue varchar springboot 用户 订单 源码 会员 3.3 菜品

一、项目背景

随着互联网技术的飞速发展和智能手机的普及,人们的生活方式发生了翻天覆地的变化,其中之一便是网上订餐系统的兴起。这种系统通过在线平台连接消费者和餐饮服务提供商,使得用户可以随时随地浏览菜单、下单并支付,极大地提高了订餐的便捷性。同时,网上订餐系统也为餐饮业带来了新的商业模式和市场机遇,推动了整个行业的数字化转型。然而,随着市场竞争的加剧,如何提高用户体验、优化订单处理流程、降低运营成本等问题成为网上订餐系统研究的重要课题。因此,深入研究网上订餐系统的设计、实现和优化,对于满足消费者需求、提升餐饮服务质量、推动行业创新具有重要的现实意义。

二、需求分析

2.1 系统功能需求

1.用户管理功能

用户注册:允许新用户输入必要信息进行注册,创建个人账号。

用户登录:用户通过输入用户名和密码登录系统,进入个人中心。

个人中心:用户可以查看和修改个人信息,包括联系方式、地址等。

2.菜品信息展示功能

菜品分类展示:将菜品按照不同类别进行分类展示,方便用户查找。

菜品详细信息:展示菜品的图片、名称、价格、描述等详细信息。

3.订餐功能

下单订餐:用户选择菜品、数量后提交订单,填写送餐地址等信息。

订单管理:用户可以查看订单状态、历史订单,以及进行订单的取消、修改等操作。

4.管理员管理功能

会员管理:管理员可以查看会员信息,对会员进行等级调整、积分管理等操作。菜品分类管理:添加、删除、修改菜品分类。

菜品信息管理:对菜品的信息进行编辑、上架、下架等操作。

订单信息管理:查看订单详情,处理订单状态,如确认接单、配送中、已完成等。

订单配送管理:分配配送任务,跟踪配送进度。

管理员管理:添加、删除、修改管理员账号信息。

系统管理:进行系统参数设置、数据备份与恢复等操作。

2.2 系统非功能性需求

1. 性能需求

响应时间:系统对于用户的操作响应时间应在 2 秒以内,确保用户体验流畅。  吞吐量:系统应能够同时处理至少 100 个并发用户请求,满足高峰时段的使用需求。

2.可靠性需求

可用性:系统应保证 99.5%以上的可用性,减少因系统故障导致的服务中断时间。 容错性:当出现网络故障、数据库连接错误等异常情况时,系统应能够及时给出提示,并尽量保持部分功能可用,等待故障恢复后自动恢复正常运行。

3.安全性需求

用户认证与授权:采用强密码策略,对用户登录进行加密传输,确保用户账号安全。根据用户角色分配不同的权限,防止越权操作。

数据加密:对用户的个人信息、订单信息等敏感数据进行加密存储,防止数据泄露。

4.易用性需求

界面设计:系统界面应简洁美观,布局合理,易于操作。采用直观的图标和清晰的文字说明,方便用户快速理解和使用。

操作流程:简化订餐流程,减少用户操作步骤,提供便捷的下单、支付等功能。 5. 可维护性需求

代码结构:系统代码应具有良好的结构和注释,便于开发人员进行维护和扩展。 日志管理:记录系统的运行日志,方便管理员进行故障排查和性能优化。

数据管理:提供方便的数据导入、导出和备份功能,便于管理员进行数据管理和维护。

2.3 关键业务流程

业务流程图

                                                                        用例图

三、系统设计

3.1 系统架构设计

随着互联网和浏览器的发展,B/S的开发架构逐渐取代了C/S架构,B/S的开发架构是一种浏览器和服务器的模式,它将应用程序的大部分功能都放在服务器端,客户机端只需要安装浏览器(Browser),通过Web Server对服务器端安装的数据库进行数据读取和存储[3]。其B/S架构图如下图3.1.1所示:

图3.1.1

基于Spring Boot的网上订餐系统的特点就是利用Browser/Server(B/S)结构,为用户提供了一个网络订餐的平台,让用户只要上网就可以实现订餐的操作。

本系统的网络应用原理示意图如图3.1.2所示:

图3.1.2系统的网络应用原理示意图

3.2 系统功能模块设计

3.2.1系统整体功能

系统的设计和划分是系统的核心研究问题,以确定整体结构和功能模块。该系统的结构化设计的思想,是自顶向下的方式将系统分成若干个子系统,以及反过来的子系统分成模块,其被划分成子模块,层划分各计算机可执行模块可迄今用作一个单独的程序。

本基于Spring Boot的网上订餐系统主要管理员模块以及用户模块两大部分,系统结构图如图3.2.1所示。

图3.2.1 系统模块图

3.2.2注册流程

未有账号的用户可进行注册操作,用户注册流程图如图3.2.2所示。

图3.2.2 注册信息流程图

3.2.3登录流程

登录模块主要满足了管理员和用户的权限登录,用户登录流程图如图3.2.3所示。

图3.2.3  登录流程图

3.3 数据库设计

3.3.1 概念结构设计

根据需求分析,可得本系统的实体属性图如下:

会员实体属性图如图3.3.1所示:

图3.3.1 会员实体属性图

订单信息实体属性图如图3.3.2所示:

图3.3.2 订单信息实体属性图

订单配送实体属性图如图3.3.3所示:

图3.3.3 订单配送实体属性图

菜品信息实体属性图如图3.3.4所示:

图3.3.4 菜品信息实体属性图

菜品分类实体属性图如图3.3.5所示:

图3.3.5 菜品分类实体属性图

用户实体属性图如图3.3.6所示:

图3.3.6 用户实体属性图

TOKEN实体属性图如图3.3.7所示:

图3.3.7 TOKEN实体属性图

根据需求分析,可得出本系统的总E-R图如图3.3.8所示

图3.3.8 系统总E-R图

3.3.2 逻辑结构设计

通过分析系统的具体情况和需求,使用MySQL作为数据存储工具,根据具体的功能模块,现在数据库建立了以下八张表

表3.3.1 huiyuan(会员表)

字段名

说明

数据类型

是否为主键

是否为空

id

唯一标识符

bigint

addtime

创建时间

timestamp

huiyuanzhanghao

会员账号

varchar

否,唯一

mima

会员密码

varchar

huiyuanxingming

会员姓名

varchar

touxiang

会员头像链接

varchar

xingbie

会员性别

varchar

nianling

会员年龄

varchar

shoujihaoma

会员手机号码

varchar

dizhi

会员地址

varchar

huiyuandengji

会员等级

varchar

huiyuanzhekou

会员折扣

varchar

表3.3.2 caipinfenlei(菜品分类表)

字段名

说明

数据类型

是否为主键

是否为空

id

唯一标识符

bigint

addtime

创建时间

timestamp

caipinfenlei

菜品分类名称

varchar

表3.3.3 caipinxinxi(菜品信息表)

字段名

说明

数据类型

是否为主键

是否为空

id

唯一标识符

bigint

addtime

创建时间

timestamp

caipinmingcheng

菜品名称

varchar

tupian

菜品图片链接

varchar

caipinfenlei

菜品所属分类

varchar

tuijianzhishu

菜品推荐指数

varchar

jiage

菜品价格

varchar(200)

kouwei

菜品口味描述

varchar(200)

shicai

菜品食材描述

varchar(200)

caipinxiangqing

菜品详细介绍

longtext

clicktime

菜品最近被点击时间

datetime

clicknum

菜品被点击次数

int

是,默认值为 0

表3.3.4 dingdanxinxi(订单信息表)

字段名

说明

数据类型

是否为主键

是否为空

id

唯一标识符

bigint

addtime

订单创建时间

timestamp

dingdanbianhao

订单编号

varchar

否,唯一

caipinmingcheng

订单中菜品名称

varchar

caipinfenlei

订单中菜品所属分类

varchar

jiage

订单中菜品价格

varchar

shuliang

订单中菜品数量

varchar

zongjine

订单总金额

float

xiadanshijian

订单下单时间

datetime

beizhu

订单备注信息

varchar

huiyuanzhanghao

下订单的会员账号

varchar

huiyuanxingming

下订单的会员姓名

varchar

shoujihaoma

下订单会员的手机号码

varchar(

dizhi

下订单会员的地址

varchar

huiyuanzhekou

会员在该订单中可享受的折扣

varchar

ispay

订单的支付状态

varchar

是,默认值为 “未支付”

表3.3.5 dingdanpeisong(订单配送表)

字段名

说明

数据类型

是否为主键

是否为空

id

唯一标识符

bigint

addtime

订单配送信息创建时间戳

timestamp

dingdanbianhao

订单编号

varchar(200)

caipinmingcheng

配送订单中的菜品名称

varchar(200)

caipinfenlei

配送订单中菜品所属分类

varchar(200)

jiage

配送订单中菜品的价格

varchar

shuliang

配送订单中菜品的数量

varchar

zongjine

配送订单的总金额

varchar

peisongshijian

订单的配送时间

datetime

huiyuanzhanghao

下订单的会员账号

varchar

huiyuanxingming

下订单的会员姓名

varchar

shoujihaoma

下订单会员的手机号码

varchar

dizhi

下订单会员的地址

varchar

huiyuanzhekou

会员折扣

varchar

表3.3.6 token(令牌表)

字段名

说明

数据类型

是否为主键

是否为空

id

唯一标识符

bigint

userid

与用户表(huiyuan或users)中的id关联,标识令牌所属的用户

bigint

username

用户名

varchar

tablename

用户所属的表名(如huiyuan或users)

varchar

role

用户的角色

varchar

token

令牌的值

varchar

addtime

记录令牌创建的时间戳

timestamp

expiratedtime

记录令牌过期的时间戳

timestamp

表3.3.7 users(用户表,主要用于管理员)

字段名

说明

数据类型

是否为主键

是否为空

id

唯一标识符

bigint

username

用户名

varchar

password

用户的密码

varchar

role

用户的角色

varchar

是,默认值为 “管理员”

addtime

记录用户创建的时间

timestamp

表3.3.8 config(配置表)

字段名

说明

数据类型

是否为主键

是否为空

id

配置参数的唯一标识符

bigint

name

配置参数的名称

varchar(100)

value

配置参数的值

varchar(100)

3.3.3 物理结构设计

系统实现的物理结构如图3.3.1所示:

 系统实现的物理结构图

标签:vue,varchar,springboot,用户,订单,源码,会员,3.3,菜品
From: https://blog.csdn.net/weixin_74331754/article/details/143413136

相关文章