day01-4-订座功能

打印 上一主题 下一主题

主题 757|帖子 757|积分 2271

满汉楼01-4

4.功能实现03

4.5订座功能

4.5.1功能说明

如果该餐桌处于已经预定或者就餐状态时,不能进行预定,并给出相应提示
4.5.2思路分析

根据显示界面,要考虑以下两种状态

  • 检测餐桌是否存在
  • 检测餐桌的状态
  • 如果餐桌存在且状态为空(即可以预定),在预定过后要修改餐桌状态
4.5.3代码实现

1.修改DiningTableService类

在该类中增加方法getDiningTableById和方法orderDiningTable
  1. //根据id,查询对应的餐桌DiningTable对象
  2. //如果返回null,则表示对应id编号的餐桌不存在
  3. public DiningTable getDiningTableById(int id) {
  4.     //把写完的sql语句放在查询分析其去测试一下
  5.     DiningTable diningTable =
  6.             diningTableDAO.querySingle("select * from diningTable where id=?", DiningTable.class, id);
  7.     return diningTable;
  8. }
  9. //如果餐桌可以预定,调用方法,对其状态进行更新(包括预定人的名字和电话)
  10. public boolean orderDiningTable(int id, String orderName, String orderTel) {
  11.     int update = diningTableDAO.update("update diningTable set state='已经预定',orderName=?,orderTel=? where id=?", orderName, orderTel, id);
  12.     return update > 0;
  13. }
复制代码
2.修改MHLView类

修改处1:在该类中增加方法orderDiningTable,完成订座功能
  1. //完成订座功能
  2. public void orderDiningTable() {
  3.     System.out.println("============预定餐桌============");
  4.     System.out.println("请选择要预定的餐桌编号(-1退出): ");
  5.     int orderId = Utility.readInt();
  6.     if (orderId == -1) {
  7.         System.out.println("============取消预定餐桌============");
  8.         return;
  9.     }
  10.     //readConfirmSelection方法得到 Y 或者 N
  11.     char key = Utility.readConfirmSelection();
  12.     if (key == 'Y') {//要预定
  13.         //根据orderId返回对应的DiningTable,如果为null,说明该编号的餐桌不存在
  14.         DiningTable diningTable = diningTableService.getDiningTableById(orderId);
  15.         if (diningTable == null) {
  16.             System.out.println("============预定餐桌的餐桌不存在============");
  17.             return;
  18.         }
  19.         //判断餐桌的状态是否为 “空”
  20.         if (!"空".equals(diningTable.getState())) {//如果餐桌状态不为空
  21.             //不能预定
  22.             System.out.println("============该餐桌已经预定或者处于就餐中============");
  23.             return;
  24.         }
  25.         //如果前两个判断都不满足,说明餐桌存在且可以预定
  26.         //接收预定信息
  27.         System.out.print("预订人名字: ");
  28.         String orderName = Utility.readString(50);
  29.         System.out.print("预订人电话: ");
  30.         String orderTel = Utility.readString(50);
  31.         //更新餐桌状态
  32.         if (diningTableService.orderDiningTable(orderId, orderName, orderTel)) {
  33.             System.out.println("============预定餐桌成功============");
  34.         } else {
  35.             System.out.println("============预定餐桌失败============");
  36.         }
  37.     } else {
  38.         System.out.println("============取消预定餐桌============");
  39.         return;
  40.     }
  41. }
复制代码
修改处2:在显示界面的内层循环中调用orderDiningTable()方法
4.5.4测试功能


  • 首先登录用户账号


  • 查看当前餐桌状态


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


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


  • 再次预定同一个餐桌,预定失败,显示“该餐桌已经预定或者处于就餐中”
测试完毕,通过

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天空闲话

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表