《基于Android无线电子菜谱系统开发(服务器端)毕业论文.doc》由会员分享,可在线阅读,更多相关《基于Android无线电子菜谱系统开发(服务器端)毕业论文.doc(59页珍藏版)》请在三一办公上搜索。
1、基于Android 无线电子菜谱系统开发(服务器端)摘 要今天我们生活在充满数字的时代,随着GPRS、WLAN等无线技术的突飞猛进,移动生活、移动办公逐渐由概念转为现实,信息数据随手可及。特别是无线数据传输技术的成熟,运营商的大力推广,WLAN的应用日渐普及,并日益影响到人们生活的方方面面,种种梦想化为现实成为了可能。对于传统的餐饮业而言,利用无线网络技术实现点餐系统也成为了现实。 基于Android的无线点餐系统,使用当下较为流行的Android平台,通过和服务器之间的WLAN无线通信实现了灵活、高效、便捷的管理系统,优化了点餐和管理流程,使餐厅的服务和管理得到实质性的提升,提高了品牌形象和
2、核心竞争力。本文详细描述了基于Android无线电子菜谱系统服务器端的需求分析和系统设计,利用Struts、Spring、Hibernate和Axis2实现了一套无线点餐的Web端后台管理系统,同时向系统外部发布包括用户登录,餐桌管理,点菜管理、并台管理、转台管理、查台管理、结台管理、更新管理等的Web Service接口,方便用户在包括Android等在内的各种平台上调用,以实现无线点餐的功能。最后对该系统的特点进行了总结,并展望了其未来的发展方向。关键词: 无线通信;Android;服务器端;Web Service 餐饮Development of Wireless Order Syste
3、m based on Android (Service Side)AbstractToday we live in a digital era, with the rapid progress of the GPRS, WLAN and other wireless technologies, mobile life; mobile office gradually becomes to true from concept, you can get the information and data everywhere. In particular, the growing popularit
4、y of wireless data transmission technology matures, the promotion efforts of the operators, the popularity of WLAN applications grows, and is increasingly affecting all aspects of peoples lives, its possible for all kinds of dreams comes into reality. As for traditional catering industry, the use of
5、 wireless network technology to achieve ordering system has also becomes to reality. Android-based wireless ordering system, using the popular Android platform, build a flexible, efficient and convenient management system to optimize the ordering and management process through wireless communication
6、s between the WLAN and server, this will increase the restaurant service and management substantial and improve brand image and core competitiveness.This paper describes in detail the contents of the requirement and system design of Wireless Ordering System, Use of Struts, Spring, Hibernate and Axis
7、2 Web side of the back-office management system, and release the user logon, table management, ordering management, combination management, change table management, check table management, settle accounts management, update management, and other Web Service interface, it can be called on a variety o
8、f platforms, including Android, etc., in order to achieve a wireless ordering function. This paper finally summarizes the system characteristics and prospects of its future development.Keywords: Wireless communication; Android; server; Web Service目 录1 引言11.1 选题背景和意义11.2 无线点餐系统简介21.3 本文的主要工作及组织结构21.3
9、.1 本文的主要工作:21.3.2 本文的组织结构32 需求分析42.1 功能需求42.2 用户群体描述52.3业务流程分析62.3.1访客浏览62.3.2 点菜流程62.3.3结账流程72.3.4管理用户信息82.4 数据通讯83 概要设计103.1 系统结构设计103.2 总体功能模块设计113.3 模块功能概要设计113.3.1 菜单管理模块113.3.2 餐桌管理模块123.3.3 订单管理模块123.3.4 用户管理模块123.3.5 Web Service接口124 数据库设计134.1 数据库的需求分析134.2 数据库概念设计134.3 数据库逻辑设计154.4 数据库的实现1
10、55 详细设计185.1 菜单管理模块设计195.1.1 整体设计195.1.2 管理员输入信息的传递195.2订单管理模块设计205.2.1 整体设计205.2.2 用户点餐功能215.2.3 邮件通知功能215.2.4 换桌、并桌功能215.2.4 结账功能225.3 用户管理模块设计225.3.1 整体设计225.3.2 用户注册功能225.3.3 角色管理功能225.3.3 个人信息修改功能225.4 Web Service 接口设计226 系统实现246.1 开发环境及相关技术246.2 功能模块的实现266.2.1 菜单管理功能模块的实现266.3 点菜功能模块的实现276.3.1
11、 添加菜品的实现276.3.2 邮件通知的实现286.4 主要界面286.5 数据库操作347 测试报告377.1 测试方案377.2 测试项目377.3 主要测试用例387.4 测试进度407.5 测试方法417.6 测试结果分析417.6.1 测试的局限性417.6.2 评价测试结果的准则41总 结42致 谢43参 考 文 献44附录A 译文45附录B 外文原文511 引言本章主要简述无线点餐系统的选题背景和意义,并对本文的工作和组织结构做了介绍。1.1 选题背景和意义餐饮传统的点菜方式是纯人工操作,由服务员记录顾客点的菜,然后将点菜的信息分别交由吧台收银、酒水、传菜部、后厨等部门,同时收
12、银员要把所有的点菜单输入电脑中,才能生成相应的单据进行结算。在具体工作中容易出现以下问题:(1)手写单据字迹潦草从而导致上错菜、少上菜现象严重(2)加菜和查账程序较繁琐(3)处理特殊口味有遗漏和偏差(4)客人催菜遗忘现象较频繁(5)计算账单易出错(6)不方便人员管理等等。正因如此,无线点餐模式应运而生。采用无线点菜系统,服务员在点菜时就完成了输单过程,发送后系统自动分类,各部门立即分单打印,避免服务人员的来回跑动,节约时间,工作效率极大提高,工作流程更加合理、科学它不仅可以有效地提高餐饮业的工作效率,更可以规范服务体系,提高整体服务质量和管理水平,并为规模化经营提供了坚实的技术基础。相比于传统
13、餐饮行业使用纸质菜单作为主要信息媒介的点菜方式,使用无线点餐系统的优势体现在一下方面:(1)提高工作效率。采用无线点菜系统,服务员在点菜时就完成了输单过程,发送后系统自动分类,各部门立即分单打印,避免服务人员的来回跑动,节约时间,工作效率极大提高,工作流程更加合理、科学。(2) 降低企业经营成本。可以随时调整菜谱(沽清、修改价格、更改图片等),如果是传统方式点菜,随着时间的推移,经常要变动菜谱,浪费纸张,费时费力。(3)创建良好就餐环境,提升企业形象。传统的点菜方式要求服务员要有传递单据的过程,在营业高峰期时,服务员为提高服务效率会经营跑动,造成餐厅混乱。而使用无线点菜系统,服务员就可在餐厅中
14、完成各种操作,避免因服务员来回跑动产生的忙乱现象,大大提升服务品质和服务形象,营造高档就餐环境,吸引更多的顾客。使用终端触屏点菜还可以让顾客看到更多的有关菜的信息,包括中英文菜品介绍、营养成分介绍、视音频等,同时友好的用户界面加上触摸及遥控技术可让顾客享受点餐的乐趣,极大提升餐厅档次和企业形象。在人们生活节奏越来越快的今天,相信无线点餐系统一定会有广阔的发展前途。1.2 无线点餐系统简介无线点餐系统是针对餐饮行业的信息化服务和管理而开发的软件平台。该系统利用WLAN无线通信技术实现服务器端和客户端的通信。提供Web端管理平台,管理员可以对餐厅的环境介绍、菜谱、餐桌进行添加、更新等操作。同时服务
15、器端将这些功能通过Web Service发布给外部系统,能够让Android移动平台上的无线点餐系统客户端调用。点菜环节上,客户端通过调用服务器端的开台、点餐、并台、换台、结算等功能,让服务员可以用Android手持设备在客人餐桌旁完成信息的录入,在服务器端生成订单,大大简化了点菜流程。顾客可以在点菜的同时直观的看到菜品信息,带给顾客良好的体验。1.3 本文的主要工作及组织结构1.3.1 本文的主要工作:无线点餐系统服务器端是整个点餐系统的后台运行支持: (1) 在实现方式上服务器端和客户端通过WLAN,利用Web Service进行通信,使得服务器端只需要关注点餐数据的处理,而不需要对客户端
16、发送的请求进行解析,相比较于HTTP请求的方式,不需要对每次通信进行确认,提高了数据交换的效率。同时,Web Service是一种跨平台的通信方式,可以使用Android或者Windows Phone 的手机或平板作为客户端,使得系统的搭建变得灵活。(2) 在功能方面无线点餐系统考虑到生活中点餐的实际,提供了用户登录,餐桌管理,点菜管理、并台管理、转台管理、查台管理、结台管理、更新管理、打印订单等在内的功能,并在用户提交订单之后,服务器端向用户注册的邮箱内发送一封点餐成功的邮件作为确认。(3) 在系统升级方面管理员可以通过后台的Web端管理界面对菜品信息、餐桌信息进行添加、删除和更新管理。服务
17、器端的数据有改变的时候,客户端可以通过更新操作取得服务器端的最新数据,从而保持数据的一致性。1.3.2 本文的组织结构本文对无线点餐系统软件进行了原理和技术上的讨论,详细描述了该系统的设计思路和方法,在此基础上开发了可以实际使用的应用软件。本文包括内容如下:引言:描述了系统开发的背景和意义,简单介绍了系统的主要功能,并与传统的语音信箱进行了比较。需求分析:利用面向对象的分析方法,建立各种环境下的用例模型,描绘出系统的功能、性能和其它需求。系统设计:使用面向对象的设计方法,在需求分析确定的模型基础上,设计出软件的逻辑模型、软件各组成部分间的内在结构及实现方法。这一过程分为概要设计、数据库设计和详
18、细设计三部分。系统实现:论述了系统各功能模块的实现方法。测试报告:对开发完成的软件进行测试分析。结论:总结本软件的特点和不足。2 需求分析本章主要阐述无线点餐系统的总体需求和相关界定,并由此提炼出系统的业务逻辑结构。2.1 功能需求无线点餐系统的设计与开发应达到以下的总体目标,即主要功能需求: (1)访客浏览功能: 餐厅环境介绍和特色菜的图片采用轮转方式展示,使用户在进入餐厅网站时就可以看到。(2)用户注册功能:当用户准备点菜时需要进行信息的注册,以便在订单完成后发出通知。(3)用户登陆功能:通过正确的用户名和密码进入系统查看菜单并进行点餐。(4)普通用户点餐功能:输入人数、附加信息等选项,进
19、入点菜页面选择要点的菜品,可以看到菜品的名字、图片、价格、描述等信息,通过点击数量两侧的加减按钮选择要点的份数,点击点餐按钮将相应菜品加入到临时订单。(5)查看已点菜临时订单功能:用户点餐过程中可以点击查看详情按钮查看已点菜信息,如果有不需要的菜品可以在此页面中删除,可以继续添加菜品。点菜结束后点击提交订单按钮将点菜信息保存。(6)电子邮件通知功能:用户提交订单后,系统将发送邮件到用户的电子邮件地址,提示用户订单已提交成功。(7)用户订单列表功能:普通用户可以查看自己的所有消费订单,并可将订单打印。未付款订单可以继续加菜。(8)用户信息查看、修改功能:已登陆用户可以查看自己的信息并进行修改。(
20、9)系统管理功能:管理员可以添加禁用用户,并设置用户的角色。(10)Web端管理功能:提供菜单内菜品的添加修改查询,餐桌的添加修改,订单的添加修改查询,付款结账,信息查看,打印菜单。(11)客户端点餐功能:客户端使用Android平板进行点餐,提供点菜、加菜、减菜、并桌、换桌、结账功能。(12)服务器端和客户端通信功能:服务器端向外部发布Web Service,客户端收集用户点菜信息,并通过调用服务器端的Web Service将信息传递到服务器端处理,订单数据保存在服务器端。2.2 用户群体描述(1) 游客指到餐厅网站主页浏览的用户。打开网站首页可以浏览餐厅环境和特色菜肴的展示图片,如果需要点
21、餐可以点击“开始点餐”按钮进行操作。(2) 点餐用户如果未注册需要先注册才能点餐,如果已注册需要用注册账户登陆后开始点餐。(3) 系统管理人员、服务台负责餐厅菜品、餐桌信息的维护和订单结算。可以根据桌号查到最新消费订单,获得订单的详细信息进行结账。图2.1 用例图2.3业务流程分析2.3.1访客浏览(1) 功能定义用户进入餐厅网站主页进行信息浏览,可以查看餐厅环境和特色菜肴。(2) 前置条件1) 网站中放置要显示的环境和菜肴图片。2) 用户从Web端进入餐厅网站首页。(3) 业务流程描述用户进入餐厅网站主页进行信息浏览,可以查看餐厅环境和特色菜肴,如果关闭页面则退出,否则继续浏览。图2.2 访
22、客浏览流程图2.3.2 点菜流程(1) 功能定义用户根据需要选择要点的菜,选择需要的分数,点击点菜按钮,相应的菜被添加到临时订单,查看临时订单后确定点菜信息再提交订单,邮件通知用户点菜完成。(2) 前置条件1) 用户开始点餐前必须已登陆。3) 管理员已经将菜品信息添加到菜谱中。(3) 业务流程描述图2.3 点菜流程图2.3.3结账流程(1) 功能定义用户用餐结束后,结账人员根据桌号和时间找到用户的账单信息,核对无误后结账。(2) 前置条件1) 用户点餐后提交订单。2) 用餐结束。(3) 业务流程描述图2.4 结账流程图2.3.4管理用户信息(1) 功能定义用户登陆后可以修改自己的注册信息。管理
23、员可以查看用户信息并设置用户角色。(2) 前置条件1) 用户必须已经注册并登陆。(3) 业务流程描述图2.5 用户管理流程图2.4 数据通讯服务器端和Android客户端通信可以有多种选择方案,比如HTTP请求方式和Web Service方式。前者在处理请求操作时比较复杂,通用性差,不同语言之间很难共用;后者实现起来比较简单,而且遵循SOAP协议,各种语言之间的通用性也比较强。Web Service的主要目标是跨平台的可互操作性,具有以下优点:(1)跨防火墙的通信;(2)应用程序集成;(3)B2B的集成;(4)软件和数据重用。Web Service也叫XML Web Service, Web
24、Service是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP
25、是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系
26、统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。基于以上特点,本系统采用Web Service方式解决服务器端和客户端的通信问题。3 概要设计本章主要阐述无线点餐系统的总体设计和主要功能模块。3.1 系统结构设计系统主体结构如图3.1所示。其中:数据库:采用MySQL数据库,存储菜品信息、餐桌信息、用户信息、菜单信息,便于数据的管理和查询。Web容器:采用Tomcat服务器,后台管理和Web端点菜模块放在服务器上,同时向外部发布Web Se
27、rvice,Android客户端可以调用相应功能。交换机和无线AP:Web服务器和客户端通信的中间层。点餐设备:Android平板或手机,通过客户端应用添加点菜信息。网络交互:网络是信息传输、接收、共享的虚拟平台,通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享。它是人们信息交流使用的一个工具。无线点餐系统通过无线AP将点餐设备和Web服务器组成一个局域网(LAN),在局域网内进行信息的传输。图3.1 系统结构图3.2 总体功能模块设计我们的点餐系统有Android接入和Web登录两种接入方式,据此可将整个系统分为两大功能模块群。当用户使用Android接入时,主要有订单管理模块
28、。当用户使用Web方式接入时,普通用户有订单管理模块和用户管理模块,管理员有菜单管理模块、餐桌管理模块、订单管理模块和用户管理模块。系统模块结构如图3.2所示。图3.2 功能模块图3.3 模块功能概要设计3.3.1 菜单管理模块此模块主要实现管理员对菜单的管理功能。管理员登陆后可以使用菜单管理模块的“添加菜品”功能向菜谱中加入新的菜品信息。如果菜品的单价或图片等有改变,可以使用“更新菜品”功能对菜谱中的信息进行更改。菜品下架后可以使用“删除菜品”功能从菜谱中删除。3.3.2 餐桌管理模块此模块主要实现管理员对餐厅餐桌的管理功能。当餐厅需要新增桌子或对已有桌台进行更改时,可以使用此模块功能。 3
29、.3.3 订单管理模块用户登陆后可以新增订单开始点菜,点菜完成后需要到临时订单页面确认订单信息,确认无误后点击提交订单完成点菜。就餐过程中可以加菜、去菜、换桌、并桌,就餐完成后可以使用系统进行结账。3.3.4 用户管理模块此模块完成用户个人信息的修改和管理员对用户权限的更改。用户本人登陆后可以修改注册信息和密码,管理员可以修改其他用户的角色和权限。3.3.5 Web Service接口Web Service接口提供以下功能:(1)客户端数据更新服务。当服务器端的菜品和餐桌信息变更时,客户端可以通过调用服务器端的数据更新接口获得最新的数据,从而保持了客户端和服务器的数据一致性。(2)用户点餐服务
30、。订单数据在服务器端维护,用户点餐时调用新增订单及点菜、加菜、减菜、换桌、并桌等接口完成点餐的操作。结账时提供结账的Web Service接口。4 数据库设计本章主要阐述无线点餐系统的数据库需求、设计和表的实现。4.1 数据库的需求分析在设计数据库时,不同主题的信息应存储在不同的表中,并遵循下列规则:同一信息只保存一次;防止删除有用信息。只有在统一信息只保存一次的前提下,才能减少数据冗余性和出错的可能性。为了防止删除有用信息,最好的解决方法就是把不同主题的信息放在不同的数据表中。无线点餐系统需要记录菜谱信息,餐桌信息,订单信息,用户信息。对于订单信息来说,一个订单会点了很多菜,一个菜会在多个订
31、单中被点,属于多对多的关系,在数据表的设计中容易出现数据的冗余。系统中采取了添加一个中间表的方式,将订单信息和菜品信息分别完整的记录在自己相应的表中,中间表则记录订单和菜品的对应关系,减少了数据的冗余。4.2 数据库概念设计在概念设计阶段中,我们从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式,然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定DBMS的限制。(1) 实体和属性的定义用户(用户ID,用户名,用户密码,用户邮箱,用户电话,用户状态,用户类型);餐桌(餐桌ID,餐桌编号,最佳人数,餐桌是否忙,
32、餐桌图片,最大人数,预定时间,是否删除);菜品(菜品ID,名称,图片,价格,折扣,类型,用时,是否删除,描述,附加信息);订单(订单ID,总价,总人数,总菜数,下单时间,预定时间,订单状态,附加信息,描述,用户ID,餐桌ID);订单_菜品(订单菜品ID,描述,点菜份数,订单ID,菜品ID)(2) ER关系图系统的ER关系如图4.1所示。图4.1 ER关系图解释如下:1) 一个餐桌上在不同时间可以有多条订单信息,而一个订单只能有对应着一个餐桌。(换桌或并桌时把订单对应的餐桌ID改掉)2) 一条订单信息对应一个用户,一个用户可以点多个订单。3) 一个订单对应多个订单_菜品记录,一个订单_菜品记录对
33、应一个订单。4)一个订单_菜品记录对应一个菜品,一个菜品对应多个订单_菜品。4.3 数据库逻辑设计由于概念设计的结果是ER图,DBMS一般采用关系型(我们采用的MySQL就是关系型的DBMS),因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。由于关系模型所具有的优点,逻辑设计可充分运用关系数据库规范化理论,是设计过程形式化的进行。数据库关系模式如图4.2所示。图4.2 数据库关系模式图4.4 数据库的实现MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中
34、去。MySQL是一个关系数据库管理系统,关系数据库把数据存放在分立的表格中,这比把所有数据存放在一个大仓库中要好得多,这样做将增加你的速度和灵活性。MySQL是开源的开源意味着任何人都可以使用和修改该软件,任何人都可以从Internet上下载和使用MySQL而不需要支付任何费用。MySQL数据库服务器是一个客户/服务器系统,它由多线程SQL服务器组成,支持不同的后端、多个不同的客户程序和库、管理工具和广泛的应用程序接口(APIs)。 各数据表的物理实现如表4.1、表4.2、表4.3、表4.4、表4.5所示。表4.1 用户表表名用户表 users说明记录用户的个人基本信息编号字段名数据类型是否为
35、空是否为主键是否为外键说明1U_idINTEGERNYN用户ID,自动增长2U_nameVARCHAR(150)NNN用户名3U_passwordVARCHAR(150)NNN密码4U_emailVARCHAR(100)YNN用户邮箱5U_telVARCHAR(45)YYN电话号码6U_statusVARCHAR(45)YNN用户状态,默认”active”7U_roleVARCHAR(45)YNN用户角色,分为”user”和”admin”。表4.2 菜品表表名菜品表 food说明记录菜品的相关信息,为各功能模块服务编号字段名数据类型是否为空是否为主键是否为外键说明1F_idINTEGERNYN
36、菜品编号2F_nameVARCHAR(200)YNN菜品名称3F_picVARCHAR(300)YNN菜品图片地址4F_priceDOUBLEYNN菜品单价5F_discountDOUBLEYNN菜品折扣6F_typeVARCHAR(100)NNN菜品类型7F_timetouseDOUBLEYNN做菜所需时间8F_statusVARCHAR(100)YNN菜品状态,是否删除9F_addonVARCHAR(300)YNN附加信息10F_descriptVARCHAR (800)YNN描述信息表4.3 餐桌表表名餐桌表 ttable说明记录餐桌的相关信息,为各功能模块服务编号字段名数据类型是否为空
37、是否为主键是否为外键说明1T_idINTEGERNYN餐桌编号2T_numINTEGER YNN餐桌号码3T_sizeINTEGER YNN餐桌最佳人数4T_flagINTEGERYNN是否忙的标记5T_picVARCHAR(300)YNN餐桌图片地址6T_maxsizeINTEGERYNN餐桌最大人数7T_pretimeDATETIMEYNN预定时间8T_statusTINYINT(1)YNN餐桌状态,是否删除表4.4 订单表表名订单表 oorder说明记录订单的相关信息,为各功能模块服务编号字段名数据类型是否为空是否为主键是否为外键说明1O_idINTEGERNYN订单编号2O_total
38、priceDOUBLEYNN订单总价3O_totalpeopleINTEGERYNN总人数4F_sizeINTEGERYNN总菜数5O_currenttimeDATETIMEYNN订单时间6O_pretimeDATETIMEYNN预定时间7O_statusVARCHAR(100)YNN订单状态,是否删除8O_addonVARCHAR (300)YNN附加信息9O_descriptVARCHAR(800)YNN描述信息10U_idINTEGER YNY用户ID11T_idINTEGER YNY餐桌ID表4.5 订单_菜品表表名通话留言表 calldetail说明记录呼叫的相关信息,为各功能模块服
39、务编号字段名数据类型是否为空是否为主键是否为外键说明1Of_idINTEGERNY订单_菜品ID2Of_statusVARCHAR(100)YN菜品数量3Of_addonVARCHAR(300)YN订单_菜品附加信息4O_idDATETIMEYN订单ID5F_idDATETIMEYN菜品ID5 详细设计本章主要阐述无线点餐系统各功能模块的实现过程。无线点餐主要由菜品管理模块,餐桌管理模块,订单管理模块,用户管理模块构成。模块中均采用了分层设计,由Action层取得用户数据,Service层做业务逻辑的处理,DAO层负责和数据库的交互。Spring贯穿在三层中,负责Hibernate的配置和be
40、an的依赖注入,方便程序的协同工作。菜品管理分层结构的分层如下:图5.1 分层结构图图5.2 ManageFood类图图5.3 FoodManageService类图5.1 菜单管理模块设计5.1.1 整体设计菜单管理分为添加、更新、删除操作。添加菜品信息由管理员在添加页面上输入。在数据库菜品表中有一列记录菜品当前状态,新添加进去的记录为“active”状态,表示当前菜单中菜品可用。更新操作首先从数据库取得原来的数据显示到页面上,管理员对相应信息做完修改后点击确认按钮,通过业务层之间的调用将数据库中的信息更新。删除分为将记录从数据库清除和将记录标记为不可用两种方式,前一种称之为“硬删除”,后一
41、种称之为“软删除”,本系统中采取了“软删除”的方式,即将要删除的菜品信息在数据库中标记为不可用。在其他显示、查询等操作中,对于标记为不可用状态的数据不做操作。5.1.2 管理员输入信息的传递数据信息从前台由管理员录入,在Struts的action中分别有相应的字段和用户输入的信息对应,在action中获得用户输入的信息后调用业务逻辑Service层的添加菜品方法,将数据传到Service层组成Food实体,然后交由DAO层保存到数据库。数据流图如下:图5.4 信息输入数据流图5.2订单管理模块设计5.2.1 整体设计用户开始点餐时首先输入人数等信息创建一个新的订单,状态为“new”,点菜过程中
42、订单内的点菜数据增加,状态认为“new”,点菜完成时用户点击提交按钮,订单状态变为“submitted”,用户付款后订单状态变为“payed”。参见图5.5“订单状态”状态迁移图。图5.5 订单状态迁移图5.2.2 用户点餐功能用户首先在新增订单页面输入就餐人数等信息,点击提交按钮后新的订单创建,页面跳转到点菜页面,用户浏览菜单信息,选择要点的菜,使用数字输入框左、右两边的加减符号改变要点的份数,点击“点餐”按钮将选择的菜品加入订单。所有要点的菜全部完成时,可以进入查看详情页面查看当前已点了哪些菜,并可以进行加菜、减菜操作。信息确认无误后点击“提交订单”按钮将点菜信息保存到数据库。同时,系统会
43、发送一封邮件到点餐者的注册邮箱。整个点餐过程完成。图5.6 用户点餐时序图5.2.3 邮件通知功能当用户提交订单后系统根据点餐人的注册信息,向点餐人的邮箱内发送一封点餐成功的邮件。可采用JavaMail的相关功能,使用pop3或SMTP协议发送邮件,要求发送者邮箱即系统默认用来发送邮件的邮箱必须支持Pop3或者SMTP协议。5.2.4 换桌、并桌功能顾客在就餐过程中如有需要换桌或并桌可以由以下方式实现:换桌:将当前订单号和目的桌号由用户输入,后台根据输入的数据将当前订单的桌号改为目的桌号。并桌:将用户要求的两个订单桌号改为同一个。5.2.4 结账功能管理员查询到当前要结账的订单,确认订单信息及
44、应付款后点击付款按钮,相应订单信息改为已付款。5.3 用户管理模块设计5.3.1 整体设计用户管理模块的主要功能有用户注册,用户登陆,密码修改,个人信息修改,用户角色管理,权限管理。5.3.2 用户注册功能用户点菜时需要先注册为系统的用户,点击注册链接转到注册界面,填写个人信息后点击注册按钮,确认信息无误后注册成功,转到用户登陆界面。5.3.3 角色管理功能用户角色分为管理员和普通用户两种。管理员可以在用户管理界面设置用户的角色。角色切换后相应的权限也做改变。5.3.3 个人信息修改功能已登陆用户可以修改自己注册的个人信息,系统分配的用户ID和用户角色不可以更改,应由管理员进行管理。5.4 W
45、eb Service 接口设计订单管理模块Web Service提供以下接口:(1)添加订单接口:public Oorder addOrder(int peopleNumber,int tid,String oaddon,String odescript,int uid);peopleNumber:就餐人数;tid:餐桌ID;oaddon:订单附加信息;odescript订单描述;uid:用户ID;返回Oorder实体。(2)点菜功能接口:public boolean orderAddFood(int oid,Map tempMap);oid:订单ID;tempMap:菜品ID和需要份数的键值对;返回boolean,标记点菜是否