隨著智能手機的應用,GPS、wifi技術的成熟,關于手機訂餐應用的需求也逐漸增---手機訂外賣、手機訂餐方便了客戶。例如,去餐廳用餐前客戶可以在手機APP上查看當前餐廳是否有空位,可以預訂餐位,且在出發前就可在手機點餐,并注明到店時間,到店后無需等待就可享用美食。對于餐廳來說,也節省了人力,無需太多的點菜服務人員,節省了開店成本。以下為基于Android手機訂餐系統的設計。
1系統模塊設計
訂餐系統主要分為三個模塊。
1.1訂餐客戶端程序
該程序安裝在用餐客戶的手機上,主要功能是用戶通過手機選擇餐廳,預訂餐位,并點菜下單。
1.2餐廳管理客戶端程序
該程序可分為兩部分,一是可安裝在餐廳管理人員的手機上,主要功能是餐廳管理人員可通過手機查看訂單,上傳及修改餐廳菜品,上傳餐廳簡介及當前時段用餐情況等信息。
另一部分功能主要是為餐廳管理人員開發的訂餐管理系統,以網頁形式體現,餐廳管理人員可通過瀏覽器在網頁管理餐廳的訂單信息及菜品信息,也可以通過網頁來管理餐廳,對于較小的餐廳,餐廳管理人員可直接用手機客戶端管理餐廳,對于大、中型餐廳可用計算機通過網頁來實現餐廳訂餐信息的管理。
1.3服務器端數據服務系統
服務器端程序用來接收手機客戶端用戶發來的消息并做處理,如訂餐信息,餐廳管理人員發來的菜品修改信息等,并對數據庫做相應的修改。
2系統模塊詳細設計
2.1訂餐客戶端程序。該程序安裝在用餐客戶的手機上,主要功能是用戶通過手機選擇餐廳,預訂餐位,并點菜下單。根據用戶當前所在位置,系統會推薦用戶周邊的餐廳,用戶也可自己搜索、選擇,并查看餐廳就餐環境及當前就餐人數,是否有空位;選擇好餐廳后,可直接進入點餐界面,點餐界面將菜品分類,并顯示菜品圖片、品名、價格等,用戶可點擊選擇,并可對每一個菜品輸入特別要求,如少辣;選好菜品后,可輸入訂餐人姓名、電話、用餐人數等信息,并下單,就可直接傳送到服務器端的數據庫了。主要實現方法如下:
(1)服務器端傳送給手機端的數據,如餐廳列表、菜品列表,可以將從數據庫中取得的數據轉換為JSONObject或JSONArray的格式,客戶端收到后可直接解析。(2)手機客戶端連接服務器端時,主要采用http網絡連接方法,如http://192.168.199.115/DC_server/t_cp.(3)手機客戶端數據采用分頁加載方法,即只下載并顯示用戶當前所查看的數據(如餐廳列表、菜品列表)這樣可節省網絡資源。
if(scrollState==OnScrollListener.SCROLL_STATE_IDLE){
//判斷是否滾動到底部
if(view.getLastVisiblePosition()==view.getCoun(t)-1){
if(havedata){page+=1;
conservice(MyGlobal.cp_url+“?sh_id=”+Bundle1.getString(“
sh_id”)+“&page=”+page+“&search_key=”+search_data);}}}
該程序被安裝在餐廳管理人員的手機上,主要功能是餐廳管理人員可通過手機查看訂單,上傳及修改餐廳菜品,上傳餐廳簡介及當前時段用餐情況等信息。主要功能有:查看訂單、上傳菜品、修改菜品、修改餐廳信息、修改用戶密碼,該模塊的難點主要在上傳菜品圖片,即在手機中查找菜品圖片,選擇后上傳到服務器,并修改數據庫;主要方法:
(1)對手機上的圖片進行列表,供用戶選擇,通過Gridview+自定義adapter實現圖片的顯示。
(2)以文件做為參數,傳送至服務器端,實現菜品圖片的上傳,代碼如下。
FileBodyfile=newFileBody(imageFile);
mpEntity.addPar(t"picPath",file);
mpEntity.addPart("picName",newStringBody(file.getFilename()));
httppost.setEntity(mpEntity);
HttpResponsehttpResponse=httpclient.execute(httppost);
2.3服務器端數據服務系統
該程序主要是接收手機上發來的信息,并修改數據庫,以及根據手機發來的信息,從數據庫中查詢相關數據并返回信息給手機客戶端;該程序被安裝在服務器端,服務器端程序為web程序,可用tomcat+jsp+mysql組合,主要分為兩個部分,一個是用于接收訂餐客戶手機上發來的信息;另一部分用于接收餐廳管理人員手機客戶端信息。主要方法如下:
(1)服務器端傳送給手機端的數據,如餐廳列表、菜品列表,可以將從數據庫中取得的數據轉換為JSONObject或JSONArray的格式,客戶端收到后可直接解析。
List