webService期末大作业-晚餐预定系统(大作业报告源代码)
署说明
NANCHANG UNIVERSITY
题 目: 晚餐预定系统
学 院: 软 件 学 院
专 业: 软 件 工 程
班 级:
完成人数: 1 人
成 员:
起讫日期:
任课教师: 职称: 副教授
完成时间:
填表日期: 年 月 日
一、开发环境的搭建及遇到的主要问题
1.开发环境
根据个人技术背景,选择开发环境如下:
- 将Demo部署为B/S架构的应用;
- 使用集成软件包搭建开发环境:PHP+Apache+MySQL;
- 借助NuSOAP库实现WSDL服务的部署;
2.主要问题
自己对于amp组合建站流程已经比较熟悉,借助集成软件包xampp或者wamp即可轻松搭建出开发环境。
时间和精力主要耗费在NuSOAP库上,大概花了半天时间用于上手。
二、数据库与服务端设计 - 数据库设计
- 数据库共设计两个表:
- 餐桌类集合表(tableset):tid, 餐桌容量,餐桌数目,餐桌可扩充人数,描述
- 预约表(reservation):rid,称谓,手机号,餐桌类型,人数,就餐日期,订餐时间
- 说明:
- tableset表是各种餐桌类别的集合,存放各类餐桌的属性,非常方便餐桌的集中管理;
- reservation表是用户预约的集合,所有的预约在该表中被动态地管理,对于预约的集中管理提供很大的便利;
- 用户在订餐时,首先根据就餐人数确定餐桌类型,结合就餐日期筛选“预约”表,得到空余的餐桌数目,从而安排新的预约。而“取消订餐”,则可以直接在“预约”表中操作。
以上设计对于餐桌和预约的维护都具有很强的可扩展性。
- 初始数据
初始共往tableset表中插入3条数据记录:
10张座位为4的餐桌;
8张座位为8的餐桌(可扩充2个座位);
2张座位为12的餐桌(可扩充3个座位)
2. 主要服务:
- availableDinnerDate——获取有效订餐日期
参数:(无)
返回值:有效订餐日期与今天的距离天数(xsd:int) - checkContact——检查联系方式格式
参数:联系方式(str:xsd:string)
返回值:格式是否正确,取1或0(xsd:int)
说明:只支持国内的手机号码格式 - availableTable——根据用户给出的信息查询可用餐桌
参数:日期(date xsd:int),就餐人数(total xsd:int)
返回值:包含新预定id以及查询状态的组合字串(xsd:string) - addContact——补充联系方式信息
参数:预定id(rid xsd:int),称谓(title xsd:string),联系方式(contact xsd:string)
返回值:状态字串(xsd:string) - cancelReservation——取消一条预定
参数:预定id(rid xsd:int)
返回值:状态字串(xsd:string) - inquiryReservation——查询某用户的预定
参数:联系方式contact(xsd:string)
返回值:一组预订记录(tns:Reservation)
说明:返回值为自定义的复杂类型 - deleteReservation——删除预定
参数:要删除的预定id组合rids(xsd:string)
返回值:操作状态(xsd:int)
说明:可一次删除多条预定
三. 服务部署与客户端调用
Demo的服务端最初由PHP脚本形式呈现,通过调用NuSOAP库将其封装并发布成WSDL。
Demo的客户端采用网页的方式呈现,借用html/css/js技术进行设计,提供“订餐”和“取消订餐”等功能的前台操作界面。
用户的请求通过ajax传递给后台上的一个中转服务脚本hub,该服务根据请求类型调用相应的web service,并将服务调用结果传递给前台。
为了更加真实的模拟web service工作过程,本Demo将“DinnerB应用”和“Web Service服务中心”开发成两个独立的应用,并分别部署到不同的机器上,主要示意图如下:
图1 应用架构简略示意图
四、运行结果截图和文字说明
- 客户端登陆
在浏览器中输入DinnerB应用的网址http://127.0.0.1/dinnerb,来到订餐前台,在主体区域的左侧可以找到主要的功能菜单: - 订餐
- 点击“我要订餐”开始订餐的第一步(共两步),根据提示输入必要信息(带*的项目):就餐日期、就餐人数以及验证码;
- 验证无误后提交,中转服务会收集参数(就餐日期和人数),调用availableTable服务,如果有空余的餐桌,该服务会为用户创建一条“临时预约记录”,并返回该记录id。中转服务首先注册session,存放id,然后返回处理成功信息,并通知前台跳转至下一步页面“填写联系方式”,如图3。若因各种原因导致无法成功订餐(参数不合法或者没有空余餐桌),前台都将提示相应的“订餐失败”信息,如图4中因为就餐人数不符合系统要求导致订餐失败;
图2 DinnerB首页
- 需要说明的是,“就餐日期”中的日期选项是页面加载期间调用availableDinnerDate计算出的正确可订餐日期,这样控制了用户的可出错范围。
图3 有空余座位 图4 订餐失败
- 第二步,用户要在规定时间内填写其联系信息(称谓和联系方式,其中称谓选填),点提交,中转服务调用addContact为之前建立的临时记录补充客户联系信息,成功后返回用户编号(图5),用户在就餐时提供该编号,即可查询到预定的餐桌号(这是设想,本Demo暂时没添加就餐应用)。如因各种原因导致订餐失败(超时或者联系方式不正确),整个订餐过程都将停止,临时记录也会被删除,如图6和图7。
图5 订餐成功
图6 联系信息不正确
图7 填写信息超时
- 说明:由于订餐过程分两步进行,为了防止用户在两步之间人为地耽误过长时间,占用餐桌资源,因此设计出“临时记录”+“有效时间”机制,超时后,系统会自动终止订餐过程,并删除临时记录。
3. 取消订餐
A.点击“取消订餐”,填写订餐时提供的联系方式,提交(如图8)。中转服务调用inquiryReservation查询该用户所有的预约,成功的话,前台会列出该用户所有成功的预约,如图9;
B. 用户选择要取消的订餐选项(可多选),提交后,中转服务会调用deleteReservation删除对应的预约记录,取消订餐成功。为了安全考虑,该页面具有一次性属性,切换菜单或者删除不成功都无法重新回到该页面。
图8 取消订餐——填写联系方式
图8 订餐记录 图9 选择要取消的订餐记录
五、总结
WSDL为web服务提供了详细的接口说明,实现了服务的可阅读性,方便了服务的传播。在此之前,自己一直是一个web站点开发者,自己写服务自己调用,无法体会服务传播中的问题。
大作业给了一个加深WSDL理解的机会,由于自己在web方面的技术积累,做起来可谓是轻松加愉快。于是重点都放在了对WSDL具体实现的学习上。非常要感谢前人做的工作,NuSOAP库使得自己不用再担心去操作WSDL语言,而可以坐等自己的服务被翻译成WSDL接口文件。
家好啊,欢迎来到web测评。本期给大家带来一套php开发的Dinner订餐系统php源码,上次是谁要的系统项目啊,帮你找到了,还说不会搭建,让我帮忙录制一期教程,趁着今天有空,简单的录制测试了一下,部署方式还是很容易的。感兴趣的朋友可以自行下载学习。
技术架构
- PHP7.0 + nginx + mysql + JS + CSS + HTML
- cnetos7以上 + 宝塔面板
文字搭建教程
- 将项目解压之后放到本地web根目录
- 打开浏览器,访问:http://localhost/dinner/yii/requirements/ 这步目的主要是检测本地环境达不到要求,由于该系统是用yii框架写的,yii内置一个检测环境的文件
- 导入sql文件,sql文件的位置在webroot/dinner/protected/data/dinner.sql
- 配置config;打开webroot/dinner/protected/config/main.php 配置自己数据库名称、用户名、密码
- 修改目录权限,由于有些目录会动态的写文件,例如assets、runtime目录,所以为了简便,直接将dinner/目录权限修改成777
- 完成以上的步骤,就可以访问了
PS:不会安装宝塔的同学可以翻一下我之前的教程。
系统介绍
Dinner 是一款挺适合公司内部使用的订餐系统,之前开发这个订餐系统。主要是商家,菜单,订餐,会员等等的一些管理,方便前台妹子的工作。
系统实测截图
获取方式查看视频教程
php宝塔搭建实战Dinner订餐系统php源码
关于资源下载
- 网站中的所有源码资源,均不是该源码资源的价格,本身开源源码是不用付费的。这是赞助录制搭建视频教程、收集整理资源、服务器维护的基础开销费用!
- 不想付费的朋友可以自行去GitHub或者Gitee搜索相关开源项目,了解其开源协议。再根据视频视频教程来搭建即可。
免责声明
- 本站上传的源码,均为平台购买,作者提供,网友推荐,互联网平台整理而来。
- 上述源码的知识产权及相关权利归作者及制作公司所有。
- 上述源码仅供学习参考及技术交流之用,未经源码的知识产权权利人同意,用户不得进行商业使用。
- 上述源码如需商业使用,请自行联系源码知识产权权利人进行授权,否则,我们将积极配合作品知识产权权利人 一起维权。
- 上述源码如有侵犯您的知识产权,请您立刻联系我们,我们会在24小时内做删除下架处理。
今天给大家演示一款由jsp+ssh+mysql实现的Java web订餐系统,其中struts版本是struts2,此外还用到了redis缓存,国际化等struts框架特性技术,系统项目源代码在【猿来入此】获取!https://www.yuanlrc.com/product/details.html?pid=167&fuid=6666系统实现了管理员在后台管理菜品类型、菜品信息、菜品图片、用户信息、订单信息等功能。用户注册、登录,添加菜品到购物车、提交订单、查看订单、修改个人信息等功能。项目附带有完整源码和详细视频指导运行教程,