基于Android无线电子菜谱系统开发服务器端毕业论文

上传人:痛*** 文档编号:105103788 上传时间:2022-06-11 格式:DOC 页数:63 大小:3.06MB
收藏 版权申诉 举报 下载
基于Android无线电子菜谱系统开发服务器端毕业论文_第1页
第1页 / 共63页
基于Android无线电子菜谱系统开发服务器端毕业论文_第2页
第2页 / 共63页
基于Android无线电子菜谱系统开发服务器端毕业论文_第3页
第3页 / 共63页
资源描述:

《基于Android无线电子菜谱系统开发服务器端毕业论文》由会员分享,可在线阅读,更多相关《基于Android无线电子菜谱系统开发服务器端毕业论文(63页珍藏版)》请在装配图网上搜索。

1、 基于Android 无线电子菜谱系统开发(服务器端)摘 要今天我们生活在充满数字的时代,随着GPRS、WLAN等无线技术的突飞猛进,移动生活、移动办公逐渐由概念转为现实,信息数据随手可与。特别是无线数据传输技术的成熟,运营商的大力推广,WLAN的应用日渐普与,并日益影响到人们生活的方方面面,种种梦想化为现实成为了可能。对于传统的餐饮业而言,利用无线网络技术实现点餐系统也成为了现实。 基于Android的无线点餐系统,使用当下较为流行的Android平台,通过和服务器之间的WLAN无线通信实现了灵活、高效、便捷的管理系统,优化了点餐和管理流程,使餐厅的服务和管理得到实质性的提升,提高了品牌形象

2、和核心竞争力。本文详细描述了基于Android无线电子菜谱系统服务器端的需求分析和系统设计,利用Struts、Spring、Hibernate和Axis2实现了一套无线点餐的Web端后台管理系统,同时向系统外部发布包括用户登录,餐桌管理,点菜管理、并台管理、转台管理、查台管理、结台管理、更新管理等的Web Service接口,方便用户在包括Android等在的各种平台上调用,以实现无线点餐的功能。最后对该系统的特点进行了总结,并展望了其未来的发展方向。关键词: 无线通信;Android;服务器端;Web Service 餐饮58 / 63Development of Wireless Orde

3、r System 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 po

4、pularity 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. Asfor traditional catering industry, the

5、use of 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 communic

6、ations 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

7、 Axis2 Web side of the back-office management system, and release the user logon, table management, ordering management, combinationmanagement, change table management, check table management, settle accounts management, update management, and other Web Service interface, it can be called on a varie

8、ty of 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 本文的主要工作与组织结构

9、21.3.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 数据库

10、的实现155 详细设计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

11、.1 添加菜品的实现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、相比较于 请求的方式,不需要对每次通信进行确认,提高了数据交换的效率。同时,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)用户信息查看、修改功能:已登陆用户可以查看自己的信息并进行修改。(9)系统管理功能:管理员可以添加禁用用户,并设置用户的角色。(1

20、0)Web端管理功能:提供菜单菜品的添加修改查询,餐桌的添加修改,订单的添加修改查询,付款结账,信息查看,打印菜单。(11)客户端点餐功能:客户端使用Android平板进行点餐,提供点菜、加菜、减菜、并桌、换桌、结账功能。(12)服务器端和客户端通信功能:服务器端向外部发布Web Service,客户端收集用户点菜信息,并通过调用服务器端的Web Service将信息传递到服务器端处理,订单数据保存在服务器端。2.2 用户群体描述(1) 游客指到餐厅主页浏览的用户。打开首页可以浏览餐厅环境和特色菜肴的展示图片,如果需要点餐可以点击“开始点餐”按钮进行操作。(2) 点餐用户如果未注册需要先注册才

21、能点餐,如果已注册需要用注册账户登陆后开始点餐。(3) 系统管理人员、服务台负责餐厅菜品、餐桌信息的维护和订单结算。可以根据桌号查到最新消费订单,获得订单的详细信息进行结账。图2.1 用例图2.3业务流程分析2.3.1访客浏览(1) 功能定义用户进入餐厅主页进行信息浏览,可以查看餐厅环境和特色菜肴。(2) 前置条件1) 中放置要显示的环境和菜肴图片。2) 用户从Web端进入餐厅首页。(3) 业务流程描述用户进入餐厅主页进行信息浏览,可以查看餐厅环境和特色菜肴,如果关闭页面则退出,否则继续浏览。图2.2 访客浏览流程图2.3.2点菜流程(1) 功能定义用户根据需要选择要点的菜,选择需要的分数,点

