毕业设计(论文)-springboot餐厅管理系统设计_第1页
毕业设计(论文)-springboot餐厅管理系统设计_第2页
毕业设计(论文)-springboot餐厅管理系统设计_第3页
毕业设计(论文)-springboot餐厅管理系统设计_第4页
毕业设计(论文)-springboot餐厅管理系统设计_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

springboot餐厅管理系统摘要随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由于现在网络的发达,餐厅管理系统的资讯信息通过网络进行信息管理掀起了热潮,所以针对餐厅管理系统的用户需求开发出一套餐厅管理系统。整个开发过程首先对软件系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对系统进行功能测试,并对测试结果进行分析总结,得出系统中存在的不足及需要改进的地方,为以后的系统维护提供了方便,同时也为今后开发类似系统提供了借鉴和帮助。本系统开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与餐厅管理系统的实际需求相结合,确定了springboot开发餐厅管理系统的使用。关键字:餐厅管理系统,springboot,Mysql

SpringbootRestaurantManagementSystemAbstractsWiththearrivaloftheinternettrend,varioussectorsofsocietyareconsideringusingtheinternetasamediumtopromotetheirinformationmoretimelyandeffectively.Thebestwayistoestablishanetworkmanagementsystemandmanageitsinformation.Duetothecurrentdevelopmentoftheinternet,theinformationmanagementofrestaurantmanagementsystemsthroughtheinternethassparkedatrend.Therefore,asetofrestaurantmanagementsystemshasbeendevelopedtomeettheuserneedsofrestaurantmanagementsystems.Theentiredevelopmentprocessstartswitharequirementanalysisofthesoftwaresystemtodetermineitsmainfunctions.Thenproceedwiththeoverallanddetaileddesignofthesystem.Theoveralldesignmainlyincludessystemfunctionaldesign,systemoverallstructuredesign,systemdatastructuredesign,andsystemsecuritydesign;Thedetaileddesignmainlyincludestheimplementationofsystemdatabaseaccess,thespecificimplementationofmainfunctionalmodules,andthekeycodeformoduleimplementation.Finally,functionaltestingwasconductedonthesystem,andthetestresultswereanalyzedandsummarizedtoidentifytheshortcomingsandareasforimprovementinthesystem.Thisprovidedconvenienceforfuturesystemmaintenanceandalsoprovidedreferenceandassistanceforthedevelopmentofsimilarsystemsinthefuture.Thissystemisdevelopedusingexistingmaturetechnologyasareference,usingsourcecodeasatemplate,analyzingthefunctionaladjustmentsandcombiningthemwiththeactualrequirementsoftherestaurantmanagementsystem,anddeterminingtheuseofSpringboottodeveloptherestaurantmanagementsystem.Keywords:restaurantmanagementsystem,springboot,MySQL目录TOC\o"1-3"\h\u12048第1章绪论 168361.1课题背景 1276791.2目的和意义 1208741.3研究现状 241431.4研究内容 321442第2章关键技术研究 4261042.1springboot框架 4179752.2B/S框架 560862.3MYSQL数据库 526465第3章需求分析 766953.1可行性分析 845503.1.1技术可行性 8238163.1.2经济可行性 8325283.1.3操作可行性 9325123.1.4法律可行性 9145383.2需求分析 9234373.3系统设计原则 10194723.4业务流程分析 11216443.4.1操作流程 11163143.4.2添加信息流程 14307813.4.3删除信息流程 172238第4章系统总体设计 19288104.1系统功能模块 19222504.2系统结构设计 19198244.3数据库设计 2092484.2.1数据库简介 2029974.2.2数据库设计 20697第5章系统实现 345965.1管理员功能模块 34193905.2顾客用户功能模块 39297655.3员工用户功能模块 435132第6章系统测试 45126866.1系统测试的目的 45183556.2测试策略 45188726.3测试特性及分析 4612766.4功能测试 4689966.5测试结果 4723811结论 489682参考文献 493532致谢 52第1章绪论1.1课题背景随着互联网不断升温,用户的需求也越来越大,为此设计餐厅管理系统可以方便用户随时获取到餐厅信息,通过这一软件来满足用户的要求,并且使用餐厅管理系统可以更快捷、更高效的提高餐厅管理的工作效率,是一款必不可少的管理系统。开发餐厅管理系统进行餐厅信息的管理,就要运用软件工程的方法来解决这个软件开发中遇到的各个问题。系统管理也都将通过计算机进行整体智能化操作,对于餐厅管理系统信息管理所牵扯的信息管理及数据保存都是非常多的,举例像所有的后台首页、轮播图、公告信息管理、资源管理(新闻资讯、新闻分类)、系统用户(管理员、顾客用户、员工用户)、模块管理(菜品信息、分类管理、线下订单、线上订单、营业额信息、菜品偏好)等等,这给管理者的工作带来了巨大的挑战,所以为此开发了本餐厅管理系统,为用户提供餐厅管理系统,方便管理员及时高效的管理所有的信息,给用户提供简单方便快捷的方式,并且数据准确,用户可以足不出户就可以对餐厅相关信息进行管理,统计查询等操作,而且还能节省用户查询信息的等待时间,所以开发餐厅管理系统给工作人员带来很大的方便,可以大大的提高系统人员工作效率。1.2目的和意义互联网是人类的基本需要,尤其在现代社会,个人压力的增加,社会的高节奏的操作,互联网的高速发展,用户的需求度也越来越高,用户也将越来越依靠网络来代替自己的手工业操作,使得各种管理系统的发展成为必要选择。随着我国经济迅速发展,互联网对人们的生活及工作都带来了非常大的方便,各种管理系统都在不断的增加,但是餐厅管理查询方面缺乏系统的管理方式,为提高餐厅管理查询效率,特开发了本餐厅管理系统。餐厅管理系统将通过计算机进行整体智能化操作,对于餐厅管理系统信息的管理及数据保存都是非常多的,为用户提供一个智能化的管理信息平台,方便管理员可以随时随地的查看用户所需的详细信息及所有资讯信息内容,增加系统和用户之间的关系,并且对数据信息管理可以及时、准确、有效地进行系统化、标准化和有效化的工作。1.3研究现状根据springboot系统广泛使用的市场和服务免费特性,公司可以免费获得springboot平台上新功能开发的源代码,开发成本低,研发速度快,服务范围广,效益最大化。springboot系统采用开源功能,规范了平台,打破了原来手机的操作系统,受到了大家的追捧。同时,它整合了传统移动通信的优势,提高了springboot系统的整体价值。该调查显示,springboot系统占据了市场的主要份额,这意味着全球四分之三的智能手机都运行在springboot系统上。目前,餐厅管理系统已经吸引很多人的注意,通过互联网来搭建餐厅管理系统可以给用户提供更好的服务而且对于用户可以更好的提高学习品质及学习计划,也可以更好的为我们获取到更多餐厅资讯等信息。互联网的到来,传统的餐厅管理信息获取,没有这种软件,都是通过纸质手工等方式进行翻看杂志、报纸等信息,然后进行一条条的统计数据信息,并且要想获取某一条餐厅管理数据需要进行查找,需要用户自己手动的统计,最后由于餐厅管理数据量比较大,传统的数据统计是手动检查和验证的,信息量很大,因为使用手动统计数据是一个很大的工作量,而且错误率很高,当然会有很多数据存储和丢失问题,对于搜索一块数据比较麻烦而且还耽误时间。对于这次开发的餐厅管理系统,提供给用户可以随时查看餐厅资讯信息,并且可以根据需求进行选择餐厅管理系统分类进行查看各个类别的餐厅资讯,提高餐厅管理系统平台效率。1.4研究内容springboot平台的餐厅管理系统软件是一款方便,快捷,实用的信息服务查询软件。随着智能手机在全球市场的不断普及以及各种智能手机平台的生活体验软件,作为中国主流智能手机之一的springboot系统,自然需要这样的软件来满足更多用户的需求和体验。收入和支出将与人们的日常需求相关,如通过餐厅管理系统获取到最新餐厅详细情况,了结最新动态信息等。虽然目前已有很多基于springboot的平台,但尚未出现更详细的功能显示和信息查询。经过分析,用户的第一眼往往是看到一个软件的外观,一个漂亮的界面将吸引用户下一次点击和理解。为了让用户通过无意识的点击尝试进入每个界面和每个按钮,用户可以进一步了解软件的质量,因此良好的软件界面将是吸引用户注意力的第一步。因此,对于每个软件界面设计工作来说,一个应用程序是占据非常重要的一部分,在高端大气中吸引用户界面,满足用户体验将进一步完成整个应用程序的各项功能,良好的用户体验度将继续使用并经常打开并使用此软件。

