基于springboot在线点餐系统

 基于springboot+vue实现的点餐系统  (源码+L文+ppt)4-077    

图片

第4章 系统设计    

4.1 总体功能设计

一般个人用户和管理者都需要登录才能进入点餐系统,使用者登录时会在后台判断使用的权限类型,包括一般使用者和管理者,一般使用者只能对美食信息提供查阅和个别使用信息内容的查看,而管理者则能对多个信息内容提供使用。

整体系统的主要功能模块如图4-1:

图片

图4-1 点餐系统功能图

              

4.2 系统登录模块设计

用户在启动操作系统时会调用的一个模块。该模型通过用户输入的账号、密码来确定应用的类别,切换到该类应用的页面。

本模块的功能点包括:

1)确定账号与密码是否一致。

2)完全按照系统所规定使用权限的权限类型,,直接通过登陆进入到系统权限的制定管理页面中即可进行授权使用。

登录模块流程图如图4-2:

         

图片

              

图4-2 登录模块流程图

4.3 数据库设计

管理静止网站时是由WEB客户端向Web传送静态页面,而Web客户端直接对所传送的静态页面进行管理。

实现动态网页数据库信息查询请求的最基本处理流程概括为:当一个WEB用户成功向动态网页服务器数据库发送信息请求成功后,对其动态页面库的一种主要的处理实现方法之一是,屏蔽掉其中所有动态HTML代码,只须使用一个动态的动态网页文件,由动态Web浏览器程序直接地在该数据库服务器上进行传递动态信息,然后再通过该数据库服务器的处理程序返回到信息集,由该Web应用服务器处理程序再一次将包含动态程序代码在内的动态页面,转化为一个静态页面信息并自动返回到网页浏览器。也就是网站在这个动态页里对网页信息自动进行检索并最终把这些信息自动返回传递到网站用户处的这个全自动化过程。

数据库查询示意图如图4-3:

图片

图4-3 数据库查询示意图

数据库设计阶段目标表见表4-4:    

阶段

目标

概念设计

了解功能需求,通过分析系统功能定义出系统有哪些实体联系图(即E-R图)

逻辑设计

把E-R图转换成能处理的逻辑模型,检查是否满足第三范式的要求

物理设计

基于基本数据模型,生成适用于应用系统的物理结构

表4-4 数据库设计阶段目标表

4.3.1 E-R图设计

根据以上分析,本系统中包含多个实体,根据他们以及他们的关系绘制出E-R图如下:

(1)用户信息E-R图如下图4-5:

图4-5用户信息E-R图

(2)促销活动E-R图如下图4-6:    

图4-6促销活动E-R图

(3)美食信息E-R图如下图4-7:

图4-7美食信息E-R图

(4)订单信息E-R图如下图4-8:    

图片

图4-8订单信息E-R图

(5)点餐系统总体E-R图如下图4-9:

图片

图4-9点餐系统总体E-R图

4.3.2  数据库关系表设计

数据库关系表如下:

表4-1:用户表

字段名称

类型

长度

字段说明

主键

默认值

id        

bigint

                  

主键

    主键 

                  

username

varchar

100

用户名

                  

                  

password

varchar

100

密码

                  

                  

image

varchar

200

头像

                  

                  

role

varchar

100

角色

                  

管理员

addtime

timestamp

                  

新增时间

                  

CURRENT_TIMESTAMP

此处省略15张表。。。

表4-17:系统简介

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

                  

主键

    主键 

                  

addtime

timestamp

                  

创建时间

                  

CURRENT_TIMESTAMP

title

varchar

200

标题

                  

                  

subtitle

varchar

200

副标题

                  

                  

content

longtext

4294967295

内容

                  

                  

picture1

longtext

4294967295

图片1

                  

                  

picture2

longtext

4294967295

图片2

                  

                  

picture3

longtext

4294967295

图片3

                  

                  

          

第5章 系统实现

5.1 用户前台系统功能模块实现

当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到点餐系统的导航条显示系统首页、美食信息、促销活动、公告信息、购物车、个人中心。系统首页界面如图5-1所示:    

图片

图5-1系统首页界面

          