22、击点菜按钮,相应的菜被添加到临时订单,查看临时订单后确定点菜信息再提交订单,通知用户点菜完成。(2) 前置条件1) 用户开始点餐前必须已登陆。3) 管理员已经将菜品信息添加到菜谱中。(3) 业务流程描述图2.3 点菜流程图2.3.3结账流程(1) 功能定义用户用餐结束后,结账人员根据桌号和时间找到用户的账单信息,核对无误后结账。(2) 前置条件1) 用户点餐后提交订单。2) 用餐结束。(3) 业务流程描述图2.4 结账流程图2.3.4管理用户信息(1) 功能定义用户登陆后可以修改自己的注册信息。管理员可以查看用户信息并设置用户角色。(2) 前置条件1) 用户必须已经注册并登陆。(3) 业务流程

23、描述图2.5 用户管理流程图2.4 数据通讯服务器端和Android客户端通信可以有多种选择方案,比如 请求方式和Web Service方式。前者在处理请求操作时比较复杂,通用性差,不同语言之间很难共用;后者实现起来比较简单,而且遵循SOAP协议,各种语言之间的通用性也比较强。Web Service的主要目标是跨平台的可互操作性,具有以下优点:(1)跨防火墙的通信;(2)应用程序集成;(3)B2B的集成;(4)软件和数据重用。Web Service也叫XML Web Service, WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的

24、独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规,它可以支持不同的底层接口,像 (S)或者SMTP。WSDL:(Web S

25、ervices Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以与如何交换这些消息。大多数情况下由软件自动生成和使用。UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/ )来发布,编辑,浏览以与查找注册信息。它采用X

26、ML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。基于以上特点,本系统采用Web Service方式解决服务器端和客户端的通信问题。3 概要设计本章主要阐述无线点餐系统的总体设计和主要功能模块。3.1 系统结构设计系统主体结构如图3.1所示。其中:数据库:采用MySQL数据库,存储菜品信息、餐桌信息、用户信息、菜单信息,便于数据的管理和查询。Web容器:采用Tomcat服务器,后台管理和Web端点菜模块放在服务器上,同时向外部发布Web Service,Android客户端可以调用相应功能。交换机和无线AP:Web服务器和客户端通信的中间层。点餐设备:Andr

27、oid平板或手机,通过客户端应用添加点菜信息。网络交互:网络是信息传输、接收、共享的虚拟平台,通过它把各个点、面、体的信息联系到一起,从而实现这些资源的共享。它是人们信息交流使用的一个工具。无线点餐系统通过无线AP将点餐设备和Web服务器组成一个局域网(LAN),在局域网进行信息的传输。图3.1 系统结构图3.2 总体功能模块设计我们的点餐系统有Android接入和Web登录两种接入方式,据此可将整个系统分为两大功能模块群。当用户使用Android接入时,主要有订单管理模块。当用户使用Web方式接入时,普通用户有订单管理模块和用户管理模块,管理员有菜单管理模块、餐桌管理模块、订单管理模块和用户

28、管理模块。系统模块结构如图3.2所示。图3.2 功能模块图3.3 模块功能概要设计3.3.1 菜单管理模块此模块主要实现管理员对菜单的管理功能。管理员登陆后可以使用菜单管理模块的“添加菜品”功能向菜谱中加入新的菜品信息。如果菜品的单价或图片等有改变,可以使用“更新菜品”功能对菜谱中的信息进行更改。菜品下架后可以使用“删除菜品”功能从菜谱中删除。3.3.2 餐桌管理模块此模块主要实现管理员对餐厅餐桌的管理功能。当餐厅需要新增桌子或对已有桌台进行更改时,可以使用此模块功能。 3.3.3 订单管理模块用户登陆后可以新增订单开始点菜,点菜完成后需要到临时订单页面确认订单信息,确认无误后点击提交订单完成

