標籤:軟體設計 java android應用 web服務 mongodb
一、源碼路徑
https://github.com/weiganyi/dr-helper
二、介面
通過瀏覽器訪問Web服務,可以看到介面如下:
ADT-Bundle編譯工程產生dr-helper.apk,安裝後可以看到應用介面如下:
三、背景
Java誕生後主要就是用於Web開發,隨著Android的興起,其在移動領域也應用廣泛。我在學習了Java相關的一系列技術後,想找個項目來實際運用一下。因此我考慮可以基於Java相關的技術來構建一個包括移動端和Web端的餐廳管理系統,在這個項目裡我會綜合運用各種的技術,並盡量使它們貼合使用情境。
這個系統會服務於餐廳裡的三類角色,首先是點餐服務員,他們採用手機Android APP來進行點餐操作。其次是廚房的廚師,他們將採用Web服務來擷取點的菜品,菜品完成後可以通過Web服務給點餐服務員發送上菜通知。最後是收銀台的管理員,他們也是通過Web服務來進行相關的訂單管理,比如付款操作,以及整套系統的其他管理工作。
在技術方案上包括了移動前後端和Web前後端,移動前端就是一個Android應用,移動後端採用Tomcat容器Servlet來提供服務,兩者通過JSON訊息交換資料,這樣能夠降低兩者互動的資料量。Web後端也是採用的Tomcat容器Servlet來提供服務,然後通過JSP來產生前端Web頁面。
在資料庫選擇上,對於傳統關係性較強且數量有限的資料,我選擇用Mysql來儲存,而對於像訂單這種可能數量巨大的資料,我選擇用Mongodb來儲存,這樣能充分利用各自的優點。
四、功能實現
1、Android端支援如下功能
準系統:登入/登出、首頁、查桌、開桌、查單、訂單、菜單、點菜、轉檯、並台、更新、配置
通知功能:空桌通知、上菜通知
2、Web端支援如下功能
基礎功能:登入/登出
廚房功能:下單菜品管理、完成菜品管理
櫃檯功能:訂單管理(含結帳,通過單號、桌號查詢)、使用者管理、餐桌管理、菜單類別管理、菜單管理、組態管理
五、總體設計思路
1、資料庫設計
1)其中dr_user表格儲存體使用者帳號資訊,dr_table表格儲存體餐桌資訊,dr_menu_type表格儲存體菜品類型資訊,dr_menu表格儲存體菜品資訊,dr_option表格儲存體配置選項資訊,這5個表為關係型表,使用Mysql資料庫儲存。它們的具體欄位如下:
create tabledr_user(
user_id int(4) not null primary keyauto_increment,
user_name char(255) not null,
user_passwd char(255) not null,
user_auth enum(‘waiter‘, ‘chef‘, ‘admin‘)not null);
create tabledr_table(
table_id int(4) not null primary keyauto_increment,
table_num int(4) not null,
table_seat_num int(4) not null,
table_empty int(1) not null);
create tabledr_menu_type(
menu_type_id int(4) not null primary keyauto_increment,
menu_type_name char(255) not null);
create tabledr_menu(
menu_id int(4) not null primary keyauto_increment,
menu_name char(255) not null,
menu_price int(16) not null,
menu_type_id int(4) not null);
create tabledr_option(
option_id int(4) not null primary keyauto_increment,
option_name char(255) not null,
option_value char(255) not null);
2)還剩下一個dr_order為非關係型集合,使用Mongodb資料庫儲存,包含訂單資訊,它的結構如下:
dr_order:{"id":"xxx", "order":1, "table":1,"waiter":"xxx", "time":"xxx","admin":"xxx", "pay":true,"detail":[{"menu":"xxx", "price":12,"amount":1, "chef":"xxx","finish":true, "remark":"xxx"}]}
3)Mysql和Mongodb資料庫的串連參數等資訊,儲存在背景properties設定檔。
4)部分資料庫儲存操作使用了預存程序,這些可以在項目目錄下的drhelper_db資料庫目錄裡的Database Backup檔案中可以查看到。
2、Android前端應用設計
1)其每項準系統都由一個Activity和一個AsyncTask構成,Activity載入布局xml來構造操作介面。當使用者執行某個操作後,需要執行通訊對象的JSON序列化,向後台發生HTTP請求,等待HTTP響應,響應訊息執行JSON還原序列化,根據結果進行反饋處理。這一系列的處理由於有網路通訊在其中,實際執行時間可長可短,所以Activity要啟動一個AsyncTask線程來執行這些後台操作,以避免Activity執行超過5秒報異常的問題,也吻合介面與邏輯處理要線程分離的通用思想。
2)對於兩個通知功能,空桌通知和上菜通知,我需要實現一個訊息推送機制,Android用戶端需要建立和維持與背景TCP長串連訊息推送通道。實現方案是這樣,使用者啟用通知訂閱後,先建立一個Service,然後在Service裡再建立一個線程,這是因為Android的Service可能和Activity處於同一個線程執行,這種TCP長串連任務需要有獨立線程來執行,所以要再啟動一個線程。在這個線程裡建立一個與後台推送服務的TCP Socket,發起登入請求訊息,並定期發送心跳訊息來維持TCP長串連,還要根據Android用戶端的通知預定配置發起通知預定請求訊息。當通過這個Socket收到背景通知推送訊息後,再發起HTTP請求去擷取具體的通知內容,收到響應後根據通知類型發出相應的Android通知訊息。這裡有一些異常情況需要處理,比如當服務端退出時需要檢測出來並直接退出Service,這時沒有再進行重登入嘗試是因為,當服務端退出後除了這個通知服務的登入資訊沒有外,整個應用的登入資訊也沒有了,所以這時需要退出整個應用並重登入,當應用重登入後也會再發起通知服務的登入。另外,當使用者根據通知訂閱操作介面關閉通知功能時,要能中斷通知Service自身。
3)對於Activity的退出,採用註冊廣播接收程式的方式實現。當使用者退出登入時,會發出退出廣播,Activity堆棧的各個Activity收到後,就各自退出並銷毀自身,Service的退出實現也類似。
4)應用需要頻繁讀取的兩個表是dr_menu_type和dr_menu,並且這兩個表不會發生頻繁的變化,所以把它們儲存一份在Android的SQLite裡,這樣能夠顯著的節省與背景資料交換量,然後通過專門的更新功能,來與背景同步處理這兩個表的資料。在實現上通過ContentProvider機制來封裝對底層SQLite的訪問,以實現對業務層介面的友好。
5)對於已經登入的帳號資訊,伺服器位址、通知訂閱等配置資訊,都儲存在喜好設定裡,並根據選項菜單進行配置。
3、Web前端設計
1)採用單頁式網站風格,點擊頁面的按鈕或者連結,通過Ajax請求來向後端提交資料,並擷取新產生局部頁面,最後把局部頁面更新到對應的位置。相關的JS操作採用Jquery庫來進行,以取得較好的瀏覽器安全色性。
2)在HTML頁面的構造上,採用JSP指令碼來完成。根據後台Servlet邏輯處理完後產生的Java Bean對象,在JSP檔案內,通過Java指令碼或者JSTL等JSP技術,擷取Java Bean對象拼裝成所需要的HTML頁面。
4、Java後台服務設計
1)通過Tomcat容器的Servlet來進行幕後處理,為實現MVC,Servlet裡只進行訊息內容提取、服務調用和訊息轉寄等控制邏輯,具體的商務邏輯在對應的Service裡進行,包括對資料庫的操作。
2)對資料庫的操作通過一個代理進行,這樣能夠屏蔽兩種資料的差異,給上層以統一的資料操作介面。
3)在訊息推送服務後台實現上,採用建立一個servlet的上下文監聽器,這樣這個監聽器就可以在Tomcat容器啟動時調用,容器退出時才退出。再在這個監聽器裡建立一個線程,這個線程監聽一個TCP Socket,當有來自Android用戶端的串連時,建立處理串連並管理起來。當商務邏輯觸發到有空桌事件或上菜事件時,通過Android用戶端的預定通知清單,找到對於的處理串連,發送通知推送訊息來通知Android用戶端擷取具體的通知內容。在與Android用戶端的串連維護上,除了需要回應Android用戶端的心跳訊息外,還需要啟動定時器來檢測心跳訊息的存在,當檢測到無心跳訊息時表明相應的Android用戶端已經異常退出,這時就需要清除這個失效的串連。
4)為了能夠在響應訊息中傳送中文字元,需要設定響應訊息的編解碼方式為UTF-8,這對於每個Servlet都需要進行,所以就建立一個過濾器來統一做這個設定。
5)不論是移動端還是Web端,前台使用者資訊的儲存,由於其都是基於HTTP協議進行前後台通訊的,所以採用cookie來完成。在幕後處理上,Servlet有封裝的session對cookie的處理提供了支援,直接使用就行了。
6)在服務部署上,使用nginx做反向 Proxy,把請求轉寄到後端的tomcat伺服器上進行處理。這也是常用的部署方式,因為目前系統檔案比較少,所以沒有把圖片等靜態資源放到nginx下這種動靜分離的做法。
六、檔案及目錄介紹
Android\:移動端目錄
Android\libs\:支援包目錄
Android\res\drawable-hdpi\:應用的圖片目錄
Android\res\layout\:布局xml檔案目錄
Android\res\menu\:系統功能表布局xml檔案目錄
Android\res\values\:字串定義檔案目錄
Android\src\com\drhelper\activity\:Activity檔案目錄
Android\src\com\drhelper\activity\AfterLoginActivity.java:登入前Activity通用功能,其他Activity繼承這個Activity
Android\src\com\drhelper\activity\BeforeLoginActivity.java:登入後Activity通用功能,繼承於AfterLoginActivity,其他Activity繼承這個Activity
Android\src\com\drhelper\activity\ChangeTableActivity.java:換台頁面的Activity
Android\src\com\drhelper\activity\CheckOrderActivity.java:查單頁面的Activity
Android\src\com\drhelper\activity\CheckTableActivity.java:查桌頁面的Activity
Android\src\com\drhelper\activity\CreateTableActivity.java:開桌頁面的Activity
Android\src\com\drhelper\activity\LoginActivity.java:登入頁面的Activity
Android\src\com\drhelper\activity\MainActivity.java:首頁面的Activity
Android\src\com\drhelper\activity\MenuActivity.java:菜單顯示頁面的Activity
Android\src\com\drhelper\activity\OrderActivity.java:訂單顯示頁面的Activity
Android\src\com\drhelper\activity\OrderMenuActivity.java:菜單操作頁面的Activity
Android\src\com\drhelper\activity\PrefsActivity.java:偏好配置頁面的Activity
Android\src\com\drhelper\activity\UnionTableActivity.java:並台頁面的Activity
Android\src\com\drhelper\activity\UpdateActivity.java:更新頁面的Activity
Android\src\com\drhelper\bean\:Java Bean對象目錄
Android\src\com\drhelper\bean\MenuItem.java:菜單顯示頁面的功能表項目Bean
Android\src\com\drhelper\bean\MenuList.java:菜單顯示頁面的菜單列表Bean
Android\src\com\drhelper\bean\com\:前後台通訊的Java Bean對象目錄
Android\src\com\drhelper\bean\com\EmptyTable.java:查桌頁面的通訊對象
Android\src\com\drhelper\bean\com\EmptyTableList.java:查桌頁面的通訊對象
Android\src\com\drhelper\bean\com\Login.java:登入頁面的通訊對象
Android\src\com\drhelper\bean\com\MenuList.java:更新頁面的通訊對象
Android\src\com\drhelper\bean\com\MenuTypeList.java:更新頁面的通訊對象
Android\src\com\drhelper\bean\com\NoticeDetail.java:擷取通知的通訊對象
Android\src\com\drhelper\bean\com\NoticeHeartBeat.java:通知心跳的通訊對象
Android\src\com\drhelper\bean\com\NoticeLogin.java:通知登入的通訊對象
Android\src\com\drhelper\bean\com\NoticeLogout.java:通知登出的通訊對象
Android\src\com\drhelper\bean\com\NoticePush.java:通知訊息的通訊對象
Android\src\com\drhelper\bean\com\NoticeSubscribe.java:通知預定的通訊對象
Android\src\com\drhelper\bean\com\OneTableOneOrder.java:包含一個桌號和一個訂單號的通訊對象,可用於多處
Android\src\com\drhelper\bean\com\OrderInfo.java:訂單資訊的通訊對象
Android\src\com\drhelper\bean\com\TwoTableOneOrder.java:包含兩個桌號和一個訂單號的通訊對象,可用於多處
Android\src\com\drhelper\entity\:資料庫物件目錄
Android\src\com\drhelper\entity\Detail.java:訂單集合中detail欄位對應的對象
Android\src\com\drhelper\entity\Menu.java:菜單表對應的對象
Android\src\com\drhelper\entity\MenuType.java:菜單類型表對應的對象
Android\src\com\drhelper\entity\Order.java:訂單集合對應的對象
Android\src\com\drhelper\provider\MenuProvider.java:菜單和菜單類型表的ContentProvider封裝實現
Android\src\com\drhelper\service\NoticeService.java:通知服務用戶端實現
Android\src\com\drhelper\task\:AsyncTask實現目錄
Android\src\com\drhelper\task\ChangeTableTask.java:換台功能的任務
Android\src\com\drhelper\task\CheckOrderTask.java:查單功能的任務
Android\src\com\drhelper\task\CheckTableTask.java:查桌功能的任務
Android\src\com\drhelper\task\CreateTableTask.java:開桌功能的任務
Android\src\com\drhelper\task\DeleteOrderTask.java:刪除訂單功能的任務
Android\src\com\drhelper\task\LoadOrderTask.java:訂單載入功能的任務
Android\src\com\drhelper\task\LoginTask.java:登入功能的任務
Android\src\com\drhelper\task\SubmitOrderTask.java:提交訂單功能的任務
Android\src\com\drhelper\task\UnionTableTask.java:並台功能的任務
Android\src\com\drhelper\task\UpdateTask.java:更新功能的任務
Android\src\com\drhelper\util\CookieManager.java:Cookie功能實現
Android\src\com\drhelper\util\DialogBox.java:提示框功能實現
Android\src\com\drhelper\util\HttpEngine.java:HTTP通訊機制實現
Android\src\com\drhelper\util\PrefsManager.java:偏好管理對象
Server\:服務端目錄
Server\drhelper_db\drhelper_mysql_db.sql:MysqlDatabase Backup檔案
Server\drhelper_db\drhelper_mongodb\drhelper\:MongodbDatabase Backup檔案目錄
Server\tomcat\jsp\:JSP檔案目錄
Server\tomcat\res\drhelper.css:項目的CSS檔案
Server\tomcat\res\drhelper.js:項目的JS檔案
Server\tomcat\res\jquery-1.10.1.js:Jquery庫的JS檔案
Server\tomcat\WEB-INF\lib\:支援包目錄
Server\tomcat\WEB-INF\src\DBConfig.properties:資料庫配置資訊檔
Server\tomcat\WEB-INF\src\com\drhelper\android\:Android後台服務實現目錄
Server\tomcat\WEB-INF\src\com\drhelper\android\bean\NoticeEvent.java:通知服務內部使用的通知事件對象
Server\tomcat\WEB-INF\src\com\drhelper\android\bean\UserSocketChannel.java:通知服務內部使用的使用者名稱和串連映射對象
Server\tomcat\WEB-INF\src\com\drhelper\android\bean\com\:前後台通訊的Java Bean對象目錄,與Android目錄中對應目錄相同
Server\tomcat\WEB-INF\src\com\drhelper\android\listener\NoticeServerListener.java:通知服務上下文監聽器實現
Server\tomcat\WEB-INF\src\com\drhelper\android\server\NoticeServer.java:通知服務後台實現
Server\tomcat\WEB-INF\src\com\drhelper\android\service\:Android後台商務邏輯實現目錄
Server\tomcat\WEB-INF\src\com\drhelper\android\service\ChangeTableService.java:換台功能商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\android\service\CheckOrderService.java:查單功能商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\android\service\CheckTableService.java:查桌功能商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\android\service\CreateTableService.java:開桌功能商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\android\service\DeleteOrderService.java:刪除訂單功能商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\android\service\GetNoticeService.java:擷取通知功能商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\android\service\LoadOrderService.java:載入訂單功能商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\android\service\LoginService.java:登入功能商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\android\service\LogoutService.java:登出功能商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\android\service\Service.java:後台商務邏輯抽象類別
Server\tomcat\WEB-INF\src\com\drhelper\android\service\SubmitOrderService.java:提交訂單功能商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\android\service\UnionTableService.java:並台功能商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\android\service\UpdateMenuService.java:更新功能商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\android\service\UpdateMenuTypeService.java:更新功能商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\:Android後台控制邏輯Servlet實現目錄
Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\ChangeTableServlet.java:換台功能Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\CheckOrderServlet.java:查單功能Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\CheckTableServlet.java:查桌功能Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\CreateTableServlet.java:開桌功能Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\DeleteOrderServlet.java:刪除訂單功能Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\GetNoticeServlet.java:擷取通知功能Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\LoadOrderServlet.java:載入訂單功能Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\LoginServlet.java:登入功能Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\LogoutServlet.java:登出功能Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\SubmitOrderServlet.java:提交訂單功能Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\UnionTableServlet.java:並台功能Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\UpdateMenuServlet.java:更新功能Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\android\servlet\UpdateMenuTypeServlet.java:更新功能Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\android\util\LogicException.java:程式邏輯異常對象
Server\tomcat\WEB-INF\src\com\drhelper\android\util\TypeConvert.java:String和ByteBuffer對象轉換輔助類
Server\tomcat\WEB-INF\src\com\drhelper\common\:後台通用功能實現目錄
Server\tomcat\WEB-INF\src\com\drhelper\common\db\DataBase.java:資料庫基類
Server\tomcat\WEB-INF\src\com\drhelper\common\db\DBManager.java:資料庫操作代理對象
Server\tomcat\WEB-INF\src\com\drhelper\common\db\MongoDB.java:Mongodb資料庫操作對象
Server\tomcat\WEB-INF\src\com\drhelper\common\db\MysqlDB.java:Mysql資料庫操作對象
Server\tomcat\WEB-INF\src\com\drhelper\common\entity\:資料庫物件目錄,與Android目錄中對應目錄相同
Server\tomcat\WEB-INF\src\com\drhelper\common\filter\ServletFilter.java:Servlet過濾器實現
Server\tomcat\WEB-INF\src\com\drhelper\web\:Web後台服務實現目錄
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\:用於給JSP頁面提供資料的Java Bean對象目錄
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminMenu.java:菜單管理頁面菜單對象
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminMenuObject.java:菜單管理頁面對象
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminMenuTypeObject.java:菜單類型管理頁面對象
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminOptionObject.java:組態管理頁面對象
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminOrder.java:訂單管理頁面訂單對象
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminOrderObject.java:訂單管理頁面對象
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminTableObject.java:餐桌管理頁面對象
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\AdminUserObject.java:使用者管理頁面對象
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\FinishMenu.java:完成菜品管理頁面菜品對象
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\FinishMenuObject.java:完成菜品管理頁面對象
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\IndexObject.java:首頁對象
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\LoginObject.java:登入對象
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\LogoutObject.java:登出對象
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\OrderMenu.java:下單菜品管理頁面菜品對象
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\OrderMenuObject.java:下單菜品管理頁面對象
Server\tomcat\WEB-INF\src\com\drhelper\web\bean\PageInfo.java:頁號對象
Server\tomcat\WEB-INF\src\com\drhelper\web\service\:Ajax後台商務邏輯實現目錄
Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxAdminMenuService.java:菜單管理商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxAdminMenuTypeService.java:菜單類型管理商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxAdminOptionService.java:配置項管理商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxAdminOrderService.java:訂單管理商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxAdminTableService.java:餐桌管理商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxAdminUserService.java:使用者管理商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxFinishMenuService.java:完成菜品管理商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxLoginService.java:登入功能商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxLogoutService.java:登出功能商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\web\service\AjaxOrderMenuService.java:下單菜品管理商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\web\service\IndexService.java:首頁商務邏輯實現
Server\tomcat\WEB-INF\src\com\drhelper\web\service\Service.java:商務邏輯抽象介面
Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\:Ajax後台控制邏輯Servlet實現目錄
Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxAdminMenuServlet.java:菜單管理控制邏輯Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxAdminMenuTypeServlet.java:菜單類型管理控制邏輯Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxAdminOptionServlet.java:配置項管理控制邏輯Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxAdminOrderServlet.java:訂單管理控制邏輯Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxAdminTableServlet.java:餐桌管理控制邏輯Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxAdminUserServlet.java:使用者管理控制邏輯Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxFinishMenuServlet.java:完成菜品管理控制邏輯Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxLoginServlet.java:登入功能控制邏輯Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxLogoutServlet.java:登出功能控制邏輯Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\AjaxOrderMenuServlet.java:下單菜品管理控制邏輯Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\web\servlet\IndexServlet.java:首頁控制邏輯Servlet實現
Server\tomcat\WEB-INF\src\com\drhelper\web\util\ServiceUtil.java:商務邏輯協助工具功能類
Server\tomcat\WEB-INF\src\com\drhelper\web\util\ServletUtil.java:Servlet控制邏輯協助工具功能類
七、部署方法
1、源碼下載後,用Eclipse編譯Server目錄下的服務端源碼,用adt-bundle編譯Android目錄下的移動端源碼。
2、在伺服器上安裝部署Nginx和Tomcat,配置Nginx把所有請求轉寄到Tomcat,同時安裝部署好Mysql和Mongodb。
3、在tomcat/webapps下建立項目目錄drhelper,然後把Server/tomcat目錄編譯產生的檔案拷貝到drhelper下。
4、把Server/ drhelper_db目錄下的Database Backup檔案分別匯入Mysql和Mongodb。
5、把Android目錄下編譯產生的apk檔案安裝到手機上。
6、通過手機上的應用可以正常訪問系統的移動部分,使用服務員角色相關功能,同時通過瀏覽器也可以訪問系統的Web部分,使用廚師和管理員角色相關功能。
(完)