当用户进入前台系统进行相关操作前必须先注册登录,在注册页面填写用户账号、用户姓名、密码、确认密码、性别、联系电话、头像等信息,前端将这些信息通过HTTP请求发送到Java后端。后端处理这些信息,检查用户名是否唯一,并将新用户数据存入MySQL数据库。完成后,后端向前端发送注册成功的确认,前端随后通知用户完成注册。这个过程实现了新用户的数据收集、验证和存储。如图5-2所示。

图片

图5-2用户注册界面图    

          

          

用户登录,用户在登录页面通过填写账号、密码,完成登录,在登录流程中,用户首先在Vue前端界面输入用户名和密码。这些信息通过HTTP请求发送到Java后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端生成一个令牌(如JWT)并返回给前端,允许用户访问系统。这个过程涵盖了从用户输入到系统验证和响应的全过程。如图5-3所示。

图片

图5-3用户登录界面图

          

用户点击美食信息,在美食信息页面的搜索栏输入美食名称、口味、价格等信息,进行查询,还可以查看美食名称、菜品分类、口味、图片、特色、单限、库存、评论数、价格、收藏数等信息,如有需要可以添加到购物车、立即购买或者收藏、评论等操作;如图5-4所示。    

图片

          

图5-4美食信息页面

          

用户点击促销活动,在促销活动页面的搜索栏输入名称、主料等信息,进行查询,还可以查看名称、主料、封面、分量、单限、库存、评论数、收藏数等信息;如有需要可以添加到购物车或者收藏、评论等操作;如图5-5所示:

图片

图5-5促销活动页面

              

用户点击个人中心,在个人中心页面可以修改个人信息、密码修改,还可以对修改密码、我的订单、我的地址、我的收藏进行详细操作,如图5-6所示。

图片

          

图5-6个人中心界面图

5.2管理员功能模块实现

本模块主要是使用者可以通过点餐系统的首页进入该系统。用户输入正确的账号名和密码,一旦输入信息有错,将在系统显示错误提示,同时严禁系统用户做出其他动作。如果注册信息正确无误,系统就会按照使用者的身份信息做出有关权利的判定,用户进入前台系统,管理者则进入后台系统。管理员登录主页面如图5-7所示:    

图片

图5-7 管理员登录主页面

管理员进入主页面,主要功能包括对首页、用户、菜品分类、美食信息、促销活动、系统管理、订单管理、用户资料等进行操作。管理员主页面如图5-8所示:

图片

图5-8管理员主界面

          

