版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于SpringBoot的校园微信点餐系统设计摘要随着生活节奏的快速化,我们的重心逐渐的的转移到了互联网上。无论从什么方面来说,都给人们的生活带来了巨大的改变。这里是开发了一个线上的的点餐系统,使得部分人群更能感受到互联网带来的便捷。本系统是以微信小程序作为支点,搭载SpringBoot框架,按照学生的基本需求实现了不一样的校园点餐方式。以Java作为主导语言,MVC框架和MySQL数据库作为支撑,做到层次分明,实用简单。通篇按照从需要到定制,从设计到实现的基本思想,以阐述和测试的相结合的方法详细介绍系统的具体功能。关键词:JAVA;Mysql数据库;SpringBoot目录摘要 .绪论1.1课题研究的背景和意义1.1.1研究背景在信息化时代的今天,生活中很多原本很复杂的事情现在动动手指头就能解决,慢慢用网络代替了亲自参与,这里最优发言权的是学生人群。平时下课之后食堂几乎是人满为患,不光吃饭变成了一件很头痛的事情,还很耽误学生的时间。1.1.2研究意义目前,虽然已存在很多的线上点餐系统,但是整体来看过于繁琐,甚至对于一些操作能力差的人群都很难找到自己所需要的功能。该系统旨在提供便利服务的同时简化操作流程,使得更多人能够上手使用[1]。1.2系统设计1.2.1开发环境操作系统:Windows10;数据库:MySQL;系统开发工具:MyEclipse10;软件开发语言:Javawx;服务器:Tomcat.1.2.2相关技术本系统主要以Java作为开发语言,用SpringBoot框架嵌入所有模块[2]。当前端部分和各功能模块代码都编写完成,采用RESTful风格的接口相连[3]。(1)SpringBootSpringBoot是最近JAVA开发的一个主流框架[4]。该框架相对于之前的开发而言大大减少了工作量,如果我们需要开发一个项目,就像盖房子一样,需要一砖一瓦盖起,但是现在该框架已经把这些细致的工作囊括到一起,用混凝土先浇筑出一个骨架,再在这个基础上进行完善。从时间和工作量上来说,都是一个不错的选择[5]。(2)MySQLMySQL是关系型数据库,安装和配置过程简单易上手,对缺乏开发经验的人群非常友好[6]。这也是我一开始就接触到的数据库之一。(3)SpringMVCSpringMVC作为一种MVC框架,能够将复杂的不同数据分隔开[7]。SpringMVC的使用,能够使得整个系统做到逻辑清晰,项目在进行整和的时候没有太多繁琐的步骤。(4)MybatisMyBatis是基于java的持久层框架[8]。在本项目的开发中,该框架的引入解决了系统在运行过程中产生的数据如何保存到数据库中的问题。(4)TomcatTomcat作为以Web开发的服务器,在使用过程中的优点特别明显,配置的时候只需要添加到对应的项目中然后启动,所以在开始的时候直接选择了Tomcat[9]。Tomcat服务器无论是在教学还是实际开发过程中都被大量运用[10]。1.3论文组织结构本论文第1部分是系统开发的研究背景和意义,介绍了系统正常运行所需要的环境及其他配置。第2部分是讨论该系统是否值得继续开发以及对于理由的分析,并画出了每部分对应的数据流图。第3部分是从整体和数据库的角度出发,描述系统能实现的功能以及数据库部分的设计。第4部分分别从三个模块以及对应的功能进行分析。第5部分是测试前期所编写各个功能模块。最后是对论文的总结和工作展望。
2.可行性分析与需求分析2.1可行性分析这里将从三个方面进行讨论:2.1.1技术可行性该系统的设计没有用到不成熟技术,都是建立在大量的实际测试和广泛的运用基础上。微信小程序因其使用范围的广泛性和稳定性,这样在实际的运行过程中就不会出现不能运行甚至崩溃的情况。2.1.2操作可行性对于系统和软件来说,功能并不是唯一的评判标准,越来越多的人在乎其是否能够简单操作,如果操作流程过于复杂,那么对于大部分用户来说这并非有很好的可操作性。而且本系统开发所用到的软件都是我们所熟知且平时使用的软件。2.1.3经济可行性该系统在整个的开发过程中并没有花费很多的费用。对于学生的开发来说,应该本着简单实用的原则。在这次的项目设计中,所采用的软件部分都是可免费使用,在这一方面没有任何担忧。2.2需求分析2.2.1功能需求根据功能分离出不同角色,各角色的功能分析如下:(1)用户角色:登录模块:在前端界面中使用账号登录。菜品信息模块:可以在不同的餐厅中浏览不同类别的所有菜品。订单信息模块:用户提交订单之后可通过该模块查看已经下单的所有信息。评价信息模块:用户在下单之后,可以对该餐厅给出评价。用户用例图如图2-1所示:图2-1用户用例图(2)餐厅角色:登录模块:餐厅管理员可以通过账号登录。菜品信息模块:查看和管理菜品对应的信息。订单管理模块:模拟实际过程,根据实际完成进度回馈用户。评价管理模块:可以回复用户给与餐厅的评价。餐厅用例图如图2-2所示:图2-2餐厅用户用例图(3)管理员角色:登录模块:通过账号登录。菜品信息模块:可以查看所有餐厅的全部类别并能够进行修改。订单管理模块:查看和修改订单页面的信息。用户管理模块:可以对所有餐厅账号进行添加和修改。管理员用例图如图2-3所示:图2-3管理员用例图2.2.2数据流图(1)顶层数据流图餐厅角色和管理员都可以通过后端界面登录,来获取不同角色所对应的不同信息。如图2-4所示:图2-4顶层数据流图用户通过注册登录系统,浏览餐厅的菜品之后,根据需要选择菜品加购,然后提交订单。所有的数据结果保存到数据库中。(2)第1层数据流图第1层的数据流图是针对整个系统而言,包括用户、餐厅和管理员能执行的所有操作。详细如图2-5所示:图2-5第1层数据流图(3)二层数据流图第2层为管理员部分,管理员是整个系统中拥有最大权限的角色,作为系统的监管者,可以对已有的用户和餐厅相关的数据进行修改。如图2-6所示:图2-6第2层数据流图(管理员)2.2.3性能需求本系统在性能功能应达到如下要求:(1)可扩展性当前系统是建立在现有需求的基础上进行的模块化设计,所以在后期的工作中如果需要添加或者删除某个功能模块,就相应的比较简单。(2)稳定性该系统的稳定体现在需要的软件和环境稳定。虽然功能详细,但是是根据不同的模块进行的区分设计,以类似于接口的方式进行对接,从而达到整个系统的稳定性。(3)易用性系统的设计是为了服务于大众,以简单的操作完成需求。所以在设计的时候不光是要提供方便且实用的功能,还需要做到能够很容易的进行上手操作。(4)安全性系统中有很多信息,但他们不是所属于同一个角色的,所以这里就有可能出现越权操作的问题。对应角色只能执行对应权限的操作,比如餐厅账号只能对本餐厅的菜品信息进行修改操作,无法对其他餐厅信息做任何越权处理。
3.系统总体设计3.1系统功能以整体的眼光看待系统,对不同角色功能进行分类描述,如图3-1所示:图3-1系统功能图(1)用户模块:进行注册登录、查看菜品信息和类别、购买菜品、查看订单信息和餐厅信息、对餐厅进行评价。(2)餐厅模块:账号登录、添加菜品、对菜品进行类别管理、查看并修改订单状态、对留店订单进行桌号分配、查看餐厅留言评价信息。(3)管理员模块:账号登录、管理菜品和类别、查看并修改订单状态、管理已注册的餐厅账号和用户账号。3.2数据库设计3.2.1数据库需求分析数据库的具体设计是建立在系统功能的基础上,找出不同角色和模块之间的关系,做到数据的快速存储和读取,保证系统的高效运行。需求分析:找出使系统有效运行需要哪些数据。逻辑设计:根据不同的模块用E-R图找出关系。物理设计:将需要的数据和E-R图整合起来。设计出各表。实体:根据不同的关系找出对象,也就是什么角色能够执行这一部分的功能。3.2.2数据库E-R图根据不同对象画出E-R图,如图3-2到图3-5所示:图3-2菜品实体属性图图3-3订单实体属性图图3-4类别实体属性图图3-5信息实体属性图数据库总体E-R图如3-6所示:图3-6总体E-R图3.2.3数据库表结构对系统不同角色和实现的功能进行分析,找出存在的关联,以整体的眼光看待,整合出数据库中的各个表。在设计数据库的时候,我们应该考虑到:(1)数据之间尽量少的重复。(2)考虑设计的逻辑性。(3)各表之间具有相对稳定性。根据角色和不同模块功能的分析,以下为数据库中表的结构图:图3-7user表结构图图3-8shop表结构图图3-9type表结构图图3-10room表结构图图3-11good表结构图
4.系统设计与实现4.1用户4.1.1登录注册用户使用的相当于是客户端,当第一次进到系统,需要在注册页面通过注册将信息写进数据库,通过点击注册按钮调用UserAction类中的add()方法。然后自动返回登录界面开始登录,登录是根据提示信息在特定的位置填写对应的信息,调用UserAction类中的login()方法,当登录时候输入的信息和注册时候的信息一致,表示登录成功;反之,如果前后的信息不一致,此是会不能成功登录。意思就是说,填写上账号与密码若系统不提示登陆失败即登录成功。用户注册登陆界面如图所示4-1所示:图4-1系统注册模块界面本系统有两个登录界面,一个是用户端登录界面,一个是后台管理系统管理员登录端,但不管登录对象是管理员还是用户,登录流程都一样,登录系统会动态判断登录者的角色,并赋予其相应的权限。具体登录流程如图4-2所示:图4-2系统登录流程图4.1.2首页设计当正确填写账号进入系统之后,展现给使用者的是餐厅列表,通过调用ShopAction类中的shopList()方法获取到所有的餐厅。其中shop是用链表存储,因为餐厅是可以通过管理员添加和删除,故将其保存在动态内存的数组ArrayList<Shop>list中。下面的四个按钮是用户能使用的主要功能。如图4-3所示:图4-3系统首页设计模块界面4.1.3菜品信息每个餐厅中都有对应的菜品。当点击进入餐厅后,通过GoodAction类中的getList()用户可以看到对应餐厅的菜品列表,该界面我们可以浏览该餐厅上架的所有菜品以及对应的属性。对应餐厅的所有菜品是用HashMap来存储具有键值对特征的数据,将菜品号作为键,餐厅对象作为值存储到HashMap中,实现了不同餐厅可添加不同菜品和相同菜品的功能。在页面的最上面是搜索框,可以通过模糊搜索查询菜品,并且可以按照不同的方式将菜品进行排序查看。菜品信息界面如图4-4所示:图4-4菜品信息模块界面4.1.4菜品购买用户在购物车模块可以看到添加的所有的菜品,用户在购物车模块调用shopAction类中的add()方法可以对菜品的数量进行修改或者将菜品从购物车中删除,当选定好所有的菜品之后可以选择提交订单,这时候会跳转到支付界面进行相应的操作。菜品购买界面如图4-5所示:图4-5菜品购买模块界面用户部分的功能比较清晰简单。对于用户而言,进入系统的目的是挑选心仪的菜品,这部分的流程如图4-6所示:图4-6菜品购买流程图4.2餐厅4.2.1菜品管理餐厅在菜品管理模块可以看到发布的所有的菜品,餐厅可以使用界面上的查询功能来获取菜品的信息,通过调用GoodAction类中的deleteItem()和deleteTypeItem()方法来批量删除来删除菜品信息,其中requst对象调用getParameter()方法并传入对应菜品的id参数完成该部分操作。再点击添加菜品后可以新增菜品。菜品管理界面如图4-7所示:图4-7菜品管理模块界面4.2.2订单管理餐厅在该模块中可以查看到用户在本餐厅所产生的所有订单。这就相当于把买家需要的信息提交给卖家,然后卖家根据进度来更改对应的状态,如果餐厅有存货那么就显示对应的信息,而买家也可以在自己的订单中查看到实时的状态。订单管理界面如图4-8所示:图4-8订单管理模块界面4.3管理员4.3.1餐厅管理管理员是作为支配者的地位存在于系统中,可以在该界面中查看到所有餐厅的信息,上方的按钮中,管理员可以调用ShopAction类的add()方法对餐厅信息进行修改,例如增加一个餐厅对象之后,会自动给出对应id和餐厅角色在数据库中的RoleType值。调用deleteItem()方法执行删除等操作。这里还能根据餐厅名字进行模糊查询,点击添加餐厅后可以选择餐厅信息,当操作结束完成后提示操作成功。餐厅管理界面如图4-9所示:图4-9餐厅管理模块界面4.3.2类别管理管理员可以在这个部分查看菜品的属性信息,根据需求可以进行更改。如果想要添加类别,点击上方的新增按钮,这时会跳出一个界面,填写好名称再选择所属餐厅,点击保存之后即可在该餐厅出现显示类别;如果想对其进行更改,选中对应的类别之后在点击删除或修改按钮,根据对应的信息操作即可。类别管理界面如图4-10所示:图4-10类别管理界面
5.系统测试5.1测试目的和方法5.1.1测试目的通过对系统各个功能模块的测试,检验是否达到设计的初始要求,发现系统存在的一些不合理或者是错误,可能会直接影响到系统的完整运行,借助测试能够尽量避免,确保系统能够正常运行。5.1.2测试方法测试方法有很多种,可以根据需要进行测试,我们需要什么样的功能,先按照设计列举出应该有的效果,再和运行的结果进行对比,这样就能够起到测试的作用;也可以直接对整个程序进行测试,模拟整个流程。这里采取第一种方式。5.2测试内容和结果5.2.1登录测试当用户登录的时候可能会发生很多情况,我们需要对可能发生的所有情况进行测试,登录测试如表5-1所示:表5-1登录测试表编号测试步骤输入数据预期结果测试结果1输入正确的用户名和密码用户名:dbs密码:123456登录成功登录成功2不输入用户名和密码用户名:空密码:空提示错误提示需要输入3不输入用户名,输入密码用户名:空密码:123456提示错误提示需要输入4输入用户名,不输入密码用户名:dbs密码:空提示错误提示需要输入5输入错误的用户名,正确的密码用户名:DBS密码:123456提示错误提示输入错误6输入正确的用户名,错误的密码用户名:dbs密码:123123提示错误提示输入错误在第3组中,当不输入用户名和输入正确密码时,系统提示错误信息,提示信息如图5-1所示:图5-1错误信息提示5.2.2信息修改测试管理员和用户都可以对用户的信息进行更改,测试如表5-2所示:表5-2信息修改测试表编号测试步骤输入数据预期结果测试结果1管理员修改用户输入不同的数据进行更改修改成功修改成功2管理员删除用户点击删除按钮删除成功删除成功3管理员添加用户按提示添加信息添加成功添加成功4管理员修改密码输入新密码和确认密码修改成功修改成功5用户修改信息输入不同的数据进行修改修改成功修改成功6用户修改密码输入旧密码和新密码修改成功修改成功在第1组中,管理员修改用户信息,先选中需要修改的用户,然后点击修改按钮,在新出现的页面中进行更改。这里测试修改用户的密码,修改前用户信息如图5-2所示:图5-2修改前用户信息修改后用户信息如图5-3所示:图5-3修改后用户信息5.2.3商品模块测试管理员不仅能修改用户的信息,还能对餐厅信息进行修改。这里我们四个方面进行测试,相关测试如表5-3所示:表5-3管理员商品模块测试表编号测试步骤输入数据预期结果测试结果1添加菜品输入新菜品的信息添加成功添加成功2修改菜品分类按提示输入修改信息修改成功修改成功3修改菜品所属餐厅按提示输入修改信息修改成功修改成功4修改菜品价格按提示输入修改信息修改成功修改成功在第4组中,管理员修改菜品价格,选中需要修改的菜品,点击修改按钮,在新页面中更改价格数据。修改前菜品信息如图5-4所示:图5-4修改前菜品信息图(价格)修改后菜品信息如图5-5所示:图5-5修改后菜品信息图(价格)餐厅中最重要的是对于菜品的管理,所以这部分的测试尤为重要。相关测试如表5-4所示:表5-4餐厅菜品模块测试表编号测试步骤输入数据预期结果测试结果1添加菜品输入新菜品的信息添加成功添加成功2修改菜品分类按提示输入修改信息修改成功修改成功3修改菜品价格按提示输入修改信息修改成功修改成功在第2组中,餐厅在发布菜品的时候选择了该菜品对应的分类,但是有时可能需要调整。用户显示的界面中,通过选择分类的下拉框中我们可以查看对应菜品的类别。修改前菜品分类如图5-6所示:图5-6修改前菜品分类图修改后菜品分类如图5-7所示:图5-7修改前菜品分类图5.2.4搜索模块测试管理员拥有对订单进行查询到权限,在订单列表中可以根据时间查询,这里需要注意的是有些日期是没有订单的,也就是说,只有有订单存在才能够检索出来。测试如表5-5所示:表5-5管理员查询订单测试表编号测试步骤输入数据预期结果测试结果1搜索存在的订单时间在日历中选中日期显示相关订单信息显示对应日期的订单2搜索不存在的订单时间在日历中选中日期无信息显示无信息显示当有订单时,测试如图5-8所示:图5-8查询存在订单测试图(有订单)当对应的日期没有订单时,测试如图5-9所示:图5-9查询不存在订单测试图(没有订单)5.2.5订单模块测试当用户角色产生订单提交给餐厅角色后,餐厅角色可以在订单模块中对该订单的状态进行修改。详细测试如表5-6所示:表5-6订单功能测试表编号测试步骤输入数据预期结果测试结果1用户下单加购所需菜品加购成功加购成功2用户付款选择微信或者支付宝付款付款成功付款成功3餐厅审核修改订单状态为配餐中显示配餐中显示配餐中4餐厅审核修改订单状态为送餐中显示送餐中显示送餐中5用户确认收货点击确认收货已确认已确认6餐厅审核点击完成订单订单完成订单完成用户选择菜品添加至购物车,对应测试如图5-10所示:图5-10用户加购图在购物车中提交订单并付款,如图5-11所示:图5-11用户付款成功图当订单状态显示已付款代表付款成功,订单信息会移交到订单管理模块中。这里尝试已付款的订单信息改变成餐厅已经配好,正在运送中。如图5-12所示:图5-12餐厅审核图(配送中)当用户收到餐后,餐厅可以完成该笔订单。如图5-13所示:图5-13餐厅审核图(完成)6.结语6.1本文总结从确定选题到最后呈现出一个完整的系统,大致的进度如下:(1)开始进行学校调研,对于学生而言需要哪些符合生活实际的功能。对比目前主流的点餐系统,开始制定属于自己的大体框架。(2)着手数据库部分的工作,选定数据库,结合系统的特点设计各表,此时一定要明确表之间存在什么样的联系。(3)搭建并配置系统运行所需要的环境。完成整个前端的设计,包括用户登录的微信小程序界面和餐厅和管理员登录的网页前端。(4)思考整个系统最核心的部分,也就是后端代码的实现。搭建应用框架,根据需求往里填充模块,然后是将数据库连接上。(5)在最后这一部分,做一些收尾工作。现在只是明确了各部分,没有进行整合。整合完成之后进行测试,如果出现了偏差
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 液压支架工岗前工作流程考核试卷含答案
- 原料乳处理工班组建设模拟考核试卷含答案
- 铸管精整操作工安全演练知识考核试卷含答案
- 炼焦煤制备工安全生产能力测试考核试卷含答案
- 调味品品评师基础技能测试考核试卷含答案
- 丙烷脱氢装置操作工岗前协调沟通考核试卷含答案
- 松香浸提工操作规程评优考核试卷含答案
- 贵金属首饰手工制作工QC管理能力考核试卷含答案
- 酱油制作工技术突破测试考核试卷含答案
- 印制电路镀覆工风险评估与管理竞赛考核试卷含答案
- 中国萤石行业分析及供需形势与投资风险研究报告
- 汽车-招股说明书梳理系列:Momenta
- 电力电缆及通道防火技术要求(DLT2880-2025 )
- 2025年江西省公安厅警务辅助人员招聘考试笔试试卷附答案
- 品质部主管绩效考核制度
- 工艺工程部考核制度
- API SPEC 5L 管线管规范培训课件
- 初中必背古诗文完整带注音版
- 模板施工拆模作业方案
- 2025年《食品安全国家标准糕点饼干》知识考试题库及答案解析
- TGDGX 0003-2024 高校物业服务费用测算及基本人员配置规范
评论
0/150
提交评论