dr-helper項目設計介紹(一個包含移動端和Web端的點餐管理系統)

一、源碼路徑

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數據庫目錄裏的數據庫備份文件中可以查看到。

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自身。還有由於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做反向代理,把請求轉發到後端的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:Mysql數據庫備份文件

Server\drhelper_db\drhelper_mongodb\drhelper\:Mongodb數據庫備份文件目錄

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目錄下的數據庫備份文件分別導入Mysql和Mongodb。

5、把Android目錄下編譯生成的apk文件安裝到手機上。

6、通過手機上的應用可以正常訪問系統的移動部分,使用服務員角色相關功能,同時通過瀏覽器也可以訪問系統的Web部分,使用廚師和管理員角色相關功能。

(完)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章