摘 要
随着信息技术的飞速发展和人们生活节奏的加快,传统餐饮行业的服务模式正面临着前所未有的挑战。为了满足消费者日益增长的便捷性和个性化需求,本文设计并实现了一个基于SpringBoot+Vue的在线点餐系统。该系统利用SpringBoot框架的快速开发、易于部署和维护的特性,结合Vue框架的响应式和用户友好界面,为餐饮行业提供了一个高效、便捷、信息化的解决方案。系统主要分为前端和后端两部分。前端采用Vue框架进行页面渲染和交互设计,实现了用户友好的界面和流畅的操作体验。后端则基于SpringBoot框架,利用Java语言和MySQL数据库进行业务逻辑处理和数据存储,确保了系统的稳定性和可扩展性。系统涵盖了用户管理、美食信息管理、订单处理、支付系统等多个功能模块,实现了从用户注册登录、浏览菜单、下单支付到订单管理的完整流程。通过该系统,消费者可以随时随地通过手机或电脑进行点餐操作,大大提高了点餐效率,同时也为餐饮商家提供了便捷的管理工具和精准的营销支持。本文详细阐述了系统的需求分析、系统设计、系统实现及测试过程,并通过实际运行验证了系统的可行性和有效性。研究结果表明,基于SpringBoot+Vue的在线点餐系统不仅提升了餐饮业的信息化水平,还有效改善了消费者的就餐体验,具有较高的实际应用价值。
关键词:座位预定;点餐系统;SpringBoot框架;Vue框架;Java语言;MySQL数据库
Abstrac
With the rapid development of information technology and the acceleration of people's life rhythm, the service mode of the traditional catering industry is facing unprecedented challenges. To meet the increasing demand for convenience and personalization among consumers, this paper designs and implements an online ordering system based on SpringBoot and Vue. The system takes advantage of the rapid development, easy deployment, and maintenance features of the SpringBoot framework, combined with the responsive and user-friendly interface of the Vue framework, providing an efficient, convenient, and informative solution for the catering industry. The system is mainly divided into front-end and back-end parts. The front-end employs the Vue framework for page rendering and interactive design, achieving a user-friendly interface and a smooth operation experience.
The back-end is based on the SpringBoot framework, utilizing Java language and MySQL database for business logic processing and data storage, ensuring the stability and scalability of the system. The system covers multiple functional modules such as user management, food information management, order processing, and payment system, realizing the complete process from user registration and login, menu browsing, order payment to order management. Through this system, consumers can place orders via mobile phones or computers anytime and anywhere, significantly improving ordering efficiency. At the same time, it also provides convenient management tools and precise marketing support for catering businesses. This paper elaborates on the system's requirement analysis, system design, system implementation, and testing process, and verifies the system's feasibility and effectiveness through actual operation. The research results indicate that the online ordering system based on SpringBoot and Vue not only enhances the informatization level of the catering industry but also effectively improves consumers' dining experience, possessing high practical application value.
Keywords: seat reservation; ordering system; SpringBoot framework; Vue framework; Java language; MySQL database.
目 录
第1章绪论
1.1研究背景与意义
- 近年来,随着经济的快速发展和人们生活水平的提高,餐饮业呈现出蓬勃发展的态势。消费者对于餐饮的需求不再仅仅局限于满足基本温饱,而是更加注重餐饮的品质、多样性、便捷性和个性化。在线点餐系统作为餐饮业与互联网技术结合的产物,应运而生,满足了消费者随时随地、方便快捷地点餐需求。同时,餐厅预订座位也急需能使工作人员对庞大的信息量进行更快更方便更准确进行管理的系统[1]。
在互联网技术无处不在的今天,人们的生活已经离不开计算机,利用其工作、学习乃至购物。例如:人们打算外出就餐时,通常会根据自己的需求选择在网上事先预订好餐厅座位,大大节约了找餐厅的时间。对于餐厅座位数量较多的餐厅来说,利用一套座位预定系统来管理餐厅座位信息和预订信息显得尤为重要,这个系统不仅方便了客户进行预订,同时也方便了工作人员,大大节省了时间。所以开发一个在线点餐系统是很有必要的[2]。
1.2开发现状
近年来,随着信息技术的飞速发展和人们生活节奏的加快,国内在线点餐系统的研究与应用取得了显著进展[3]。众多学者和开发者针对餐饮行业的实际需求,设计并实现了多种类型的在线点餐系统。许多研究将新兴技术如人工智能、大数据等融入在线点餐系统中,以提升用户体验和服务质量[4]。例如,刘永立在《在线点餐系统的设计与实现》中,详细阐述了一个基于特定技术栈的在线点餐系统,该系统不仅提供了基本的点餐功能,还通过数据分析等手段为商家提供了精准营销支持[5]。任建伟和丁莎利用微信小程序的便捷性,设计并实现了一个用户友好、操作简便的点餐系统,进一步拓宽了点餐系统的应用场景。在线点餐系统的应用场景不断拓展,从传统的餐厅点餐扩展到高校食堂、企业食堂等多个领域[6]。张乐在针对高校食堂的特定需求,设计并实现了一个自助点餐系统,有效提高了食堂的运营效率[7]。苏兵采用微服务架构,为校园点餐系统提供了更加灵活、可扩展的后台支持。用户体验是在线点餐系统设计的核心之一。众多研究通过优化界面设计、提升交互流畅度等手段,不断改善用户体验。例如,饶刘维等人通过引入推荐算法,为用户提供更加个性化的点餐建议,提升了用户的满意度[8]。
在国外,在线点餐系统的研究与应用同样取得了显著成果,并且在某些方面展现出更高的技术水平和创新能力。国外研究者在在线点餐系统中广泛应用了人工智能、大数据、云计算等先进技术。例如,Tajuddin等人利用聊天机器人技术实现了一个校园在线点餐系统,为用户提供更加便捷、智能的点餐体验[9]。Liu等人在基于智能点餐系统的长期饮食记录评估,研究了COVID-19对中国大学生饮食行为的影响,体现了在线点餐系统在健康饮食管理方面的应用潜力。国外研究者在在线点餐系统的跨平台整合方面进行了积极探索[10]。例如,一些研究通过将点餐系统与社交媒体、电商平台等无缝对接,实现了“餐品+商品”的一站式消费体验[10]。
国外在线点餐系统更加注重提供个性化和定制化的服务。例如,一些系统通过分析用户的消费习惯和口味偏好,为用户推荐合适的菜品和优惠活动;还有一些系统允许用户根据自己的需求定制菜品,满足用户多样化的需求[11]。
综上所述,国内外在线点餐系统的研究与应用均取得了显著进展。国内研究者在技术融合、应用场景拓展和用户体验优化等方面进行了积极探索;而国外研究者则在技术创新、跨平台整合和个性化服务等方面展现出更高的技术水平和创新能力。未来,随着技术的不断进步和市场的进一步成熟,在线点餐系统将迎来更加广阔的发展空间和应用前景。
第2章相关技术介绍
2.1 JAVA技术
Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,SSM(java server pages),和XML技术。
JAVA语言功能:
面向对象编程是一种革命性的软件开发方法,它将复杂的程序结构转换为可编程的对象,从而大大简化了编程过程,并且极大地提升了程序的安全性。它的出现,使得编程者可以更加轻松地完成任务,并且可以更好地控制程序的运行,从而更好地满足用户的需求。
Java的一个重要优势在于它的跨平台特性,这使得编程变得更加便捷。通过使用Java,您可以轻松访问多个不同的平台,而不必担心编译时会出现问题。
C++的缺陷之一便是它没有有效地利用可重复使用的资源,这使得它的资源需求量大大增加,而这种情况下,它的垃圾回收机制正好可以有效地解决这一问题,因而减少了资源的使用,进而节约了巨量的资源。一些优秀的编程人员通常都会将一块内存地址设为堆栈,以便当它被使用的时候自动解锁,但是一些初学者或者初入者往往忽略了这一步骤,结果就是程序的性能受到了影响,甚至出现了崩溃的情况。因此,许多C++专家在开发代码时,通常会先检查一个指针的值,如果它已经被移动,就把它的值调整到NULL,这样才能够有效地完成代码的执行。
2.2Springboot框架
Java框架的出现,极大地改变了Java的运行方式,因为它不仅可以支持复杂的框架结构,而且还可以支持多种复杂的操纵,从而极大地改善了Java的效率和可靠性。此外,Java框架也被广泛地用来取代EJB(EnterpriseJavaBeans),成为一种更加强大的框架。Spring框架可以有效地支撑多种AP的开发,其中包括:基于控制反向的核心功能,可以将对象的生命周期变得更加可视,采取面向切面的编程语言,以及采取多种可靠的长效技术,以及支撑多种Web框架,以满足不同的AP的需求。Spring框架拥有强大的控制反馈(IOC)功能,使得Java对象的配置与管理变得更加简单高效。该框架采取Java的反馈机制,允许使用者根据XML文件、类别及其相关的Java注释等信息,自由地调整Java对象的使用,从而实现更加高效的编程。Spring框架拥有一种独特的方法来实现切割和分层,它采用了AOP框架,并且在使用过程中支持多种方法的协调。AOP的目的是将复杂的任务分解成多个独立的部分,以便更好地管控和控制。Spring框架的AOP框架拥有丰富的AOP特征,尽管不及AspectJ框架,但它们的结合仍然是一种有效的解决方案,它们不仅支持基础的AspectJ,还支持更高级的aop,从而更好地支持企业的业务流水线。此外,SpringAOP还支持更多的事务处理和远程访问。Java的事务处理框架提供了一种灵活的方式,允许不同类型的事务,包括本地、远程、内部、外部的,都能够被有效的处理。它支持多种类型的事务,用户可以根据需要自定义事务处理模块,如XML、Java文档,还支持快速、安全的数据交换。Spring的强大的数据访问功能为开发者们带来了极大的便利,无论是JDBC、iBATS/MyBATIs、Hibernate、JDO、ApacheOJB、ApacheCayne,都能够轻松地实现数据的访问,而且,这些功能也能够被Spring的事务管理系统完美地整合,从而大大减少了开发者们面临的挑战,极大地改善了他们的工作效率,极大地推动了企业级的信息化进步。通过使用这种方法,我们可以更加轻松地进行数据访问。SpringMVC的诞生源于一个开发者的决定:他们决定改变传统的StrutsWeb框架,将呈现层、请求处理层和模型完全分离,从而创建一个更加高效、可靠的SpringMVC。
2.3MYSQL数据库
网站的开发必须配套相应数据库,数据库具有一定的组织结构,能够存放和管理数据信息,在以前数据库的功能仅仅是数据保存和管理操作,但是时代的变迁和发展,现在的数据库演变成了数据处理的方式,数据库从最开始的简单存放数据表格信息到现在的能够存放成千上万数据的大型数据库,期间还是经历了许多的改革。
本次开发的第三方游戏账号交易平台使用的数据库是MYSQL数据库,该数据库运行速度快,安全性能也很高,而且对使用的平台没有任何的限制,所以被广泛应用到系统的开发中。MySQL是一个开源和多线程的关系管理数据库系统,MySQL是开放源代码的数据库,具有跨平台性,虽然功能未必强大,导致很多人不了解这个数据库的基本应用,在数据库中,总共建立了10几个表,这里面每个表都是相对应的,都各自有各自的联系,数据库意义重大,如果没有数据库的链接,就没办法运行程序,这显然可以看见数据库与程序的重要性,是紧密连接的[9]。
2.4 B/S结构
B/S(浏览器/服务器)结构是目前主流的网络化的结构模式,它能够把系统核心功能集中在服务器上面,可以帮助系统开发人员简化操作,便于维护和使用。只需要用户在客户端安装360浏览器、谷歌浏览器、QQ浏览器等当前大众浏览器,在电脑里面安装sqlserver、mysql数据库等数据库[10]。安装好的浏览器与服务器端的数据库进行信息数据的交互。很多专门软件能够做到的事情,采用B/S结构模式也能实现,它能够结合Web浏览器技术,ActiveX技术以及多种脚本语言等技术。帮助程序开发者节约了不少开发成本。目前B/S结构成为程序开发主流结构,它最好的地方就是没有地点限制还不用专门安装软件,笔记本或者电脑能够上网就能访问系统。系统使用B/S进行开发在后期系统维护上面就会很省事,不用什么问题都在服务器上面操作,简单的客户端处理就解决部分问题,开发出来的程序跟用户交互性上面也会增强,还可以实时刷新浏览器进行程序局部的数据信息更新。