29、点菜。就餐过程中可以加菜、去菜、换桌、并桌,就餐完成后可以使用系统进行结账。3.3.4 用户管理模块此模块完成用户个人信息的修改和管理员对用户权限的更改。用户本人登陆后可以修改注册信息和密码,管理员可以修改其他用户的角色和权限。3.3.5 Web Service接口Web Service接口提供以下功能:(1)客户端数据更新服务。当服务器端的菜品和餐桌信息变更时,客户端可以通过调用服务器端的数据更新接口获得最新的数据,从而保持了客户端和服务器的数据一致性。(2)用户点餐服务。订单数据在服务器端维护,用户点餐时调用新增订单与点菜、加菜、减菜、换桌、并桌等接口完成点餐的操作。结账时提供结账的Web

30、 Service接口。4 数据库设计本章主要阐述无线点餐系统的数据库需求、设计和表的实现。4.1 数据库的需求分析在设计数据库时,不同主题的信息应存储在不同的表中,并遵循下列规则:同一信息只保存一次;防止删除有用信息。只有在统一信息只保存一次的前提下,才能减少数据冗余性和出错的可能性。为了防止删除有用信息,最好的解决方法就是把不同主题的信息放在不同的数据表中。无线点餐系统需要记录菜谱信息,餐桌信息,订单信息,用户信息。对于订单信息来说,一个订单会点了很多菜,一个菜会在多个订单中被点,属于多对多的关系,在数据表的设计中容易出现数据的冗余。系统中采取了添加一个中间表的方式,将订单信息和菜品信息分别

31、完整的记录在自己相应的表中,中间表则记录订单和菜品的对应关系,减少了数据的冗余。4.2 数据库概念设计在概念设计阶段中,我们从用户的角度看待数据与处理要求和约束,产生一个反映用户观点的概念模式,然后再把概念模式转换成逻辑模式。将概念设计从设计过程中独立开来,使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定DBMS的限制。(1) 实体和属性的定义用户(用户ID,用户名,用户密码,用户,用户,用户状态,用户类型);餐桌(餐桌ID,餐桌编号,最佳人数,餐桌是否忙,餐桌图片,最大人数,预定时间,是否删除);菜品(菜品ID,名称,图片,价格,折扣,类型,用时,是否删除,描述,附加信息);订单(订

32、单ID,总价,总人数,总菜数,下单时间,预定时间,订单状态,附加信息,描述,用户ID,餐桌ID);订单_菜品(订单菜品ID,描述,点菜份数,订单ID,菜品ID)(2) ER关系图系统的ER关系如图4.1所示。图4.1 ER关系图解释如下:1) 一个餐桌上在不同时间可以有多条订单信息,而一个订单只能有对应着一个餐桌。(换桌或并桌时把订单对应的餐桌ID改掉)2) 一条订单信息对应一个用户,一个用户可以点多个订单。3) 一个订单对应多个订单_菜品记录,一个订单_菜品记录对应一个订单。4)一个订单_菜品记录对应一个菜品,一个菜品对应多个订单_菜品。4.3 数据库逻辑设计由于概念设计的结果是ER图,DB

33、MS一般采用关系型(我们采用的MySQL就是关系型的DBMS),因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。由于关系模型所具有的优点,逻辑设计可充分运用关系数据库规化理论,是设计过程形式化的进行。数据库关系模式如图4.2所示。图4.2 数据库关系模式图4.4 数据库的实现MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。MySQL是一个关系数据库管理系统,关系数据库把数据存放在分立的表格中,这比把所有数据存放在一个大仓库中要好得多,这样做将增加你

34、的速度和灵活性。MySQL是开源的开源意味着任何人都可以使用和修改该软件,任何人都可以从Internet上下载和使用MySQL而不需要支付任何费用。MySQL数据库服务器是一个客户/服务器系统,它由多线程SQL服务器组成,支持不同的后端、多个不同的客户程序和库、管理工具和广泛的应用程序接口(APIs)。 各数据表的物理实现如表4.1、表4.2、表4.3、表4.4、表4.5所示。表4.1 用户表表名用户表 users说明记录用户的个人基本信息编号字段名数据类型是否为空是否为主键是否为外键说明1U_idINTEGERNYN用户ID,自动增长2U_nameVARCHAR(150)NNN用户名3U_p

