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,并以超链接形式标明文章原始出处,否则将 ...
随机推荐
- vant自动上传图片/文件
vant自动上传文件/图片 vant上传图片与elementUI有所不同,没有自动上传功能,所以与后端进行接口对接的时候可以在after-read中将文件进行上传 html页面 <!-- 上传图 ...
- 趣味问题《寻人启事》的Python程序解决
偷懒了很久,今天我终于又来更新博客了~ 最近,我看到了一个趣味问题,或者说是数学游戏:<寻人启事>. 在表述这个问题前,我们需要了解一下"冰雹猜想": 对于任意一个正整 ...
- 运行 vue 项目时报错
INFO Starting development server... ERROR Error: C - D:\T32890\Desktop\my-project\node_modules\@vue\ ...
- 技术分享 | 浅谈mysql语法解析调试方法
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 本文向您介绍一种利用mysql解析器和bison的调试选项进行sql语法解析跟踪 ...
- 宜宾市黑烟车电子抓拍系统App
2020.11 - 2021.06负责手机App开发 项目说明: 主要用于管理人员的移动办公,通过与管理平台共享数据库,实现:人工审核.推送交警.账户管理.信息查询.数据统计.点位电子地图.设备 ...
- 使用 Liquibase 管理数据库版本 - SpringBoot 2.7 .2 实战基础
优雅哥 SpringBoot 2.7 .2 实战基础 - 05 -使用 Liquibase 管理数据库版本 在企业开发中,数据库版本管理好像是一个伪命题,大多项目都是通过 Power Designer ...
- ZOJ 3537 (凸包 + 区间DP)(UNFINISHED)
#include "Head.cpp" const int N = 10007; int n, m; struct Point{ int x,y; bool operator &l ...
- PerfView专题 (第四篇):如何寻找 C# 中程序集泄漏
一:背景 前两篇我们都聊到了非托管内存泄漏,一个是 HeapAlloc ,一个是 VirtualAlloc,除了这两种泄漏之外还存在其他渠道的内存泄漏,比如程序集泄漏,这一篇我们就来聊一聊. 二: 程 ...
- 对Jmeter-基础线程组的一点解释
概述 线程组是一个测试计划的起点.测试计划中所有元件的运行都必须依托于线程组.每个线程组都会独立的运行测试计划,互不干扰 线程数 线程数在并发用户场景下表示用户数,比如100用户同时发起请求 线程数在 ...
- SpringBean的实例化
在Spring框架中,想使用Spring容器中的Bean,需要先实例化Bean SpringBean的实例化有3种方式 构造方法实例化 (最常用) 在Java配置类中,写一个构造方法,在这个构造方法中 ...