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號餐桌狀態為「已預訂」
- 再次預定同一個餐桌,預定失敗,顯示「該餐桌已經預定或者處於就餐中」
測試完畢,通過