35、asswordVARCHAR(150)NNN密码4U_emailVARCHAR(100)YNN用户5U_telVARCHAR(45)YYN6U_statusVARCHAR(45)YNN用户状态,默认”active”7U_roleVARCHAR(45)YNN用户角色,分为”user”和”admin”。表4.2 菜品表表名菜品表 food说明记录菜品的相关信息,为各功能模块服务编号字段名数据类型是否为空是否为主键是否为外键说明1F_idINTEGERNYN菜品编号2F_nameVARCHAR(200)YNN菜品名称3F_picVARCHAR(300)YNN菜品图片地址4F_priceDOUBLEY

36、NN菜品单价5F_discountDOUBLEYNN菜品折扣6F_typeVARCHAR(100)NNN菜品类型7F_timetouseDOUBLEYNN做菜所需时间8F_statusVARCHAR(100)YNN菜品状态,是否删除9F_addonVARCHAR(300)YNN附加信息10F_descriptVARCHAR (800)YNN描述信息表4.3 餐桌表表名餐桌表 ttable说明记录餐桌的相关信息,为各功能模块服务编号字段名数据类型是否为空是否为主键是否为外键说明1T_idINTEGERNYN餐桌编号2T_numINTEGER YNN餐桌3T_sizeINTEGER YNN餐桌最佳

37、人数4T_flagINTEGERYNN是否忙的标记5T_picVARCHAR(300)YNN餐桌图片地址6T_maxsizeINTEGERYNN餐桌最大人数7T_pretimeDATETIMEYNN预定时间8T_statusTINYINT(1)YNN餐桌状态,是否删除表4.4 订单表表名订单表 oorder说明记录订单的相关信息,为各功能模块服务编号字段名数据类型是否为空是否为主键是否为外键说明1O_idINTEGERNYN订单编号2O_totalpriceDOUBLEYNN订单总价3O_totalpeopleINTEGERYNN总人数4F_sizeINTEGERYNN总菜数5O_curren

38、ttimeDATETIMEYNN订单时间6O_pretimeDATETIMEYNN预定时间7O_statusVARCHAR(100)YNN订单状态,是否删除8O_addonVARCHAR (300)YNN附加信息9O_descriptVARCHAR(800)YNN描述信息10U_idINTEGERYNY用户ID11T_idINTEGERYNY餐桌ID表4.5 订单_菜品表表名通话留言表 calldetail说明记录呼叫的相关信息,为各功能模块服务编号字段名数据类型是否为空是否为主键是否为外键说明1Of_idINTEGERNY订单_菜品ID2Of_statusVARCHAR(100)YN菜品数量

39、3Of_addonVARCHAR(300)YN订单_菜品附加信息4O_idDATETIMEYN订单ID5F_idDATETIMEYN菜品ID5 详细设计本章主要阐述无线点餐系统各功能模块的实现过程。无线点餐主要由菜品管理模块,餐桌管理模块,订单管理模块,用户管理模块构成。模块中均采用了分层设计,由Action层取得用户数据,Service层做业务逻辑的处理,DAO层负责和数据库的交互。Spring贯穿在三层中,负责Hibernate的配置和bean的依赖注入,方便程序的协同工作。菜品管理分层结构的分层如下:图5.1 分层结构图图5.2 ManageFood类图图5.3 FoodManageSe

40、rvice类图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”,点菜过程中订单的点菜数据增加,状态认为“new”,点菜完成时用户点击提交按钮,订单状态变为“submitted”,用户付款后订单状态变为“payed”。参见图5.

42、5“订单状态”状态迁移图。图5.5 订单状态迁移图5.2.2 用户点餐功能用户首先在新增订单页面输入就餐人数等信息,点击提交按钮后新的订单创建,页面跳转到点菜页面,用户浏览菜单信息,选择要点的菜,使用数字输入框左、右两边的加减符号改变要点的份数,点击“点餐”按钮将选择的菜品加入订单。所有要点的菜全部完成时,可以进入查看详情页面查看当前已点了哪些菜,并可以进行加菜、减菜操作。信息确认无误后点击“提交订单”按钮将点菜信息保存到数据库。同时,系统会发送一封到点餐者的注册。整个点餐过程完成。图5.6 用户点餐时序图5.2.3 通知功能当用户提交订单后系统根据点餐人的注册信息,向点餐人的发送一封点餐成功