2.5Vue.js 介绍:
Vue (读音 /vjuː/类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。与其他大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用(SPA)提供驱动。
主要功能:
Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。
Vue.js 语言特点:
易用:在有HTML,CSS,JavaScript的基础上,快速上手;Vue.js 的 API 是参考了AngularJS、KnockoutJS、Ractive.js、Rivets.js;Vue.js 的 API 的对于其他框架的参考不仅是参考,其中也包含了许多 Vue.js 的独特功能。
灵活:简单小巧的核心,渐进式技术栈,足以应付任何规模的应用。
性能:20kb min+gzip 运行大小、超快虚拟 DOM 、最省心的优化。
第3章系统分析
3.1可行性分析
技术性方面,现在科学技术在不断进步,计算机软硬件的发展已经达到了可持续的水平。Java语言的出现,使得普通的电脑也具备了完成该项目的功能,而且其占用的内存也极其紧凑,这使得使用MySQL进行软件的编程与设计几乎不会出现任何挑战。
实用性方面,本次设计的主要任务是在在线点餐系统内餐厅座位预订、留言发表、个人资料修改、餐厅座位预订订单查询等,符合当前潮流的发展。从用户角度出发,同时也考虑系统运营成本和人力资源,采用网络上的便捷方式,实现线上业务,使得业务流程更系统,也更方便用户的体验,比较实用。
经济性方面,由于本课题中设计的在线点餐系统的主要目的是为了能够更加方便及快捷的进行信息的查询管理及检索服务,也就是能够可以直接投入使用的信息化软件。系统的主要成本主要是集中在对使用数据后期继续维护及其管理更新这个操作上。但是一旦系统投入到实际的运行及使用之后就能够很好的提高信息查询检索的效率,同时也需要有效的保证查询者的信息方面的安全性,同时这个在线点餐系统所带来的实际应用方面的价值是远远的超过了实际系统进行开发与维护方面的成本,因此,从经济上来说开发这个软件是可行的。
3.2功能需求分析
在线点餐系统的功能主要分为普通用户根据自己的需求进行注册登录,浏览餐厅座位信息并对需要的餐厅座位进行预订操作。后台系统管理员因职责的不同,主要对注册用户,留言信息,餐厅座位详细信息,餐厅座位预订单进行处理。
用户用例图如下所示。

图3-1 用户用例图
管理员用例图如下所示。

图3-2 管理员用例图
3.2.1普通用户功能
普通用户可分为未注册用户需求和已注册用户需求。
未注册用户的功能如下:
注册账号:用户填写个人信息,并验证手机号码。
浏览公告信息:用户可以浏览主页面的公告信息来了解系统的最新公告信息。
浏览餐厅座位:用户可以根据餐厅座位类型浏览餐厅座位的信息,并选中某个餐厅座位查看详情,例如:餐厅座位号码、餐厅座位类型、餐厅座位楼层、餐厅座位面积、餐厅座位配置、单天价格、餐厅座位图片、餐厅座位简介等。
已注册用户的功能如下:
登录:根据账号密码进行登录操作。
维护个人信息:用户因个人信息的变更可以随时修改自己注册信息。
浏览评论信息:选中某间餐厅座位可查看其用户的评论。
餐厅座位预订:用户根据自己的需求选中某个餐厅座位进行预订操作。
餐厅座位预订订单:用户可以查看自己预订订单。
3.2.2后台管理员功能
管理员功能如下:
修改密码:管理员可以随时修改自己进入系统的登录密码,以保证系统的安全性。
餐厅座位信息管理:对餐厅座位信息进行维护,添加、删除、修改信息。
对预约信息进行处理:办理预约单审核等。
公告信息管理:发布、删除相关的公告信息信息。
用户管理:可以查看注册用户的信息,并对其进行管理。
3.3非功能需求分析
首先主要考虑的是系统功能软件,在具体设计的环节上,是不是能够较好的满足各类用户的基本功能需求,如果不能较好的满足用户需求,那么这个系统的存在是没有价值的。软件系统的非功能性求分析,从7个方面展开,一个是性能分析,针对系统;一个是安全分析,针对系统,一个是完整度分析,针对系统,一个是可维护分析,针对系统,一个是可扩展性分析,针对系统,一个是适应业务的性能分析。面对在线点餐系统存在的性能、安全、扩展、完整度等7个方面性能综合比对分析后发现,需要相应的非功能性需求分析。
3.4安全性需求分析
3.4.1系统的安全性
安全性对每一个系统来说都是非常重要的。安全性很好的系统可以保护座位的信息和用户的信息不被窃取。提高系统的安全性不仅是对用户的负责,更是对座位的负责。尤其针对于在线点餐系统来说,必须要有很好的安全性来保障整个系统。
系统具有对使用者有权限控制,针对角色的不通限制使用者的权限,以此来确保系统的安全性。
3.4.2数据的安全性
数据库中的数据是从外界输入的,当数据的输入时,由于种种原因,输入的数据会无效,或者是脏数据。因此,怎样保证输入的数据符合规定,成为了数据库系统,尤其是多用户的关系数据库系统首要关注的问题。
因此,在写入数据库时,要保证数据完整性、正确性和一致性。
3.5业务流程分析
经过对系统功能的分析,调查,研究,总结出在线点餐系统主要实现的是对反馈信息、用户信息等管理功能。这样,可以对该系统绘制业务流程图。
如下为业务流程图图例。

图3-3业务流程图图例
系统的业务流程如下图所示。
图3-4系统业务流程图
3.6数据流程分析
根据上文所述的业务流程特点,首先对各个方面总的数据处理环节和外部实体进行了描述, 根据自顶向下原则,逐层分解功能,这个过程产生DFD图。
以下是本文当中使用的数据流图图例,见下图所示。

图3-5系统数据流图(0层)
零层数据流程是流程中最抽象的一层,它包括了注册与登录管理、用户功能管理和检索维护管理等功能模块,在登录注册模块使用到的数据存储有用户账户信息文档、用户信息文档,用户功能管理模块需要的存储是用户动态信息文档、留言信息文档、图片信息文档,检索维护是通过以上这些文档信息通过关键词进行搜索。
系统的0层数据流图如下图所示。

图3-6系统数据流图(0层)
一层数据流程图是对零层数据流程图的细化,将登录与注册细分为填制登录注册信息和完善信息,用户功能管理细分为用户基本功能管理和用户特色功能管理。
系统的1层数据流图如下图所示。
图3-7系统数据流图(1层)
二层数据流程是对一层数据流层图中填写登录注册信息、用户基本功能和用户特色功能的细化。即:填写登录注册信息细化为填制信息、后台审核,用户基本功能细化为公告浏览、餐厅座位评论、收藏餐厅座位、在线预定操作,用户特色功能细化为订单查询、在线付款操作。
系统的2层数据流图如下图所示。
图3-8系统数据流图(2层)
第4章系统设计
4.1系统架构设计
本在线点餐系统的架构设计主要分为可以3层,主要有Web层,业务层,Model层。其中web层还包括View层和Controller层,Model层包括元数据扩展层和数据访问层。
系统架构如下图所示。

图4-1 系统架构
4.2系统总体设计
在线点餐系统总体分为普通用户模块和后台管理员模块。
两个模块表现上是分别独立存在,但是访问的数据库是一样的。每一个模块的功能都是根据先前完成的需求分析,并查阅相关资料后整理制作的。
综上所述,系统功能结构图如下图所示。

图4-2 系统功能结构图
4.3系统功能设计
登录模块:登录模块是进入系统的入口,所有用户必须登录后才能访问系统。登录需要输入用户名和密码,如果多次尝试登录需要输入验证码。登录时需要选择用户的角色,是一般用户还是管理员登录等。登录成功后,会通过数据库获取用户的权限,并跳转至用户的主页面。
管理员用户管理模块:该模块包括普通用户管理和系统用户管理,系统用户主要是普通管理员,对用户信息进行管理,只有普通用户才可在该系统上进行相应的操作。用户对个人信息可进行修改;管理员可对自己的个人信息进行维护,同时可对用户的密码信息进行修改,也可删除系统中的用户
公告栏模块:可分为公告信息浏览、公告信息检索、公告信息维护三个模块,管理员对公告信息有维护的权限,发布新的公告信息、更新已有的公告信息等。
座位信息管理模块:座位信息管理分为餐厅座位添加、修改和餐厅座位预订。餐厅座位信息由管理员进行修改、添加、删除操作;餐厅座位预订由普通用户来执行。
4.4数据库设计
4.4.1数据需求分析
从前面可以分析到数据库中最重要的是餐厅座位信息,预订信息,评价信息。分析可以得到如下数据描述:
平台用户:用于记录用户的各种信息,包括用户名、密码、姓名、性别、地址、邮箱、联系方式等数据项。
管理员:记录管理员的登录信息。包括用户名,密码,权限等数据项。
座位信息:存储各种餐厅座位信息。包括餐厅座位号码、餐厅座位类型、餐厅座位楼层、餐厅座位面积、餐厅座位配置、单天价格、餐厅座位图片、餐厅座位简介等数据项。
预约信息。存储用户的餐厅座位预订信息。包括餐厅座位预订的餐厅座位号码、餐厅座位类型、单天价格、预约日期、预约天数、合计费用等数据项。
留言:存储用户的留言。包括留言内容,留言的信息,留言人,时间等数据项。
公告信息:存储平台内的公告信息内容。包括标题,公告信息内容,时间等数据项。
4.4.2数据库概念设计
根据前面的数据流程图,结合系统的功能模块设计,设计出符合系统的各信息实体。
系统ER图如下图所示。

图4-3 系统ER图
4.4.3数据库表设计
在线点餐系统所拥有的数据表有以下:用户信息表,预约信息表、评论信息表,餐厅座位信息表,留言表等。由于数据表较多,只展示系统主要数据表,如下表所示。数据库表结构文档
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | token_id | int | 是 | 是 | 临时访问牌ID | |
| 2 | token | varchar | 64 | 否 | 否 | 临时访问牌 |
| 3 | info | text | 65535 | 否 | 否 | 信息 |
| 4 | maxage | int | 是 | 否 | 最大寿命:默认2小时 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | user_id | int | 是 | 否 | 用户编号 |
表 4-2-article(文章)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | article_id | mediumint | 是 | 是 | 文章id | |
| 2 | title | varchar | 125 | 是 | 是 | 标题 |
| 3 | type | varchar | 64 | 是 | 否 | 文章分类 |
| 4 | hits | int | 是 | 否 | 点击数 | |
| 5 | praise_len | int | 是 | 否 | 点赞数 | |
| 6 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 7 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 8 | source | varchar | 255 | 否 | 否 | 来源 |
| 9 | url | varchar | 255 | 否 | 否 | 来源地址 |
| 10 | tag | varchar | 255 | 否 | 否 | 标签 |
| 11 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 12 | img | varchar | 255 | 否 | 否 | 封面图 |
| 13 | description | text | 65535 | 否 | 否 | 文章描述 |
表 4-3-article_type(文章分类)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | type_id | smallint | 是 | 是 | 分类ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 分类名称 |
| 4 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 5 | description | varchar | 255 | 否 | 否 | 描述 |
| 6 | icon | text | 65535 | 否 | 否 | 分类图标 |
| 7 | url | varchar | 255 | 否 | 否 | 外链地址 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-4-auth(用户权限管理)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | auth_id | int | 是 | 是 | 授权ID | |
| 2 | user_group | varchar | 64 | 否 | 否 | 用户组 |
| 3 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
| 4 | table_name | varchar | 64 | 否 | 否 | 表名 |
| 5 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
| 6 | path | varchar | 255 | 否 | 否 | 路由路径 |
| 7 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
| 8 | parent_sort | int | 是 | 否 | 父级菜单排序 | |
| 9 | position | varchar | 32 | 否 | 否 | 位置 |
| 10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
| 11 | add | tinyint | 是 | 否 | 是否可增加 | |
| 12 | del | tinyint | 是 | 否 | 是否可删除 | |
| 13 | set | tinyint | 是 | 否 | 是否可修改 | |
| 14 | get | tinyint | 是 | 否 | 是否可查看 | |
| 15 | field_add | text | 65535 | 否 | 否 | 添加字段 |
| 16 | field_set | text | 65535 | 否 | 否 | 修改字段 |
| 17 | field_get | text | 65535 | 否 | 否 | 查询字段 |
| 18 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
| 19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
| 20 | option | text | 65535 | 否 | 否 | 配置 |
| 21 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 22 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-5-cart(购物车)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | cart_id | int | 是 | 是 | 购物车ID | |
| 2 | title | varchar | 64 | 否 | 否 | 标题 |
| 3 | img | varchar | 255 | 是 | 否 | 图片 |
| 4 | user_id | int | 是 | 否 | 用户ID | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | state | int | 是 | 否 | 状态:使用中,已失效 | |
| 8 | price | double | 是 | 否 | 单价 | |
| 9 | price_ago | double | 是 | 否 | 原价 | |
| 10 | price_count | double | 是 | 否 | 总价 | |
| 11 | num | int | 是 | 否 | 数量 | |
| 12 | goods_id | mediumint | 是 | 是 | 商品id | |
| 13 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 14 | description | varchar | 255 | 否 | 否 | 描述 |
表 4-6-code_token(验证码)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | code_token_id | int | 是 | 是 | 验证码ID | |
| 2 | token | varchar | 255 | 否 | 否 | 令牌 |
| 3 | code | varchar | 255 | 否 | 否 | 验证码 |
| 4 | expire_time | timestamp | 是 | 否 | 失效时间 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-7-collect(收藏)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | collect_id | int | 是 | 是 | 收藏ID | |
| 2 | user_id | int | 是 | 是 | 收藏人ID | |
| 3 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | 是 | 否 | 来源ID | |
| 6 | title | varchar | 255 | 否 | 否 | 标题 |
| 7 | img | varchar | 255 | 否 | 否 | 封面 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-8-comment(评论)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | comment_id | int | 是 | 是 | 评论ID | |
| 2 | user_id | int | 是 | 是 | 评论人ID | |
| 3 | reply_to_id | int | 是 | 否 | 回复评论ID | |
| 4 | content | longtext | 4294967295 | 否 | 否 | 内容 |
| 5 | nickname | varchar | 255 | 否 | 否 | 昵称 |
| 6 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 10 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 11 | source_id | int | 是 | 否 | 来源ID |
表 4-9-coupon(优惠券)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | coupon_id | int | 是 | 是 | 优惠券ID | |
| 2 | coupon_user_id | int | 否 | 否 | 优惠券用户ID | |
| 3 | coupon_user_auth | varchar | 255 | 否 | 否 | 优惠券用户 |
| 4 | coupon_name | varchar | 255 | 否 | 否 | 优惠券名称 |
| 5 | coupon_price | int | 否 | 否 | 优惠券价格 | |
| 6 | coupon_price1 | int | 否 | 否 | 优惠券券后价格 | |
| 7 | coupon_time | varchar | 255 | 否 | 否 | 优惠券时间 |
| 8 | coupon_type | varchar | 255 | 否 | 否 | 优惠券类型 |
| 9 | create_time | timestamp | 否 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 否 | 否 | 更新时间 |
表 4-10-coupon_user(用户优惠券)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | id | int | 是 | 是 | 用户优惠券ID | |
| 2 | user_id | int | 否 | 否 | 用户ID | |
| 3 | coupon_id | int | 否 | 否 | 优惠券ID | |
| 4 | is_use | int | 否 | 否 | 是否使用 | |
| 5 | coupon_user_id | int | 否 | 否 | 用户优惠券ID |
表 4-11-food_mall(菜品商城)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | food_mall_id | int | 是 | 是 | 菜品商城ID | |
| 2 | meal_notes | varchar | 64 | 否 | 否 | 餐品备注 |
| 3 | collect_len | int | 是 | 否 | 收藏数 | |
| 4 | comment_len | int | 是 | 否 | 评论数 | |
| 5 | cart_title | varchar | 125 | 否 | 否 | 标题 |
| 6 | cart_img | text | 65535 | 否 | 否 | 封面图 |
| 7 | cart_description | varchar | 255 | 否 | 否 | 描述 |
| 8 | cart_price_ago | double | 是 | 否 | 原价 | |
| 9 | cart_price | double | 是 | 否 | 卖价 | |
| 10 | cart_inventory | int | 是 | 否 | 商品库存 | |
| 11 | cart_type | varchar | 64 | 是 | 否 | 商品分类 |
| 12 | cart_content | longtext | 4294967295 | 否 | 否 | 正文 |
| 13 | cart_img_1 | text | 65535 | 否 | 否 | 主图1 |
| 14 | cart_img_2 | text | 65535 | 否 | 否 | 主图2 |
| 15 | cart_img_3 | text | 65535 | 否 | 否 | 主图3 |
| 16 | cart_img_4 | text | 65535 | 否 | 否 | 主图4 |
| 17 | cart_img_5 | text | 65535 | 否 | 否 | 主图5 |
| 18 | create_time | datetime | 是 | 否 | 创建时间 | |
| 19 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-12-goods(商品信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | goods_id | mediumint | 是 | 是 | 产品ID | |
| 2 | title | varchar | 125 | 否 | 否 | 标题 |
| 3 | img | text | 65535 | 否 | 否 | 封面图:用于显示于产品列表页 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | price_ago | double | 是 | 否 | 原价 | |
| 6 | price | double | 是 | 否 | 卖价 | |
| 7 | sales | int | 是 | 否 | 销量 | |
| 8 | inventory | int | 是 | 否 | 商品库存 | |
| 9 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 10 | hits | int | 是 | 否 | 点击量 | |
| 11 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 12 | img_1 | text | 65535 | 否 | 否 | 主图1 |
| 13 | img_2 | text | 65535 | 否 | 否 | 主图2 |
| 14 | img_3 | text | 65535 | 否 | 否 | 主图3 |
| 15 | img_4 | text | 65535 | 否 | 否 | 主图4 |
| 16 | img_5 | text | 65535 | 否 | 否 | 主图5 |
| 17 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 18 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 19 | customize_field | text | 65535 | 否 | 否 | 自定义字段 |
| 20 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 21 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 22 | source_id | int | 是 | 否 | 来源ID | |
| 23 | user_id | int | 否 | 否 | 添加人 |
表 4-13-goods_type(商品类型)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | type_id | int | 是 | 是 | 商品分类ID | |
| 2 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 3 | name | varchar | 255 | 否 | 否 | 商品名称 |
| 4 | desc | varchar | 255 | 否 | 否 | 描述 |
| 5 | icon | varchar | 255 | 否 | 否 | 图标 |
| 6 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 7 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-14-hits(用户点击)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | hits_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 否 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID |
表 4-15-notice(公告)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | notice_id | mediumint | 是 | 是 | 公告ID | |
| 2 | title | varchar | 125 | 是 | 否 | 标题 |
| 3 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 4 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-16-order(订单)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | order_id | int | 是 | 是 | 订单ID | |
| 2 | order_number | varchar | 64 | 否 | 否 | 订单号 |
| 3 | goods_id | mediumint | 是 | 是 | 商品ID | |
| 4 | title | varchar | 255 | 否 | 否 | 商品标题 |
| 5 | img | varchar | 255 | 否 | 否 | 商品图片 |
| 6 | price | double | 是 | 否 | 价格 | |
| 7 | price_ago | double | 是 | 否 | 原价 | |
| 8 | num | int | 是 | 否 | 数量 | |
| 9 | price_count | double | 是 | 否 | 总价 | |
| 10 | norms | varchar | 255 | 否 | 否 | 规格 |
| 11 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 12 | contact_name | varchar | 32 | 否 | 否 | 联系人姓名 |
| 13 | contact_email | varchar | 125 | 否 | 否 | 联系人邮箱 |
| 14 | contact_phone | varchar | 11 | 否 | 否 | 联系人手机 |
| 15 | contact_address | varchar | 255 | 否 | 否 | 收件地址 |
| 16 | postal_code | varchar | 9 | 否 | 否 | 邮政编码 |
| 17 | user_id | int | 是 | 否 | 买家ID | |
| 18 | merchant_id | mediumint | 是 | 否 | 商家ID | |
| 19 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 20 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 21 | description | varchar | 255 | 否 | 否 | 描述 |
| 22 | state | varchar | 16 | 是 | 否 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
| 23 | remark | text | 65535 | 否 | 否 | 订单备注 |
| 24 | delivery_state | varchar | 16 | 否 | 否 | 发货状态:未配送,已配送 |
| 25 | vip_discount | double | 否 | 否 | 折扣 |
表 4-17-ordinary_users(普通用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | ordinary_users_id | int | 是 | 是 | 普通用户ID | |
| 2 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 3 | user_gender | varchar | 64 | 否 | 否 | 用户性别 |
| 4 | user_age | varchar | 64 | 否 | 否 | 用户年龄 |
| 5 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 6 | user_id | int | 是 | 否 | 用户ID | |
| 7 | create_time | datetime | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-18-praise(点赞)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | praise_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 是 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | status | tinyint | 是 | 否 | 点赞状态:1为点赞,0已取消 |
表 4-19-schedule(日程管理)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | schedule_id | smallint | 是 | 是 | 日程ID | |
| 2 | content | varchar | 255 | 否 | 否 | 日程内容 |
| 3 | scheduled_time | datetime | 否 | 否 | 计划时间 | |
| 4 | user_id | int | 是 | 否 | 用户ID | |
| 5 | create_time | datetime | 否 | 否 | 创建时间 | |
| 6 | update_time | datetime | 否 | 否 | 更新时间 |
表 4-20-score(评分)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | score_id | int | 是 | 是 | 评分ID | |
| 2 | user_id | int | 是 | 否 | 评分人 | |
| 3 | nickname | varchar | 64 | 否 | 否 | 昵称 |
| 4 | score_num | double | 是 | 否 | 评分 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 8 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 9 | source_id | int | 是 | 否 | 来源ID |
表 4-21-seat_information(座位信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | seat_information_id | int | 是 | 是 | 座位信息ID | |
| 2 | seat_number | varchar | 64 | 否 | 否 | 座位编号 |
| 3 | number_of_seats | varchar | 64 | 否 | 否 | 座位数量 |
| 4 | seat_specifications | varchar | 64 | 否 | 否 | 座位规格 |
| 5 | seat_status | varchar | 64 | 否 | 否 | 座位状态 |
| 6 | table_picture | varchar | 255 | 否 | 否 | 座位图片 |
| 7 | collect_len | int | 是 | 否 | 收藏数 | |
| 8 | seat_reservation_limit_times | int | 是 | 否 | 预订限制次数 | |
| 9 | create_time | datetime | 是 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-22-seat_reservation(座位预订)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | seat_reservation_id | int | 是 | 是 | 座位预订ID | |
| 2 | seat_number | varchar | 64 | 否 | 否 | 座位编号 |
| 3 | number_of_seats | varchar | 64 | 否 | 否 | 座位数量 |
| 4 | table_specifications | varchar | 64 | 否 | 否 | 座位规格 |
| 5 | ordinary_users | int | 否 | 否 | 普通用户 | |
| 6 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 7 | booking_time | datetime | 否 | 否 | 预订时间 | |
| 8 | booking_remarks | varchar | 64 | 否 | 否 | 预订备注 |
| 9 | create_time | datetime | 是 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 11 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 12 | source_id | int | 否 | 否 | 来源ID | |
| 13 | source_user_id | int | 否 | 否 | 来源用户 |
表 4-23-slides(轮播图)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | slides_id | int | 是 | 是 | 轮播图ID | |
| 2 | title | varchar | 64 | 否 | 否 | 标题 |
| 3 | content | varchar | 255 | 否 | 否 | 内容 |
| 4 | url | varchar | 255 | 否 | 否 | 链接 |
| 5 | img | varchar | 255 | 否 | 否 | 轮播图 |
| 6 | hits | int | 是 | 否 | 点击量 | |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-24-upload(文件上传)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | upload_id | int | 是 | 是 | 上传ID | |
| 2 | name | varchar | 64 | 否 | 否 | 文件名 |
| 3 | path | varchar | 255 | 否 | 否 | 访问路径 |
| 4 | file | varchar | 255 | 否 | 否 | 文件路径 |
| 5 | display | varchar | 255 | 否 | 否 | 显示顺序 |
| 6 | father_id | int | 否 | 否 | 父级ID | |
| 7 | dir | varchar | 255 | 否 | 否 | 文件夹 |
| 8 | type | varchar | 32 | 否 | 否 | 文件类型 |
表 4-25-user(用户账户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | user_id | int | 是 | 是 | 用户ID | |
| 2 | state | smallint | 是 | 否 | 账户状态:(1可用|2异常|3已冻结|4已注销) | |
| 3 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
| 4 | login_time | timestamp | 是 | 否 | 上次登录时间 | |
| 5 | phone | varchar | 11 | 否 | 否 | 手机号码 |
| 6 | phone_state | smallint | 是 | 否 | 手机认证:(0未认证|1审核中|2已认证) | |
| 7 | username | varchar | 16 | 是 | 否 | 用户名 |
| 8 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 9 | password | varchar | 64 | 是 | 否 | 密码 |
| 10 | | varchar | 64 | 否 | 否 | 邮箱 |
| 11 | email_state | smallint | 是 | 否 | 邮箱认证:(0未认证|1审核中|2已认证) | |
| 12 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 13 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
| 14 | create_time | timestamp | 是 | 否 | 创建时间 |
表 4-26-user_group(用户组)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | group_id | mediumint | 是 | 是 | 用户组ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 名称 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | register | smallint | 否 | 否 | 注册位置 | |
| 9 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 |
第5章系统实现
5.1注册模块的实现
用户在填写数据的时候必须与注册页面上的验证相匹配否则会注册失败,注册页面的表单验证是通过JavaScript进行验证的,用户名的长度必须在6到18之间,邮箱必须带有@符号,密码和密码确认必须相同,你输入的密码,系统会根据你输入密码的强度给出指定的值,电话号码和身份证号码必须要求输入格式与生活相符合,当你前台验证通过的时候你点击注册,表单会将你输入的值通过name值传递给后台并保存到数据库中。
用户注册流程图如下图所示。

图5-1用户注册流程图
用户注册界面如下图所示。
图5-2用户注册界面
5.2登录模块的实现
主要由两部分组成,登录前的登录界面以及登录后的用户功能界面。登录界面,要求用户输入用户名和密码,当用户名和密码其中一个输入为空时,给出提示“用户名,密码不能为空”。获取用户名和密码后到数据库中查找,如果用户名存在,以及对应的密码正确,则登录成功,否则登录失败。登录失败后给出提示,并把焦点停在文本框中。登录成功后将该次会话的全局变量username设置为用户名。登录成功后进入会员的功能模块,主要有会员基本信息修改,已经发布商品信息管理,发布信息,和退出功能。退出功能是清除全局变量username的值,并跳回到首页。
登录流程图如下图所示。

图5-4登录流程图
用户登录界面如下图所示。
图5-5用户登录界面
5.3用户资料修改模块的实现
用户登录/注册成功之后可以修改自己的基本信息。修改页面的表单中每一个input的name值都要与实体类中的参数相匹配,在用户点击修改页面的时候,如果改后用户名与数据库里面重复了,页面会提示该用户名已经存在了,否则通过Id来查询用户,并将用户的信息修改为表单提交的数据。
用户资料修改界面如下图所示。
图5-6用户资料修改界面
5.4普通用户功能模块的实现
预约信息模块,预约信息功能整体流程:用户浏览餐厅座位信息时,同时会显示餐厅座位的状态,系统会在其显示详细信息的页面时便会判断餐厅座位的状态,若餐厅座位状态为可预订,则会显示预订的链接按钮。在用户点击预订按钮时,会先通过拦截器判断用户是否登录,若未登录,会跳转至登录页面,提示用户先登录,若为登录用户就会跳转至填写预订信息的页面,填写好预约信息之后,点击提交按钮,预订成功之后返回提示信息,告知用户预约成功。
预约信息流程图如下图所示。

图5-7预约信息流程图
预订信息界面如下图所示。

图5-8预约信息界面
5.5管理员功能模块的实现
座位信息管理,根据需求需要对餐厅座位进行添加、删除或修改详情信息。删除或修改餐厅座位时,系统根据餐厅座位的状态判定为可删除状态下,才会给出删除和修改链接,点击删除链接按钮时,请求到达后台,还会先查询餐厅座位状态再次做出判定能否删除。点击修改链接按钮时,会跳转到修改信息的页面,重新填写好数据后,数据提交到后台会对数据库中相应的记录做出修改。
添加餐厅座位时,会给出数据填写的页面,该页面根据填写好的餐厅座位编号同样会事先发送Ajax请求查询编号是否已存在,数据填写好之后提交到后台,会调用相关服务在数据库中插入记录。
座位信息管理流程图如下图所示。

图5-9座位信息管理流程图
餐厅座位列表界面如下图所示。
图5-10座位信息列表界面
座位信息列表添加界面如下图所示。
图5-11餐厅座位列表添加管理界面
座位预订管理,在座位预订管理页面,管理员可以查看餐厅座位号码、餐厅座位类型、单天价格、预约日期、预约天数、合计费用等信息,并可以查询预约状态。如下图所示。
图5-12座位预订管理页面
第6章系统测试
6.1测试目的
对任何系统而言,测试都是必不可少的环节,测试可以发现系统存在的很多问题,所有的软件上线之前,都应该进行充足的测试之后才能保证上线后不会Bug频发,或者是功能不满足需求等问题的发生。下面分别从单元测试,功能测试和用例测试来对系统进行测试以保证系统的稳定性和可靠性。
6.2功能测试
下表是座位信息管理功能的测试用例,检测了座位信息管理中对餐厅座位信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;用户登录系统。
表6-1 座位信息管理的测试用例
| 功能描述 | 用于座位信息管理 | |
| 测试目的 | 检测座位信息管理时的各种操作的运行情况 | |
| 测试数据以及操作 | 预期结果 | 实际结果 |
| 点击添加餐厅座位,必填项合法输入,点击保存 | 提示添加成功 | 与预期结果一致 |
| 点击添加餐厅座位,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
| 点击修改餐厅座位,必填项修改为空,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
| 点击修改餐厅座位,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
| 点击删除餐厅座位,选择餐厅座位删除 | 提示删除成功 | 与预期结果一致 |
| 点击搜索餐厅座位,输入存在的餐厅座位名 | 查找出餐厅座位 | 与预期结果一致 |
| 点击搜索餐厅座位,输入不存在的餐厅座位名 | 不显示餐厅座位 | 与预期结果一致 |
下表是预订管理功能的测试用例,检测了预订管理中预订单的操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;用户登录系统。
表6-2 预订管理的测试用例
| 功能描述 | 用于预订管理 | |
| 测试目的 | 检测预订管理时各种操作的情况 | |
| 测试数据以及操作 | 预期结果 | 实际结果 |
| 未选择餐厅座位,点击提交 | 提示请选择餐厅座位 | 与预期结果一致 |
| 未输入数量,点击提交 | 提示请输入数量 | 与预期结果一致 |
| 未输入时间,点击提交 | 提示请输入时间 | 与预期结果一致 |
使用阿里云PTS(Performance Testing Service)性能测试服务对线上系统进行压力测试。线上服务器环境为:1核心CPU,1G内存,1Mbps公网带宽,Centos7.0操作系统。
压测过程中使用了2台并发机器,每台机器20个用户并发,对系统主页,登录,数据查询和数据维护等模块进行并发访问,测试结果是有40个用户并发时,数据管理相关页面的响应时间甚至达到了7s,通过查看服务器出网流量发现已经达到1381kb/s,可以看出服务器的带宽已经达到峰值,如果系统使用5Mbps的带宽,系统的响应时间和TPS将会大大增加。在整个测试的过程中,CPU的使用率占用仅8%,也提现出带宽瓶颈对系统的影响非常严重。
第7章总结与展望
随着计算机互联网技术的迅猛发展,各行各业都已经实现采用计算机相关技术对日益放大的数据进行管理。该课题是在线点餐系统为核心展开的,主要是为了实现座位预订管理和用户在线预订餐厅座位的需求。
在这次设计中,我通过不断地探索和学习,掌握了Java技术和微信开发者工具,并创建了一个在线点餐系统,这让我对编写系统的必要性和运行环境有了更深入的了解。为了更好地完成这个项目,我花费了大量的时间,不仅丰富了自己的知识面,并且学习并积累了许多宝贵经验。系统刚开始时,我对微信系统这个技术只是稍微有些了解,但是通过这次基于微信系统的在线点餐系统设计,让我更加深入地去探讨了,微信系统运转的原理,从中学到了如何去配置服务器环境和连接数据库。在基于微信系统的在线点餐系统设计的过程中,我还学会了使用dreamweaver来建设一个简单的页面,这样可以极大程度提高我的实际操作能力,也因此激发了我对这个领域的浓烈兴趣。
这一次系统研究发展提升了我自己的能力,也学到了框架如何实现基本功能。同时在编程代码各方面也做了的很多尝试,从关注代码错误到做一些小的修改,都有了很大的提高。同时,在撰写论文时,还查阅了大量的参考资料,对论文的结构和文献资料进行了总结和分析。已作出努力,尽量减少错误和走弯路,从一开始的系统功能概念化到逐一实施,并进行了广泛的研究报告。也许后续操作过程中还有很多实现不完美的功能,但我依然会继续学习,努力在以后的软件开发、编号代码中吸取教训,总结不完美之处,努力的在软件开发越来越强。以上是我在本次设计中的总结,希望在未来取得更好的成绩。
参考文献
- 袁琳琳.计算机软件Java编程特点及技术分析[J].数字通信世界,2023,(12):87-89.
- 郑鹏,沙乐天.基于混合分析的Java反序列化漏洞检测方法[J].计算机工程,2023,49(12):136-145.
- 马庆.计算机软件开发中JAVA编程语言的应用[J].山西电子技术,2023,(06):84-86+98.
- 朱玉凤.基于JavaWeb的座位管理系统的设计与实现[J].网络安全和信息化,2023,(12):91-94.
- 杜永峰,揭湛,李泽灏,等.无线Wi-Fi粤菜点餐系统设计[J].无线互联科技,2025,22(02):56-59.
- Liu S ,Peng H ,Gu D , et al.COVID-19 Implications on School Dietary Behavior in Chinese College Students: Based on the Longitudinal Assessment of Dietary Records from Intelligent Ordering System[J].Nutrients,2024,17(1):144-144.
- CD Bioparticles Announces Enhanced Online Ordering System for Improved Customer Experience[J].M2 Presswire,2024,
- 饶刘维,叶强胜,代世佳,等.基于改进的微信点餐推荐系统设计[J].山西电子技术,2024,(05):84-85+102.
- Shao W ,Liu K.Design and Implementation of Online Ordering System Based on SpringBoot[J].Journal of Big Data and Computing,2024,2(3):
- Tajuddin I I N ,AziyatulIzni N ,Ali M A , et al.CAMPUS ONLINE FOOD ORDERING SYSTEM USING CHATBOT IN UNIVERSITI SAINS ISLAM MALAYSIA[J].International Journal of Advanced Research (IJAR),2024,12(8):
- 姚怡辰,丁雪晶.基于C#的实体餐饮店点餐管理系统的设计与实现[J].电脑知识与技术,2024,20(23):72-74.
- ParetaK ,ParetaU .Evaluation of stream ordering systems in the context of topography and open‐source data[J].Earth Surface Processes and Landforms,2024,49(12):3806-3821.
- 任建伟,丁莎.基于微信小程序的点餐系统设计与实现[J].电脑编程技巧与维护,2024,(05):77-80.
- 张乐.高校食堂自助点餐系统设计与实现[J].电脑与信息技术,2024,32(02):51-53.
- 刘璐玲,陈里.无线智能点餐系统设计[J].企业科技与发展,2024,(04):103-106.
- 王馗,吴勇灵.基于微信小程序的点餐系统设计与实现[J].现代信息科技,2023,7(22):30-35+39.
- 苏兵.基于微服务的校园点餐系统后台的设计与实现[J].电脑与电信,2023,(11):23-28.
致谢
眨眼之间,大学生活就要结束了。在本文的最后,我要感谢我和蔼可亲的导师、团结有爱的同学的帮助和鼓励。此刻,我找不到感谢之词可以用来表达我最深切的感激之情。首先,我要向我的导师池成英教授表示衷心的感谢。在实习期间的我总是很忙,论文撰写期间也是停停改改,但是我的导师依然对我十分负责,时常会询问我毕业设计的进展情况,督促着我的论文进度。到目前为止,老师严谨的教学态度、课堂上的谈笑,以及对我学术文章细致认真的修改,仍然深深地印在我的脑海中,挥之不去。从导师身上我学习到很多知识,和经验,这样的知识及经验令我受益匪浅。也从导师身上看到了自己的不足,不论是在基础层面上还是在对待工作的态度上,都如同明镜一般照出了我的缺点我的不足。
其次,我还要感谢我的父母,感谢你们多年来的默默支持,感谢你们的理解、信任和期待,这是我前进的动力。最后,我还要感谢在百忙之中参与论文评审和答辩的专家评委们。我想就这篇文章的不足之处征求一些有价值的建议。
祝老师们身体健康,一切顺利!
就我个人而言,我很清楚本科论文的结束只是人生的转折点之一,大学毕业也是人生的转折之一。
至于我个人在理论和写作方面的不足,我将在未来的学习和工作中有所改进。
917

被折叠的 条评论
为什么被折叠?



