張國(guó)平,黃 淼,褚龍現(xiàn)
(平頂山學(xué)院 軟件學(xué)院,河南 平頂山 467000)
基于Android和SSH2的手機(jī)訂餐系統(tǒng)
張國(guó)平,黃 淼,褚龍現(xiàn)
(平頂山學(xué)院 軟件學(xué)院,河南 平頂山 467000)
為方便用戶不受時(shí)間和空間的限制,便能快速訂餐,本文采用Android和SSH2技術(shù)設(shè)計(jì)并開(kāi)發(fā)一個(gè)網(wǎng)上訂餐系統(tǒng),該系統(tǒng)由手機(jī)客戶端和后臺(tái)服務(wù)器端兩部分組成,手機(jī)客戶端實(shí)現(xiàn)用戶的注冊(cè)登錄、菜品信息查詢、生成訂單和訂單信息查詢等功能;后臺(tái)服務(wù)器端實(shí)現(xiàn)了用戶管理,用戶訂單查看與檢索,購(gòu)物車(chē)查看與檢索,餐廳管理,菜品管理,餐廳訂單查看與檢索等功能。開(kāi)發(fā)的系統(tǒng)能給餐廳賣(mài)家提供更多商機(jī),同時(shí)也給顧客提供更多的便利。實(shí)驗(yàn)表明,該系統(tǒng)具有操作簡(jiǎn)便、擴(kuò)展性強(qiáng)、加載速度快和占用資源少等優(yōu)點(diǎn),達(dá)到了設(shè)計(jì)要求。
Android;Strus2;Spring;Hibernate;網(wǎng)上訂餐系統(tǒng)
隨著網(wǎng)絡(luò)技術(shù)與信息技術(shù)的快速發(fā)展,人們對(duì)餐飲的要求越來(lái)越高,不僅要求色香味俱全,而且對(duì)于就餐的時(shí)間和方式也有了更高的要求。傳統(tǒng)的訂餐管理系統(tǒng)大多是基于C/S模式開(kāi)發(fā),該開(kāi)發(fā)模式具有用戶不便于在網(wǎng)絡(luò)訂餐、維護(hù)工作量和成本大等缺點(diǎn)[1];目前已有的基于B/S模式的訂餐系統(tǒng),用戶必須通過(guò)電腦進(jìn)行訂餐操作,由于電腦體積大且不便于攜帶,這樣給用戶隨時(shí)隨地的網(wǎng)上訂餐帶來(lái)了諸多不便。近年來(lái),隨著智能手機(jī)的不斷普及和移動(dòng)互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,手機(jī)成為了人們生活中不可缺少的工具,它已成為人們獲取信息的主要設(shè)備,使得用戶移動(dòng)訂餐成為了可能。
通過(guò)移動(dòng)通信與Internet的結(jié)合,使得移動(dòng)應(yīng)用快速發(fā)展。移動(dòng)應(yīng)用業(yè)務(wù)為人們提供了隨時(shí)隨地訪問(wèn)網(wǎng)絡(luò)并從網(wǎng)絡(luò)獲取信息和處理信息的能力。為了方便用戶不受時(shí)間和空間的限制,直接利用智能手機(jī)移動(dòng)設(shè)備,方便快捷瀏覽、訂購(gòu)感興趣的菜品,本文提出采用Android和J2EE技術(shù)設(shè)計(jì)并開(kāi)發(fā)一個(gè)手機(jī)訂餐系統(tǒng),即采用Android技術(shù)進(jìn)行手機(jī)客戶端的設(shè)計(jì),采用J2EE技術(shù)(Struts、Spring、Hibernate)實(shí)現(xiàn)Web后臺(tái)服務(wù)器端的開(kāi)發(fā)。開(kāi)發(fā)的系統(tǒng)具有較高的聯(lián)網(wǎng)實(shí)時(shí)性,滿足用戶隨時(shí)隨地網(wǎng)上訂餐的需求,大大節(jié)約了用戶的時(shí)間,從而提高了用戶的訂餐效率。
Android系統(tǒng)平臺(tái)包含有基于Linux內(nèi)核的操作系統(tǒng),虛擬機(jī),中間件,一些 API接口以及一些必要的應(yīng)用功能[2-3]。Android整體上可以看作是由Linux,C/C++和Java所構(gòu)成的開(kāi)源軟件系統(tǒng)[4]。
SSH2是Sruts2+Spring+Hibernate的一個(gè)整合框架[5-6],是目前使用較多的一種Web應(yīng)用程序開(kāi)源框架,該開(kāi)發(fā)模式能保證各層開(kāi)發(fā)相對(duì)獨(dú)立,又能協(xié)調(diào)工作,代碼結(jié)構(gòu)清晰,共享性高,且利于維護(hù)[7-8]。
通過(guò)需求分析得出,系統(tǒng)的功能主要分為會(huì)員用戶、餐廳用戶和管理員用戶3種用戶角色,會(huì)員用戶要能實(shí)現(xiàn)會(huì)員登錄、會(huì)員注冊(cè)、會(huì)員信息管理、餐廳瀏覽以及檢索、訂單管理、菜品瀏覽和檢索等功能。餐廳用戶要能實(shí)現(xiàn)菜品管理,餐廳登錄、餐廳信息管理、餐廳訂單查看和檢索等功能。系統(tǒng)管理員要實(shí)現(xiàn)會(huì)員管理、會(huì)員訂單查看與檢索、購(gòu)物車(chē)查看與檢索、餐廳管理、菜品管理、餐廳訂單查看與檢索等功能。系統(tǒng)功能結(jié)構(gòu)圖如圖1所示。
圖1 系統(tǒng)功能結(jié)構(gòu)圖
3.1 Android手機(jī)端包及類的設(shè)計(jì)
1)cn.edu.pdsu.bean:持久化類,所有的持久化類均在該包下,并info結(jié)尾命名。包下有8個(gè)持久化類,在這里進(jìn)行對(duì)數(shù)據(jù)的操作等。
1.2.2 IBDV懸液的制備。選取經(jīng)確診典型的IBD病死雞的法氏囊,經(jīng)無(wú)菌生理鹽水沖洗后稱取2 kg并剪碎,按1∶3的量加入無(wú)菌生理鹽水,然后進(jìn)行勻漿處理,于4 ℃條件下放置1 min,經(jīng)離心分離后提取上清液,加入青霉素和鏈霉素各3 000 IU/mL于上清液中,置于-30 ℃冰箱中冷凍保存,得到IBDV懸液。
2)cn.edu.pdsu.config:在這里存放的是進(jìn)行網(wǎng)絡(luò)請(qǐng)求的URL地址。
3)cn.edu.pdsu.customAdapter:Adapter類,系統(tǒng)中所有ListView所需的Adapter。
4)cn.edu.pdsu.refresh.view:自定義的view類,主要實(shí)現(xiàn)的上拉刷新與下拉刷新功能。
5)cn.edu.pdsu.slidingmenu:自定義的view類,主要實(shí)現(xiàn)的側(cè)滑功能。
6)cn.edu.pdsu.util:存放一系列的工具包,比如校驗(yàn)碼工具類,圖片的上傳與下載的工具包。
3.2 J2EE后臺(tái)服務(wù)器端包及類的設(shè)計(jì)
1)cn.edu.pdsu.struts:包存放Action,負(fù)責(zé)服務(wù)端的執(zhí)行以及Android端的接口實(shí)現(xiàn)。
2)cn.edu.pdsu.hibernate:存放session及數(shù)據(jù)底層持久化類。
3)cn.edu.pdsu.service:該包存放服務(wù)端業(yè)務(wù)邏輯類的接口,負(fù)責(zé)提供服務(wù)端所需要的業(yè)務(wù)邏輯操作接口。
4)cn.edu.pdsu.service.impl:該包存放實(shí)現(xiàn)業(yè)務(wù)邏輯接口的實(shí)現(xiàn)類,負(fù)責(zé)提供業(yè)務(wù)邏輯的具體實(shí)現(xiàn)。
5)cn.edu.pdsu.dao:存放Dao層接口文件。
6)cn.edu.pdsu.impl:存放實(shí)現(xiàn)Dao接口的實(shí)現(xiàn)類,負(fù)責(zé)提供數(shù)據(jù)庫(kù)操作的具體實(shí)現(xiàn)。
4.1 手機(jī)客戶端軟件的設(shè)計(jì)
4.1.1 會(huì)員查看餐廳信息功能的實(shí)現(xiàn)
餐廳模塊是展示給會(huì)員用戶的第一個(gè)功能模塊,通過(guò)請(qǐng)求相關(guān)API,返回最新的餐廳信息,并且加載展示給會(huì)員用戶。通過(guò)上拉刷新與下拉刷新獲取更多的餐廳信息,具體實(shí)現(xiàn)效果如圖2所示。
圖2 會(huì)員查看餐廳效果圖
系統(tǒng)會(huì)讀取記錄中的10條記錄。發(fā)送餐廳ID給服務(wù)端API接口,服務(wù)端通過(guò)判斷,服務(wù)端數(shù)據(jù)庫(kù)餐廳ID是否有大于提交的ID。如果有則用JSON數(shù)據(jù)形式返回所有的餐廳。如果沒(méi)有返回0x20002,告訴手機(jī)端,無(wú)需更新。服務(wù)器端響應(yīng)返回?cái)?shù)據(jù),解析JSON數(shù)據(jù),保存為本地JAVA數(shù)據(jù)。然后通過(guò)Handler消息通信機(jī)制,告知UI主線程,加載新數(shù)據(jù)到顯示頁(yè)面。
4.1.2 手機(jī)語(yǔ)音功能的實(shí)現(xiàn)
手機(jī)語(yǔ)音功能模塊使用iFLY Mobile Speech Platform 2.0訊飛移動(dòng)語(yǔ)音平臺(tái)的自動(dòng)的語(yǔ)音的識(shí)別技術(shù)來(lái)實(shí)現(xiàn)。語(yǔ)音實(shí)現(xiàn)原理如圖3所示,語(yǔ)音實(shí)現(xiàn)效果如圖4所示。
圖3 語(yǔ)音實(shí)現(xiàn)原理圖
圖4 語(yǔ)音模塊效果圖
4.1.3 手機(jī)餐廳登錄功能的實(shí)現(xiàn)
登錄模塊界面分有帳號(hào)輸入框,密碼輸入框以及登錄按鈕。密碼輸入框下面,還有一個(gè)記住密碼標(biāo)志,默認(rèn)是打開(kāi)狀態(tài),點(diǎn)擊后,表示選中狀態(tài),表示記住當(dāng)前密碼。下次可直接進(jìn)行登錄。
使用手機(jī)號(hào)即可進(jìn)行登錄。通過(guò)向API提交帳號(hào)和密碼,服務(wù)端進(jìn)行驗(yàn)證,返回響應(yīng)餐廳基本信息。如果帳號(hào)、密碼其中一項(xiàng)有誤,則都會(huì)進(jìn)行相應(yīng)的提示及返回值??蛻舳薃PP則會(huì)進(jìn)行相應(yīng)的判斷。同時(shí)APP可以記住密碼方便用戶下次登錄,如果開(kāi)啟了記住密碼,在登錄成功后,通過(guò)SharePreference存儲(chǔ)記住密碼的選項(xiàng)以及帳號(hào)密碼和帳號(hào)返回信息。下次登錄將直接返回用戶信息無(wú)需二次登錄,餐廳登錄界面如圖5所示。
圖5 餐廳登錄界面
4.2 J2EE后臺(tái)服務(wù)器端軟件的設(shè)計(jì)
4.2.1 API模塊的實(shí)現(xiàn)
API模塊分為 userAction、orderAction等相關(guān)類,通過(guò)http://211.69.26.230:8080/ordermeal/API模塊/操作 格式的地址進(jìn)行訪問(wèn)。如進(jìn)行登錄,通過(guò)訪問(wèn)地址http://lamboo.cn/ordermeal/UserActionlogin并 Post提交參數(shù)。在API的設(shè)計(jì)中,基于保密性需求,表單信息均采用POST提交。返回?cái)?shù)據(jù)使用JSON字符串。
userAction提供了接口驗(yàn)證接口、自動(dòng)注冊(cè)接口以及頭像上傳接口等。orderAction提供了餐廳用戶的使用的接口。
4.2.2 推送模塊的實(shí)現(xiàn)
在對(duì)系統(tǒng)進(jìn)行推送時(shí),默認(rèn)的需要使用極光云推送的后臺(tái)進(jìn)行消息的推送。極光推送為開(kāi)發(fā)者提供了更加靈活的簡(jiǎn)單的推送服務(wù),推送服務(wù)按照極光提供的端口規(guī)范。本系統(tǒng)在服務(wù)端后臺(tái)的開(kāi)發(fā)過(guò)程中,通過(guò)對(duì)極光云推送的API的調(diào)用,實(shí)現(xiàn)了推送功能,無(wú)需使用極光系統(tǒng)即可發(fā)布推送消息。
在發(fā)布推送中,通過(guò)POST提交相關(guān)數(shù)據(jù)以及參數(shù)到指定API地址來(lái)推送內(nèi)容到客戶端。需要提交推送類型,消息,推送以及富媒體,提交推送樣式,根據(jù)不同的樣式ID,彈出不同的消息通知欄彈出樣式。以及提交推送的內(nèi)容,請(qǐng)求等內(nèi)容。并且會(huì)同時(shí)根據(jù)API返回值判斷推送是否成功,如果成功則告訴管理員推送成功,否則提示失敗。
在頁(yè)面設(shè)計(jì)中,通過(guò)API查詢?nèi)康臉?biāo)簽,并使用HTML的select標(biāo)簽,顯示全部的標(biāo)簽,管理員可以通過(guò)選擇全部或標(biāo)簽來(lái)推送給不同的群體。推送界面如圖6所示。
圖6 推送效果圖
為了方便用戶不受空間和時(shí)間的限制實(shí)現(xiàn)網(wǎng)上的快速訂餐,本文綜合應(yīng)用Struts2+Spring+Hibernate3大框架技術(shù)并結(jié)合Android技術(shù)設(shè)計(jì)并開(kāi)發(fā)了一個(gè)手機(jī)訂餐系統(tǒng),開(kāi)發(fā)的系統(tǒng)能方便用戶隨時(shí)隨地實(shí)現(xiàn)餐廳菜品的訂購(gòu)。系統(tǒng)具有較高的聯(lián)網(wǎng)實(shí)時(shí)性,開(kāi)發(fā)的系統(tǒng)具有較高的聯(lián)網(wǎng)實(shí)時(shí)性,滿足用戶隨時(shí)隨地網(wǎng)上訂餐的需求,大大節(jié)約了用戶的時(shí)間,從而提高了用戶的訂餐效率。
[1]張志德,李本富.移動(dòng)云計(jì)算之a(chǎn)ndroid餐飲服務(wù)系統(tǒng)開(kāi)發(fā)[J].科學(xué)技術(shù)與工程,2012(3):687-689.
[2]孟濬,朱天宇.一種基于智能手機(jī)的新移動(dòng)醫(yī)療系統(tǒng)模式[J].計(jì)算機(jī)應(yīng)用研究,2013(7):2055-2060.
[3]李慧,劉星橋.基于物聯(lián)網(wǎng)Android平臺(tái)的水產(chǎn)養(yǎng)殖遠(yuǎn)程監(jiān)控系統(tǒng)[J].農(nóng)業(yè)工程學(xué)報(bào),2013(13):175-181.
[4]陳群,蔡桂煜.基于Android的智能家庭健康監(jiān)控設(shè)備開(kāi)發(fā)[J].三明學(xué)院學(xué)報(bào),2015(4):16-22
[5]張國(guó)平,鄭均輝.基于SSH2和Ajax的物聯(lián)網(wǎng)社區(qū)信息化管理系統(tǒng)[J].現(xiàn)代電子技術(shù),2014(14):71-73.
[6]李淑芳,胡克寒.基于SSH2框架的高??蒲芯W(wǎng)絡(luò)管理系統(tǒng)的實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2010(7)195-196.
[7]朱科峰,曹靜.基于SSH2架構(gòu)的農(nóng)村信息服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].江蘇農(nóng)業(yè)學(xué)報(bào),2013(4):885-891.
[8]何苗.基于SSH2框架與ExtJS技術(shù)的權(quán)限管理模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2013(13):44-46.
Mobile phone ordering system based on Android and SSH2
ZHANG Guo-ping,HUANG Miao,CHU Long-xian
(School of Software,Pingdingshan University,Pingdingshan 467000,China)
For the convenience that the users is not restricted to time and space to get the ordering information,this paper uses the technology based on Android and SSH2,designs and develops a Online ordering system.The system is consists of mobile phone client and server,The mobile client of the system can realize the functions of login for registered users,query for Food infromation,build for order and query for order information.The backstage server can realize the functions of user management,user orders and search,shopping cart view and search,restaurant management,food management restaurant orders and serach.The system can realize the more business opportunities for the restaurant seller,and at the same time to provide more convenience for customers.Experimental results show that the system has the advantages of simple operation,strong portability,fast loading speed and less resource-intensive,and thus reaching the design requirements.
Android;Struts2;Spring;Hibernate;online ordering system
TN929.5
A
1674-6236(2016)15-0049-03
2015-10-25 稿件編號(hào):201510172
河南省科技廳科技發(fā)展計(jì)劃項(xiàng)目(132102310516);平頂山學(xué)院青年科研基金項(xiàng)目(PDSU-QNJJ-2013010)
張國(guó)平(1980—),男,江西南昌人,碩士研究生,講師。研究方向:軟件工程,嵌入式與軟件開(kāi)發(fā),移動(dòng)通信應(yīng)用。