標籤:mit activity 接收 clip 請求轉寄 讀取 資料 nio art
一、原始碼路徑
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資料庫檔案夾裡的Database Backup檔案裡能夠查看到。
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做反向 Proxy,把請求轉寄到後端的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: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:通知服務內部使用的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檔案夾下的Database Backup檔案分別匯入Mysql和Mongodb。
5、把Android檔案夾下編譯產生的apk檔案安裝到手機上。
6、通過手機上的應用能夠正常訪問系統的移動部分,使用服務員角色相關功能,同一時候通過瀏覽器也能夠訪問系統的Web部分,使用廚師和管理員角色相關功能。
(完)
dr-helper項目設計介紹(一個包括移動端和Web端的點餐管理系統)