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,并以超链接形式标明文章原始出处,否则将 ...
随机推荐
- 面向开发的内存调试神器,如何使用ASAN检测内存泄漏、堆栈溢出等问题
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 介绍 如何使用 ASAN 检测内存泄漏 检测悬空指针访问 检测堆溢出 C++ 中的new/delete不匹配 检测栈 ...
- 最新MongoDB安装,学习笔记
MongoDB 导读 作者还在陆续更新中,如果喜欢作者的笔记,觉得可以学习到有帮助,后面会不断学习新内容,就点个关注吧,如果觉得文章有关注可以点个赞,谢谢: 官网:https://www.mongod ...
- 二手车价格预测 | 构建AI模型并部署Web应用 ⛵
作者:韩信子@ShowMeAI 数据分析实战系列:https://www.showmeai.tech/tutorials/40 机器学习实战系列:https://www.showmeai.tech/t ...
- 论文解读(ChebyGIN)《Understanding Attention and Generalization in Graph Neural Networks》
论文信息 论文标题:Understanding Attention and Generalization in Graph Neural Networks论文作者:Boris Knyazev, Gra ...
- 透过inode来理解硬链接和软链接
什么是inode? 每个文件都对应一个唯一的inode,inode用来存储文件的元信息,包括: 对应的文件 文件字节数 文件数据块的位置 文件的inode号码 文件的硬链接数 文件的读写权限 文件的时 ...
- Jira使用浅谈篇一
本篇参考: https://www.jianshu.com/u/9dd427d9ad94 Salesforce 生命周期管理(二)Agile & Scrum 浅谈 我们都知道 salesfor ...
- [SDOI2012]走迷宫 (强连通分量缩点,动态规划,高斯消元)
题面 Morenan被困在了一个迷宫里.迷宫可以视为N个点M条边的有向图,其中Morenan处于起点S,迷宫的终点设为T.可惜的是,Morenan非常的脑小,他只会从一个点出发随机沿着一条从该点出发的 ...
- 使用IntelliJ IDEA新建一个spring boot项目
好家伙, 使用IntelliJ IDEA新建一个spring boot项目 目的很简单,就是网页上出现一个"hello world" 别的暂时不管 首先关于工具IntelliJ I ...
- window环境导入odbc数据源
<ODBC指南>中只介绍了window环境如何配置odbc数据源,但是没有介绍如何导入数据源驱动,这里做个补充. 在没有导入数据源驱动之前,按照文档操作是查不到kingbaseES的odb ...
- KingbaseES 数据库删除功能组件
关键字: KingbaseES.卸载.删除功能 一.安装后检查 在安装完成后,可以通过以下几种方式进行安装正确性验证: 1. 查看安装日志,确认没有错误记录; 2. 查看开始菜单: 查看应用程 ...