43、的。可采用JavaMail的相关功能,使用pop3或SMTP协议发送,要求发送者即系统默认用来发送的必须支持Pop3或者SMTP协议。5.2.4 换桌、并桌功能顾客在就餐过程中如有需要换桌或并桌可以由以下方式实现:换桌:将当前订单号和目的桌号由用户输入,后台根据输入的数据将当前订单的桌号改为目的桌号。并桌:将用户要求的两个订单桌号改为同一个。5.2.4 结账功能管理员查询到当前要结账的订单,确认订单信息与应付款后点击付款按钮,相应订单信息改为已付款。5.3 用户管理模块设计5.3.1 整体设计用户管理模块的主要功能有用户注册,用户登陆,密码修改,个人信息修改,用户角色管理,权限管理。5.3.2

44、 用户注册功能用户点菜时需要先注册为系统的用户,点击注册转到注册界面,填写个人信息后点击注册按钮,确认信息无误后注册成功,转到用户登陆界面。5.3.3 角色管理功能用户角色分为管理员和普通用户两种。管理员可以在用户管理界面设置用户的角色。角色切换后相应的权限也做改变。5.3.3 个人信息修改功能已登陆用户可以修改自己注册的个人信息,系统分配的用户ID和用户角色不可以更改,应由管理员进行管理。5.4 Web Service 接口设计订单管理模块Web Service提供以下接口:(1)添加订单接口:public Oorder addOrder(int peopleNumber,int tid,S

45、tring 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,标记点菜是否成功。(3)减菜功能接口:public boolean deleteFood(int orderID,int foodID);orderID:订单ID;food

46、ID:要删除的菜品ID;返回boolean标记删除是否成功。(4)换桌功能接口:public boolean changeTable(int orderID, int currentTableID, int desTableID);orderID:订单ID;currentTableID:当前桌编号;desTableID:要换到的桌号;返回boolean标记换桌是否成功。(5)更改就餐人数接口:public boolean changePeopleNumber(int orderID,int peopleNumber);orderID:订单ID;peopleNumber:就餐人数;返回boole

47、an标记更改人数是否成功。(6)计算订单总价接口:public double getTotalPrice(int orderID);orderID:订单ID;返回订单总价;(7)付款功能接口:public boolean payOrder(int oid);oid:订单ID;返回boolean标记付款是否成功。服务器端向外部发布Web Service时,在web.xml中配置AxisServlet的拦截器,处理Web Service请求。Axis2和Spring结合使用,将上述接口的信息配置在service.xml文件中,由Spring管理Web Service中的bean实例,将接口提供的功

48、能发布到外部。6 系统实现6.1 开发环境与相关技术(1) EclipseEclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse平台的目的,是提供多种软件开发工具的整合机制,这些工具会成为Eclipse外挂程序,平台必须用外挂程序加以扩充才有用处。Eclipse设计美妙之处,在于所有东西都是外挂,除了底层的核心以外。这种外挂设计让Eclipse具备强大扩充性,但更重要的是,此平台提供一个定义明确的机制,让各种外挂程序共通合作(透过延伸点extension points)与贡献(contributio

49、ns),因此新功能可以轻易且无缝地加入平台。(2) TomcatTomcat是一个JSP/Servlet容器,它是在Sun公司的JSWDK基础上发展起来的一个JSP和Servlet规的标准实现,使用Tomcat可以体验JSP和Servlet的最新规。Tomcat具有开源免费,小巧灵活等有点,适合中小型的应用。(3) MySQLMySQL速度快,开源免费,支持多种操作系统,适合一般中小应用。在后台程序中我们使用MySQL自带的C API的方式对其进行操作,在Web查询模块中我们使用JDBC接口。(4) StrutsStruts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望

50、通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以与面向对象的技术水准。Struts是建立在MVC这种公认的好的模式上的,Struts在M、V和C上都有涉与,但它主要是提供一个好的控制器和一套定制的标签库上,也就是说它的着力点在C和V上,因此,它天生就有MVC所带来的一系列优点,如:结构层次分明,高可重用性,增加了程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限控制、校验、国际化、日志等等;(5) SpringSpring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的Java

51、Bean来完成以前只可能由E完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。(6) HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用E的J2EE架构中取代CMP,完成数据持久化的重任。(7) Ax

52、is2Apache Axis2项目是一个基于Java语言的Web services系统服务和客户端的实现。为了从Apache Axis 1.0中获取教训,Apache Axis2提供了一个完整的对象模型和模块化体系结构,这样可以很容易的添加功能以与支持一个新的与Web services相关的说明和建议。Axis2可以让用户很容易的执行以下任务:发送SOAP消息 接收和处理SOAP消息 从一个普通的Java类建立Web service 用WSDL来建立实现服务和客户端的实现类 很容易的从一个服务来获取WSDL 发送和接收带有附件的SOAP消息 建立或者使用基于REST的Web service 6

53、.2 功能模块的实现6.2.1 菜单管理功能模块的实现业务逻辑相关操作放在Service中处理,数据从Action层中传入。添加菜品方法如下:/* * see .wirelessorder.Service.FoodManageService#addFood(java.lang.String, java.lang.String, double, int, int) */Overridepublicboolean addFood(String f_name, String f_pic, double f_price,double fdiscount,double timeToUse, String

54、 f_type,String fdescript,String faddon) Food food=new Food(); food.setFname(f_name); food.setFpic(f_pic); food.setFprice(f_price); food.setFtimeToUse(timeToUse); food.setFtype(f_type); food.setFdescript(fdescript); food.setFaddOn(faddon); food.setFdiscount(fdiscount); food.setFstatus(ONSALE);foodDao

55、.addFood(food);logger.info(In FoodManageServiceImpl-Add Food successfull);returntrue;该方法接收Action层传入的菜品信息,分别为Food实体设置他的属性,然后调用DAO层的保存实体方法将信息存入数据库。分页获得菜单信息方法如下:Overridepublic PageResultSet listFood(String foodType,int pageSize,int page) if(foodType=null|0.equals(foodType) hql=from Food f where f.fstat

56、us=onsale; else hql=from Food f where f.fstatus=onsale and f.ftype=+foodType+; int totalRow = foodDao.queryRowCount(hql); / 计算总记录个数 PageInfo pageinfo = new PageInfo(totalRow, pageSize, page);/获取该页的记录List list = foodDao.listFood(hql, pageinfo.getBeginIndex(), pageinfo.getPageSize(); PageResultSet pag

57、eResultSet = new PageResultSet(); pageResultSet.setList(list); pageResultSet.setPageInfo(pageinfo);logger.info(In FoodManageServiceImpl-List Food successfull);return pageResultSet;该方法接受要显示的菜品状态、分页大小和要显示的页数,返回数据的信息和分页信息。6.3 点菜功能模块的实现6.3.1 添加菜品的实现SuppressWarnings( rawtypes )Overridepublicboolean order

58、AddFood(int oid,Map tempMap) String hql=from Oorder o where o.oid=+oid+;oorder=orderDao.getOrderByString(hql);if(oorder!=null) /IteratorEntry iterator=tempMap.entrySet().iterator();for(IteratorEntry ite = tempMap.entrySet().iterator(); ite.hasNext();) Map.Entry entry = (Map.Entry) ite.next(); int fo

59、odId=(Integer) entry.getKey(); String addCount=entry.getValue().toString(); OrderFood of=new OrderFood(); Food offood=new Food(); offood=foodDaoInOrder.getFoodByID(foodId); of.setOfstatus(ordered); of.setOfaddOn(addCount); of.setOforder(oorder); of.setOffood(offood);orderFoodManageDao.saveOrderFood(of); oorder.setOstatus(submitted);orderDao.updateOrder(oorder);logger.info(In OrderManageServiceImpl-Order Add Food successfull);returntrue; else logger.info(In OrderManageServiceImpl-Order Add Food failed);returnfalse;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!