day01-4-订座功能
满汉楼01-4
4.功能实现03
4.5订座功能
4.5.1功能说明
如果该餐桌处于已经预定或者就餐状态时,不能进行预定,并给出相应提示

4.5.2思路分析
根据显示界面,要考虑以下两种状态
- 检测餐桌是否存在
- 检测餐桌的状态
- 如果餐桌存在且状态为空(即可以预定),在预定过后要修改餐桌状态
4.5.3代码实现
1.修改DiningTableService类
在该类中增加方法getDiningTableById和方法orderDiningTable
//根据id,查询对应的餐桌DiningTable对象
//如果返回null,则表示对应id编号的餐桌不存在
public DiningTable getDiningTableById(int id) {
//把写完的sql语句放在查询分析其去测试一下
DiningTable diningTable =
diningTableDAO.querySingle("select * from diningTable where id=?", DiningTable.class, id);
return diningTable;
}
//如果餐桌可以预定,调用方法,对其状态进行更新(包括预定人的名字和电话)
public boolean orderDiningTable(int id, String orderName, String orderTel) {
int update = diningTableDAO.update("update diningTable set state='已经预定',orderName=?,orderTel=? where id=?", orderName, orderTel, id);
return update > 0;
}
2.修改MHLView类
修改处1:在该类中增加方法orderDiningTable,完成订座功能
//完成订座功能
public void orderDiningTable() {
System.out.println("============预定餐桌============");
System.out.println("请选择要预定的餐桌编号(-1退出): ");
int orderId = Utility.readInt();
if (orderId == -1) {
System.out.println("============取消预定餐桌============");
return;
}
//readConfirmSelection方法得到 Y 或者 N
char key = Utility.readConfirmSelection();
if (key == 'Y') {//要预定
//根据orderId返回对应的DiningTable,如果为null,说明该编号的餐桌不存在
DiningTable diningTable = diningTableService.getDiningTableById(orderId);
if (diningTable == null) {
System.out.println("============预定餐桌的餐桌不存在============");
return;
}
//判断餐桌的状态是否为 “空”
if (!"空".equals(diningTable.getState())) {//如果餐桌状态不为空
//不能预定
System.out.println("============该餐桌已经预定或者处于就餐中============");
return;
}
//如果前两个判断都不满足,说明餐桌存在且可以预定
//接收预定信息
System.out.print("预订人名字: ");
String orderName = Utility.readString(50);
System.out.print("预订人电话: ");
String orderTel = Utility.readString(50);
//更新餐桌状态
if (diningTableService.orderDiningTable(orderId, orderName, orderTel)) {
System.out.println("============预定餐桌成功============");
} else {
System.out.println("============预定餐桌失败============");
}
} else {
System.out.println("============取消预定餐桌============");
return;
}
}
修改处2:在显示界面的内层循环中调用orderDiningTable()方法

4.5.4测试功能
- 首先登录用户账号

- 查看当前餐桌状态

- 选择预定餐桌功能,输入餐桌编号等信息,显示预定餐桌成功

- 再次查看当前餐桌状态,显示1号餐桌状态为“已预订”

- 再次预定同一个餐桌,预定失败,显示“该餐桌已经预定或者处于就餐中”

