在ivx的案例中俭识,后臺經常使用到的組件就是數據庫了,一些需要持久化保存的數據都會保存在數據庫中以便每次打開案例都能讀取到這些數據灾搏,數據可能為用戶信息泄伪,操作記錄等等殴蓬。今天我們就來實現一個預約會議室的模型,要實現的功能就是用戶可以選擇使用會議室的時間段并提交蟋滴,如果之前的預約中不包含這個時間段就可以預約成功并增加一條記錄染厅,下面就來說說具體步驟。
一.數據庫
數據庫中我們添加了三個字段津函,預訂人肖粮,開始時間和結束時間,預訂人的字段類型為文本即可尔苦,而開始時間和結束時間的字段類型要選擇時間涩馆,可以注意到這兩個字段的右上角圖標是鐘表樣式行施。
二.預定會議室服務
服務中的三個接收參數分別對應數據庫添加的三個字段,另外服務需要返回最終的執(zhí)行結果魂那,我們使用“是否成功”標識預約成功與否蛾号,“重復記錄”則存放與提交中的時間段有重疊的歷史預約記錄。服務中我們先對數據庫中的數據進行一個篩選輸出涯雅,時間段發(fā)生重疊有三種情況:1數據庫中數據的開始時間在提交時間段內鲜结;2數據庫中數據的結束時間在提交時間段內;3數據庫中數據的時間段被包含在提交時間段內活逆,所以篩選的條件如圖精刷。注意我們數據庫的字段類型為時間,所以條件中的判斷符是“時間>”和“時間<”划乖。
另外注意一下ivx中且條件和或條件的結構是這樣的:
依此條件輸出后如果輸出結果有數據贬养,說明有時間段重疊挤土,預約失敗琴庵,;如果輸出結果是空的仰美,說明沒有時間段重疊迷殿,我們將新的預約寫入數據庫并返回預約成功。
三.前臺
1.預約事件
前臺界面上方的絕對定位容器用于提交預約咖杂,第一行是用于輸入預約人姓名的輸入框庆寺,第二行的輸入框則是用來展示選擇好的時間段,其內容已經與“開始時間”诉字、“結束時間”兩個文本變量進行了數據綁定懦尝,點擊它后會彈出一個手機日期時間選擇器。
手機日期時間選擇器是拓展組件的一種壤圃,我們可以設定選取單個日期時間還是陵霉,時間段模式,并限制選取日期時間的范圍伍绳,在點擊確認事件中我們可以收到返回的參數“開始日期”踊挠、“結束日期”,把它們分別賦值給文本變量“開始時間”冲杀、“結束時間”效床。
點擊預定按鈕后,如果各項提交內容不為空就會調用預定會議室服務权谁,若服務返回預定成功就在前臺的預定列表添加一剛剛提交的預約數據剩檀,若服務返回失敗就從重疊的記錄找找出對應預約人提示當前用戶已有人預約該時間段。
2.預約列表
前臺下方的列1用來展示歷史預約記錄旺芽,以對象數組“已預約列表”進行循環(huán)創(chuàng)建沪猴,在前臺初始化的時候會將數據庫中的歷史記錄輸出到“已預約列表”中卤妒。
總結
這個模型的關鍵是對時間段重疊的判定,需要注意數據庫字段的類型設置字币,以及數據庫輸出時的條件判斷符號還有條件層級關系则披。另外,可以拓展一下如果是多個會議室的情況洗出,這時我們可以在數據庫中再增加一個字段士复,標識會議室的序號,對應篩選是否有重疊時間段的時候也增加一個篩選條件翩活,從序號等于當前選中的會議室的記錄中進行篩除阱洪。