满汉楼01-44.功能实现034.5订座功能4.5.1功能说明如果该餐桌处于已经预定或者就餐状态时 , 不能进行预定 , 并给出相应提示
【day01-4-订座功能】
文章插图
4.5.2思路分析根据显示界面 , 要考虑以下两种状态
- 检测餐桌是否存在
- 检测餐桌的状态
- 如果餐桌存在且状态为空(即可以预定) , 在预定过后要修改餐桌状态
//根据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 或者 Nchar 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号餐桌状态为“已预订”
文章插图
- 再次预定同一个餐桌 , 预定失败 , 显示“该餐桌已经预定或者处于就餐中”
经验总结扩展阅读
- 华为nova9支持NFC吗_华为nova9有NFC功能吗
- 三星手机截屏功能怎么操作(三星敲击截图)
- 华为儿童电话手表4x功能有些什么_华为儿童电话手表4x功能
- 华为watchfit可以打电话吗_华为watchfit功能
- 华为watchfit手表有什么功能_华为watchfit手表功能介绍
- iqooneo5有nfc吗_iqooneo5支持nfc吗
- 华为荣耀50怎么设置红包提醒功能(华为怎么开启红包提醒)
- Redmi Watch2功能_Redmi Watch2功能详情
- 苹果默认不再接受隔空投送 如何看待这一功能调整
- 华为手环6怎么样_华为手环6功能详解