第2章关键技术研究2.1springboot框架Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。2.2B/S框架B/S架构在程序开发中被广泛使用的,是基于互联网系统的程序开发架构。目前,B/S架构已经打破了C/S架构模型,被广泛应用于网络的程序系统,并且为程序系统提供了良好的支持。随着互联网技术的发展,B/S架构逐渐被开发和更新,要求大多数信息管理系统不仅可以在一台计算机上使用,而是可以在连接到互联网的其他计算机上使用。餐厅管理系统是一个全面的信息管理系统,用于管理和控制在互联网上使用的餐厅管理系统的信息。因为使用新生数据统计来使用网站的用户可能并不总是在互联网上,这就要求餐厅管理系统可以通过互联网进行操作,并且可以随时随地进行数据更新状态和其他信息的更新。因此,开发必须基于B/S架构。2.3MYSQL数据库网站的开发必须配套相应数据库,数据库具有一定的组织结构,能够存放和管理数据信息,在以前数据库的功能仅仅是数据保存和管理操作,但是时代的变迁和发展,现在的数据库演变成了数据处理的方式,数据库从最开始的简单存放数据表格信息到现在的能够存放成千上万数据的大型数据库,期间还是经历了许多的改革。本次开发的管理系统使用的数据库是MYSQL数据库,该数据库运行速度快,安全性能也很高,而且对使用的平台没有任何的限制,所以被广泛应运到系统的开发中。MySQL是一个开源和多线程的关系管理数据库系统,MySQL是开放源代码的数据库,具有跨平台性,虽然功能未必强大,导致很多人都了解这个数据库的基本应用,在数据库中,总共建立了十几个表,这里面每个表都是相对应的,都各自有各自的联系,数据库意义重大,如果没有数据库的链接,就没办法运行程序,这显然可以看见数据库与程序的重要性,是紧密相连接的。第3章需求分析任何一个项目在开发研究前,都需要对研发系统本身的需求做一个认真的分析,市场的调研是不可忽视的,从实际场景中确定使用人员的功能需求,从而明确目标,对整个系统的开发有一个更加准确的定位。在这个章节,需要对系统的性能分析、业务流程分析和数据等进行分析,餐厅管理系统的整体界面简单,功能完善。需求的可行性是分析和讨论发达的系统能达到什么样的要求。开发的系统或网站是否符合之前的要求。只有在预先评估系统的开发中,才能在系统开发和实施之前完成需求。系统在开发和运用过程中,在技术可行性、操作可行性、经济可行性和法律可行性这几点展开的详细说明,证明了这几点是可行的。在技术可行性中主要说明了springboot是目前是较为通用、成熟的技术,具有较为强大的数据库开发功能、以及具有方便快捷的数据库接口设计功能。在现有的调研情况和所掌握的技术是必要可行的。在经济可行性中,主要说明了系统从调研时期的费用和后期维护和可节约的成本。操作可行性主要说明了系统和操作的简便性具有操作简便和上手快的特点。在法律可行性上,符合要求不涉及到侵权等问题在社会中能起到提高效率的作用。从系统需求分析、功能分析、性能分析等进行了设计和说明。系统需求分析对于餐厅管理系统资讯行业的需求进行了深入分析,证明了系统在市场中的需求。餐厅管理系统完成设计,可能受到时间以及空间上的制衡。因此,在开始设计每一个项目的时候,必须对系统进行可行性分析,只有这样才能够降低项目所带来的危害,减少人力、物力以及财力方面的损耗。该系统的可行性分析主要集中在技术可行性、经济可行性、运行可行性和社会可行性四个方面。从以上几个方面讨论了该系统的可行性。3.1可行性分析可行性分析目的是根据所开发系统的用户需求,明确研究方向和目标,通过可行性分析确定系统的框架和功能模块。可行性分析是对任何管理系统的需求、技术和经济的分析。其中最重要的技术方面的可行性,技术可行性是分析软件开发技术的应用开发系统是可行的。其次,分析软件系统的需求,分析软件需求能否满足预先设计的功能需求。最后讨论了系统的操作可行性和经济可行性。3.1.1技术可行性无论是台式机还是笔记本,计算机都以非常迅猛的速度占据着人们的工作与生活,那么能够辅助计算机帮助人们改变工作与生活状态的就是那些安装在计算机上的功能软件。本文所要设计的系统,从简单易懂的思想出发,将通过文字索引提示协助用户操作。系统的开发环境和配置可以由我们自己安装。系统采用springboot开发工具,根据技术语言修改和维护数据信息,并结合要求使系统运行更加稳定安全,从而完成实现系统的开发。网络技术的快速发展使网络传输速度越来越快,价格越来越低,安全性越来越高,其所有硬件平台都能完全满足餐厅管理系统开发的需要。因此,我们从两个方面进行了可行性研究,可以看出系统的技术可行性发展没有问题。3.1.2经济可行性任何软件系统在其发展将考虑后者经济可行性的一部分,也就是说软件的开发成本和设计所需的花费和随后的操作可能带来的经济效益是匹配,除了考虑这部分的软件是否可以给用户带来经济效益。经济可行性包括系统实现过程中所需资源的研究。系统实现过程中所需资源主要包括人力资源、自然资源和筹资条件等。餐厅管理系统的开发是由开发者自己开发,不需要购买其他软件或者端口之类的,而且餐厅管理系统的开发之前所做的市场调研及其他的餐厅管理系统,都是没有任何费用的,都是通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于餐厅管理系统的开发在经济上是完全可行的,没有任何费用支出的。使用springboot技术是比较成熟的技术,所以餐厅管理系统管理平台的开发在经济上是没有问题的。3.1.3操作可行性操作可行性是指系统不能有太复杂的操作和使用流程。餐厅管理系统基于springboot安装软件,访问和操作界面简单、操作方便。用户只要连接到网络就可以访问和操作。系统在界面设计上就很有善意让人感觉心旷神怡,首先这就能给操作者一种好心情,可以让工作人员以更好的心态工作,其次也很美观,在系统的使用中要不光应用到了系统完善的功能还欣赏了系统简洁的外观。其次就是系统的功能方面了,在系统的日常使用中会一点简单电脑操作的工作人员也都可以应付自如。因此,它具有操作简单,管理方便,交互性强的特点,在操作上是非常可行的。3.1.4法律可行性系统平台的设计与开发与国家政策法规之间不存在冲突。此外,平台的设计和开发采用的操作和工作模式符合用户的日常习惯,操作方便、灵活、易于管理,具有较高的实用性。开发过程中所采用的数据均来自开源代码,不存在知识产权的争议,在法律上也是行的通的。综上所述,开发一个基于springboot的餐厅管理系统是可行的。3.2需求分析餐厅管理系统主要是为了提高工作人员的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。系统所要实现的功能分析,对于现在网络方便的管理,系统要实现用户可以直接在平台上进行查看所有数据信息,根据需求可以进行在线添加,删除或修改在线作业提交信息,这样既能节省时间,不用再像传统的方式耽误时间,真的很难去满足用户的各种需求。所以餐厅管理系统的开发不仅仅是能满足用户的需求,还能提高管理员的工作效率,减少原有不必要的工作量。3.3系统设计原则1、关于餐厅管理系统的基本要求(1)功能要求:可以管理后台首页、轮播图、公告信息管理、资源管理(新闻资讯、新闻分类)、系统用户(管理员、顾客用户、员工用户)、模块管理(菜品信息、分类管理、线下订单、线上订单、营业额信息、菜品偏好)等功能模块。(2)性能:在不同操作系统上均能无差错实现在不同类型的用户登入相应界面后能不出差错、方便地进行预期操作。(3)安全与保密要求:用户都必须通过身份验证才能进入系统,并且用户的权限也需要根据用户的类型进行限定。(4)环境要求:支持多种平台,可在Windows系列、Vista系统等多种操作系统下使用。2、开发目标餐厅管理系统的主要开发目标如下:(1)实现管理系统信息关系的系统化、规范化和自动化;(2)减少维护人员的工作量以及实现用户对信息的控制和管理。(3)方便查询信息及管理信息等;(4)通过网络操作,改善处理问题的效率,提高操作人员利用率;(5)考虑到用户多样性特点,要求界面简单,操作简便。3、经济效益设计系统的目的是为了更好的进行节省人员成本及各种开销,因此需要对系统开发的成本和效益进行考虑。3.4业务流程分析3.4.1操作流程系统登录流程图,如图所示:图3-1登录流程图登录代码如下:/***登录*@paramdata*@paramhttpServletRequest*@return*/@PostMapping("login")publicMap<String,Object>login(@RequestBodyMap<String,String>data,HttpServletRequesthttpServletRequest){("[执行登录接口]");Stringusername=data.get("username");Stringemail=data.get("email");Stringphone=data.get("phone");Stringpassword=data.get("password");ListresultList=null;Map<String,String>map=newHashMap<>();if(username!=null&&"".equals(username)==false){map.put("username",username);resultList=service.select(map,newHashMap<>()).getResultList();}elseif(email!=null&&"".equals(email)==false){map.put("email",email);resultList=service.select(map,newHashMap<>()).getResultList();}elseif(phone!=null&&"".equals(phone)==false){map.put("phone",phone);resultList=service.select(map,newHashMap<>()).getResultList();}else{returnerror(30000,"账号或密码不能为空");}if(resultList==null||password==null){returnerror(30000,"账号或密码不能为空");}//判断是否有这个用户if(resultList.size()<=0){returnerror(30000,"用户不存在");}UserbyUsername=(User)resultList.get(0);Map<String,String>groupMap=newHashMap<>();groupMap.put("name",byUsername.getUserGroup());ListgroupList=userGroupService.select(groupMap,newHashMap<>()).getResultList();if(groupList.size()<1){returnerror(30000,"用户组不存在");}UserGroupuserGroup=(UserGroup)groupList.get(0);//查询用户审核状态if(!StringUtils.isEmpty(userGroup.getSourceTable())){Stringsql="selectexamine_statefrom"+userGroup.getSourceTable()+"WHEREuser_id="+byUsername.getUserId();Stringres=String.valueOf(service.runCountSql(sql).getSingleResult());if(res==null){returnerror(30000,"用户不存在");}if(!res.equals("已通过")){returnerror(30000,"该用户审核未通过");}}//查询用户状态if(byUsername.getState()!=1){returnerror(30000,"用户非可用状态,不能登录");}Stringmd5password=service.encryption(password);if(byUsername.getPassword().equals(md5password)){//存储Token到数据库AccessTokenaccessToken=newAccessToken();accessToken.setToken(UUID.randomUUID().toString().replaceAll("-",""));accessToken.setUser_id(byUsername.getUserId());tokenService.save(accessToken);//返回用户信息JSONObjectuser=JSONObject.parseObject(JSONObject.toJSONString(byUsername));user.put("token",accessToken.getToken());JSONObjectret=newJSONObject();ret.put("obj",user);returnsuccess(ret);}else{returnerror(30000,"账号或密码不正确");}}3.4.2添加信息流程添加信息流程图,如图所示:图3-2添加信息流程图添加代码如下:@PostMapping("/add")@TransactionalpublicMap<String,Object>add(HttpServletRequestrequest)throwsIOException{service.insert(service.readBody(request.getReader()));returnsuccess(1);}@TransactionalpublicMap<String,Object>addMap(Map<String,Object>map){service.insert(map);returnsuccess(1);}publicMap<String,Object>readBody(BufferedReaderreader){BufferedReaderbr=null;StringBuildersb=newStringBuilder("");try{br=reader;Stringstr;while((str=br.readLine())!=null){sb.append(str);}br.close();Stringjson=sb.toString();returnJSONObject.parseObject(json,Map.class);}catch(IOExceptione){e.printStackTrace();}finally{if(null!=br){try{br.close();}catch(IOExceptione){e.printStackTrace();}}}returnnull;}publicvoidinsert(Map<String,Object>body){StringBuffersql=newStringBuffer("INSERTINTO");sql.append("`").append(table).append("`").append("(");for(Map.Entry<String,Object>entry:body.entrySet()){sql.append("`"+humpToLine(entry.getKey())+"`").append(",");}sql.deleteCharAt(sql.length()-1);sql.append(")VALUES(");for(Map.Entry<String,Object>entry:body.entrySet()){Objectvalue=entry.getValue();if(valueinstanceofString){sql.append("'").append(entry.getValue()).append("'").append(",");}else{sql.append(entry.getValue()).append(",");}}sql.deleteCharAt(sql.length()-1);sql.append(")");("[{}]-插入操作:{}",table,sql);Queryquery=runCountSql(sql.toString());query.executeUpdate();}3.4.3删除信息流程删除信息流程图,如图所示:图3-3删除信息流程图删除代码如下:@RequestMapping(value="/del")@TransactionalpublicMap<String,Object>del(HttpServletRequestrequest){service.delete(service.readQuery(request),service.readConfig(request));returnsuccess(1);}@Transactionalpublicvoiddelete(Map<String,String>query,Map<String,String>config){StringBuffersql=newStringBuffer("DELETEFROM").append("`").append(table).append("`").append("");sql.append(toWhereSql(query,"0".equals(config.get(FindConfig.GROUP_BY))));("[{}]-删除操作:{}",table,sql);Queryquery1=runCountSql(sql.toString());query1.executeUpdate();}

第4章系统总体设计4.1系统功能模块该系统的基本功能包括管理员、顾客用户、员工用户三个功能模块。对于管理员可以使用的功能模块主要有后台首页、轮播图、公告信息管理、资源管理(新闻资讯、新闻分类)、系统用户(管理员、顾客用户、员工用户)、模块管理(菜品信息、分类管理、线下订单、线上订单、营业额信息、菜品偏好)等功能。对于顾客用户所使用的功能模块的操作主要首页、公告信息、新闻资讯、菜品信息、我的(我的账号、收藏)、模块管理(线下订单、线上订单)等功能。对于员工用户所使用的功能模块的操作主要后台首页、模块管理(菜品信息、线下订单、线上订单)等功能。4.2系统结构设计整个系统是由多个功能模块组合而成的,要将所有的功能模块都一一列举出来,然后进行逐个的功能设计,使得每一个模块都有相对应的功能设计,然后进行系统整体的设计。本系统结构图如图4-1所示。图4-1系统功能结构图4.3数据库设计4.2.1数据库简介数据库是信息系统的基础和核心。数据库设计的好坏直接影响到信息系统开发的成败。创建数据库表首先确定实体的属性和实体之间的关系。根据关系创建一个数据表。4.2.2数据库设计(1)系统的E-R图概念模型是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。图4-2系统E-R图(2)数据库设计表表access_token(登陆访问时长)编号名称数据类型长度小数位允许空值主键默认值说明1token_idint100NY临时访问牌ID2tokenvarchar640YN临时访问牌3infotext655350YN4maxageint100NN2最大寿命:默认2小时5create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:6update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:7user_idint100NN0用户编号:表article(文章:用于内容管理系统的文章)编号名称数据类型长度小数位允许空值主键默认值说明1article_idmediumint80NY文章id:[0,8388607]2titlevarchar1250NY标题:[0,125]用于文章和html的title标签中3typevarchar640NN0文章分类:[0,1000]用来搜索指定类型的文章4hitsint100NN0点击数:[0,1000000000]访问这篇文章的人次5praise_lenint100NN0点赞数6create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:7update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:8sourcevarchar2550YN来源:[0,255]文章的出处9urlvarchar2550YN来源地址:[0,255]用于跳转到发布该文章的网站10tagvarchar2550YN标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开11contentlongtext21474836470YN正文:文章的主体内容12imgvarchar2550YN封面图13descriptiontext655350YN文章描述表article_type(文章分类)编号名称数据类型长度小数位允许空值主键默认值说明1type_idsmallint50NY分类ID:[0,10000]2displaysmallint50NN100显示顺序:[0,1000]决定分类显示的先后顺序3namevarchar160NN分类名称:[2,16]4father_idsmallint50NN0上级分类ID:[0,32767]5descriptionvarchar2550YN描述:[0,255]描述该分类的作用6icontext655350YN分类图标:7urlvarchar2550YN外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置8create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:9update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:表auth(用户权限管理)编号名称数据类型长度小数位允许空值主键默认值说明1auth_idint100NY授权ID:2user_groupvarchar640YN用户组:3mod_namevarchar640YN模块名:4table_namevarchar640YN表名:5page_titlevarchar2550YN页面标题:6pathvarchar2550YN路由路径:7positionvarchar320YN位置:8modevarchar320NN_blank跳转方式:9addtinyint30NN1是否可增加:10deltinyint30NN1是否可删除:11settinyint30NN1是否可修改:12gettinyint30NN1是否可查看:13field_addtext655350YN添加字段:14field_settext655350YN修改字段:15field_gettext655350YN查询字段:16table_nav_namevarchar5000YN跨表导航名称:17table_navvarchar5000YN跨表导航:18optiontext655350YN配置:19create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:20update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:表classification_management(分类管理)编号名称数据类型长度小数位允许空值主键默认值说明1classification_management_idint100NY分类管理ID2categorization_of_dishesvarchar640YN菜品分类3recommendint100NN0智能推荐4create_timedatetime190NNCURRENT_TIMESTAMP创建时间5update_timetimestamp190NNCURRENT_TIMESTAMP更新时间表collect(收藏)编号名称数据类型长度小数位允许空值主键默认值说明1collect_idint100NY收藏ID:2user_idint100NN0收藏人ID:3source_tablevarchar2550YN来源表:4source_fieldvarchar2550YN来源字段:5source_idint100NN0来源ID:6titlevarchar2550YN标题:7imgvarchar2550YN封面:8create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:9update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:表comment(评论)编号名称数据类型长度小数位允许空值主键默认值说明1comment_idint100NY评论ID:2user_idint100NN0评论人ID:3reply_to_idint100NN0回复评论ID:空为04contentlongtext21474836470YN内容:5nicknamevarchar2550YN昵称:6avatarvarchar2550YN头像地址:[0,255]7create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:8update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:9source_tablevarchar2550YN来源表:10source_fieldvarchar2550YN来源字段:11source_idint100NN0来源ID:表customer_users(顾客用户)编号名称数据类型长度小数位允许空值主键默认值说明1customer_users_idint100NY顾客用户ID2customer_namevarchar640YN顾客姓名3customer_gendervarchar640YN顾客性别4customer_agevarchar640YN顾客年龄5examine_statevarchar160NN已通过审核状态6recommendint100NN0智能推荐7user_idint100NN0用户ID8create_timedatetime190NNCURRENT_TIMESTAMP创建时间9update_timetimestamp190NNCURRENT_TIMESTAMP更新时间表dish_information(菜品信息)编号名称数据类型长度小数位允许空值主键默认值说明1dish_information_idint100NY菜品信息ID2dish_namevarchar640YN菜品名称3categorization_of_dishesvarchar640YN菜品分类4price_of_dishesint100YN0菜品价格5dishes_and_ingredientsvarchar640YN菜品食材6taste_of_dishesvarchar640YN菜品口味7picture_of_dishesvarchar2550YN菜品图片8introduction_to_disheslongtext21474836470YN菜品介绍9hitsint100NN0点击数10praise_lenint100NN0点赞数11recommendint100NN0智能推荐12create_timedatetime190NNCURRENT_TIMESTAMP创建时间13update_timetimestamp190NNCURRENT_TIMESTAMP更新时间表dish_preferences(菜品偏好)编号名称数据类型长度小数位允许空值主键默认值说明1dish_preferences_idint100NY菜品偏好ID2dish_namevarchar640YN菜品名称3number_of_male_ordersint100YN0男性点餐数4number_of_meals_ordered_by_womenint100YN0女性点餐数5remarkstext655350YN备注信息6recommendint100NN0智能推荐7create_timedatetime190NNCURRENT_TIMESTAMP创建时间8update_timetimestamp190NNCURRENT_TIMESTAMP更新时间表employee_users(员工用户)编号名称数据类型长度小数位允许空值主键默认值说明1employee_users_idint100NY员工用户ID2employee_namevarchar640YN员工姓名3employee_gendervarchar640YN员工性别4employee_idvarchar640NN员工工号5examine_statevarchar160NN已通过审核状态6recommendint100NN0智能推荐7user_idint100NN0用户ID8create_timedatetime190NNCURRENT_TIMESTAMP创建时间9update_timetimestamp190NNCURRENT_TIMESTAMP更新时间表hits(用户点击)编号名称数据类型长度小数位允许空值主键默认值说明1hits_idint100NY点赞ID:2user_idint100NN0点赞人:3create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:4update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:5source_tablevarchar2550YN来源表:6source_fieldvarchar2550YN来源字段:7source_idint100NN0来源ID:表notice(公告)编号名称数据类型长度小数位允许空值主键默认值说明1notice_idmediumint80NY公告id:2titlevarchar1250NN标题:3contentlongtext21474836470YN正文:4create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:5update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:表offline_orders(线下订单)编号名称数据类型长度小数位允许空值主键默认值说明1offline_orders_idint100NY线下订单ID2order_numbervarchar640YN订单编号3dish_namevarchar640YN菜品名称4categorization_of_dishesvarchar640YN菜品分类5price_of_dishesvarchar640YN菜品价格6order_datedate100YN订单日期7customer_informationint100YN0顾客信息8customer_namevarchar640YN顾客姓名9customer_gendervarchar640YN顾客性别10contact_numbervarchar640YN联系电话11order_quantityint100YN0点餐数量12total_price_of_dishesvarchar640YN菜品总价13order_notestext655350YN点餐备注14order_statusvarchar640YN订单状态15pay_statevarchar160NN未支付支付状态16pay_typevarchar160YN支付类型:微信、支付宝、网银17recommendint100NN0智能推荐18seatvarchar640NN座位号19create_timedatetime190NNCURRENT_TIMESTAMP创建时间20update_timetimestamp190NNCURRENT_TIMESTAMP更新时间表online_orders(线上订单)编号名称数据类型长度小数位允许空值主键默认值说明1online_orders_idint100NY线上订单ID2order_numbervarchar640YN订单编号3dish_namevarchar640YN菜品名称4categorization_of_dishesvarchar640YN菜品分类5price_of_dishesvarchar640YN菜品价格6order_datedate100YN订单日期7customer_informationint100YN0顾客信息8customer_namevarchar640YN顾客姓名9customer_gendervarchar640YN顾客性别10contact_numbervarchar640YN联系电话11order_quantityint100YN0点餐数量12total_price_of_dishesvarchar640YN菜品总价13order_notestext655350YN点餐备注14shipping_addresstext655350YN配送地址15order_statusvarchar640YN订单状态16delivery_descriptiontext655350YN配送描述17pay_statevarchar160NN未支付支付状态18pay_typevarchar160YN支付类型:微信、支付宝、网银19recommendint100NN0智能推荐20create_timedatetime190NNCURRENT_TIMESTAMP创建时间21update_timetimestamp190NNCURRENT_TIMESTAMP更新时间表praise(点赞)编号名称数据类型长度小数位允许空值主键默认值说明1praise_idint100NY点赞ID:2user_idint100NN0点赞人:3create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:4update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:5source_tablevarchar2550YN来源表:6source_fieldvarchar2550YN来源字段:7source_idint100NN0来源ID:8statusbit10NN1点赞状态:1为点赞,0已取消表slides(轮播图)编号名称数据类型长度小数位允许空值主键默认值说明1slides_idint100NY轮播图ID:2titlevarchar640YN标题:3contentvarchar2550YN内容:4urlvarchar2550YN链接:5imgvarchar2550YN轮播图:6hitsint100NN0点击量:7create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:8update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:表turnover_information(营业额信息)编号名称数据类型长度小数位允许空值主键默认值说明1turnover_information_idint100NY营业额信息ID2title_namevarchar640YN标题名称3business_datedate100YN营业日期4business_amountint100YN0营业金额5remarksvarchar640YN备注信息6recommendint100NN0智能推荐7create_timedatetime190NNCURRENT_TIMESTAMP创建时间8update_timetimestamp190NNCURRENT_TIMESTAMP更新时间表upload(文件上传)编号名称数据类型长度小数位允许空值主键默认值说明1upload_idint100NY上传ID2namevarchar640YN文件名3pathvarchar2550YN访问路径4filevarchar2550YN文件路径5displayvarchar2550YN显示顺序6father_idint100YN0父级ID7dirvarchar2550YN文件夹8typevarchar320YN文件类型表user(用户账户:用于保存用户登录信息)编号名称数据类型长度小数位允许空值主键默认值说明1user_idmediumint80NY用户ID:[0,8388607]用户获取其他与用户相关的数据2statesmallint50NN1账户状态:[0,10](1可用|2异常|3已冻结|4已注销)3user_groupvarchar320YN所在用户组:[0,32767]决定用户身份和权限4login_timetimestamp190NNCURRENT_TIMESTAMP上次登录时间:5phonevarchar110YN手机号码:[0,11]用户的手机号码,用于找回密码时或登录时6phone_statesmallint50NN0手机认证:[0,1](0未认证|1审核中|2已认证)7usernamevarchar160NN用户名:[0,16]用户登录时所用的账户名称8nicknamevarchar160YN昵称:[0,16]9passwordvarchar640NN密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成10emailvarchar640YN邮箱:[0,64]用户的邮箱,用于找回密码时或登录时11email_statesmallint50NN0邮箱认证:[0,1](0未认证|1审核中|2已认证)12avatarvarchar2550YN头像地址:[0,255]13create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:表user_group(用户组:用于用户前端身份和鉴权)编号名称数据类型长度小数位允许空值主键默认值说明1group_idmediumint80NY用户组ID:[0,8388607]2displaysmallint50NN100显示顺序:[0,1000]3namevarchar160NN名称:[0,16]4descriptionvarchar2550YN描述:[0,255]描述该用户组的特点或权限范围5source_tablevarchar2550YN来源表:6source_fieldvarchar2550YN来源字段:7source_idint100NN0来源ID:8registersmallint50YN0注册位置:9create_timetimestamp190NNCURRENT_TIMESTAMP创建时间:10update_timetimestamp190NNCURRENT_TIMESTAMP更新时间:第5章系统实现5.1管理员功能模块管理员登录,管理员通过输入用户名、密码、拼图验证等信息进入餐厅管理系统,如图所示。图5-1管理员登录界面图管理员登录进入餐厅管理系统可以查看后台首页、轮播图、公告信息管理、资源管理(新闻资讯、新闻分类)、系统用户(管理员、顾客用户、员工用户)、模块管理(菜品信息、分类管理、线下订单、线上订单、营业额信息、菜品偏好)等内容,如图所示。图5-2管理员功能界面图系统用户,在此页面有管理员、顾客用户、员工用户三个子模块。管理员在员工用户页面填写头像、账号、密码、手机号码、邮箱等信息,进行添加员工用户,如图所示。图5-3添加员工用户界面图轮播图管理,在轮播图管理页面可查看标题等内容操作,如图所示。图5-4轮播图管理界面图公告信息管理,在公告信息管理页面,可以查看标题、创建时间、更新时间等信息,并可根据其需要进行查询、重置、删除、添加等操作,如图所示。图5-5公告信息管理界面图资源管理,在资源管理页面可查看新闻资讯、新闻分类两个子模块的内容并进行查询、重置、删除、添加等操作,新闻资讯如图所示。图5-6新闻资讯界面图菜品信息,在菜品信息页面可查看菜品名称、菜品分类、菜品价格、菜品食材等内容进行查询、重置、添加、删除操作,如图所示。图5-7菜品信息界面图线下订单,在线下订单页面可查看顾客姓名、联系电话、点餐数量、菜品总价等内容进行查询、重置、添加、删除操作,如图所示。图5-8线下订单界面图线上订单,在线上订单页面可查看订单编号、菜品名称、菜品价格、订单日期、顾客信息等内容进行查询、重置、添加、删除操作,如图所示。图5-9线上订单界面图营业额信息,在营业额信息页面可查看标题名称、营业日期、营业金额、备注信息等内容进行查询、重置、添加、删除操作,如图所示。图5-10营业额信息界面图菜品偏好,在菜品偏好页面可查看菜品名称、男性点餐数、女性点餐数、备注信息等内容进行查询、重置、添加、删除操作,如图所示。图5-11菜品偏好界面图5.2顾客用户功能模块顾客用户登录,管理员通过输入用户名、密码、拼图验证等信息进入餐厅管理系统,如图所示。图5-12顾客用户登录界面图顾客用户登录进入餐厅管理系统可以查看首页、公告信息、新闻资讯、菜品信息、我的(我的账号、收藏)、模块管理(线下订单、线上订单)等内容,如图所示。图5-13顾客用户功能界面图菜品信息,在此页面可以查看菜品名称、菜品分类、菜品价格、菜品食材等信息,并可根据需要进行查询、线下点餐、线上点餐、点赞、收藏等操作,如图所示。图5-14菜品信息面图线下订单,在线下订单页面,可以查看订单编号、菜品名称、菜品分类等,并可根据其需要进行提交等操作,如图所示。图5-15线下订单界面图线上订单,在线上订单页面可查看等内容,并进行查询、重置、删除、添加等操作,如图所示。图5-16线上订单界面图5.3员工用户功能模块员工用户登录进入餐厅管理系统后台可以查看后台首页、模块管理(菜品信息、线下订单、线上订单)等内容。图5-17员工用户功能界面图菜品信息,在菜品信息页面可以查看菜品名称、菜品价格、菜品食材、菜品口味等内容进行查询、重置等操作,如图所示。图5-18菜品信息界面图线下订单,在线下订单页面,可以查看订单日期、顾客姓名、联系电话等,并可根据其需要进行查询、重置等操作,如图所示。图5-19线下订单界面图线上订单,在线上订单页面可查看订单编号、菜品名称、菜品分类、菜品价格等内容,并进行查询、重置等操作,如图所示。图5-20线上订单界面图第6章系统测试系统测试主要是通过测试确定系统的可操作性,系统故障必须在规定的时间内纠正,否则会造成严重的经济损失。验证系统内的保护机制,以防止未经授权的入侵。在安全测试中,测试人员的作用是试图闯入系统并使用各种方法来试图突破防御。因此,系统安全设计的标准是找到一种使入侵系统更先进的方法。6.1系统测试的目的程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中都是难以避免的。虽然这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息泄露,系统无法正常启动等,为了避免这些问题,我们需要测试程序,在测试过程中发现问题并纠正它们,从而使系统更长时间稳定成熟。本章的作用是发现这些问题并对其进行修改,虽然耗时费力,但对于系统的开发长期使用而言是非常重要和必要的。软件在设计后必须进行测试,调试过程中使用的方法是软件测试方法。在开发新软件时,系统测试是检查软件是否合格的关键步骤,以及是否符合设计目标的参考。测试主要是查看软件中数据的准确性,正确的操作与否,以及操作的结果,还有哪些方面需要改进。餐厅管理系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在餐厅管理系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。6.2测试策略测试系统主要针对以下三个方面进行测试:1、基于springboot的系统代码的单元测试,集成测试,系统测试和验收测试结果;2、测试对象中列出的可测试或不可接受的特征和功能;3、分析并记录测试要求:日期的书面文件不影响测试的设计、开发和执行。6.3测试特性及分析系统测试的特性如下:(1)挑剔性:测试是为了找出系统的错误,在系统测试时我们要严格苛刻,十分挑剔。(2)复杂性:测试是一个非常复杂的过程。(3)不彻底性:虽然系统经过测试,但测试仍然会存在不够彻底的问题,测试不能保证系统后期运行完整无误,所以要在后期不断的检查、修改。(4)经济性:通场这种测试称为“选择测试(SelectiveTesting)”。在测试时要遵守经济性的原则。经过测试,产品的稳定性和成熟度可以大大提高,产品质量也可以得到保证。6.4功能测试系统测试方面,我们通常运用的是白盒测试以及黑盒测试这两种方法。白盒测试是指在了解系统内部工作流程的前提下,可以根据需求规范验证系统内部操作是否能够正常运行的测试;而黑盒测试指的是,倘若知道了这个系统的全部功能,可以进行测试检测系统中的每一个功能是否满足正常使用。功能测试,主要是对系统的用户登录进行详细的测试,但是登录不可以是任何人都可以登录成功的,所以对登录进行详细测试。用户登录测试:模块名称测试用例预期结果实际结果是否通过登录模块用户名:admin密码:123弹出错误提示,提示密码错误弹出错误提示,提示密码错误通过登录模块用户名:123密码:admin弹出错误提示,提示用户名错误弹出错误提示,提示用户名错误通过登录模块用户名:admin密码:admin管理员登录成功管理员登录成功通过删除分类测试:模块名称测试用例预期结果实际结果是否通过删除分类模块分类名:最新通知删除成功、页面自动跳转删除成功、页面自动跳转通过修

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论