用户信息功能在视图层(view层)进行交互,比如点击“新增”按钮或填写用户信息表单。这些用户信息动作被视图层捕获并作为请求发送给相应的控制器层(control1er层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如搜索、新增、修改或删除用户信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便用户信息功能可以看到最新的信息或相应的操作反馈。在用户信息页面的输入栏中输入用户账号进行搜索,可以查看到用户详细信息,并根据需要进行修改或者删除等操作;如图5-9所示:    

图片

图5-9用户管理界面

          

菜品分类功能在视图层(view层)进行交互,比如点击“新增”按钮或填写菜品分类表单。这些菜品分类动作被视图层捕获并作为请求发送给相应的控制器层(control1er层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查找、新增、修改或删除菜品分类,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便菜品分类功能可以看到最新的信息或相应的操作反馈。在菜品分类页面的输入栏中输入菜品分类进行搜索,可以查看到菜品分类详细信息,并根据需要进行修改或者删除等操作。如图5-10所示:    

图片

图5-10菜品分类界面

          

管理员点击美食信息,在美食信息页面输入美食名称、菜品分类、口味、图片、特色、单限、库存、评论数、价格、收藏数等信息,可以搜索或者新增、删除美食信息等操作。如图5-11所示:

图片

图5-11美食信息界面

          

管理员点击促销活动,在下单信息页面对名称、主料、封面、分量、单限、库存、评论数、收藏数等信息,可以搜索、新增或删除促销活动等操作。如图5-12所示:    

图片

图5-12促销活动界面

管理员点击系统管理,在系统管理页面对公告信息、公告信息分类、关于我们、系统简介、轮播图管理等模块信息,进行详情操作。如图5-13所示:

图片

图5-13系统管理界面

          

管理员点击订单管理,在订单管理页面对订单编号、商品名称、商品图片、购买数量、价格、总价格、支付类型、状态、地址、电话、收货人、备注、退货审核、审核回复、下单时间等信息,可以搜索或删除订单信息等操作。如图5-14所示:    

图片

图5-14订单管理界面 

点击领取源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1545425.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

vue3的生命周期有哪些

vue3的生命周期:1、beforecreate;2、created;3、beforemount;4、mounted;5、beforeupdate;6、updated;7、beforedestroy;8、destroyed;9、activated;10、deac…

STM32基础学习笔记-DHT11单总线协议面试基础题7

第七章、DHT11: 单总线协!议 常见问题 1、DHT11是什么 ?有什么特性 ? 2、单总线协议是什么 ?原理 ?DHT11的单总线协议的组成 ? ## 1、DHT11定义 单总线协议是一种用于在多个设备之间进行通信的协议,所有…

Calcite第一课

Calcite 是什么? 2024 年 9 月,最新版本 1.37.0 。前面三节我们先不看任何的源码,只从背景、介绍、概念、原理层面入手,作为深入学习和源码分析的预备。 如果用一句话形容 Calcite,Calcite 是一个用于优化异构数据源的…

2024年CSP-J认证 CCF信息学奥赛C++ 中小学初级组 第一轮真题-阅读程序题解析

2024 CCF认证第一轮&#xff08;CSP-J&#xff09;真题 二、阅读程序题 (程序输入不超过数组或字符串定义的范围&#xff0c;判断题正确填√错误填X;除特殊说明外&#xff0c;判断题 1.5分&#xff0c;选择题3分&#xff0c;共计40 分) 第一题 01 #include <iostream>…

【C++进阶】2024年了set、map还搞不懂底层细节?

&#x1f680;个人主页&#xff1a;小羊 &#x1f680;所属专栏&#xff1a;C 很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~ 目录 一、前情提要1、什么是关联式容器&#xff1f;2、键值对又是什么&#xff1f; 二、树形结构的关联式容器1、set1.1…

在不受支持的 Mac 上安装 macOS Sequoia (OpenCore Legacy Patcher v2.0.1)

在不受支持的 Mac 上安装 macOS Sequoia (OpenCore Legacy Patcher v2.0.1) Install macOS on unsupported Macs 请访问原文链接&#xff1a;https://sysin.org/blog/install-macos-on-unsupported-mac/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主…

【CoppeliaSim V4.7】The Python interpreter could not handle the wrapper script

[sandboxScript:error] The Python interpreter could not handle the wrapper script (or communication between the launched subprocess and CoppeliaSim could not be established via sockets). Make sure that the Python modules ‘cbor2’ and ‘zmq’ are properly i…

【C++】stack和queue的使用及模拟实现

stack就是栈的意思&#xff0c;这个结构遵循后进先出(LIFO)的原则&#xff0c;可以将栈想象为一个子弹夹&#xff0c;先进去的子弹后出来。 queue就是队列的意思&#xff0c;这个结构遵循先进先出(FIFO)的原则&#xff0c;可以将对列想象成我们排队买饭的场景&#xff0c;先排…

Shopee 大促想爆单如何准备?EasyBoss ERP为你准备了一份攻略!

Shopee下半年第二个大促节点——10.10品牌大促即将来到&#xff0c;根据Shopee的官方的数据&#xff0c;9.9大促当天&#xff0c;Shopee Mall单量增至平日4倍。 老板们&#xff0c;准备好自己的热卖爆款冲击10.10大促了吗&#xff1f; 图源&#xff1a;Shopee 为助力大家迎战大…

大模型速通LLM神书来了《从头开始构建大型语言模型》,尚未发布,GitHub标星22k!!

这本大模型书籍资料已经上传CSDN&#xff0c;朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】 本书介绍 《从零构建大模型》是一本即将于今年10月底发布的书籍&#xff0c;github已经吸引了惊人的21.7k标星&#xff01;作者是威斯康星大学麦迪逊分…

N个utils(类加载-初始化-序列化)

fasterxml.jackson.databind.ObjectMapper(springboot本身就集成了) public class ObjectMapper {// 公共的ObjectMapper对象public static com.fasterxml.jackson.databind.ObjectMapper mapper new com.fasterxml.jackson.databind.ObjectMapper();/*** Description: 将数据…

推荐一款开源的链路监控系统

12.9k star&#xff0c;最强链路监控系统推荐&#xff0c;推荐 用过cat、pinpoint、skywalking等链路监控系统&#xff0c;各有优劣&#xff0c;但用的最多的还是pinpoint&#xff0c;工作6年&#xff0c;其中有4年都在用pinpoint&#xff0c;所以也比较熟悉&#xff0c;之前也…

鸿蒙界面开发——组件(10):单选框Radio复选框checkbox 下拉框select 多条件筛选Filter

单选框Radio 单选框一直会有这个圆圈&#xff0c;在选中和未选中之间切换状态。 Radio通过调用接口来创建&#xff0c;接口调用形式如下&#xff1a; Radio(options: RadioOptions) Radio(options: {value: string, group: string ,indicatorType:RadioIndicatorType,(新增) …

NET 7 AOT 的使用以及+NET 与 Go 互相调用

目录 背景 C# 部分 环境要求 创建一个控制台项目 体验 AOT 编译 C# 调用库函数 减少体积 C# 导出函数 C# 调用 C# 生成的 AOT Golang 部分 安装 GCC Golang 导出函数 .NET C# 和 Golang 互调 C# 调用 Golang Golang 调用 C# 其他 背景 其实&#xff0c;规划这篇文章有一段时间了…

AI产品经理必知的133个专业术语

一、机器学习与数据科学 1、监督学习&#xff08;Supervised Learning&#xff09; 监督学习是机器学习的一种形式&#xff0c;其中模型通过带标签的数据集进行训练。训练数据包括输入特征&#xff08;X&#xff09;和对应的输出标签&#xff08;Y&#xff09;&#xff0c;模…

哪个牌子的麦克风好?选购无线麦克风必看的五大隐藏风险

随着短视频行业的兴起。短视频已经成为我们日常生活的一个重要表达载体&#xff0c;同时无线麦克风也是正式进入到了我们的视野之中&#xff0c;这种麦克风凭借没有线材束缚、兼容性更好、拾音更好的特性&#xff0c;成为了不少短视频创作者必不可少的“搭档之一”&#xff0c;…

uniapp APP自动更新组件

在uniapp中实现APP自动更新功能&#xff0c;主要涉及到客户端在功能不断迭代过程中&#xff0c;需要进行自动更新。uniapp一个详细的实现步骤&#xff0c;包括客户端和服务器端的配置&#xff1a; 服务器端配置 版本信息管理 服务器端需要维护一个数据库或配置文件&#xff…

C语言-动态内存分配讲解

目录 ✨1.什么是动态内存分配 &#x1f495;2.动态内存开辟函数 malloc ✨3.malloc函数的检查&#xff08;两种方法&#xff09; &#x1f495;4.动态内存释放函数 free ✨5.free 函数接收空指针 ✨6.为什么要释放动态内存 &#x1f495;7.动态内存开辟函数calloc &#…

【优选算法之位运算】No.7--- 经典位运算算法

文章目录 前言一、位运算几种模型&#xff1a;1.1 基础的位运算&#xff1a; << >> ~ & | ^1.2 几种模型&#xff1a;1.3 模型练习 二、位运算示例&#xff1a;2.1 判定字符是否唯⼀2.2 丢失的数字2.3 两整数之和2.4 只出现⼀次的数字 II2.5 消失的两个数字 前…

STM32G474使用DMA和SPI1实现自发自收

STM32G474使用DMA搬运数据&#xff0c;实现SPI自发自收&#xff0c;验证SPI收发是否正常。测试时&#xff0c;需要将SPI1_MISO和SPI1_MOSI短接。SPI1外设用作主机&#xff0c;其接口&#xff1a;将SPI1_SCK映射到PA5,SPI1_MISO映射到PA6,SPI1_MOSI映射到PA7,SPI1_NSS映射到PA4。…