一、原始碼路徑
https://github.com/weiganyi/dr-helper
二、介面
通過瀏覽器訪問Web服務,能夠看到介面例如以下:
ADT-Bundle編譯project生成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)對於兩個通知功能,空桌通知和上菜通知,我須要實現一個訊息推送機制,Androidclient須要建立和維持與後臺的TCP長連線訊息推送通道。
實現方案是這樣,使用者啟用通知訂閱後,先建立一個Service,然後在Service裡再建立一個執行緒,這是由於Android的Service可能和Activity處於同一個執行緒執行,這樣的TCP長連線任務須要有獨立執行緒來執行,所以要再啟動一個執行緒。
在這個執行緒裡建立一個與後臺推送服務的TCP Socket,發起登入請求訊息,並定期傳送心跳訊息來維持TCP長連線,還要依據Androidclient的通知預定配置發起通知預定請求訊息。
當通過這個Socket收到後臺的通知推送訊息後。再發起HTTP請求去獲取詳細的通知內容,收到響應後依據通知型別發出對應的Android通知訊息。
這裡有一些異常情況須要處理,比方當服務端退出時須要檢測出來並直接退出Service。這時沒有再進行重登入嘗試是由於。當服務端退出後除了這個通知服務的登入資訊沒有外,整個應用的登入資訊也沒有了,所以這時須要退出整個應用並重登入,當應用重登入後也會再發起通知服務的登入。
另外,當使用者依據通知訂閱操作介面關閉通知功能時。要能中斷通知Service自身。還有由於Android手機可能會殺死後臺的服務執行緒,所以須要在這樣的情況下須要傳送一個廣播訊息給Service,由Service又一次拉起服務執行緒。
3)對於Activity的退出,採用註冊廣播接收程式的方式實現。
當使用者退出登入時。會發出退出廣播,Activity堆疊的各個Activity收到後,就各自退出並銷燬自身。Service的退出實現也類似。
4)應用須要頻繁讀取的兩個表是dr_menu_type和dr_menu,而且這兩個表不會發生頻繁的變化,所以把它們儲存一份在Android的SQLite裡,這樣可以顯著的節省與後臺的資料交換量,然後通過專門的更新功能。來與後臺同步這兩個表的資料。在實現上通過ContentProvider機制來封裝對底層SQLite的訪問,以實現對業務層介面的友好。
5)對於已經登入的帳號資訊,server地址、通知訂閱等配置資訊,都儲存在首選項裡,並依據選項選單進行配置。
3、Web前端設計
1)採用單頁式站點風格,點選頁面的button或者連結,通過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。當有來自Androidclient的連線時。建立處理連線並管理起來。當業務邏輯觸發到有空桌事件或上菜事件時,通過Androidclient的預定通知列表。找到對於的處理連線,傳送通知推送訊息來通知Androidclient獲取詳細的通知內容。在與Androidclient的連線維護上,除了須要回應Androidclient的心跳訊息外,還須要啟動定時器來檢測心跳訊息的存在,當檢測到無心跳訊息時表明對應的Androidclient已經異常退出,這時就須要清除這個失效的連線。
4)為了可以在響應訊息中傳送中文字元。須要設定響應訊息的編解碼方式為UTF-8,這對於每一個Servlet都須要進行。所以就建立一個過濾器來統一做這個設定。
5)不論是移動端還是Web端,前臺使用者資訊的儲存,因為其都是基於HTTP協議進行前後臺通訊的。所以採用cookie來完畢。在後臺處理上。Servlet有封裝的session對cookie的處理提供了支援。直接使用即可了。
6)在服務部署上,使用nginx做反向代理,把請求轉發到後端的tomcatserver上進行處理。這也是經常使用的部署方式,由於眼下系統檔案比較少,所以沒有把圖片等靜態資源放到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:通知服務client實現
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:通知服務內部使用的username和連線對映物件
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、在server上安裝部署Nginx和Tomcat,配置Nginx把全部請求轉發到Tomcat。同一時候安裝部署好Mysql和Mongodb。
3、在tomcat/webapps下建立專案資料夾drhelper。然後把Server/tomcat資料夾編譯生成的檔案複製到drhelper下。
4、把Server/ drhelper_db資料夾下的資料庫備份檔案分別匯入Mysql和Mongodb。
5、把Android資料夾下編譯生成的apk檔案安裝到手機上。
6、通過手機上的應用能夠正常訪問系統的移動部分,使用服務員角色相關功能,同一時候通過瀏覽器也能夠訪問系統的Web部分,使用廚師和管理員角色相關功能。
(完)