鄒欽忠 孔令美 張艷紅
摘要:網(wǎng)絡(luò)的廣泛應(yīng)用使人們的工作和日常生活都發(fā)生了質(zhì)的變化,大家開始使用網(wǎng)絡(luò)開展電子商務(wù)、電子政務(wù)、網(wǎng)上醫(yī)療、網(wǎng)絡(luò)教學(xué)及網(wǎng)上訂餐等活動。該文系統(tǒng)地闡述了網(wǎng)絡(luò)訂餐系統(tǒng)的設(shè)計及實現(xiàn)過程,系統(tǒng)具備菜品管理、菜品查詢、菜品預(yù)訂、訂單處理和系統(tǒng)管理功能,基本上實現(xiàn)了在線訂餐的整個流程。在系統(tǒng)開發(fā)過程中,以Eclipse作為集成開發(fā)環(huán)境,利用MySQL數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲,首先建立系統(tǒng)應(yīng)用原型,然后對初始原型系統(tǒng)進(jìn)行需求迭代,不斷修正和改進(jìn),直到形成滿意可行的系統(tǒng)。
關(guān)鍵詞:自助訂餐;網(wǎng)上訂餐;JSP技術(shù)
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)33-0178-03
Design and Implementation of the Online Self-Help Ordering System Based on JSP Technology
ZOU Qin-zhong, KONG Ling-mei, ZHANG Yan-hong
(Guangdong Polytechnic Normal University, Tianhe College, Guangzhou 510540, China)
Abstract: Widely used network makes people work and everyday life have undergone a qualitative change, we began to use the network to carry out e-commerce, e-government, online medical, online teaching and online ordering and other activities. This paper systematically describes the design and realization of network ordering system process management system with dishes, dishes inquiry, dishes book, order processing and system management functions, and virtually the entire ordering process online. In the system development process, with Eclipse as an integrated development environment, use MySQL database for data storage, first established the system application prototype, then the initial prototype system needs iteration, constantly revised and improved until a satisfactory workable system.
Key words: self-help ordering;the online ordering;JSP technology
1 概述
電子商務(wù)便捷、快速的交易形式廣受歡迎,這種模式應(yīng)用在餐飲行業(yè)為人們提供了良好的服務(wù)?;ヂ?lián)網(wǎng)的應(yīng)用已滲透到人們生活,網(wǎng)絡(luò)訂餐的發(fā)展十分迅速。網(wǎng)絡(luò)訂餐可通過在線展示菜品的圖片、描述、飲食文化等加強產(chǎn)品宣傳,同時極易實現(xiàn)產(chǎn)品管理,只要在后臺進(jìn)行操作,網(wǎng)站馬上更新,不因更改菜色而重新印刷菜單。采用Web開發(fā)技術(shù)實現(xiàn)的訂餐系統(tǒng),用戶無需安裝第三方軟件,能上網(wǎng)就能訂餐,甚至可以利用手機上網(wǎng)訂餐,操作方便,訂餐信息準(zhǔn)確。連同用戶的信息一起,消費歷史和消費習(xí)慣可以一起永久保存在系統(tǒng)中,由此可獲知客人的喜好,提供更貼心的服務(wù),或者方便地進(jìn)行菜單的調(diào)整。與此同時,現(xiàn)有網(wǎng)上訂餐服務(wù)也存在重視程度不夠、利用率不高、因現(xiàn)場訂餐情況與網(wǎng)絡(luò)訂餐情況沖突而造成服務(wù)質(zhì)量的下降等問題。本課題從這些問題著手,通過嚴(yán)密的系統(tǒng)設(shè)計,實現(xiàn)訂餐系統(tǒng)的管理和良好服務(wù)功能。
2 需求分析
通過餐廳的需求并結(jié)合自身對餐飲業(yè)管理的調(diào)查,網(wǎng)上自助點餐系統(tǒng)應(yīng)具備以下功能:
前臺功能包括:
開臺:此模塊確定餐桌是否被占用,未被占用就允許開臺,并生成訂單號;
轉(zhuǎn)臺:此模塊將已開臺轉(zhuǎn)到其他空臺;
點菜:此模塊用于為用戶從菜品里面選擇菜式;
結(jié)賬:此模塊用于統(tǒng)計餐廳客戶點的菜式,并計算總價。
后臺管理功能包括:
菜品管理:此模塊可以對菜品的信息進(jìn)行查詢、添加、刪除、修改;
桌臺管理:此模塊是對餐桌的信息的查詢、添加、刪除、修改的操作;
訂單管理:此模塊可以對訂單的進(jìn)行管理。統(tǒng)計指定時間段的訂單信息,并做出數(shù)據(jù)分析。
3 系統(tǒng)設(shè)計
1)功能模塊劃分
根據(jù)需求分析的結(jié)果,將本系統(tǒng)分為前臺和后臺兩大模塊。
前臺功能主要包括客戶進(jìn)入網(wǎng)站后進(jìn)行的相應(yīng)操作??蛻粜枰曰虻卿?,未注冊用戶僅能瀏覽網(wǎng)站信息,不能進(jìn)行訂餐操作。會員注冊成功后登錄網(wǎng)站,可以進(jìn)行信息修改、網(wǎng)上訂餐、訂單查詢及修改、網(wǎng)站留言等操作。
后臺功能主要涉及系統(tǒng)管理員登錄網(wǎng)站后臺進(jìn)行的相應(yīng)操作。管理者登錄成功后,可使用系統(tǒng)用戶管理、品類設(shè)置、公告發(fā)布、菜品信息管理等功能。
訂單及管理流程包括用戶從開始訂餐到網(wǎng)站后臺管理者查看訂單,實現(xiàn)確認(rèn)訂單、送餐、用戶確認(rèn)訂單的整個過程,也是整個訂餐系統(tǒng)的運作過程。
2)數(shù)據(jù)庫設(shè)計
本系統(tǒng)的數(shù)據(jù)庫包括九個表,分別為菜品表t_goods, 用戶注冊表t_user, 管理員表t_admin, 菜品類別表t_catelog, 公告表t_gonggao,定單表t_order,定單詳細(xì)信息表t_orderItem。詳情如下:
菜品表t_goods。菜品表主要記錄添加進(jìn)去的菜品的信息,有菜品的Id、菜的名字、菜的價格,goods_catelog_id關(guān)聯(lián)菜品類別表中的主鍵,記錄菜品屬于那個類別。
菜品類別表t_catelog。菜品類別表主要記錄菜品有哪些類別,類別的名字。
訂單表t_order。訂單表主要記錄用戶下訂單時所填寫的信息,訂單的信息。
訂單詳細(xì)表t_orderItem。訂單詳細(xì)表通過order_id關(guān)聯(lián)到訂單表t_order得到用戶的信息,通過goods_id關(guān)聯(lián)到菜品表t_goods得到菜品的信息,goods_quantity記錄數(shù)量,從而得到用戶所訂的菜品的價格。
公告表t_gonggao。公告表主要記錄菜品的一些最新信息。
管理員表t_admin。管理員表主要記錄管理員的信息,如:管理員的Id、管理員的姓名userName。
用戶注冊表t_user。用戶注冊表主要記錄用戶注冊的信息,有用戶名user_name,密碼user_pw,用于用戶登錄是使用。
4 系統(tǒng)主要功能實現(xiàn)
本系統(tǒng)用JSP語言來編寫網(wǎng)絡(luò)訂餐系統(tǒng),數(shù)據(jù)庫使用 MySQL,通過編寫JavaBeans來進(jìn)行后臺業(yè)務(wù)邏輯控制,即JSP +JavaBeans + MySQL 三層模式完成整個設(shè)計工作??蚣懿捎昧薙truts2+Sprint+Hibernate。本系統(tǒng)全部基于Internet網(wǎng)絡(luò),以JSP語言對網(wǎng)站進(jìn)行開發(fā),注重用戶與網(wǎng)站的交互性。因此在這樣的背景下,針對當(dāng)前Internet網(wǎng)絡(luò)發(fā)展趨勢來計網(wǎng)絡(luò)訂餐系統(tǒng)就成為了當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。
具備的功能有:
1)從用戶角度來看:用戶通過在線注冊成為網(wǎng)站的用戶,可以獲得以下功能:菜品瀏覽,購買菜品,修改密碼,修改個人信息,菜品簡介、訂餐車、留言板等。
2)從網(wǎng)站的角度看:網(wǎng)站應(yīng)該包含菜品搜索功能:按菜品名(模糊)查詢。訂單處理功能、確認(rèn)訂單方式,管理員管理:查看用戶信息,并根據(jù)用戶信息和用戶訂單對菜品進(jìn)行發(fā)派。
1)主頁面模塊
主頁面模塊主要設(shè)計的功能是顯示導(dǎo)航欄、登錄窗口、菜品展示、菜品分類、菜品排行榜、網(wǎng)站公告等。
實現(xiàn)過程:通過調(diào)用ServletActionContext.getContext().get("request")方法獲得名字為“request”的Map集合,在調(diào)用getHibernateTemplate().find()方法找到相應(yīng)的記錄,最后調(diào)用Map的put()方法將找到的記錄存放到Map集合里面。在jsp頁面中進(jìn)行調(diào)用,顯示相應(yīng)的記錄。
2)用戶注冊模塊
用戶注冊是為第一次登錄網(wǎng)站的用戶所設(shè)計的。在用戶成為本站用戶之前一定要注冊才可以訪問我網(wǎng)站的其它網(wǎng)頁。
①用戶注冊包括:登錄名稱,真實姓名,設(shè)置密碼,電子郵件等。
②注冊成功后,才可以訪問本站的其他頁面。
實現(xiàn)過程:新建一個user對象,調(diào)用setUserName()、setUserPw()、setUserAddress()、setUserTel()、setUserRealname()、setUserEmail()、setUserSex()、setUserQq()、setUserDel()方法將注冊頁面填寫的信息保存到user對象中,在調(diào)用save()方法將user對象保存到userDAO對象中。
3)用戶登錄模塊
用戶登錄包括:登錄名稱,輸入密碼。
當(dāng)用戶登錄后由管理員核對該用戶的名稱和密碼是否正確,如果無誤的話用戶可以通過檢查直接進(jìn)入網(wǎng)站的其它頁面進(jìn)行瀏覽和訂購。
實現(xiàn)過程:通過userDAO.getHibernateTemplate().find()方法查找是否有輸入的用戶,如果沒有則提示“用戶名或密碼錯誤”,如果有則進(jìn)入主頁面。
4)菜品展示模塊
菜品展示:成功登錄后的用戶可以瀏覽菜品,并將想要的菜品提交到填寫訂單頁面。
實現(xiàn)過程:通過調(diào)用goodsDAO.getHibernateTemplate().find()方法找到各種菜品,返回的是一個List集合,對List集合進(jìn)行遍歷,調(diào)用get()方法依次獲得菜品顯示出來。
5)訂餐車模塊
訂餐車:成功登錄后,用戶可以查看自己的訂單車,并可以對自己的訂單車進(jìn)行相應(yīng)的修改。
實現(xiàn)過程:通過goodsDAO.findById()方法跟傳遞的參數(shù)goodsId找到對應(yīng)的記錄,調(diào)用orderItem對象的setGoods()方法添加記錄,最后調(diào)用cart對象的addGoods()方法將orderItem對象添加到訂餐車。
6)訂單確認(rèn)模塊
訂單確認(rèn):用戶對訂餐車所訂的菜品確認(rèn)無誤后,進(jìn)行相應(yīng)的信息填寫,以便進(jìn)行送貨。
實現(xiàn)過程:通過ServletActionContext.getContext().getSession()獲得session對象,調(diào)用get()方法獲得訂餐車的信息、用戶的信息,調(diào)用setOrderBianhao(new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()))生成訂單編號。
7)訂單提交模塊
訂單提交:對用戶所下訂單進(jìn)行訂單信息的一個輸出。
實現(xiàn)過程:通過對訂餐車?yán)锏牟似愤M(jìn)行一個遍歷,對菜品進(jìn)行總金額的計算,同時生成一個訂單編號和下單日期,對填寫的送貨地址和付款方式輸出。
8)后臺管理員登陸
這是進(jìn)入系統(tǒng)時的身份驗證,用戶首先要從軟件開發(fā)者那里申請用戶名和密碼,才可以進(jìn)入。
實現(xiàn)過程:通過adminDAO.getHibernateTemplate().find()方法查找是否有輸入的用戶,如果沒有則提示“用戶名或密碼錯誤”,如果有則進(jìn)入主頁面。
9) 后臺主界面
后臺主界面:主要是管理員對用戶、菜品類別、菜品、訂單、留言、公告等進(jìn)行相應(yīng)的管理。
實現(xiàn)過程:后臺主界面的布局是頂端topFrame調(diào)用top.jsp頁面,左邊BoardMenu調(diào)用menu.jsp頁面,主要內(nèi)容界面調(diào)用sysPro.jsp頁面。
10)菜品類別管理
菜品類別管理:管理員對不同類別的菜品的添加及對添加的菜品類別進(jìn)行刪除等操作。
實現(xiàn)過程:通過調(diào)用catelogDAO.getHibernateTemplate().find()方法找到菜品類別,返回的是一個List集合,對List集合進(jìn)行遍歷,調(diào)用getContext().get()方法依次獲得菜品類別,返回的是一個Map集合,調(diào)用put()方法添加菜品類別顯。
11)菜品管理
菜品管理:管理員對菜品的添加及對添加的菜品進(jìn)行刪除、編輯等操作。
實現(xiàn)過程:通過調(diào)用goodsDAO.getHibernateTemplate().find()方法找到菜品,返回的是一個List集合,對List集合進(jìn)行遍歷,調(diào)用goodsList.get()方法依次獲得菜品信息,調(diào)用ServletActionContext.getContext().get("request")方法獲得Map集合,調(diào)用Map集合的put()方法添加菜品。
12)訂單管理
訂單管理:管理員對用戶所下訂單進(jìn)行查看、受理、刪除等操作。
實現(xiàn)過程:通過調(diào)用orderDAO.findById()方法和傳遞進(jìn)出的參數(shù)orderId查找到訂單,并在顯示的頁面對訂單進(jìn)行處理。
5 系統(tǒng)測試
此次測試采用黑盒測試方法。做了許多測試用例,但限于篇幅只寫出了幾個典型的測試用例。在測試的整個過程中,每個模塊的功能都比較成功,但也發(fā)現(xiàn)了一些問題,如在數(shù)據(jù)庫等多方面沒有數(shù)據(jù)的時候出現(xiàn)異常等,發(fā)現(xiàn)后及時做了修改。
1)登錄、注冊模塊測試
2)訂餐服務(wù)模塊測試
3)訂單處理模測試
4) 菜單管理模塊測試
6 總結(jié)
在本系統(tǒng)開發(fā)過程中,遇到了各種業(yè)務(wù)上和技術(shù)上的問題,經(jīng)過學(xué)習(xí)和研究一一解決,在今后的改進(jìn)中,我將側(cè)重于數(shù)據(jù)分析,力求在實現(xiàn)用戶自助訂餐的同時,能為餐飲管理提供決策支持。
參考文獻(xiàn):
[1] 余張元.基于嵌入式技術(shù)的無線自助點餐系統(tǒng)的研究與實現(xiàn)[D].成都:西華大學(xué), 2010.
[2] 劉輝,謝明華,龍英勇.基于ZigBee技術(shù)無線自助點餐系統(tǒng)的設(shè)計[J].自動化技術(shù)與應(yīng)用,2009,28(5):78-81.