《基于PHP的餐厅管理系统APP设计与实现.doc》由会员分享,可在线阅读,更多相关《基于PHP的餐厅管理系统APP设计与实现.doc(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本科论文目 录摘 要IAbstractII引 言11 相关技术31.1 MVC31.2 ThinkPHP31.3 MySQL数据库31.4 uni-app41.5 本章小结42 系统分析52.1 功能需求52.2 用例分析72.3 非功能需求82.4 本章小结83 系统设计93.1 系统总体设计93.2 系统详细设计103.3 本章小结164 系统的实现174.1 开发环境174.2 开发规范174.3 数据库实现174.4 核心功能实现184.5 本章小结225 系统测试235.1 测试目的235.2 测试计划235.3 测试用例235.4 本章小结24结 论25致 谢26参考文献27附录
2、源程序清单29本科论文摘 要随着智能手机的日益兴起以及人民的生活水平的提高,使生活、工作都趋于智能化。如今大部分的餐厅都还在使用人工点餐以及人工管理的方式经营,就造成了工作忙、赚钱少的现状。针对这一现状开发了基于PHP的餐厅管理系统APP设计与实现。此餐厅管理系统完成了对餐厅管理的网络化、简便化,该系统下有两个子系统分别是点餐子系统、餐厅管理APP子系统。点餐子系统主要有点餐、查看商家信息等功能,餐厅管理APP子系统主要功能有订单管理、菜单管理、数据管理、店铺信息管理等几个模块。此餐厅管理系统主要包括后端对数据库的搭建和对数据处理以及前端开发,此系统采用PHP语言搭建ThinkPHP5作为服务
3、端开发框架,MySQL数据库作为后端数据库。对于前端开发要求界面做到使用方便快捷,功能齐全,易操作。此系统使用uni-app前端框架实现页面间的交互和美化、以及对服务端的接口调用实现前后端分离。本餐厅管理系统的适应性较强、扩展性较好。经过具体的编码实现和系统测试,餐厅管理系统中各模块均已成功实现,可以满足大部分餐厅管理者使用。关键词:餐厅管理系统; 扫码点餐; MySQL; ThinkPHP5.0 AbstractWith the rise of smart phones and the improvement of peoples living standards, life and wor
4、k tend to be intelligent. Today, most restaurants are still in the use of manual food and manual management of the way of operation, resulting in busy work, less money. In view of this situation, the APP design and implementation of restaurant management system based on PHP are developed. This resta
5、urant management system has completed the networking and simplification of the restaurant management. There are two subsystems under this system, namely the ordering subsystem and the restaurant management APP subsystem. The main functions of the ordering subsystem are scanning code ordering, orderi
6、ng, etc. The main functions of the restaurant management APP subsystem are order management, menu management, data management, store information management and other modules.This restaurant management system mainly includes the back-end database construction and data processing and front-end develop
7、ment. This system uses PHP language to build ThinkPHP5 as the server-side development framework, and the MySQL database as the back-end database. For front-end development, the interface needs to be easy to use, complete, and easy to operate. This system uses the uni-app front-end framework to reali
8、ze the interaction and beautification of the pages, and the interface call to the server to achieve the separation of the front and back ends.The restaurant management system has strong adaptability and good scalability. After specific coding implementation and system testing, each module in the res
9、taurant management system has been successfully implemented, which can satisfy most restaurant managers.Keywords: restaurant management system; code order; MySQL; ThinkPHP5.0引 言随着餐饮业的不断发展1,近年来餐饮业的管理也随着时代的变化逐步趋近电子化。传统的用手来抄写菜单的点餐方式很多年来一直被使用,在街边的餐馆内也经常可以看见。点餐之后需要服务员将菜单送到厨房,在结账之前有需要加菜的地方还需要跑到厨房写在菜单上。点菜环
10、节过多,导致出错率极高,漏单,结错账的可能性极大。为了使餐饮业实现管理的自动化、人性化,专门针对餐饮企业的点餐、管理业务而开发了餐厅管理系统APP。本文的主要工作是2为了阐述“基于PHP的餐厅管理系统的设计与实现”,分为五章内容阐述,结构如下:第1章是相关技术分析,本章介绍项目中使用的相关技术,项目采用MVC模式对项目进行前后端分离开发,此项目的后台核心技术是ThinkPHP5框架技术,数据库使用MySQL数据库,前端使用uni-app开发,使用了UCharts高性能跨全端图表分析店铺数据信息。第2章是对餐厅管理系统进行系统分析,主要讲需求分析,需求分析内容包括功能需求,用于表述餐厅管理系统的
11、需求的功能有哪些;用例分析,用于将功能需求中提出的功能用用例图的方式进行组织和表述,使功能需求看起来更有组织性,更条理化;非功能需求,分析关于界面的要求,系统结构组织的要求,可维护性和可扩展性的要求,系统运行实时性的要求等等。第3章是餐厅管理系统的系统设计,“包括系统总体设计和系统详细设计两部分。其中系统总体设计主要”3介绍了本系统的整体架构图以及本系统的功能结构图。系统详细设计主要介绍了顾客实体关系图、商家实体关系图、数据库设计以及功能设计。第4章是餐厅管理系统的系统实现,主要介绍4的内容包括开发环境的介绍、开发规范的介绍、数据库实现以及核心功能实现的介绍。展示了系统主要功能实时接收订单功能
12、实现、菜单管理的分类修改功能实现和数据管理的折线图显示实现的页面和主要逻辑代码。第5章是系统测试,内容包括测试目的、测试计划、测试用例三个方面。以主要功能实时接收订单功能、分类修改功能和折线图显示功能为例,详细介绍测试过程,得出测试结果。结论,对此餐厅管理系统的总体研究进行总结。说明完成情况,对系统进行评价。并说明了系统存在的缺陷与不足以及它存在的价值和能给使用者带来什么好处。1 相关技术1.1 MVC“MVC模式指将一个应用的输入、处理、输出流程按照model、view、controller的方式进行分离,分为3个层。(1)视图(view)层:即用户交互视图。(2)模型(model)层:即业
13、务流程/状态的处理以及业务规则的制定。(3)控制(controller)层:即从用户接收请求,将model与view匹配在一起,共同完成用户的请求。”5MVC模式分为三层非常适合本餐厅管理系统所使用的前后端分离开发。MVC6模式可以做到在不同的编译器使用不同的语言开发同一个项目。视图层用来做前端的可视化页面,模型层用来处理数据库的数据,控制层来处理视图层的请求并返回数据库的数据。1.2 ThinkPHPThinkPHP是一个开源轻量级的PHP开发框架7。本餐厅管理系统的后端接口开发使用的就是ThinkPHP5.0,ThinkPHP在搭建项目时只需要下载框架文件,将文件放入所要开发的项目中即可使
14、用。使用非常方便快捷,轻便、高效性是它的特点。它不断地更新,给开发者们带来更加高效的开发环境。ThinkPHP5.0版本是ThinkPHP8中的一个版本,经过多年的开发与进步,对比于ThinkPHP3.0有很大的区别,它彻底颠覆了原来的架构思想,使用起来更加高效,是新项目的首选。其中对数据库的时间查询是本餐厅管理系统需要的重要功能,非常适合本餐厅管理系统项目的开发,所以选择ThinkPHP5.0为本系统后端开发框架。1.3 MySQL数据库MySQL安装简单、部署迅速相对于Oracle这样大型的数据库安装更快,适合大批量的快速部署。在如今的互联网市场上使用广泛,几乎大部分互联网公司都使用MyS
15、QL数据库。MySQL适合多种语言,但在PHP中的使用是最普遍的。为了配合本餐厅管理系统后台使用的ThinkPHP框架,又因为其体积小、速度快,尤其是开源9型,不需要支付额外费用,成本低,所以本项目决定采用MySQL作为存储数据库。同时也可以使用在中小型规模应用中。1.4 uni-appuni-app是一个基于Vue.js开发的前端框架10,其特点是可以通过一套源码开发出应用在很多平台上的应用,使开发效率更高。如果开发者想在不同平台开发出同样的应用,不用把每个平台的开发语言都学习一遍,只需要学会uni-app一种即可达到同样的效果。如果不是多平台开发,作为单平台的应用程序开发框架也是一个很好的
16、选择。使用uni-app开发项目还可以使项目后期的维护更加方便,即使本次开发是按照APP的配置开发,在很久以后也可以做到只对代码以及配置进行简单的修改即可在各种平台使用。为了考虑项目的可维护性本餐厅管理系统使用uni-app作为前端开发框架进行开发。同时使用了支持uni-app的UCharts高性能跨全端图表来分析店铺数据信息。1.5 本章小结本章主要介绍了餐厅管理系统项目所应用到的MVC模式、uni-app、ThinkPHP5框架、MySQ数据库等相关技术介绍。并深入学习项目中所用到的技术,为餐厅管理系统项目的实现打下良好的基础。2 系统分析2.1 功能需求本餐厅管理系统共分为小程序端点餐系
17、统和APP端管理系统两个端,其中小程序客户端有扫码点餐模块、查看商家信息模块。APP商家管理端分为登录注册模块、订单管理模块11、菜单管理模块、数据管理模块、店铺信息管理模块五大功能模块。其中订单管理模块包括未接单、已接单、已完成三部分。菜单管理模块包括分类管理和分类下的菜品管理两部分。数据管理模块还包括客流量数据管理和收入支出管理两部分。店铺信息管理包括优惠券管理、wifi管理、店铺资料管理、记事本、轮播图管理等五个部分。小程序查看商家信息:顾客可以通过小程序查看商家基本信息。如果在店内可通过扫描二维码12进入首页查看店铺名称、店铺地址、联系电话、WiFi名称、WiFi密码等信息。如果不在店
18、内可通过搜索小程序查找。小程序点餐模块:顾客通过扫描二维码或者搜索小程序方式进入小程序,点击小程序首页的开始点餐按钮,进入选择就餐方式页选择就餐方式,可以选择是否是预约点餐,是否打包,选择后进入自助点餐页选择分类下的菜品,选好菜品后点击选好了进入结算中心,结算中心可根据顾客所选择的就餐方式填相关信息,点击提交后商家就可接收到订单。订单管理:是餐厅管理系统的核心功能之一。登录APP后的首页就是订单管理页,当顾客下单后APP端就会实时更新数据,并给出提示音,在未接单选项下查看订单信息,点击接单按钮接单,点击取消订单按钮取消订单。上完菜并结完账后在已接单下点击按钮完成上菜并在已完成选项中查看已完成订
19、单。菜单管理:是餐厅管理系统的核心功能之一。用于管理小程序端的菜单。用户登录APP后点击底部菜单管理选项进入菜单分类管理页,点击加号填写相关信息点击提交添加菜单分类。添加完成后可以点击相对应的分类盒子,就可以进入菜单菜品管理页,点击添加新菜填入菜品名称,菜品价格,菜品描述以及菜品图片点击提交即可添加菜品。添加完菜品后点击菜品盒子查看所添加的菜品信息,如需修改可以修改对应字段点击修改按钮更新数据,如需删除菜品,则点击删除按钮删除菜品。修改菜品信息只能相对应分类下的菜品。在分类管理页长按已存在的分类即可删除对应的分类。数据管理:是餐厅管理系统的核心功能之一。用于查看本周收入、支出、利润数据图以及当
20、日的支出客流量等数据。登录APP后点击下方数据管理,默认显示当前日期所在周的收入、支出、利润数据折线图,当日的客流量以及当日总收入。点击日期可选择想要查找的日期选择后可根据选择的日期更改页面上对应的数据即查找的日期所在周的收入、支出、利润折线图,查找日期的客流量及总收入。客流量管理:通过数据管理页的当日客流量数据框进入页面,默认显示数据管理页所选择的日期时间的客流量数据,可以对客流量数据进行增加修改操作。下方是选择日期的客流量饼状图可以更加直观的观察当日总订单数量、当日退单数、当日成交单数、当日线下单数量等。收入支出管理:通过数据管理页的当日总收入数据框进入页面,默认显示数据管理页所选择的日期
21、时间的日收入管理信息、日支出管理信息、日收支对比图、当前日所在月固定支出信息。可以对日收入管理的其他收入进行增加修改操作,对日支出管理的采购项进行增加操作,对每月固定支出可进行增加修改操作。店铺资料管理:登录APP后点击我的页面,可查看店铺的绑定邮箱、店铺名称、店铺logo等信息。点击编辑按钮进入店铺资料管理页,默认显示店铺已经添加的信息,输入要修改的信息包括店铺名称、店铺联系方式、营业时间、店铺地址、详细地址等信息点击提交修改店铺信息。优惠券管理:登录APP后点击我的页面,点击优惠券管理按钮进入优惠券管理页,默认显示已经存在的优惠券,长按可选择删除对应优惠券,也可输入满多少元减多少元的信息再
22、添加优惠。WI-FI管理:登录APP后点击我的页面,点击WI-FI管理进入WI-FI管理页面,若数据库存在WI-FI数据默认显示已存在的数据并且可以修改名称和密码提交修改WI-FI信息,若没有则输入WI-FI名称及WI-FI秘密插入WI-FI信息。记事本功能:登录APP后点击我的页面,点击记事本按钮进入记事本页面,默认显示已经存在的笔记,长按可选择删除对应笔记,也可输入想要记住的笔记信息再添加笔记。2.2 用例分析用例分析是从用例模型到分析模型的过程,是需求与设计之间的桥梁13。餐厅管理系统项目分为顾客和商家两个角色,顾客有查看店铺资料、点餐的功能。商家有登录、注册、修改密码、WI-FI管理、
23、优惠券管理、修改餐厅资料、记事本、收入管理、支出管理、客流量管理、按日期查找数据、菜单分类管理、菜品管理、订单管理等功能。其中点餐、订单管理、收入管理、支出管理、菜品管理是本系统的核心功能。餐厅管理系统总用例图如图2.1所示。图2.1 餐厅管理系统总用例图核心用例详细描述:(1)接单用户:商家前提条件:登录手机APP、顾客或商家完成下单流程。异常:登录失败,填写订单信息有误。用例描述:顾客下单后,商家端实时接收订单信息给出提示音,点击接单按钮接单或点击取消订单按钮退单。(2)收入支出管理用户:商家前提条件:登录手机APP。异常:登录失败。用例描述:默认计算出当日扫码点餐的收入金额和已存在采购项
24、列表和本月固定支出,需要商家手动输入当日其他收入金额点击提交管理收入,若有新的采购项需要商家添加新采购项记录采购支出,若固定支出有变动可修改固定支出金额。(3)菜品管理用户:商家前提条件:登录手机APP,完成菜单分类流程。异常:登录失败,无菜单分类。用例描述:点击菜单分类进入菜品管理,对菜品进行增加、修改、删除、查询操作。2.3 非功能需求当今社会,一个好的管理系统已经不满足于它的实用性、全面性,还有重要的是美观性、易用性、交互性。界面美观大方可以给用户更加舒适的体验,让用户在工作之余、吃饭之余看到软件时可以心情愉悦。易用性是指用户在操作系统时能很快理解系统所要传达给用户的用途,并且轻松学会使
25、用本系统。餐厅管理系统的界面简单大方,商家端主要以蓝色为主色调,使人看到APP是可以给人带来一种平静、稳定、和谐轻松愉快的心情,不会使工作人员看到这个APP感到压抑。小程序端使用绿色为主色调,绿色可以很好的保护眼睛,缓解眼部疲劳,让顾客再使用本系统时虽然看着手机点餐,但也不会给眼睛带来负担。餐厅管理系统的界面非常简单,用户不用过多思考,随便用手点一点就可以操作,若有需要长摁的地方需要在界面上给与提示。2.4 本章小结本章是系统分析部分,主要包含了项目的功能需求、用例分析以及非功能需求。使用用例分析方法,对系统参与者相关的用例进行了分析,并对几个核心功能进行了详细分析。以便后面的系统实现以及测试
26、使用。3 系统设计3.1 系统总体设计餐厅管理系统是基于APP和小程序开发的,所以本系统采用了C/S两层架构。顾客和商家都在客户机14设备上进行操作,通过HTTP协议发起业务请求;服务器端接收客户机的所有请求进行处理将结果返回给客户机。基本架构以及流程如图3.1所示。图3.1 餐厅管理系统整体架构图餐厅管理系统主要是提供给商家端使用,商家通过APP发送数据到后台。包括订单管理、菜单管理、数据管理、店铺信息管理等。详细的项目功能结构图如图3.2所示。图3.2 餐厅管理系统功能结构图3.2 系统详细设计3. 2. 1 数据库设计根据需求分析以及餐厅管理系统的需求,对项目数据库进行了设计,可得到一个
27、映射信息数据需求概念的实体关系图模型,设计绘制出的顾客实体关系图如图3.3所示,商家实体关系图如图3.4所示。图3.3 顾客实体关系图图3.4 商家实体关系图数据库设计是MVC设计模式的Model层的实现,是整个餐厅管理系统的数据核心层15。本餐厅管理系统的数据库设计选择了MySQL数据库,MySQL数据库体型小、占有资源少、存储速度快搭配PHP系统后台,组成一个高效的开发环境。本餐厅管理系统的数据库表主要包括商家用户表、优惠券管理表、图片表、收入表、支出表、菜单分类表、菜品表、记事本表、线下单数表、订单表、订单详情表、店铺基本信息表、轮播图表、wifi表。主要数据表详情如表3.1所示。表3.
28、1 数据库列表序号表名描述1manage_user商家用户表2coupon_manage优惠券管理表3restaurant_data店铺基本信息表4income收入表5spending支出表6menu_classify菜单分类表7menu菜品表8offline_num线下单数表9order订单表10order_detail订单详情表商家用户表(manage_user)是用来存储商家的登录注册信息的,其中信息包括商家用户名、用户密码、注册邮箱、用户唯一标识token等。商家用户表以商家编号作为主键。表内商家用户名、用户密码、注册邮箱、用户唯一标识token均不能为空,对邮箱和用户唯一标识16to
29、ken进行唯一约束如表3.2所示。表3.2 商家用户表列名数据类型约束条件描述IdINT(10)PRIMARY KEY商家编号user_nameVARCHAR(45)NOT NULL用户名user_psdVARCHAR(45)NOT NULL密码user_emailVARCHAR(45)NOT NULL注册邮箱tokenVARCHAR(45)NOT NULL用户唯一标识优惠券管理表(coupon_manage)主要用来存储优惠券信息,在优惠券管理表中包括了优惠券编号、优惠券满多少元、优惠券减多少元等信息。优惠券管理表以优惠券编号作为唯一自增长主键约束。优惠券管理表内的优惠券编号、优惠券满多少元
30、、优惠券减多少元等信息均不能为空,如表3.3所示。表3.3 优惠券管理表列名数据类型约束条件描述idcoupon_manageINT(11)PRIMARY KEY优惠券编号fullINT(11)NOT NULL优惠券满多少元minusINT(11)NOT NULL优惠券减多少元店铺基本信息表(restaurant_data)用来存储店铺的信息,信息包括店铺信息编号、店铺logo、店铺联系方式、店铺名称、营业时间、店铺地址省、店铺地址市、店铺地址区、店铺详细地址等。以店铺信息编号作为主键。表内店铺信息编号、店铺logo、店铺联系方式、店铺名称、营业时间、店铺地址省、店铺地址市、店铺地址区、店铺详
31、细地址等信息均不能为空,具体如表3.4所示。表3.4 店铺基本信息表列名数据类型约束条件描述idINT(11)PRIMARY KEY店铺信息编号logoVARCHAR(45)NOT NULL店铺logophoneVARCHAR(45)NOT NULL店铺联系方式nameVARCHAR(45)NOT NULL店铺名称timeVARCHAR(45)NOT NULL营业时间adr_provinceVARCHAR(45)NOT NULL店铺地址省adr_cityVARCHAR(45)NOT NULL店铺地址市adr_areaVARCHAR(45)NOT NULL店铺地址区adr_detailVARCH
32、AR(45)NOT NULL店铺详细地址收入表(income)用来存储收入的数据,信息包括收入编号、收入金额、时间和收入类型等。收入表以收入编号作为唯一主键约束。表内括收入编号、收入金额、时间和收入类型等字段均不能为空,如表3.5所示。表3.5 收入表列名数据类型约束条件描述idINT(11)PRIMARY KEY编号moneyVARCHAR(45)NOT NULL收入金额timeVARCHAR(45)NOT NULL时间typeVARCHAR(45)NOT NULL收入类型支出表(spending)是用来存储支出的数据信息,表内信息包括支出编号、支出金额、支出人token、支出时间、支出类型
33、、支出备注、发票图片。该表以支出编号为自增长作为唯一主键约束。表内支出编号、支出金额、支出人唯一标识token、指出时间、支出类型、支出备注字段均不能为空,如表3.6所示。表3.6 支出表列名数据类型约束条件描述idINT(11)PRIMARY KEY编号moneyVARCHAR(45)NOT NULL支出金额tokenVARCHAR(45)NOT NULL支出人tokentimeCHAR(10)NOT NULL支出时间typeVARCHAR(45)NOT NULL支出类型noteVARCHAR(255)NOT NULL支出备注imgTEXTNULL发票图片菜单分类表(menu_classif
34、y)用来存储菜单分类的信息,信息包括分类编号、分类名称、用户唯一标识token。该表以分类编号为主键。表内分类编号、分类名称、用户唯一标识token等信息均不能为空。如表3.7所示。表3.7 菜单分类表列名数据类型约束条件描述idINT(11)PRIMARY KEY编号classify_nameVARCHAR(45)NOT NULL主题tokenVARCHAR(45)NOT NULL内容菜品表(menu)用来存储所有菜品的信息17,信息包括菜品编号、菜品名称、菜品价格、菜品备注、菜品所属分类、用户唯一标识token、菜品个数。该表以菜品编号为主键。表内菜品编号、菜品名称、菜品价格、菜品备注、菜
35、品所属分类、用户唯一标识token、菜品个数不能为空,如表3.8所示。表3.8 菜品表列名数据类型约束条件描述idmenuINT(11)PRIMARY KEY编号menu_nameVARCHAR(45)NOT NULL菜品名称menu_priceINT(11)NOT NULL菜品价格remarkVARCHAR(45)NOT NULL菜品备注menu_classifyidINT(11)NOT NULL菜品所属分类tokenVARCHAR(45)NOT NULL用户唯一标识numINT(11)NOT NULL菜品个数线下单数表(offline_num)用来存储线下单数信息,信息包括线下单数编号、线
36、下单数量、线下单数量所属的时间。该表以线下单数编号为主键。表内的线下单数编号、线下单数量、线下单数量所属的时间均不能为空,如表3.9所示。表3.9 线下单数表列名数据类型约束条件描述idINT(11)PRIMARY KEY编号numVARCHAR(45)NOT NULL线下单数量timeVARCHAR(45)NOT NULL线下单数量所属的时间订单表(order)用来存储所有订单的信息,信息包括订单编号、桌号、下单时间、联系电话、预约时间、点餐方式、就餐方式、是否使用优惠、使用优惠金额、总钱数、订单状态、结算金额、订单备注等字段。以订单编号为主键,表内订单编号、桌号、下单时间、联系电话、预约时
37、间、点餐方式、就餐方式、是否使用优惠、使用优惠金额、总钱数、订单状态、结算金额均不能为空,如表3.10所示。表3.10 订单表列名数据类型约束条件描述order_idINT(11)PRIMARY KEY编号table_numVARCHAR(45)NOT NULL桌号timeCHAR(10)NOT NULL下单时间phoneVARCHAR(45)NOT NULL联系电话表3.10(续表)order_timeCHAR(10)NOT NULL预约时间order_way1INT(11)NOT NULL点餐方式order_way2INT(11)NOT NULL就餐方式discount_or_notINT
38、(11)NOT NULL是否使用优惠coupon_moneyVARCHAR(45)NOT NULL使用优惠金额total_moneyVARCHAR(45)NOT NULL总钱数statusVARCHAR(45)NOT NULL订单状态final_priceVARCHAR(45)NOT NULL结算金额order_remarkVARCHAR(45)订单备注订单详情表(order_detail)用来存储订单里的菜单列表信息,信息包括订单详情信息编号、订单编号、菜品编号、菜品名称、菜品单价、菜品数量等字段。该表以订单详情信息编号为主键。表内订单详情信息编号、订单编号18、菜品编号19、菜品名称、菜品
39、单价、菜品数量20均不能为空,如表3.11所示。表3.11 订单详情表列名数据类型约束条件描述idINT(11)PRIMARY KEY详情编号idmenuINT(11)NOT NULL菜品编号dish_numINT(11)NOT NULL菜品数量order_idVARCHAR(45)NOT NULL订单编号menu_nameVARCHAR(45)NOT NULL菜品名称menu_priceVARCHAR(45)NOT NULL菜品单价3. 2. 2 功能设计本系统的核心功能为订单管理的实时接收订单、菜单管理的分类修改以及数据管理的折线图显示。在介绍核心功能的同时也要了解在什么对象之间的交互,在
40、什么时间以什么样的顺序传递什么样的信息返回哪些数据,因此也需要介绍每个功能的时序图是什么样的。以下介绍为本系统的核心功能设计。订单管理的实时接收订单功能,完成商家登录APP进入首页可查询到订单数据,当有新增订单时给出提示音并更新数据。订单管理的实时接收订单功能描述,首先商家进入接单界面,即restaurant项目下的index/index1.vue页面,用户在restaurant-order下的index/settleaccounts.vue下单。页面会使用uni.request把请求的操作发送给后台,后台的User Controller会接收操作数据。User Controller传递给ta
41、keOrderList方法,然后通过MySQL语句查询数据,最后将查询结果逐步返回给接单页面并给出提示音。订单管理的实时接收订单功能的时序图如图3.5所示。图3.5 订单管理的实时接收订单功能时序图菜单管理的分类修改功能,商家登录餐厅管理系统APP,进入首页后,点击菜单管理,即可进入分类管理界面,长按已经添加的分类,选择修改分类,输入要修改的分类名称即可修改分类。菜单管理的分类修改功能描述,首先商家进入菜单管理界面,即restaurant项目下的menu/index.vue页面,按照要求在修改弹窗输入要修改的分类名称,点击修改按钮,页面会使用uni.request把请求的操作发送给后台,后台的
42、Admin Controller会接收操作数据。Admin Controller传递给classifyEdit方法,然后通过MySQL语句更新数据,最后将成功结果逐步返回给分类管理页面提示修改成功。菜单管理的分类修改功能的时序图如图3.6所示。图3.6 菜单管理的分类修改功能时序图数据管理的折线图显示功能,商家登录餐厅管理系统APP,进入首页后,点击数据管理,即可进入数据管理界面查看折线图。数据管理的折线图显示功能描述,首先商家进入数据管理界面,即restaurant项目下的money/index.vue页面,页面会使用uni.request把请求的请求发送给后台,后台的Charts Cont
43、roller会接收操作数据。Charts Controller传递给data方法,然后通过MySQL语句查询数据,将查询结果经过处理逐步返回给数据管理页面显示出折线图。数据管理的折线图显示功能的时序图如图3.7所示。图3.7 数据管理的折线图显示功能时序图3.3 本章小结本章主要介绍了餐厅管理系统的系统设计,其中包含了总体设计和详细设计,在详细设计中介绍了数据库的设计以及主要功能设计。通过本章介绍了餐厅管理系统的整体架构,使用实体关系图更加清楚明了的展示出了项目的功能需求,以及系统处理方式,详细介绍了数据表结构。4 系统的实现4.1 开发环境餐厅管理系统的操作系统为Windows 10家庭中文
44、版 64-bit操作系统21,开发环境的CPU为Intel(R) Core(TM) i7-6700HQ CPU 2.60GHz 2.59 GHz,内存为8G。开发环境为Visual Studio Code、HBuilderX,使用了ThinkPHP5.0框架技术以及uniapp前端框架技术。使用MySQL22数据库进行数据存储操作,使用PHP23语言编写项目后台源代码。通过Tomcat服务器对项目部署。4.2 开发规范确保源码具有可维护性,使大部分开发人员经过研究后可以直观的看懂所写代码,具有一定规律性,有一定的注释。命名使用英文翻译,不可使用中文拼音命名,缩进以四个空格为单位,当多个地方使用
45、同一个函数时应放在公共文件中封装起来使用。本餐厅管理系统ThinkPHP5.0所写的项目接口源码全部在项目的index模块下,控制器命名规范使用驼峰法,数据库字段使用小写字母加下划线命名规则。公共函数写在应用目录下的common.php文件下。每个.php文件内的接口一定是相同模块或具有相同特性,使开发者容易找到。本餐厅管理系统的前端uni-app项目文件分为两个,一个用来运行小程序端,另一个用来运行APP端。项目文件中的common文件夹为公共文件。pages文件夹为页面代码文件。页面文件遵循Vue单文件组件(SFC)规范。每个.vue文件包含三种类型的顶级语言块:最多包含一个模板模块最多包
46、含一个脚本模块可以包含一个或多个样式模块,包含css、sass、less等多种封装模式。4.3 数据库实现根据数据库部分设计可知,餐厅管理系统共使用商家用户表、优惠券管理表、图片表、收入表、支出表、菜单分类表、菜品表、记事本表、线下单数表、订单表、订单详情表、店铺基本信息表、轮播图表、wifi表等15张数据表。如图4.1所示。图4.1 餐厅管理系统数据表4.4 核心功能实现商家打开手机APP首先看到的是登录注册页面;如图4.2所示。图4.2 餐厅管理系统登录页面4. 4. 1 实时接收订单功能实现登录餐厅管理系统APP进入首页,也是订单管理页,在图的上方展示了餐厅管理系统商家端的3个导航按钮,分别为未接单、已接单、已完成,点击按钮会自动展示出对应