整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

webService期末大作业-晚餐预定系统(大作业

webService期末大作业-晚餐预定系统(大作业报告源代码)

署说明


NANCHANG UNIVERSITY

题 目: 晚餐预定系统

学 院: 软 件 学 院

业: 软 件 工 程

级:

完成人数: 1 人

员:

起讫日期:

任课教师: 职称: 副教授

完成时间:

填表日期: 年 月 日

一、开发环境的搭建及遇到的主要问题

1.开发环境

根据个人技术背景,选择开发环境如下:

  1. 将Demo部署为B/S架构的应用;
  2. 使用集成软件包搭建开发环境:PHP+Apache+MySQL;
  3. 借助NuSOAP库实现WSDL服务的部署;
    2.主要问题
    自己对于amp组合建站流程已经比较熟悉,借助集成软件包xampp或者wamp即可轻松搭建出开发环境。
    时间和精力
    主要耗费在NuSOAP库上,大概花了半天时间用于上手。
    二、数据库与服务端设计
    1. 数据库设计


  1. 数据库共设计两个表:
    1. 餐桌类集合表(tableset):tid, 餐桌容量,餐桌数目,餐桌可扩充人数,描述
    2. 预约表(reservation):rid,称谓,手机号,餐桌类型,人数,就餐日期,订餐时间


  1. 说明:
    1. tableset表是各种餐桌类别的集合,存放各类餐桌的属性,非常方便餐桌的集中管理;
    2. reservation表是用户预约的集合,所有的预约在该表中被动态地管理,对于预约的集中管理提供很大的便利;
    3. 用户在订餐时,首先根据就餐人数确定餐桌类型,结合就餐日期筛选“预约”表,得到空余的餐桌数目,从而安排新的预约。而“取消订餐”,则可以直接在“预约”表中操作。
      以上设计对于餐桌和预约的维护都具有很强的可扩展性。


  1. 初始数据

初始共往tableset表中插入3条数据记录:

10张座位为4的餐桌;

8张座位为8的餐桌(可扩充2个座位);

2张座位为12的餐桌(可扩充3个座位)

2. 主要服务:

  1. availableDinnerDate——获取有效订餐日期
    参数:(无)
    返回值:有效订餐日期与今天的距离天数(xsd:int)
  2. checkContact——检查联系方式格式
    参数:联系方式(str:xsd:string)
    返回值:格式是否正确,取1或0(xsd:int)
    说明:只支持国内的手机号码格式
  3. availableTable——根据用户给出的信息查询可用餐桌
    参数:日期(date xsd:int),就餐人数(total xsd:int)
    返回值:包含新预定id以及查询状态的组合字串(xsd:string)
  4. addContact——补充联系方式信息
    参数:预定id(rid xsd:int),称谓(title xsd:string),联系方式(contact xsd:string)
    返回值:状态字串(xsd:string)
  5. cancelReservation——取消一条预定
    参数:预定id(rid xsd:int)
    返回值:状态字串(xsd:string)
  6. inquiryReservation——查询某用户的预定
    参数:联系方式contact(xsd:string)
    返回值:一组预订记录(tns:Reservation)
    说明:返回值为自定义的复杂类型
  7. 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 应用架构简略示意图
四、运行结果截图和文字说明

    1. 客户端登陆
      在浏览器中输入DinnerB应用的网址http://127.0.0.1/dinnerb,来到订餐前台,在主体区域的左侧可以找到主要的功能菜单:
    2. 订餐
      1. 点击“我要订餐”开始订餐的第一步(共两步),根据提示输入必要信息(带*的项目):就餐日期、就餐人数以及验证码;
      2. 验证无误后提交,中转服务会收集参数(就餐日期和人数),调用availableTable服务,如果有空余的餐桌,该服务会为用户创建一条“临时预约记录”,并返回该记录id。中转服务首先注册session,存放id,然后返回处理成功信息,并通知前台跳转至下一步页面“填写联系方式”,如图3。若因各种原因导致无法成功订餐(参数不合法或者没有空余餐桌),前台都将提示相应的“订餐失败”信息,如图4中因为就餐人数不符合系统要求导致订餐失败;


图2 DinnerB首页

      1. 需要说明的是,“就餐日期”中的日期选项是页面加载期间调用availableDinnerDate计算出的正确可订餐日期,这样控制了用户的可出错范围。




图3 有空余座位 图4 订餐失败

  1. 第二步,用户要在规定时间内填写其联系信息(称谓和联系方式,其中称谓选填),点提交,中转服务调用addContact为之前建立的临时记录补充客户联系信息,成功后返回用户编号(图5),用户在就餐时提供该编号,即可查询到预定的餐桌号(这是设想,本Demo暂时没添加就餐应用)。如因各种原因导致订餐失败(超时或者联系方式不正确),整个订餐过程都将停止,临时记录也会被删除,如图6和图7。


图5 订餐成功


图6 联系信息不正确


图7 填写信息超时

  1. 说明:由于订餐过程分两步进行,为了防止用户在两步之间人为地耽误过长时间,占用餐桌资源,因此设计出“临时记录”+“有效时间”机制,超时后,系统会自动终止订餐过程,并删除临时记录。

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以上 + 宝塔面板

文字搭建教程

  1. 将项目解压之后放到本地web根目录
  2. 打开浏览器,访问:http://localhost/dinner/yii/requirements/ 这步目的主要是检测本地环境达不到要求,由于该系统是用yii框架写的,yii内置一个检测环境的文件
  3. 导入sql文件,sql文件的位置在webroot/dinner/protected/data/dinner.sql
  4. 配置config;打开webroot/dinner/protected/config/main.php 配置自己数据库名称、用户名、密码
  5. 修改目录权限,由于有些目录会动态的写文件,例如assets、runtime目录,所以为了简便,直接将dinner/目录权限修改成777
  6. 完成以上的步骤,就可以访问了

PS:不会安装宝塔的同学可以翻一下我之前的教程。

系统介绍

Dinner 是一款挺适合公司内部使用的订餐系统,之前开发这个订餐系统。主要是商家,菜单,订餐,会员等等的一些管理,方便前台妹子的工作。

系统实测截图

获取方式查看视频教程

php宝塔搭建实战Dinner订餐系统php源码

关于资源下载

  1. 网站中的所有源码资源,均不是该源码资源的价格,本身开源源码是不用付费的。这是赞助录制搭建视频教程、收集整理资源、服务器维护的基础开销费用!
  2. 不想付费的朋友可以自行去GitHub或者Gitee搜索相关开源项目,了解其开源协议。再根据视频视频教程来搭建即可。

免责声明

  1. 本站上传的源码,均为平台购买,作者提供,网友推荐,互联网平台整理而来。
  2. 上述源码的知识产权及相关权利归作者及制作公司所有。
  3. 上述源码仅供学习参考及技术交流之用,未经源码的知识产权权利人同意,用户不得进行商业使用。
  4. 上述源码如需商业使用,请自行联系源码知识产权权利人进行授权,否则,我们将积极配合作品知识产权权利人 一起维权。
  5. 上述源码如有侵犯您的知识产权,请您立刻联系我们,我们会在24小时内做删除下架处理。
今天给大家演示一款由jsp+ssh+mysql实现的Java web订餐系统,其中struts版本是struts2,此外还用到了redis缓存,国际化等struts框架特性技术,系统项目源代码在【猿来入此】获取!https://www.yuanlrc.com/product/details.html?pid=167&fuid=6666系统实现了管理员在后台管理菜品类型、菜品信息、菜品图片、用户信息、订单信息等功能。用户注册、登录,添加菜品到购物车、提交订单、查看订单、修改个人信息等功能。项目附带有完整源码和详细视频指导运行教程,