测试完毕,通过
day01-4-订座功能的更多相关文章
- jQuery在线选座订座(影院篇)
原文:jQuery在线选座订座(影院篇) 我们在线购票时(如电影票.车票等)可以自己选座.开发者会在页面上列出座次席位,用户可以一目了然的看到可以选择的座位及支付.本文以电影院购票为例,为您展示如何选 ...
- android 自定义view之选座功能
效果图: 界面比较粗糙,主要看原理. 这个界面主要包括以下几部分 1.座位 2.左边的排数 3.左上方的缩略图 4.缩略图中的红色区域 5.手指移动时跟随移动 6.两个手指缩放时跟随缩放 主要技术点 ...
- jQuery在线选座订座(高铁版)
除了电影院在线选座,我们还会接触到飞机机舱选座,当然也有汽车票火车票选座的.假如有一天买火车票也提供在线选座,那么今天我来给大家介绍下如何使用jQuery选座插件完成高铁列车座位布置.选座.不同等级座 ...
- 使用avalon 实现一个订座系统
avalon对交互非常复杂的WEB应用具有天然的优势,它拥有两大神器:计算属性(这相当于后端WPF的DependencyProperty)与$watch回调. 我们的订餐系统的要求如下,它有一个总额统 ...
- 微信二维码占座 书本水杯板砖都out了
还在用书本.水杯.坐垫.板砖.铁链占座?你OUT了.新学期开学,重大图书馆开通了扫二维码占座功能,同学们只需扫一扫贴在桌子上的二维码,就可以占座.不过,占座有时间限制,如果没有在规定的时间内返回,系统 ...
- etlpy: 并行爬虫和数据清洗工具(开源)
etlpy是python编写的网页数据抓取和清洗工具,核心文件etl.py不超过500行,具备如下特点 爬虫和清洗逻辑基于xml定义,不需手工编写 基于python生成器,流式处理,对内存无要求 内置 ...
- #研发解决方案介绍#基于ES的搜索+筛选+排序解决方案
郑昀 基于胡耀华和王超的设计文档 最后更新于2014/12/3 关键词:ElasticSearch.Lucene.solr.搜索.facet.高可用.可伸缩.mongodb.SearchHub.商品中 ...
- ThroughRain第一次冲刺总结
团队名:ThroughRain 项目确定:<餐厅到店点餐系统> 项目背景:本次项目是专门为餐厅开发的一套订餐系统.大家有没有发现在节假日去餐厅吃饭会超级麻烦,人很多, 热门的餐厅基本没有座 ...
- 自建数据源(RSO2)、及数据源增强
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
随机推荐
- [LNOI2022]盒
\(LNOI2022\)盒 由于是加的形式,那么可以套路的拆贡献,枚举每条边的贡献就好了 \(40pts\) //比较显然的事情 //首先确定了一个B数组之后 //最小的移动应该是 //设左右两侧比原 ...
- 解决beego运行程序报错问题:stderr: go: github.com/astaxie/beego@v1.12.1: missing go.sum entry
使用命令bee new beegodemo02创建beego程序后,使用VScode打开后,便会报错无法运行,报错信息如下: Error loading workspace: err: exit st ...
- 【喜讯】Apache DolphinScheduler 荣获 “2020 年度十大开源新锐项目”
经 10000+ 开发者公开票选,20+专家评审. 10+ 主编团打分,历经数月打磨,11 月 19 日,由InfoQ 发起并组织的[2020中国技术力量年度榜单评选]结果正式揭晓. 2020 年度十 ...
- Luogu3090 [USACO13NOV]空荡荡的摊位Empty Stalls (动态规划)
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> ...
- Spring源码 11 IOC refresh方法6
参考源 https://www.bilibili.com/video/BV1tR4y1F75R?spm_id_from=333.337.search-card.all.click https://ww ...
- java-Collection,List简单使用与方法/(集合使用-中)
1.1集合只存放引用类型的元素并且集合存放的时元素的引用(地址)1.2新循环遍历集合 Collection c = new ArrayList(); c.add("one"); c ...
- Ceph 块存储 创建的image 映射成块设备
将创建的volume1映射成块设备 [root@mysql-server ceph]# rbd map rbd_pool/volume1 rbd: sysfs write failed RBD ima ...
- ThreadLocal for Golang
背景 由于官方不支持 ThreadLocal,在业务中传参经常需要传递 context,造成参数混乱,开发效率低下,跨方法实现传参变得困难. 需要解决的核心问题: 1. 数据存储,g.labels u ...
- C#基础_XML文件介绍
XML简介 XML 被设计用来传输和存储数据. HTML 被设计用来显示数据. 什么是 XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语 ...
- Linux KVM创建虚拟机
原博文(https://www.cnblogs.com/supermao12/p/16382767.html) 开启虚拟化 KVM需要64位操作系统 [root@localhost 4.18.0-19 ...