專利名稱:一種基于移動終端的餐廳推薦及點餐方法
技術(shù)領(lǐng)域:
本發(fā)明屬于移動互聯(lián)網(wǎng)領(lǐng)域,涉及一種基于移動終端的餐廳推薦及點餐方法。
背景技術(shù):
在如今生活節(jié)奏加快的年代,人們的生活方式發(fā)生了很大的變化,這些變化體現(xiàn)在衣食住行等方方面面。其中吃飯一直是人們較為關(guān)心的話題,現(xiàn)在人們選擇就餐的方式有很多種,有訂餐上門服務(wù),電話或者短信提前預(yù)定餐廳的,這些方法都有其自身的優(yōu)點和缺點?,F(xiàn)有的移動點菜軟件存在如下兩個問題:現(xiàn)有的移動點菜軟件大多數(shù)只是針對特定餐廳的,即每個餐廳開發(fā)屬于本餐廳的軟件,該軟件只能在一個餐廳內(nèi)進(jìn)行查看,預(yù)訂等操作,這樣就給用戶帶來了選擇的復(fù)雜性,即用戶需要為每個餐廳安裝不同的軟件,這無疑增加了用戶的負(fù)擔(dān)。除此之外,大部分的軟件能夠調(diào)用地圖并將餐廳顯示出來,但是用戶還需要在地圖上找到自己的位置,并且尋找最近的餐廳,這樣在無形之中也增加了用戶的時間消耗。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于移動終端的餐廳推薦及點餐方法。為達(dá)到上述目的,本發(fā)明采用了以下技術(shù)方案:移動終端根據(jù)自帶GPS獲取用戶的實時位置信息,同時移動終端向服務(wù)器端發(fā)送用戶的實時位置信息;服務(wù)器端接收移動終端發(fā)送的用戶的實時位置信息,然后將所述實時位置信息與服務(wù)器端的數(shù)據(jù)庫中存儲的餐廳位置信息進(jìn)行比對,然后根據(jù)用戶的實時位置與餐廳位置的距離選擇出備選餐廳,并按照用戶的選擇將備選餐廳的餐廳信息返回給移動終端供用戶查看,餐廳信息包括在服務(wù)器端維護(hù)的餐廳的實時菜譜信息、餐桌座位使用信息和用戶訂單有效性信息;備選餐廳以地圖標(biāo)注形式或者以列表的形式顯示在移動終端上,用戶通過移動終端選擇、查看備選餐廳的餐廳信息,同時,移動終端根據(jù)用戶的選擇生成相應(yīng)的訂單,然后將訂單發(fā)送給服務(wù)器端,訂單包括點菜和預(yù)訂餐桌及座位的請求;各餐廳管理人員通過餐廳端的JSP頁面對餐廳信息進(jìn)行維護(hù)并反饋給服務(wù)器端,維護(hù)包括修改餐廳基本信息,添加、刪除和修改菜譜信息,以及根據(jù)訂單狀態(tài)更新餐桌和座位使用狀態(tài)信息。服務(wù)器端接收移動終端發(fā)來的用戶的實時位置信息,然后將所述實時位置信息解析為經(jīng)緯度坐標(biāo)值,將所述經(jīng)緯度坐標(biāo)值與數(shù)據(jù)庫中存在的餐廳經(jīng)緯度坐標(biāo)值進(jìn)行比對,然后選擇出距離用戶較近的一系列餐廳作為備選餐廳。移動終端向服務(wù)器端發(fā)送注冊和登錄請求,然后根據(jù)服務(wù)器端返回的結(jié)果得到注冊或者登錄是否成功的信息,用戶登錄成功后,移動終端向服務(wù)器端發(fā)送用戶的實時位置信息。
移動終端根據(jù)用戶的實時位置信息和服務(wù)器端返回的餐廳位置信息得到用戶和餐廳的經(jīng)緯度坐標(biāo)信息,然后將用戶和餐廳的位置信息標(biāo)注在地圖上,當(dāng)服務(wù)器端接收到移動終端發(fā)來的用戶查看相應(yīng)餐廳信息的請求,服務(wù)器端根據(jù)用戶的請求參數(shù)利用相應(yīng)的HQL語言檢索數(shù)據(jù)庫,然后將從數(shù)據(jù)庫中檢索出的數(shù)據(jù)封裝成JSON格式的數(shù)據(jù),然后將JSON格式的數(shù)據(jù)以響應(yīng)用戶請求的方式發(fā)送給移動終端,移動終端通過解析JSON格式的數(shù)據(jù)得到用戶需要查看的餐廳信息,并將餐廳信息以列表的形式展現(xiàn)出來。用戶通過移動終端查看備選餐廳信息,以及各備選餐廳的菜譜和空余餐桌座位信息,然后選擇其中一個備選餐廳進(jìn)行就餐,移動終端生成訂單并發(fā)送給服務(wù)器端,訂單包括用戶編號,餐廳編號和訂單生成時間,服務(wù)器端接收到訂單后將相應(yīng)的數(shù)據(jù)存入數(shù)據(jù)庫中,同時服務(wù)器端開啟另外一個用于計時的線程,自訂單生成超過設(shè)定時間且用戶沒有前往餐廳則服務(wù)器端自動將該訂單設(shè)置為無效狀態(tài)。用戶首先通過移動終端向服務(wù)器端發(fā)送訂單,然后在通過移動終端瀏覽菜譜的同時,點擊菜譜列表選擇是否將菜加入到訂單中,然后向服務(wù)器端發(fā)送數(shù)據(jù),服務(wù)器端將數(shù)據(jù)存入用戶訂單詳細(xì)列表中;用戶在瀏覽餐廳空余餐桌和座位的同時選擇是否預(yù)訂餐桌和座位,并向服務(wù)器端發(fā)送數(shù)據(jù),服務(wù)器端將用戶的預(yù)訂餐桌和座位的信息存入訂單詳細(xì)列表中。移動終端使用Http協(xié)議實現(xiàn)移動終端到服務(wù)器端的通信,由移動終端解析用戶的操作、翻譯成Http請求,服務(wù)器端通過Struts2進(jìn)行請求攔截,并執(zhí)行相應(yīng)的業(yè)務(wù)。服務(wù)器端在取得餐廳授權(quán)后通過數(shù)據(jù)庫保存餐廳信息,每個餐廳通過JSP頁面管理和維護(hù)各自的信息。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益的技術(shù)效果:本發(fā)明所述基于移動終端的餐廳推薦及點餐方法是一種基于移動終端的餐廳推薦及點餐系統(tǒng),其通過移 動終端、餐廳端與服務(wù)器端的配合完成向用戶推送周圍最近餐廳信息,用戶選擇餐廳進(jìn)行點菜、預(yù)訂餐桌座位以及餐廳維護(hù)餐廳數(shù)據(jù)的功能。本發(fā)明通過移動終端應(yīng)用和服務(wù)器端應(yīng)用配合實現(xiàn)應(yīng)用整體功能,采取終端請求服務(wù)器端響應(yīng)的模式;移動終端作為連接用戶與服務(wù)器中數(shù)據(jù)的橋梁,主要負(fù)責(zé)與用戶的交互工作,并將服務(wù)器返回的數(shù)據(jù)顯示出來;服務(wù)器端應(yīng)用主要負(fù)責(zé)處理數(shù)據(jù),響應(yīng)移動終端的請求對數(shù)據(jù)庫進(jìn)行檢索和讀寫操作,并反饋移動終端所需要的數(shù)據(jù)。本發(fā)明提供基于移動終端的餐廳推薦及點餐方法,移動終端通過向服務(wù)器發(fā)送請求能獲取并顯示餐廳的信息,同時能完成用戶的點菜和餐桌座位預(yù)訂功能。移動終端調(diào)用GPS得到用戶的實時位置,為服務(wù)器的推送周圍餐廳信息提供經(jīng)緯度位置數(shù)據(jù)。得到了服務(wù)器推送的最近餐廳信息后,終端將餐廳信息以及用戶位置同時在地圖上面直觀的標(biāo)注出來,能夠幫助用戶最快地做出選擇。移動終端能夠進(jìn)行用戶注冊、登陸和修改用戶信息等用戶業(yè)務(wù),并與服務(wù)器端交互這些信息。本發(fā)明提供基于移動終端的餐廳推薦及點餐方法,餐廳端通過JSP頁面向服務(wù)器發(fā)送請求修改餐廳基本信息,和更新餐廳的動態(tài)信息。本發(fā)明提供的基于移動終端的餐廳推薦及點餐方法,服務(wù)器端聚合了大部分的餐廳信息,包括餐廳基本信息,菜譜信息和空余餐桌座位信息等,根據(jù)移動終端發(fā)送的用戶實時位置信息,系統(tǒng)自動向用戶推送最近的餐廳供用戶選擇。同時服務(wù)器端開啟后臺服務(wù)進(jìn)程對用戶生成的訂單有效性進(jìn)行監(jiān)視,若訂單超出有效時限則將訂單標(biāo)示為失效。服務(wù)器端維護(hù)管理著用戶的基本信息,響應(yīng)移動終端的請求完成用戶的登錄注冊和修改等功能。本發(fā)明用戶通過GPS技術(shù)獲取當(dāng)前位置信息并通過互聯(lián)網(wǎng)向服務(wù)器發(fā)送請求查詢周邊較近餐廳信息,最后基于移動終端與服務(wù)器的交互來完成點菜以及餐桌座位預(yù)訂功倉泛。本發(fā)明克服了現(xiàn)有技術(shù)存在的問題,通過將很多餐廳的信息進(jìn)行聚合,包含了各個餐廳的基本信息、菜譜信息以及空余餐桌和座位信息。用戶只需移動終端就可以完成對于大部分餐廳的預(yù)訂功能;系統(tǒng)調(diào)用GPS功能獲取用戶的實時位置,并根據(jù)此向用戶推送距離其最近的餐廳,同時在地圖上顯示出來,顯著的提高了就餐、訂餐的效率。
圖1是本發(fā)明的工作流程圖。圖2是本發(fā)明的結(jié)構(gòu)總體示意圖。圖3是移動終端應(yīng)用不意圖。圖4是服務(wù)器端應(yīng)用功能結(jié)構(gòu)和請求響應(yīng)流程圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明做進(jìn)一步說明,所述是對本發(fā)明的解釋而不是限定。一種基于移動終端的餐廳推薦及點餐方法,包括以下步驟:基于GPS技術(shù)并通過無線網(wǎng)絡(luò)向移動終端提供點餐服務(wù),移動終端根據(jù)自帶GPS獲取用戶的實時位置信息,同時移動終端向服務(wù)器端發(fā)送用戶的實時位置信息;服務(wù)器端接收移動終端發(fā)送的用戶的實時位置信息,然后將所述實時位置信息與服務(wù)器端的數(shù)據(jù)庫中存儲的餐廳位置信息進(jìn)行比對,然后根據(jù)用戶的實時位置與餐廳位置的距離選擇出備選餐廳,并按照用戶的選擇將備選餐廳的餐廳信息返回給移動終端供用戶查看,餐廳信息包括在服務(wù)器端維護(hù)的餐廳的實時菜譜信息、餐桌座位使用信息和用戶訂單有效性信息;移動終端調(diào)用Android的地圖功能將備選餐廳以可視化的地圖標(biāo)注形式或者以列表的形式顯示在移動終端上,給用戶以直觀的感受,用戶通過移動終端選擇、查看備選餐廳的餐廳信息,同時,移動終端根據(jù)用戶的選擇生成相應(yīng)的訂單,然后將訂單發(fā)送給服務(wù)器端,來完成預(yù)訂功能,訂單包括點菜和預(yù)訂餐桌及座位的請求;各餐廳管理人員通過餐廳端的JSP頁面對餐廳信息進(jìn)行維護(hù)并反饋給服務(wù)器端,維護(hù)包括修改餐廳基本信息,添加、刪除和修改菜譜信息,以及根據(jù)訂單狀態(tài)更新餐桌和座位使用狀態(tài)信息。服務(wù)器端接收移動終端發(fā)來的用戶的實時位置信息,然后將所述實時位置信息解析為經(jīng)緯度坐標(biāo)值,將所述經(jīng)緯度坐標(biāo)值與數(shù)據(jù)庫中存在的餐廳經(jīng)緯度坐標(biāo)值進(jìn)行比對,然后選擇出距離用戶較近的(比如以用戶為中心周圍I千米范圍內(nèi))一系列餐廳作為備選餐廳。移動終端向服務(wù)器端發(fā)送注冊和登錄請求,然后根據(jù)服務(wù)器端返回的結(jié)果得到注冊或者登錄是否成功的 信息,從而繼續(xù)下一步的動作。用戶登錄成功后,移動終端向服務(wù)器端發(fā)送用戶的實時位置信息,同時,用戶登錄成功后,可以通過移動終端修改個人信息,進(jìn)行用戶訂單管理(查看、刪除訂單)等一系列的操作;在服務(wù)器端對于移動終端的賬戶管理為:移動終端向服務(wù)器端發(fā)送注冊或登錄的請求,服務(wù)器端處理移動終端發(fā)送來的請求,進(jìn)行用戶業(yè)務(wù)的操作,將用戶信息保存在數(shù)據(jù)庫,進(jìn)行判斷并返回動作執(zhí)行成功或者失敗的響應(yīng);對于已經(jīng)登錄的用戶可以選擇是否修改個人信息并發(fā)送修改請求,服務(wù)器端處理移動終端發(fā)來的修改請求,并返回是否修改成功的響應(yīng)。服務(wù)器端的數(shù)據(jù)庫中包括以下數(shù)據(jù)庫表:用戶信息表,保存用戶的基本賬號信息,包括用戶名,密碼,聯(lián)系方式等。餐廳基本信息表,保存所有的餐廳基本信息,包括餐廳名稱,餐廳地址,餐廳經(jīng)緯度坐標(biāo)信息以及餐廳的介紹信息等。餐廳菜譜分類表,保存了各個餐廳的菜譜分類信息,包括所屬餐廳編號(外鍵),分類名稱。餐廳菜單表,保存了各個餐廳的詳細(xì)的菜名信息,包括所屬菜譜分類編號(外鍵),菜名,菜價格,菜描述。餐廳餐桌信息表,保存了各個餐廳的餐桌使用情況,包括所屬餐廳編號(外鍵),餐桌編號,餐桌使用狀態(tài) ,餐桌容納人數(shù)。餐廳座位信息表,保存了各個餐廳的餐桌所對應(yīng)的座位的使用情況,包括所屬餐桌編號(外鍵),座位使用狀態(tài)。用戶訂單表,保存了用戶的訂單基本信息,包括訂單編號,訂單生成時間,所屬餐廳編號(外鍵),訂單是否有效。訂單詳細(xì)列表,保存了用戶分別對應(yīng)于各個訂單的詳細(xì)資源,包括所訂菜編號,數(shù)
量,餐桌編號,座位編號等。移動終端接收服務(wù)器端返回的數(shù)據(jù)響應(yīng),并且在地圖上顯示用戶和周圍餐廳:為了能給用戶直觀的位置信息感受,移動終端根據(jù)用戶的實時位置信息和服務(wù)器端返回的餐廳位置信息得到用戶和餐廳的經(jīng)緯度坐標(biāo)信息,然后調(diào)用Android系統(tǒng)的Google maps應(yīng)用,并通過Overlay (覆蓋層)技術(shù)將用戶和餐廳的位置信息標(biāo)注在地圖上,當(dāng)服務(wù)器端接收到移動終端發(fā)來的用戶查看相應(yīng)餐廳信息的請求,例如周圍餐廳信息,餐廳的菜譜信息和餐廳的餐桌座位空余狀態(tài)信息等,服務(wù)器端根據(jù)用戶的請求參數(shù)利用相應(yīng)的HQL語言檢索數(shù)據(jù)庫,然后將從數(shù)據(jù)庫中檢索出的數(shù)據(jù)封裝成JSON格式的數(shù)據(jù),然后將JSON格式的數(shù)據(jù)以響應(yīng)用戶請求的方式發(fā)送給移動終端,移動終端通過解析JSON格式的數(shù)據(jù)得到用戶需要查看的餐廳信息,即在數(shù)據(jù)庫中檢索的信息,并將這些餐廳信息以列表的形式展現(xiàn)出來。移動終端訂單的生成:用戶通過移動終端查看備選餐廳信息,以及各備選餐廳的菜譜和空余餐桌座位信息,然后選擇其中一個備選餐廳進(jìn)行就餐,移動終端首先彈出對話框確認(rèn)用戶是否選擇該備選餐廳,得到用戶確認(rèn)后,然后移動終端生成訂單并發(fā)送給服務(wù)器端,訂單包括用戶編號,餐廳編號和訂單生成時間,服務(wù)器端接收到訂單后將相應(yīng)的數(shù)據(jù)存入數(shù)據(jù)庫的用戶訂單表中,同時服務(wù)器端開啟后臺Service,即啟動另外一個用于計時的線程,即從訂單生成時開始計時,自訂單生成超過一小時且用戶沒有前往餐廳,則服務(wù)器端自動將該訂單設(shè)置為無效狀態(tài)(這個動作是由服務(wù)器內(nèi)部的線程自動完成的,自用戶生成訂單后服務(wù)器會時刻開啟一個線程用于計時和修改用戶訂單有效性的狀態(tài))。移動終端的點菜以及餐桌座位的預(yù)訂功能:用戶首先通過移動終端向服務(wù)器端發(fā)送訂單,然后在通過移動終端瀏覽菜譜的同時,點擊菜譜列表中的選項即會彈出對話框提示選擇是否將該菜加入到訂單中,同時輸入需要的份數(shù),然后點擊確認(rèn)按鈕向服務(wù)器端發(fā)送數(shù)據(jù),服務(wù)器接收請求,將數(shù)據(jù)存入用戶訂單詳細(xì)列表中;與之類似的是用戶選擇餐桌和座位的步驟,用戶同樣是在瀏覽餐廳空余餐桌和座位的同時選擇是否預(yù)訂餐桌和座位,并向服務(wù)器端發(fā)送數(shù)據(jù),服務(wù)器端將用戶的預(yù)訂餐桌和座位的信息存入訂單詳細(xì)列表中。移動終端發(fā)送請求使用Http協(xié)議實現(xiàn)移動終端到服務(wù)器端的通信,由移動終端解析用戶的操作、翻譯成Http請求,服務(wù)器端通過Struts2進(jìn)行請求攔截,并執(zhí)行相應(yīng)的業(yè)務(wù);對于用戶業(yè)務(wù)數(shù)據(jù)部分使用HQL語句進(jìn)行用戶通過用戶名的查找實例。所述的移動終端與用戶交互界面包括用戶登錄界面,用戶注冊界面,主菜單界面,餐廳信息查看界面,餐廳服務(wù)菜單界面,餐廳菜譜查看界面,餐廳空余餐桌空余座位查看界面等。用戶登陸界面,用戶在該界面通過輸入用戶名及密碼登陸系統(tǒng),同時該界面有注冊按鈕,點擊注冊按鈕則進(jìn)入注冊界面。點擊退出程序按鈕則退出程序。用戶注冊界面,用戶在該界面完成注冊功能,輸入用戶名,密碼及重復(fù)密碼,聯(lián)系方式等,將這些數(shù)據(jù)封裝起來并發(fā)送至服務(wù)器,服務(wù)器對數(shù)據(jù)進(jìn)行處理后存入用戶數(shù)據(jù)表,即完成用戶注冊功能?!ぶ鞑藛谓缑?,用戶登錄成功后即進(jìn)入主菜單界面,可以選擇以列表形式查看周圍餐廳信息同時完成訂單生成以及提前訂菜,預(yù)訂餐桌座位等操作;也可以選擇以地圖的形式查看周圍餐廳信息,得到直觀的印象;在主菜單界面,用戶可以修改個人信息,在彈出的對話框中輸入修改后的信息,請求服務(wù)器完成個人信息的修改操作。餐廳信息查看界面,在這個界面用戶能夠看到周圍的餐廳信息以列表的形式展現(xiàn)出來,包括餐廳名稱、餐廳地址等信息,分別點擊則能進(jìn)入到各個餐廳的服務(wù)菜單界面。餐廳服務(wù)菜單界面,用戶在該界面能夠完成查看菜譜,空余餐桌座位信息,以及點菜,預(yù)訂餐桌座位等動作。餐廳菜譜查看界面,用戶在該界面能夠查看各個餐廳菜譜分類,以及詳細(xì)的菜譜信息,包括價格,介紹,菜名等。餐廳空余餐桌空余座位查看界面,用戶在該界面能夠查看各個餐廳的實時餐桌和座位的使用情況,同時還能夠預(yù)訂空余餐桌和座位。被預(yù)定的餐桌和座位則將被設(shè)置狀態(tài)為使用中。餐廳端對于餐廳基本信息和動態(tài)信息的維護(hù):服務(wù)器端在取得餐廳授權(quán)后通過數(shù)據(jù)庫保存餐廳信息,每個餐廳通過JSP頁面管理和維護(hù)各自的信息,包括修改餐廳基本信息,增加、刪除和修改菜譜信息以及實時更新餐廳餐桌和座位使用狀態(tài)信息等。實施例
一種基于移動終端的餐廳推薦及點餐系統(tǒng),能夠根據(jù)用戶的實時位置為其推送周圍較近的餐廳,用戶在這些餐廳中間做出選擇并完成點菜和餐桌座位的預(yù)訂。分為移動終端、餐廳端和服務(wù)器端這三部分配合以達(dá)到最終效果,移動終端采用Android平臺,餐廳端采用JSP網(wǎng)頁技術(shù),服務(wù)器端采用的是Struts2+Hibernate架構(gòu)的java web技術(shù)。參見圖1,所述基于移動終端的餐廳推薦及點餐系統(tǒng),包括以下幾個步驟:餐廳端通過JSP網(wǎng)頁向服務(wù)器發(fā)送請求對餐廳的數(shù)據(jù)進(jìn)行維護(hù),服務(wù)器攔截請求,并分別處理請求數(shù)據(jù),采用HQL語言對餐廳數(shù)據(jù)庫進(jìn)行檢索,增加和更新操作。移動終端通過Http-Post的方式向服務(wù)器發(fā)送請求,請求包括登錄注冊,修改,以及查看餐廳信息,生成訂單等。服務(wù)器端同樣攔截終端請求,并對請求數(shù)據(jù)進(jìn)行處理,返回響應(yīng)給移動終端。服務(wù)器端分別處理餐廳端和移動終端的請求,完成對餐廳信息的維護(hù);驗證用戶注冊登錄信息,根據(jù)終端的業(yè)務(wù)請求返回相應(yīng)的數(shù)據(jù),實現(xiàn)了向用戶推送餐廳信息以及用戶預(yù)訂功能;同時服務(wù)器還實時地維護(hù)著用戶的訂單,從用戶下單開始計時,超出時延限則將訂單設(shè)置為無效狀態(tài)。參見圖2,餐廳端通過JSP網(wǎng)頁向服務(wù)器發(fā)送數(shù)據(jù)來維護(hù)餐廳的信息,包括餐廳基本信息(餐廳名稱,餐廳地址,餐廳介紹和餐廳經(jīng)緯度坐標(biāo)等);餐廳動態(tài)信息,包括(餐廳菜譜信息,餐廳實時餐桌和座位的使用情況)。當(dāng)餐廳的菜譜發(fā)生變化時,餐廳向服務(wù)器發(fā)送請求,服務(wù)器接收餐廳數(shù)據(jù)對菜譜數(shù)據(jù)庫進(jìn)行修改。類似的,餐廳的實時餐桌和座位使用情況也由餐廳服務(wù)人員進(jìn)行統(tǒng)計后發(fā)送至服務(wù)器,服務(wù)器對相應(yīng)的數(shù)據(jù)表進(jìn)行更新。服務(wù)器與移動終端的交互過程由圖2來表示,系統(tǒng)的工作方式可以描述為:對于服務(wù)器端,主要功能可以分為以下幾個部分,1、接收終端請求實現(xiàn)用戶的注冊登錄即修改個人信息功·能;2、接收終端用戶實時位置數(shù)據(jù)并與數(shù)據(jù)庫中的餐廳位置數(shù)據(jù)進(jìn)行比較推送較近的餐廳至終端;3、當(dāng)用戶訂單生成后,開啟后臺服務(wù)進(jìn)程進(jìn)行計時,當(dāng)訂單超出時延限后,設(shè)置訂單狀態(tài)為失效;4、接收移動終端的點菜,預(yù)訂餐桌座位的請求,并將請求數(shù)據(jù)存入訂單詳細(xì)列表中。對于移動終端來說,主要的作用是與用戶進(jìn)行交互,因此其核心部分是各種界面,對于本系統(tǒng)而言主要包含以下幾個界面,參見圖3:用戶注冊登錄界面,顧名思義,通過該界面用戶能夠完成登錄系統(tǒng)以及注冊成為會員的操作。程序主菜單界面,即用戶登錄成功后進(jìn)入的界面,在該界面用戶能夠直觀的了解到本系統(tǒng)的主要功能:以列表形式顯示周圍餐廳信息及預(yù)訂,以地圖形式顯示用戶及餐廳信息,用戶訂單管理,用戶個人信息修改,返回主菜單。周圍餐廳查看界面,該界面由程序主菜單進(jìn)入,在該界面里用列表的形式顯示了距離用戶較近的所有餐廳列表,包括餐廳名稱,餐廳地址等信息。餐廳服務(wù)信息界面,該界面由餐廳查看界面進(jìn)入,用戶點擊其中某個餐廳后即進(jìn)入到該餐廳的服務(wù)信息界面。在該界面里用戶能夠看到餐廳所能夠提供的服務(wù),包括菜單查詢和點菜、空余餐桌座位查詢和預(yù)訂、選擇本餐廳并且生成訂單。菜單查詢和點菜界面,該界面由餐廳服務(wù)信息界面進(jìn)入,在該界面里用戶能夠看到餐廳的菜譜分類情況,點擊其中一個分類則進(jìn)入到菜譜詳細(xì)界面,包括菜名,價格,描述等。用戶在瀏覽詳細(xì)菜譜的同時點擊某一項即會彈出對話框,提示用戶是否選擇該菜,用戶輸入份數(shù)后點擊提交按鈕后該菜就會加入到用戶的訂單詳細(xì)列表中,從而完成了點菜操作??沼嗖妥雷徊樵兒皖A(yù)訂界面,該界面由餐廳服務(wù)信息界面進(jìn)入,在該界面里,用戶能夠看到餐廳的實時餐桌和座位的使用情況。同樣的,用戶點擊相應(yīng)的座位則會彈出對話框,若該座位正在被使用中或者已被提前預(yù)定,則會提示用戶該座位目前不可用;若該座位目前空閑則提示用戶是否將預(yù)訂該座位,當(dāng)用戶選擇預(yù)訂后,服務(wù)器接收請求,并將該座位加入到用戶訂單詳細(xì)列表中,同時修改座位表中的狀態(tài)為不可用。除了以上界面外,還有用戶訂單的生成過程,在餐廳服務(wù)信息界面里點擊選擇本餐廳并且生成訂單選項后,服務(wù)器則會為該用戶生成一個訂單,訂單里包含了用戶編號,餐廳編號,訂單生成時間等。同時,服務(wù)器開啟后臺服務(wù)進(jìn)程開始計時,當(dāng)訂單生成超過規(guī)定時間后用戶未能履行訂單,則將訂單狀態(tài)設(shè)置為無效狀態(tài),并且將用戶訂單詳細(xì)列表中的預(yù)訂資源釋放。參見圖4,服務(wù)器端主要用來處理數(shù)據(jù)業(yè)務(wù),因此服務(wù)器端核心為用戶數(shù)據(jù),餐廳數(shù)據(jù),用戶訂單,用戶訂單詳細(xì)列表的數(shù)據(jù)庫。下面將詳細(xì)介紹本系統(tǒng)中所使用到的數(shù)據(jù)表:用戶數(shù)據(jù)表,該表記錄了用戶編號,用戶名,用戶密碼,用戶聯(lián)系方式等信息。該表主要的作用在于服務(wù)器驗證用戶登錄,以及作為用戶訂單表的關(guān)聯(lián)表。餐廳基本數(shù)據(jù)表,該表記錄了餐廳編號,餐廳名稱,餐廳地理位置,餐廳的經(jīng)緯度坐標(biāo),餐廳介紹等數(shù)據(jù)。餐廳編號是該表的主鍵同時也是餐廳菜譜信息表,餐廳餐桌座位表和訂單表的外鍵。餐廳的經(jīng)緯度坐標(biāo)是服務(wù)器來向用戶推送較近餐廳的一個重要指標(biāo),月艮務(wù)器根據(jù)用戶的經(jīng)緯度坐標(biāo)值和餐廳經(jīng)緯度坐標(biāo),從而列出距離用戶較近的一系列餐廳。餐廳菜譜分類表,該表記錄了各個餐廳的菜譜分類,例如餐廳能夠提供的種類有涼菜、炒菜、湯和甜點等。餐廳菜譜詳細(xì)列表,該表關(guān)聯(lián)菜譜分類表屬于其中的某一類,記錄了菜名,價格,介紹等信息。餐廳餐桌信息表,該表記錄了各個餐廳的餐桌的信息,包括餐桌編號,餐桌所屬餐廳(外鍵),餐桌容納人數(shù),餐桌使用狀態(tài)。餐廳座位信息表,該表記錄了各個餐廳的座位信息,包括座位編號,座位所屬餐桌編號(外鍵),座位使用狀態(tài)。用戶訂單表,該表包括用戶編號,餐廳編號,訂單生成時間,訂單狀態(tài)。用戶訂單詳細(xì)列表,該表包括所屬訂單編號(外鍵),菜名,份數(shù),餐桌編號,座位編號。根據(jù)上述數(shù)據(jù)表下面將詳細(xì)介紹服務(wù)器基于這些數(shù)據(jù)表的主要業(yè)務(wù)處理過程,如圖4所示:
服務(wù)器向終端推送餐廳信息過程:首先用戶在程序主菜單界面里選擇查看周圍餐廳信息,終端調(diào)用GPS技術(shù)得到用戶的實時位置信息,向服務(wù)器發(fā)送位置信息及查看請求,服務(wù)器攔截終端請求,將用戶的實時經(jīng)緯度信息與數(shù)據(jù)庫中餐廳基本信息表中存儲的餐廳經(jīng)緯度坐標(biāo)進(jìn)行比較,并選出較近的一系列餐廳,并將這些餐廳的數(shù)據(jù)封裝成JSON數(shù)據(jù)返回給移動終端,終端通過解析JSON數(shù)據(jù)得到了相應(yīng)的餐廳數(shù)據(jù)信息,并將這些信息以列表的形式顯示出來。與之對應(yīng)的是調(diào)用地圖應(yīng)用并標(biāo)注出用戶及餐廳,該功能的獲取較近餐廳數(shù)據(jù)的過程與前面類似,只是顯示方法不同,調(diào)用Google Maps應(yīng)用,并且使用OverLay技術(shù)根據(jù)用戶和餐廳的經(jīng)緯度坐標(biāo)值,將用戶和餐廳以符號的形式標(biāo)注出來。通過這種顯示方式能夠給用戶帶來更加直觀的感受,縮短用戶選擇餐廳的時間。用戶訂單生成過程:用戶選擇了一個餐廳后,進(jìn)入該餐廳的服務(wù)信息界面,并且點擊生成訂單,該訂單包括用戶編號,餐廳編號以及下單時間和訂單狀態(tài)信息。接著用戶開始點菜以及預(yù)訂餐桌和座位,這兩步不分先后,可以先點菜也可以先預(yù)訂餐桌座位。點菜時,用戶在瀏覽餐廳菜譜的同時,可以單擊菜譜列表中的某一項,則會彈出對話框提示用戶輸入需要的份數(shù)并確認(rèn)用戶是否提交選擇,當(dāng)用戶確認(rèn)完畢后,終端將用戶的選擇發(fā)送至服務(wù)器端,服務(wù)器端將數(shù)據(jù)存入訂單詳細(xì)列表中。與點菜功能相類似的是餐桌和座位的預(yù)訂功能,用戶在瀏覽某個餐廳的空余餐桌和座位信息時,單擊列表中的某一項則會彈出對話框提示用戶是否選擇該資源,用戶確認(rèn)后發(fā)送請求至服務(wù)器,服務(wù)器接收相關(guān)數(shù)據(jù)并存入訂單詳細(xì)列表中。當(dāng)用戶的訂單超出時延限而被判定為無效時,服務(wù)器則會將用戶選擇的餐桌及座位資源重新釋放,即顯示為可用狀態(tài)。接收用戶請求功能。終端上的用戶業(yè)務(wù)都是通過發(fā)送請求來完成的,在服務(wù)器端應(yīng)至少完成三個接口:注冊接口、登錄接口、修改用戶信息接口。當(dāng)收到這些請求時,用戶就響應(yīng)的進(jìn)行對數(shù)據(jù)庫用戶表的操作,實現(xiàn)用戶業(yè)務(wù)。終端發(fā)送請求用到的是Http-Post協(xié)議實現(xiàn)手機(jī)終端到服務(wù)器的通信,由終端解析用戶的操作,翻譯成Http-Post請求,服務(wù)器端通過Struts2進(jìn)行請求攔截,并執(zhí)行響應(yīng)的業(yè)務(wù)。修改用戶配置時需要注意的是,多用戶查找自己在數(shù)據(jù)庫中的實例并多次修改數(shù)據(jù)庫用戶表時會帶來數(shù)據(jù)庫回滾的問題。那么對于用戶業(yè)務(wù)數(shù)據(jù)部分,不 能使用事務(wù)性管理提交數(shù)據(jù),必須使用HQL代碼進(jìn)行用戶通過用戶名的查找實例。
權(quán)利要求
1.一種基于移動終端的餐廳推薦及點餐方法,其特征在于,包括以下步驟: 移動終端根據(jù)自帶GPS獲取用戶的實時位置信息,同時移動終端向服務(wù)器端發(fā)送用戶的實時位置信息; 服務(wù)器端接收移動終端發(fā)送的用戶的實時位置信息,然后將所述實時位置信息與服務(wù)器端的數(shù)據(jù)庫中存儲的餐廳位置信息進(jìn)行比對,然后根據(jù)用戶的實時位置與餐廳位置的距離選擇出備選餐廳,并按照用戶的選擇將備選餐廳的餐廳信息返回給移動終端供用戶查看,餐廳信息包括在服務(wù)器端維護(hù)的餐廳的實時菜譜信息、餐桌座位使用信息和用戶訂單有效性信息; 備選餐廳以地圖標(biāo)注形式或者以列表的形式顯示在移動終端上,用戶通過移動終端選擇、查看備選餐廳的餐廳信息,同時,移動終端根據(jù)用戶的選擇生成相應(yīng)的訂單,然后將訂單發(fā)送給服務(wù)器端,訂單包括點菜和預(yù)訂餐桌及座位的請求; 各餐廳管理人員通過餐廳端的JSP頁面對餐廳信息進(jìn)行維護(hù)并反饋給服務(wù)器端,維護(hù)包括修改餐廳基本信息,添加、刪除和修改菜譜信息,以及根據(jù)訂單狀態(tài)更新餐桌和座位使用狀態(tài)信息。
2.如權(quán)利要求1所述一種基于移動終端的餐廳推薦及點餐方法,其特征在于: 服務(wù)器端接收移動終端發(fā)來的用戶的實時位置信息,然后將所述實時位置信息解析為經(jīng)緯度坐標(biāo)值,將所述經(jīng)緯度坐標(biāo)值與數(shù)據(jù)庫中存在的餐廳經(jīng)緯度坐標(biāo)值進(jìn)行比對,然后選擇出距離用戶較近的一系列餐廳作為備選餐廳。
3.如權(quán)利要求1所述一種基于移動終端的餐廳推薦及點餐方法,其特征在于: 移動終端向服務(wù)器端發(fā)送注冊和登錄請求,然后根據(jù)服務(wù)器端返回的結(jié)果得到注冊或者登錄是否成功的信息,用戶登錄成功后,移動終端向服務(wù)器端發(fā)送用戶的實時位置信息。
4.如權(quán)利要求1所述一種基于移動終端的餐廳推薦及點餐方法,其特征在于: 移動終端根據(jù)用戶的實時位置信息和服務(wù)器端返回的餐廳位置信息得到用戶和餐廳的經(jīng)緯度坐標(biāo)信息,然后將用戶和餐廳的位置信息標(biāo)注在地圖上,當(dāng)服務(wù)器端接收到移動終端發(fā)來的用戶查看相應(yīng)餐廳信息的請求,服務(wù)器端根據(jù)用戶的請求參數(shù)利用相應(yīng)的HQL語言檢索數(shù)據(jù)庫,然后將從數(shù)據(jù)庫中檢索出的數(shù)據(jù)封裝成JSON格式的數(shù)據(jù),然后將JSON格式的數(shù)據(jù)以響應(yīng)用戶請求的方式發(fā)送給移動終端,移動終端通過解析JSON格式的數(shù)據(jù)得到用戶需要查看的餐廳信息,并將餐廳信息以列表的形式展現(xiàn)出來。
5.如權(quán)利要求1所述一種基于移動終端的餐廳推薦及點餐方法,其特征在于: 用戶通過移動終端查看備選餐廳信息,以及各備選餐廳的菜譜和空余餐桌座位信息,然后選擇其中一個備選餐廳進(jìn)行就餐,移動終端生成訂單并發(fā)送給服務(wù)器端,訂單包括用戶編號,餐廳編號和訂單生成時間,服務(wù)器端接收到訂單后將相應(yīng)的數(shù)據(jù)存入數(shù)據(jù)庫中,同時服務(wù)器端開啟另外一個用于計時的線程,自訂單生成超過設(shè)定時間且用戶沒有前往餐廳則服務(wù)器端自動將該訂單設(shè)置為無效狀態(tài)。
6.如權(quán)利要求5所述一種基于移動終端的餐廳推薦及點餐方法,其特征在于: 用戶首先通過移動終端向服務(wù)器端發(fā)送訂單,然后在通過移動終端瀏覽菜譜的同時,點擊菜譜列表選擇是否將菜加入到訂單中,然后向服務(wù)器端發(fā)送數(shù)據(jù),服務(wù)器端將數(shù)據(jù)存入用戶訂單詳細(xì)列表中;用戶在瀏覽餐廳空余餐桌和座位的同時選擇是否預(yù)訂餐桌和座位,并向服務(wù)器端發(fā)送數(shù)據(jù),服務(wù)器端將用戶的預(yù)訂餐桌和座位的信息存入訂單詳細(xì)列表中。
7.如權(quán)利要求1所述一種基于移動終端的餐廳推薦及點餐方法,其特征在于:移動終端使用Http協(xié)議實現(xiàn)移動終端到服務(wù)器端的通信,由移動終端解析用戶的操作、翻譯成Http請求,服務(wù)器端通過Struts2進(jìn)行請求攔截,并執(zhí)行相應(yīng)的業(yè)務(wù)。
8.如權(quán)利要求1所述一種基于移動終端的餐廳推薦及點餐方法,其特征在于: 服務(wù)器端在取得餐廳授權(quán)后通過數(shù)據(jù)庫保存餐廳信息,每個餐廳通過JSP頁面管理和維護(hù)各自的信息。 ·
全文摘要
本發(fā)明公開了一種基于移動終端的餐廳推薦及點餐方法,通過餐廳端、移動終端與服務(wù)器端的配合,實現(xiàn)了對于大部分餐廳信息的整合,并且根據(jù)用戶需求向其推送距其最近的餐廳供用戶選擇;同時用戶能夠選擇其中某個餐廳完成點菜和預(yù)訂餐桌座位的功能,顯著的提高了就餐、訂餐的效率。
文檔編號G06F17/30GK103246720SQ20131015646
公開日2013年8月14日 申請日期2013年4月28日 優(yōu)先權(quán)日2013年4月28日
發(fā)明者李凡, 王明慧, 張丹陽, 李娜 申請人:西安交通大學(xué)