酒店餐飲管理的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
酒店餐飲管理的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
酒店餐飲管理的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
酒店餐飲管理的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
酒店餐飲管理的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

緒論近年來(lái),隨著改革開(kāi)放步伐的加快和中西方文化的交流與發(fā)展,我國(guó)人民生活水平顯著提高,全社會(huì)對(duì)餐飲業(yè)的需求量也越來(lái)越大,伴隨著消費(fèi)的持續(xù)增長(zhǎng),酒店餐飲行業(yè)已經(jīng)成為現(xiàn)代社會(huì)中發(fā)展最快的行業(yè)之一。要想在激烈的市場(chǎng)競(jìng)爭(zhēng)中生存,就必須在經(jīng)營(yíng)管理、餐飲服務(wù)等方面提高管理意識(shí)。而對(duì)酒店的經(jīng)營(yíng)狀況起決定作用的是對(duì)酒店日常營(yíng)業(yè)的管理。如何用先進(jìn)的管理手段,提高酒店餐飲的管理水平,是每一家酒店的經(jīng)營(yíng)者所面臨的重要課題。所以應(yīng)勢(shì)而出的酒店管理系統(tǒng)有著很好的可行應(yīng)用性。它具有有檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、成本低等優(yōu)點(diǎn)。這些優(yōu)點(diǎn)能夠極大地提高酒店餐飲管理的效率,也是酒店在同行業(yè)競(jìng)爭(zhēng)中處于不敗地位的重要條件。系統(tǒng)以mysql作為后臺(tái)數(shù)據(jù)庫(kù),MyEclipse為開(kāi)發(fā)工具,tomcat為服務(wù)器,java為編程語(yǔ)言,技術(shù)支持采用spring+struts+hibernate(SSH)框架,運(yùn)用自頂向下逐層分解的模塊化結(jié)構(gòu)設(shè)計(jì)思想、面向?qū)ο蟮脑O(shè)計(jì)方法,實(shí)現(xiàn)了酒店餐飲管理系統(tǒng)的各個(gè)模塊。1.1研究背景及意義1.1.1背景隨著計(jì)算機(jī)網(wǎng)絡(luò)的飛速發(fā)展,在酒店行業(yè)中計(jì)算機(jī)的應(yīng)用越來(lái)越重要,采用適當(dāng)?shù)挠?jì)算機(jī)網(wǎng)絡(luò)和管理系統(tǒng),將成為提高酒店管理效率,升級(jí)服務(wù)級(jí)別的重要手段之一。目前國(guó)內(nèi)主流酒店餐飲管理系統(tǒng)為觸摸屏點(diǎn)菜系統(tǒng),一些小型酒店也配備了類似系統(tǒng),但大多沒(méi)有很好地整合網(wǎng)絡(luò)資源,缺少網(wǎng)上預(yù)定功能,因此,對(duì)該系統(tǒng)的研究也在不斷完善中。1.1.2意義本項(xiàng)目研究的酒店管理系統(tǒng)有幾個(gè)鮮明的特點(diǎn):一是靈活性好,隨著經(jīng)濟(jì)發(fā)展全球化,國(guó)際旅游更加頻繁,客戶的要求更加多樣化,客戶可以在任何地方通過(guò)網(wǎng)絡(luò)查看酒店的信息,了解酒店的情況,提出自己的要求,酒店可以通過(guò)留言板知道其客戶對(duì)酒店的意見(jiàn)或建議,隨時(shí)能夠掌握來(lái)自客戶方面的需求或要求。二是服務(wù)質(zhì)量高,客戶可以通過(guò)系統(tǒng)對(duì)已用過(guò)的菜品進(jìn)行評(píng)價(jià),酒店便可以提高那些評(píng)價(jià)較低菜品的質(zhì)量或口味,以適應(yīng)更多消費(fèi)者的需求。三是管理效率高,管理員可以通過(guò)此系統(tǒng)管理員工信息,知道酒店的運(yùn)營(yíng)狀況,以及時(shí)做出調(diào)整。通過(guò)對(duì)本項(xiàng)目的研究希望開(kāi)發(fā)出成本較低,功能完善,以幫助酒店的管理人員實(shí)現(xiàn)酒店餐飲的科學(xué)管理的酒店餐飲管理系統(tǒng),客戶可以在網(wǎng)上注冊(cè)成為該酒店會(huì)員以享受更優(yōu)質(zhì)、便捷的服務(wù),可以瀏覽酒店包桌及菜酒品的種類、價(jià)格等,同時(shí)這套系統(tǒng)還可以為客戶提供網(wǎng)上預(yù)訂及在線支付的功能。該管理系統(tǒng)還可以為管理員提供財(cái)務(wù)統(tǒng)計(jì)功能,以及對(duì)工作人員的管理等功能。希望此酒店餐飲管理系統(tǒng)的成功開(kāi)發(fā)能夠方便管理人員對(duì)酒店餐飲的管理,提高服務(wù)質(zhì)量和工作效率,使管理者全面了解營(yíng)業(yè)情況,完善酒店的管理體制。1.2國(guó)內(nèi)外發(fā)展情況

隨著信息化技術(shù)的日益普及,餐飲這樣的傳統(tǒng)行業(yè)也越來(lái)越多的采用信息技術(shù)來(lái)管理業(yè)務(wù),市場(chǎng)上餐飲管理軟件正處于百花齊放、百家爭(zhēng)鳴的階段。目前市場(chǎng)上大多數(shù)餐飲軟件是基于WINDOWS操作系統(tǒng)的,也有部分餐飲軟件考慮到版權(quán)的問(wèn)題,采用LINUX操作系統(tǒng);又比如,系統(tǒng)數(shù)據(jù)庫(kù),有ACCESS、SYBASE、MYSQL、SQLSERVER、ORACLE等,對(duì)于餐飲系統(tǒng)來(lái)說(shuō),采用什么數(shù)據(jù)庫(kù)與餐廳的規(guī)模比較相關(guān),較小的餐廳可以采用比較簡(jiǎn)單的數(shù)據(jù)庫(kù)如ACCESS,這樣使用維護(hù)都可以做的比較簡(jiǎn)單,而規(guī)模大的餐廳就應(yīng)該用SQLSERVER或ORACLE這樣的數(shù)據(jù)庫(kù),可以保障數(shù)據(jù)比較安全、系統(tǒng)比較穩(wěn)定,但同時(shí)也要求有專門(mén)的系統(tǒng)管理員來(lái)維護(hù)。還有,數(shù)據(jù)的錄入通常有三種方式,一是基于普通電腦,二是基于觸摸屏,三是采用無(wú)線點(diǎn)菜系統(tǒng),而無(wú)線技術(shù)又有基于紅外技術(shù)和無(wú)線網(wǎng)絡(luò)的技術(shù)。從目前的發(fā)展趨勢(shì)看,餐飲系統(tǒng)越來(lái)越多的采用觸摸屏,而無(wú)線技術(shù)正在逐步成熟起來(lái)。

在國(guó)內(nèi),餐飲軟件的發(fā)展也正處于蓬勃發(fā)展的時(shí)期,如龍騰環(huán)宇科技,它是一家以軟件開(kāi)發(fā)、銷售為主營(yíng)方向的技術(shù)開(kāi)發(fā)型企業(yè)。龍騰軟件立足于餐飲及酒店客房管理市場(chǎng),致力于為客戶提供一流的產(chǎn)品及服務(wù),企業(yè)下設(shè)市場(chǎng)拓展部、產(chǎn)品研發(fā)部、公關(guān)策劃部、客戶服務(wù)部等主要職能部門(mén)。在國(guó)外對(duì)餐飲軟件的研究和發(fā)展也相當(dāng)全面,但就目前國(guó)內(nèi)餐飲行業(yè)的情況來(lái)看,國(guó)外軟件的優(yōu)勢(shì)并不明顯,相反,國(guó)內(nèi)這些餐飲軟件企業(yè)在餐飲行業(yè)蒸蒸日上的同時(shí)也是蓬勃發(fā)展。

2系統(tǒng)需求分析 2.1角色設(shè)置本系統(tǒng)角色分為游客,會(huì)員和管理員,游客和會(huì)員只在前臺(tái)網(wǎng)站部分有權(quán)限,管理員對(duì)系統(tǒng)后臺(tái)部分有權(quán)限。2.2前臺(tái)功能前臺(tái)主要針對(duì)兩類用戶:游客和會(huì)員。其中游客只能對(duì)酒店菜酒品等信息進(jìn)行瀏覽以及注冊(cè)成為酒店會(huì)員。而系統(tǒng)為成功注冊(cè)并激活的會(huì)員提供以下這些功能:會(huì)員登錄與退出、個(gè)人信息修改、菜酒品信息查看、餐飲預(yù)訂、訂單信息查詢與刪除、菜酒品評(píng)論及查看、留言板、積分、近期活動(dòng)及精彩小游戲等。2.3后臺(tái)功能只有管理員才有權(quán)限登錄到后臺(tái),后臺(tái)主要包含以下功能模塊:管理員密碼修改:登陸后管理員可以對(duì)密碼進(jìn)行修改。會(huì)員管理:對(duì)會(huì)員信息添加、刪除、修改和查詢,評(píng)論信息刪除、修改、查詢以及留言信息的刪除、修改和查詢。訂單管理:對(duì)訂單信息的分類刪除、修改和查詢,對(duì)等待就餐訂單的開(kāi)臺(tái)處理,菜單報(bào)表的生成與打印,對(duì)正在就餐訂單的結(jié)賬處理以及訂單詳情的查詢。財(cái)務(wù)管理:收支記錄以及對(duì)酒店盈利情況按日、月或年進(jìn)行統(tǒng)計(jì)。餐飲管理:對(duì)菜酒品信息進(jìn)行分類添加、刪除、修改和查詢,對(duì)菜酒品分類信息的添加、刪除、修改以及對(duì)菜酒品圖片信息的添加和修改。系統(tǒng)管理:對(duì)系統(tǒng)信息的修改,對(duì)廣告信息的修改以及對(duì)前臺(tái)相應(yīng)位置圖片信息的修改。員工管理:對(duì)員工信息按類別進(jìn)行添加、刪除、修改和查詢以及對(duì)員工考勤記錄的添加、刪除、修改和查詢。友情鏈接:包含管理員可能經(jīng)常訪問(wèn)的網(wǎng)址鏈接,其中之一就是酒店的前臺(tái)網(wǎng)址。2.4系統(tǒng)用例圖系統(tǒng)用例如圖2-1、圖2-2所示會(huì)員注冊(cè)會(huì)員注冊(cè)會(huì)員登錄基本信息管理餐飲預(yù)訂與支付訂單管理菜品評(píng)論留言會(huì)員圖2-1用例圖1管理員登錄管理員登錄會(huì)員管理訂單管理財(cái)務(wù)管理餐飲管理系統(tǒng)設(shè)置員工管理管理員圖2-2用例圖22.5技術(shù)可行性分析技術(shù)可行性分析是根據(jù)新系統(tǒng)的目標(biāo)來(lái)衡量是否具有所需要的技術(shù),包括系統(tǒng)開(kāi)發(fā)人員水平和數(shù)量,軟件方面,硬件方面及其它應(yīng)用技術(shù)。從各個(gè)基于Java的網(wǎng)站系統(tǒng)及許多局域網(wǎng)的建設(shè)中可以看到,目前基于JavaWeb的系統(tǒng)開(kāi)發(fā)技術(shù)已經(jīng)十分成熟,相信隨著Internet/Intranet技術(shù)的進(jìn)一步發(fā)展,基于JavaWeb的信息系統(tǒng)開(kāi)發(fā)將有更為明朗的前景。2.6經(jīng)濟(jì)可行性分析經(jīng)濟(jì)可行性分析主要是對(duì)開(kāi)發(fā)新系統(tǒng)所投入的資金與系統(tǒng)投入使用后所帶來(lái)的經(jīng)濟(jì)效益進(jìn)行比較,確認(rèn)新系統(tǒng)是否會(huì)給企業(yè)帶來(lái)一定的經(jīng)濟(jì)效益。開(kāi)發(fā)此酒店餐飲管理系統(tǒng),不僅能提高酒店的管理水平給管理者提供一個(gè)酒店運(yùn)作的信息平臺(tái)還能提升酒店的形象及增強(qiáng)競(jìng)爭(zhēng)力。使用酒店餐飲管理系統(tǒng)能將餐飲企業(yè)業(yè)務(wù)管理和人員管理信息化,使顧客消費(fèi)及員工信息都由計(jì)算機(jī)管理并記錄,并為那些時(shí)間比較珍貴的顧客提供網(wǎng)上預(yù)訂功能,管理員可隨時(shí)掌握酒店里包桌的使用狀況,客人點(diǎn)單,掛賬等情況,并能盡可能的降低使用者的勞動(dòng)強(qiáng)度,同時(shí)提高工作質(zhì)量和效率。用最少的成本獲得最好的經(jīng)濟(jì)效益,增強(qiáng)了餐飲企業(yè)的市場(chǎng)競(jìng)爭(zhēng)力,可見(jiàn),回報(bào)明顯多于投入。2.7安全可行性在系統(tǒng)運(yùn)行后,就用戶方而言,由于用戶使用本系統(tǒng)時(shí)不會(huì)也不必關(guān)心系統(tǒng)內(nèi)部的結(jié)構(gòu)及實(shí)現(xiàn)方法,即對(duì)用戶來(lái)說(shuō)是透明的,所以本系統(tǒng)對(duì)用戶而言是定位在界面友好、操作方便、功能齊全的原則上的,用戶只需簡(jiǎn)單的用鼠標(biāo)點(diǎn)擊各頁(yè)面上的鏈接或按鈕就能執(zhí)行相應(yīng)的功能。訂單支付采用易寶支付的接口,方便安全,打消顧客對(duì)網(wǎng)上預(yù)訂資金安全的顧慮。就管理者而言,關(guān)心的是如何處理用戶信息,只要把用戶的信息放入服務(wù)器端的數(shù)據(jù)庫(kù)或?qū)iT(mén)的數(shù)據(jù)庫(kù)服務(wù)器,管理者就可運(yùn)行相應(yīng)的后臺(tái)程序進(jìn)行處理。2.8操作可行性目前資源的利用情況和可操作性,只需根據(jù)相關(guān)需要對(duì)數(shù)據(jù)庫(kù)中的相應(yīng)表數(shù)據(jù)直接操作就可以實(shí)現(xiàn)系統(tǒng)的完整、穩(wěn)定的運(yùn)行,不會(huì)造成系統(tǒng)的巨大壓力,可以保證系統(tǒng)的正常運(yùn)行。綜上所述,通過(guò)技術(shù)可行性,經(jīng)濟(jì)可行性,安全可行性,操作可行性分析,本系統(tǒng)的開(kāi)發(fā)是可行的。

3系統(tǒng)分析與設(shè)計(jì)3.1系統(tǒng)業(yè)務(wù)流程分析本系統(tǒng)角色分為游客,會(huì)員和管理員,游客和會(huì)員只在前臺(tái)網(wǎng)站有權(quán)限,管理員對(duì)系統(tǒng)后臺(tái)有權(quán)限。是否加入食譜?是否加入食譜?N確認(rèn)并支付訂單退出前臺(tái)Y多件預(yù)訂單件預(yù)訂N進(jìn)入前臺(tái)Y是否登錄?N是否注冊(cè)?是否已注冊(cè)?Y激活登錄菜品選擇NYY注冊(cè)信息瀏覽是否已激活?N圖3-1系統(tǒng)前臺(tái)業(yè)務(wù)流程圖NN后臺(tái)登錄是否成功?Y員工信息管理系統(tǒng)信息管理餐飲信息管理會(huì)員信息管理財(cái)務(wù)信息管理訂單信息管理退出后臺(tái)密碼修改友情鏈接圖3-2系統(tǒng)后臺(tái)業(yè)務(wù)流程圖3.2數(shù)據(jù)字典數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合,是進(jìn)行詳細(xì)的數(shù)據(jù)的收集和數(shù)據(jù)分析所獲得的主要成果。數(shù)據(jù)字典在數(shù)據(jù)庫(kù)設(shè)計(jì)中占有很重要的地位。數(shù)據(jù)字典部分如下:表3.1菜酒品信息表caijiu字段名數(shù)據(jù)類型(精度范圍)字段含義其他idint(11)菜酒品編號(hào)PKnamevarchar(128)菜酒品名稱nullphotovarchar(128)菜酒品圖片名稱nullpricedouble菜酒品單價(jià)nullstatethinint(1)菜酒品狀態(tài)nulldescrivarchar(256)菜酒品描述nullnumint(11)菜酒品銷量nulltypethinint(1)菜酒品類型null表3.2食譜信息表myrecipe字段名數(shù)據(jù)類型(精度范圍)字段含義其他idint(11)食譜編號(hào)PKcookieinfovarchar(3996)食譜cookie信息null表3.3訂單詳情信息表orderitem字段名數(shù)據(jù)類型(精度范圍)字段含義其他idint(11)訂單詳情編號(hào)PKorder_idvarchar(20)訂單名稱FKcaijiu_idint(11)菜酒品編號(hào)FKcaijiunumint(11)菜酒品數(shù)量notnullcategory_idint(11)菜酒品分類編號(hào)FK表3.4員工考勤記錄信息表(部分)attence字段名數(shù)據(jù)類型(精度范圍)字段含義其他idint(11)考勤記錄編號(hào)PKempidint(11)員工編號(hào)notnullreasonvarchar(50)原因描述nulldeadlinevarchar(10)持續(xù)時(shí)間nulldatedatetime開(kāi)始時(shí)間null表3.5員工信息表(部分)employee字段名數(shù)據(jù)類型(精度范圍)字段含義其他idint(11)員工編號(hào)PKnamevarchar(20)員工姓名nullageint(11)員工年齡nulljobvarchar(20)員工職位nulladdressvarchar(50)員工住址nulltelvarchar(20)聯(lián)系方式nullsalarydouble薪水nullidCardvarchar(18)身份證號(hào)null表3.6訂單信息表orders字段名數(shù)據(jù)類型(精度范圍)字段含義其他idvarchar(20)訂單編號(hào)PKsubdatedatetime訂單生成時(shí)間nulleatdatedatetime就餐時(shí)間nulltotaldouble菜酒品總額nullstatethinint(1)訂單狀態(tài)nulluser_idvarchar(256)會(huì)員編號(hào)FKtable_idint(11)桌位號(hào)FK表3.7會(huì)員信息表(部分)user字段名數(shù)據(jù)類型(精度范圍)字段含義其他idint(11)會(huì)員編號(hào)PKemailvarchar(128)登錄郵箱notnullusernamevarchar(128)用戶名nullpasswordvarchar(128)密碼notnullphotovarchar(128)頭像名稱nulltelvarchar(20)聯(lián)系方式nullintergralint(16)積分nullconsumeddouble消費(fèi)總額null表3.8評(píng)論信息表(部分)comment字段名數(shù)據(jù)類型(精度范圍)字段含義其他idint(11)評(píng)論編號(hào)PKcaijiuidint(11)菜酒品編號(hào)FKuseridint(11)會(huì)員編號(hào)FKtimedatetime評(píng)論時(shí)間nullcontentvarchar(256)評(píng)論內(nèi)容null3.3系統(tǒng)概要設(shè)計(jì)概要設(shè)計(jì)是一種面向?qū)ο蟮臄?shù)據(jù)模型,是按照用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和信息建模。它描述了從用戶角度看到的數(shù)據(jù),它反映了用戶的實(shí)現(xiàn)環(huán)境,這種方法用ER圖描述現(xiàn)實(shí)世界中的實(shí)體,而不涉及這些實(shí)體在系統(tǒng)中的方法。概要設(shè)計(jì)中最著名的方法就是實(shí)體聯(lián)系方法(ER方法),建立ER模型,用ER圖表示概念結(jié)構(gòu),得到數(shù)據(jù)庫(kù)的概念模型。ER模型中包含“實(shí)體”,“聯(lián)系”和“屬性”。本系統(tǒng)的關(guān)鍵實(shí)體有菜酒品,會(huì)員,食譜,訂單,訂單詳情,評(píng)論,收支等。部分實(shí)體ER圖如圖3-3、圖3-4、圖3-5、圖3-6、圖3-7、圖3-8及圖3-9所示。(1)菜酒品實(shí)體菜酒品實(shí)體包括菜酒品編號(hào)、菜酒品名稱、圖片名稱、單價(jià)、狀態(tài)、描述、銷量、類型等屬性。其中菜酒品編號(hào)為菜酒品實(shí)體的主鍵。菜酒品菜酒品編號(hào)單價(jià)菜酒品菜酒品編號(hào)單價(jià)菜酒品名稱圖片名稱銷量狀態(tài)描述類型圖3-3菜酒品實(shí)體E-R圖(2)會(huì)員實(shí)體 會(huì)員實(shí)體包括會(huì)員編號(hào)、登錄郵箱、用戶名、密碼、頭像名稱、性別、聯(lián)系方式、級(jí)別、鎖定狀態(tài)、積分、積分更新時(shí)間、消費(fèi)總額、隨機(jī)碼等屬性。其中會(huì)員編號(hào)為會(huì)員實(shí)體的主鍵。會(huì)員會(huì)員編號(hào)密碼會(huì)員會(huì)員編號(hào)密碼登錄郵箱用戶名積分性別級(jí)別隨機(jī)碼頭像名稱聯(lián)系方式鎖定狀態(tài)消費(fèi)總額積分更新時(shí)間圖3-4會(huì)員實(shí)體E-R圖(3)食譜實(shí)體 食譜實(shí)體包含食譜編號(hào)、cookie信息等實(shí)體。其中食譜編號(hào)為食譜實(shí)體的主鍵,食譜實(shí)體與會(huì)員實(shí)體主鍵共享,為一對(duì)一關(guān)系,cookie信息屬性指的是會(huì)員食譜(相當(dāng)于購(gòu)物車)字符串信息,該信息是由會(huì)員添加菜酒品編號(hào)、分類和數(shù)量拼接組成。會(huì)員編號(hào)Cookie信息食譜會(huì)員編號(hào)Cookie信息食譜圖3-5食譜實(shí)體E-R圖(4)訂單實(shí)體訂單實(shí)體包含訂單編號(hào)、提交時(shí)間、就餐時(shí)間、狀態(tài)、總額、用戶編號(hào)、桌位號(hào)等屬性,其中訂單編號(hào)為訂單實(shí)體的主鍵,是由訂單生成時(shí)間與用戶編號(hào)組合生成,用戶編號(hào)和桌位號(hào)分別為訂單實(shí)體的外鍵。訂單訂單訂單編號(hào)狀態(tài)總額桌位號(hào)就餐時(shí)間提交時(shí)間用戶編號(hào)圖3-6訂單實(shí)體E-R圖(5)訂單詳情實(shí)體訂單詳情實(shí)體包括訂單詳情編號(hào)、訂單編號(hào)、菜酒品編號(hào)、菜酒品數(shù)量、菜酒品分類編號(hào)等屬性,其中訂單詳情編號(hào)為訂單詳情實(shí)體的主鍵,訂單編號(hào)、用戶編號(hào)和桌位號(hào)分別為其外鍵,訂單實(shí)體與訂單詳情實(shí)體為一對(duì)多關(guān)系。訂單詳情編號(hào)菜酒品編號(hào)訂單編號(hào)用戶編號(hào)訂單詳情菜酒品分類菜酒品數(shù)量訂單詳情編號(hào)菜酒品編號(hào)訂單編號(hào)用戶編號(hào)訂單詳情菜酒品分類菜酒品數(shù)量圖3-7訂單詳情實(shí)體E-R圖(5)評(píng)論實(shí)體評(píng)論實(shí)體包括評(píng)論編號(hào)、會(huì)員編號(hào)、菜酒品編號(hào)、評(píng)論內(nèi)容、評(píng)論時(shí)間等屬性,其中評(píng)論編號(hào)為評(píng)論實(shí)體的主鍵,會(huì)員編號(hào)和菜酒品編號(hào)分別為評(píng)論實(shí)體的外鍵,會(huì)員實(shí)體與評(píng)論實(shí)體為多對(duì)多關(guān)系,菜酒品實(shí)體與評(píng)論實(shí)體為一對(duì)多關(guān)系。評(píng)論編號(hào)評(píng)論編號(hào)評(píng)論會(huì)員編號(hào)菜酒品編號(hào)圖3-8收支實(shí)體E-R圖(6)收支實(shí)體收支實(shí)體包括記錄編號(hào)、日期、類型、總額、描述等屬性,其中記錄編號(hào)為收支實(shí)體的主鍵,類型屬性用于標(biāo)識(shí)是收入還是支出。收支記錄編號(hào)日期類型描述總額收支記錄編號(hào)日期類型描述總額圖3-9評(píng)論實(shí)體E-R圖3.4系統(tǒng)物理設(shè)計(jì)圖3-10物理模型圖3.5詳細(xì)設(shè)計(jì)如圖3-11所示,以“.java”結(jié)尾的文件為系統(tǒng)開(kāi)發(fā)涉及到用于業(yè)務(wù)邏輯處理的類文件,它們均在com.jdcy.web.action這個(gè)包下。其中RegisterAction.java主要用于用戶注冊(cè)與激活,LoginAction.java主要用于用戶登錄、退出與密碼修改,MloginAction.java用于管理員登錄、登出與密碼修改,PreparedAction.java用于前臺(tái)網(wǎng)站信息(酒店名字、電話、廣告等)的顯示,ProfileAction.java用于個(gè)人信息的顯示與修改,CanyinAction.java用于前臺(tái)菜酒品信息顯示、搜索與單件詳情查詢顯示,OrderAction.java提供預(yù)訂功能、支付功能、評(píng)論功能,后臺(tái)管理員管理主要通過(guò)ManageAction.java與Manage1Action.java來(lái)完成。圖3-11類文件

4系統(tǒng)功能與實(shí)現(xiàn)4.1系統(tǒng)開(kāi)發(fā)環(huán)境開(kāi)發(fā)工具:MyEclipse、服務(wù)器:Tomcat、數(shù)據(jù)庫(kù):MySql4.2系統(tǒng)開(kāi)發(fā)環(huán)境的配置首先應(yīng)把java運(yùn)行環(huán)境jdk裝到用于開(kāi)發(fā)的電腦上,并為其配置好環(huán)境變量,其次再安裝服務(wù)器tomcat(注意:安裝tomcat時(shí),不應(yīng)有中文路徑),再次是安裝開(kāi)發(fā)工具M(jìn)yEclipse,并為其配置好相應(yīng)的屬性參數(shù)。同時(shí)還要確保此電腦上裝有盡可能多的不同內(nèi)核的瀏覽器(用于測(cè)試網(wǎng)頁(yè)兼容性)。4.3系統(tǒng)運(yùn)行環(huán)境4.3.1硬件環(huán)境服務(wù)端服務(wù)器端的最低配置是由建立站點(diǎn)所需的軟件來(lái)決定的,在最低配置的情況下,服務(wù)器的往往不盡如人意,現(xiàn)在的硬件性能已經(jīng)相當(dāng)出色,而且價(jià)格也很便宜,因此通常應(yīng)給服務(wù)器端配置高性能的硬件。處理器:InterCore22.10GHz或更高內(nèi)存:2GB硬盤(pán)空間:160GB顯卡:SVAG顯示適配器。用戶端因?yàn)榭蛻舳酥饕糜跒g覽和操作數(shù)據(jù),所以對(duì)客房端的硬件要求不高,不過(guò)現(xiàn)在的電腦很高的性價(jià)比,因此需要的配置應(yīng)該高于下面的配置:處理器:InterPentium4.0GHz或更高內(nèi)存:512MB硬盤(pán)空間:80GB顯卡:SVAG顯示適配器。4.3.2軟件環(huán)境服務(wù)器端操作系統(tǒng):Windows2003Server或者更高版本網(wǎng)絡(luò)協(xié)議:TCP/IPWeb服務(wù)器:Tomcat5.X及以上版本數(shù)據(jù)庫(kù):MySQL瀏覽器:InternetExplorer6.0以上用戶端操作系統(tǒng):Windows98/2000/XP/win7/win8網(wǎng)絡(luò)協(xié)議:TCP/IP瀏覽器:InternetExplorer6.0以上4.4會(huì)員注冊(cè)顧客若想擁有更多權(quán)限,享受更優(yōu)質(zhì)的服務(wù)需注冊(cè)成為會(huì)員,注冊(cè)會(huì)員需要用自己的真實(shí)郵箱,為了防止有人惡意注冊(cè),本系統(tǒng)采用郵箱激活的方式來(lái)激活會(huì)員,沒(méi)有激活的會(huì)員不能登錄。會(huì)員注冊(cè)界面如圖4-1所示。圖4-1會(huì)員注冊(cè)界面4.5會(huì)員登錄沒(méi)有登錄的會(huì)員只能夠?yàn)g覽前臺(tái)網(wǎng)站的信息,若要預(yù)訂或操作個(gè)人信息則需登錄系統(tǒng),登錄需要輸入正確的郵箱及密碼,成功登錄后,用戶信息便被放入session中,以便其他模塊獲得該用戶基本信息。會(huì)員登錄界面分為首頁(yè)直接登錄板塊,如圖4-2所示,和彈出層登錄板塊,如圖4-3所示。圖4-2會(huì)員登錄界面1圖4-3會(huì)員登錄界面24.6前臺(tái)菜酒品信息顯示系統(tǒng)采用圖文的方式分類顯示菜酒品信息,使顧客能更直觀、方便了解菜酒品,同時(shí)設(shè)有搜索欄,能實(shí)現(xiàn)模糊搜索,使顧客能夠快速查找到自己想預(yù)訂的菜酒品。當(dāng)單擊某件菜酒品的預(yù)訂按鈕,就會(huì)跳到該菜酒品詳情頁(yè)面,即單件預(yù)訂頁(yè)面。還可以全選或多選集體加入我的食譜(購(gòu)物車),以便多件菜酒品集體預(yù)訂。菜酒品信息顯示界面如圖4-4所示。圖4-4菜酒品信息顯示界面4.4會(huì)員個(gè)人中心個(gè)人中心模塊主要為用戶提供餐豆(積分)免費(fèi)領(lǐng)取、訂單提醒以及小游戲等功能,當(dāng)本日首次點(diǎn)擊領(lǐng)取餐豆按鈕時(shí),系統(tǒng)就會(huì)給此用戶添加相應(yīng)數(shù)量的餐豆,當(dāng)再次點(diǎn)擊或刷新頁(yè)面時(shí),就不再為其添加,同時(shí)提示用戶“今日已領(lǐng)”等信息。個(gè)人中心界面如圖4-5所示。圖4-5個(gè)人中心界面4.5會(huì)員信息修改信息修改主要用于用戶密碼、頭像等信息的修改。信息修改界面如圖4-6所示。圖4-6會(huì)員信息修改界面4.6預(yù)訂預(yù)訂功能包括單件預(yù)訂、多件預(yù)訂與支付,單件預(yù)訂直接預(yù)訂即可,多件預(yù)訂需要先將菜酒品信息添加到我的食譜后再預(yù)訂,預(yù)訂成功后進(jìn)入支付頁(yè)面,選擇銀行進(jìn)行支付,此過(guò)程采用易寶支付接口。相應(yīng)界面如圖4-7、圖4-8所示。圖4-7單件預(yù)訂界面圖4-8訂單支付界面4.7后臺(tái)登錄管理員對(duì)系統(tǒng)進(jìn)行管理首先需要登錄系統(tǒng),為了增加系統(tǒng)的安全系數(shù),本系統(tǒng)的管理員密碼采用字母與數(shù)字組合,至少八位,并且采用MD5加密處理。后臺(tái)登錄界面如圖4-9所示。圖4-9后臺(tái)登錄界面4.8會(huì)員管理管理員可以對(duì)會(huì)員信息進(jìn)行添加、刪除、修改與查詢等處理,會(huì)員管理界面如圖4-10所示。圖4-10會(huì)員信息管理界面4.9訂單管理管理員可以對(duì)不同狀態(tài)的訂單進(jìn)行管理,包括開(kāi)臺(tái)、報(bào)表打印、結(jié)賬及訂單詳情查詢等處理,訂單管理部分界面如圖4-11所示。 圖4-11訂單管理界面 4.10財(cái)務(wù)管理管理員可以對(duì)收支信息進(jìn)行記錄以及統(tǒng)計(jì)管理,可以分別按日、月、年進(jìn)行統(tǒng)計(jì)。財(cái)務(wù)管理界面如圖4-12所示。圖4-12財(cái)務(wù)管理界面4.11菜酒品管理管理員可以對(duì)菜酒品信息進(jìn)行添加、刪除、修改與查詢等操作,菜酒品管理界面如圖4-13所示。圖4-13菜酒品管理界面4.12系統(tǒng)設(shè)置管理員可以對(duì)系統(tǒng)信息(如酒店名稱、電話、服務(wù)協(xié)議內(nèi)容、地址、廣告信息等)進(jìn)行設(shè)置,界面一如圖4-14所示。圖4-14系統(tǒng)信息設(shè)置界面4.13員工管理管理員可以對(duì)員工基本信息進(jìn)行添加、刪除、修改與查詢等進(jìn)行操作,還可以對(duì)員工考勤進(jìn)行記錄。考勤記錄界面如圖4-15所示。圖4-15員工考勤界面

5系統(tǒng)測(cè)試 5.1測(cè)試的作用和意義系統(tǒng)測(cè)試是系統(tǒng)開(kāi)發(fā)周期中的一個(gè)非常重要環(huán)節(jié)。盡管在系統(tǒng)開(kāi)發(fā)周期的各個(gè)階段均采取了嚴(yán)格的技術(shù)審查,但依然難免會(huì)留下錯(cuò)誤,如果系統(tǒng)的一些漏洞或錯(cuò)誤在投入運(yùn)行之前的系統(tǒng)檢測(cè)階段沒(méi)有發(fā)現(xiàn)并糾正,這些問(wèn)題在運(yùn)行階段是遲早會(huì)暴露出來(lái)的,到那時(shí)要糾正錯(cuò)誤將會(huì)付出更大的代價(jià)。系統(tǒng)測(cè)試占用的時(shí)間、花費(fèi)的人力和成本占軟件開(kāi)發(fā)的很大比例。統(tǒng)計(jì)表明,開(kāi)發(fā)較大規(guī)模的系統(tǒng),系統(tǒng)測(cè)試的工作量大約占整個(gè)軟件開(kāi)發(fā)工作量的40%-50%。而對(duì)于一些特別重要的大系統(tǒng),測(cè)試的工作量和成本更大,甚至超過(guò)系統(tǒng)開(kāi)發(fā)其他各階段的總和的若干倍。5.2測(cè)試方法5.2.1單元測(cè)試對(duì)于小系統(tǒng),在編碼過(guò)程中,最常用的是單元測(cè)試。單元測(cè)試是在軟件開(kāi)發(fā)過(guò)程中要進(jìn)行的最低級(jí)別的測(cè)試活動(dòng),在單元測(cè)試活動(dòng)中,軟件的獨(dú)立單元將在與程序的其他部分相隔離的情況下進(jìn)行測(cè)試。單元測(cè)試不僅僅是作為無(wú)錯(cuò)編碼一種輔助手段在一次性的開(kāi)發(fā)過(guò)程中使用,單元測(cè)試必須是可重復(fù)的,無(wú)論是在軟件修改,或是移植到新的運(yùn)行環(huán)境的過(guò)程中。因此,所有的測(cè)試都必須在整個(gè)軟件系統(tǒng)的生命周期中進(jìn)行維護(hù)。5.2.2功能測(cè)試系統(tǒng)功能測(cè)試最常見(jiàn)的兩種方法是黑盒測(cè)試和白盒測(cè)試,黑盒測(cè)試也稱功能測(cè)試,將軟件看作黑盒子,在完全不考慮程序的內(nèi)部結(jié)構(gòu)和特性的情況下,研究軟件的外部特性。根據(jù)軟件的需求規(guī)格說(shuō)明書(shū)測(cè)試用例,從程序的輸入和輸出特性上測(cè)試是否滿足設(shè)定的功能。白盒測(cè)試也稱結(jié)構(gòu)測(cè)試,將軟件看作一個(gè)透明的白盒子,按照程序的內(nèi)部結(jié)構(gòu)和處理邏輯來(lái)選定測(cè)試用例,對(duì)軟件的邏輯路徑及過(guò)程進(jìn)行測(cè)試,檢查與測(cè)試是否相符。5.3系統(tǒng)測(cè)試下面對(duì)本餐飲管理系統(tǒng)進(jìn)行黑盒測(cè)試,以檢查系統(tǒng)能否正確完成各種操作,是否能夠?qū)崿F(xiàn)預(yù)期具有的功能。5.3.1管理員登錄測(cè)試要進(jìn)入后臺(tái)管理必須先登錄,當(dāng)輸入用戶名、密碼或者驗(yàn)證碼任意一項(xiàng)有誤或者為空時(shí)都會(huì)提示登錄失敗,如圖5-2所示。圖5-1管理員登錄界面圖5-2登錄失敗5.3.2刪除操作測(cè)試不論是管理員還是普通會(huì)員對(duì)一些數(shù)據(jù)進(jìn)行刪除操作時(shí),系統(tǒng)會(huì)提示是否真的要?jiǎng)h除此項(xiàng)或多項(xiàng),若點(diǎn)取消則不進(jìn)行刪除操作,這樣的設(shè)計(jì)有利于避免管理員或會(huì)員的誤操作。如圖7-3所示。圖5-3刪除操作5.3.3添加/更新操作測(cè)試當(dāng)會(huì)員或者管理員對(duì)相應(yīng)信息進(jìn)行添加/修改時(shí),若添加/修改成功則提示添加/修改成功,若添加/修改失敗則也有相應(yīng)的提示,這樣便使會(huì)員或管理員了解當(dāng)前添加/修改操作是否成功,用戶體驗(yàn)更加友好。如圖7-4所示。圖5-4更新操作5.3.4數(shù)據(jù)校驗(yàn)測(cè)試不論前臺(tái)界面還是后臺(tái)界面,當(dāng)有信息輸入并且該輸入項(xiàng)不能為空或者數(shù)據(jù)格式有要求時(shí),系統(tǒng)都對(duì)其進(jìn)行數(shù)據(jù)校驗(yàn)并作相應(yīng)提示。如圖5-5、圖5-6所示。圖5-5會(huì)員登錄校驗(yàn)圖5-6后臺(tái)數(shù)據(jù)校驗(yàn)5.3.5測(cè)試結(jié)果測(cè)試目標(biāo)已完成,測(cè)試通過(guò)。

6總結(jié)經(jīng)過(guò)這段時(shí)間的精心設(shè)計(jì),系統(tǒng)已基本完成,實(shí)現(xiàn)了餐飲管理系統(tǒng)的基本功能,包括餐飲信息的管理、餐飲預(yù)訂、訂單信息管理、會(huì)員信息管理、員工信息管理等主要功能,界面友好,操作簡(jiǎn)單方便。但酒店餐飲管理系統(tǒng)是一個(gè)龐大的工程,要使網(wǎng)絡(luò)交互功能的實(shí)現(xiàn),腳本的設(shè)計(jì),網(wǎng)頁(yè)的構(gòu)架,網(wǎng)頁(yè)的美工,文字的編輯,非一朝一夕可盡善盡美的,這需要一個(gè)長(zhǎng)期的摸索與完善過(guò)程,同時(shí)還要對(duì)在實(shí)踐中發(fā)現(xiàn)與操作者使用要求不相符合的地方進(jìn)行修改。系統(tǒng)功能雖已基本實(shí)現(xiàn),但仍有諸多地方需要優(yōu)化完善。譬如,會(huì)員注冊(cè)模塊,發(fā)送電子郵件激活賬戶的功能還不完善,暫時(shí)不能完成激活,需要管理員從數(shù)據(jù)庫(kù)修改locked字段完成激活。還有就是后臺(tái)管理系統(tǒng)目前只實(shí)現(xiàn)了信息查詢與現(xiàn)實(shí)功能,由于時(shí)間倉(cāng)促還為實(shí)現(xiàn)刪除刪、改功能。在一些模塊設(shè)計(jì)中,有的設(shè)計(jì)思路沒(méi)有考慮進(jìn)去,在以后的時(shí)間里還要加以補(bǔ)充,還有些細(xì)節(jié)的地方也需要進(jìn)一步修改和完善。

參考文獻(xiàn)[1]吳敏.saas餐飲管理系統(tǒng)的分析與開(kāi)發(fā)[J].太原:太原理工大學(xué),2008[2]彭偉民.基于需求的酒店管理系統(tǒng)的建模與實(shí)現(xiàn)[J].微機(jī)發(fā)展,2005年10期[3]杜艷增.酒店信息管理系統(tǒng)的WebService化[J].濟(jì)寧學(xué)院學(xué)報(bào),2008年06期[4]劉敬.Delphi住宿餐飲管理系統(tǒng)開(kāi)發(fā)實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2003[5]侯炳輝.信息管理系統(tǒng)[M].北京:中央廣播電視大學(xué)出版社,2001[6](美)BruceEckel.Java編程思想.陳昊鵬譯[M].北京:機(jī)械工業(yè)出版社,2007[7]薩師煊.數(shù)據(jù)庫(kù)系統(tǒng)概論(第三版)[M].北京:高等教育出版社,2004[8](美)BruceA.Tate.PersistenceinSpring[M].北京:清華大學(xué)出版社,2006[9]施伯樂(lè),丁寶康,汪衛(wèi).?dāng)?shù)據(jù)庫(kù)系統(tǒng)教程[M].北京:高等教育出版社,2003[10]楊羨蓮.餐飲業(yè)營(yíng)銷[J].廣州市財(cái)貿(mào)管理干部學(xué)院學(xué)報(bào),1991(4)[11]張孝祥,張紅梅.JavaScript網(wǎng)頁(yè)開(kāi)發(fā)[M].北京:清華大學(xué)出版社,2007

致謝河北農(nóng)業(yè)大學(xué)的兩年的生活即將畫(huà)上一個(gè)圓滿的句號(hào),此刻的我思緒萬(wàn)千。無(wú)論此刻是什么心情我首先要感謝我的各科老師對(duì)我這兩年的培養(yǎng)與關(guān)心,我不是您們最出色的學(xué)生,但您們卻是我最尊敬的老師。感謝您們?cè)趯W(xué)術(shù)上給我的諄諄教誨,在我成長(zhǎng)的道路上給予我的無(wú)私引導(dǎo)。其次,我要感謝我的導(dǎo)師張老師,感謝她對(duì)我論文撰寫(xiě)的指導(dǎo)和幫助。附錄用戶注冊(cè)代碼:publicActionForwardregUser(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse){ //從該action對(duì)應(yīng)的表單中取出數(shù)據(jù) UserFormuserForm=(UserForm)form; //查詢數(shù)據(jù)庫(kù),驗(yàn)證有無(wú)當(dāng)前提交的email,若有則不能注冊(cè) Listlist=userService.getResult("fromUserwhereemail=?", newObject[]{userForm.getEmail()}); //防止重復(fù)提交 HttpSessionsession=request.getSession(); Stringtoken=request .getParameter("org.apache.struts.taglib.html.TOKEN"); Stringtoken2=(String)session .getAttribute(org.apache.struts.Globals.TRANSACTION_TOKEN_KEY); session.removeAttribute(Globals.TRANSACTION_TOKEN_KEY); //判斷是否重復(fù)提交或者是所填郵箱是否已被注冊(cè) if(!token.equals(token2)||list.size()!=0){ request.setAttribute("message","您已注冊(cè)成功或該郵箱已被注冊(cè),請(qǐng)登錄!"); returnmapping.findForward("backUI"); } StringcheckCode=request.getParameter("checkcode"); StringranCode=(String)session.getAttribute("random"); if(checkCode.equalsIgnoreCase(ranCode)){ MD5md5=newMD5(); //取出的目的是把用戶保存到數(shù)據(jù)庫(kù) Useruser=newUser(); user.setEmail(userForm.getEmail()); user.setUsername(userForm.getUsername()); user.setPassword((md5.getMD5ofStr(userForm.getPassword()))); //user.setPhoto(userForm.getPhoto()); user.setTel(userForm.getTel()); user.setSex(userForm.getSex()); //為用戶生成一個(gè)隨機(jī)碼,用戶激活驗(yàn)證 user.setRandomCode(UUID.randomUUID().toString()); //保存用戶 Transactionts=null; Sessionhsession=null; try{ hsession=sessionFactory.openSession(); ts=hsession.beginTransaction(); hsession.save(user); //初始化我的食譜購(gòu)物車 Myreciperecipe=newMyrecipe(); recipe.setId(user.getId()); hsession.save(recipe); //注冊(cè)成功后,發(fā)送賬戶激活鏈接 SendMailsendmail=newSendMail(); sendmail.setHost("SMTP."); sendmail.setUserName("1095856572@"); sendmail.setPassWord("fengbaocnr"); sendmail.setTo(user.getEmail()); sendmail.setFrom("1095856572@"); sendmail.setSubject("賬戶激活"); sendmail .setContent("http://localhost:8080/Jdcy/register.do?flag=activateUser&id=" +user.getId() +"&" +"checkCode=" +UserActivate.generateCheckcode(user)); sendmail.sendMail(); request.getSession().setAttribute("loginuser",user); Stringmsg="恭喜您!注冊(cè)成功!請(qǐng)查看您的郵箱已激活賬戶!"; request.setAttribute("msg",msg); }catch(Exceptione){ Stringmsg="對(duì)不起,激活郵件發(fā)送失敗,請(qǐng)檢查您的郵箱是否正確填寫(xiě)!"; request.setAttribute("msg",msg); returnmapping.findForward("toActivateLink"); } mit(); hsession.close(); returnmapping.findForward("toActivateLink"); }else{ Stringcheckmsg="驗(yàn)證碼輸入有誤!"; request.setAttribute("checkmsg",checkmsg); returnmapping.findForward("regUI"); }}用戶登錄代碼:publicActionForwardlogin(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse){ MD5md5=newMD5(); UserFormuserForm=(UserForm)form; Useruser=newUser(); Stringemail=userForm.getEmail(); Stringpassword=userForm.getPassword(); if(email!=null&&password!=null){ user.setEmail(email); user.setPassword(md5.getMD5ofStr(password)); user=userService.check(user);//將創(chuàng)建的對(duì)象傳給check方法,之后此對(duì)象已經(jīng)沒(méi)有用了,故可以重復(fù)利用這個(gè)對(duì)象接收check返回的Users對(duì)象,不用再去new一個(gè)!?。? if(user!=null){ //用戶合法,把用戶bean放到session域?qū)ο笾腥? request.getSession().setAttribute("loginuser",user); //防止重復(fù)提交,創(chuàng)建token this.saveToken(request); //若用戶已經(jīng)激活 if(user.getLocked()==1){ //為顯示菜酒品信息準(zhǔn)備數(shù)據(jù) Listcaipin=canyinService.getResult("fromCaijiuwheretype=?",newObject[]{Short.valueOf(1+"")}); intcurPage=1; inttotalPage=0; intprePage=cur1; intnextPage=curPage+1; Mapmap=PageUtils.Page(curPage,prePage,nextPage,totalPage,6,1,caipin,"canyin","homeCyUI"); //通過(guò)工具類設(shè)置導(dǎo)航條 Stringstr=map.get("sb").toString(); //設(shè)置每次取幾個(gè) Listsubcaipin=(List)map.get("sub"); //得到總頁(yè)數(shù) inttPage=(Integer)map.get("totalpage"); intsize=caipin.size(); //向頁(yè)面?zhèn)鬟f參數(shù) if(subcaipin!=null){ request.setAttribute("subcaipin",subcaipin); request.setAttribute("size",size); } intzeng=(cur1)*6; request.setAttribute("totalPage",tPage); request.setAttribute("curPage",curPage); request.setAttribute("str",str); returnmapping.findForward("loginOK"); }else{ returnmapping.findForward("toActivateLink"); } } //用戶不合法 returnmapping.findForward("loginNO"); } returnmapping.findForward("loginNO");}餐飲預(yù)訂代碼:publicActionForwardorderMany(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse){ //TODOAuto-generatedmethodstub OrderFormorderForm=(OrderForm)form; //生成訂單號(hào) SimpleDateFormatsdf=newSimpleDateFormat("yyyyMMddHHmmss"); Datedate=newDate(); Useruser=(User)request.getSession().getAttribute("loginuser"); intuserid=user.getId(); Stringorderid=sdf.format(date)+userid; //System.out.println(orderid); //訂單生成時(shí)間 Datesubdate=newDate(); //就餐時(shí)間 SimpleDateFormatsdf1=newSimpleDateFormat("yyyy-MM-ddHH:mm"); Stringorderdate=orderForm.getOrderdate(); Stringordertime=orderForm.getOrdertime(); Dateeatdate=null; try{ eatdate=sdf1.parse(orderdate+""+ordertime); }catch(ParseExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } Stringcaijiuidstr=orderForm.getCaijiuid(); Stringcategorystr=orderForm.getCategoryid(); Stringcaijiunumstr=orderForm.getCaijiunum(); Stringcaijiupricestr=orderForm.getCaijiuprice(); String[]cidarr=caijiuidstr.split("!"); String[]catearr=categorystr.split("!"); String[]cnumarr=caijiunumstr.split("!"); String[]cpricearr=caijiupricestr.split("!"); Transactionts=null; Sessionsession=null; response.setCharacterEncoding("utf-8"); PrintWriterpw=null; try{ pw=response.getWriter(); }catch(IOExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } doubletotal=0; try{ session=sessionFactory.openSession(); ts=session.beginTransaction(); for(inti=1;i<cidarr.length;i++){ intcaijiuid=Integer.parseInt(cidarr[i]); intcategoryid=Integer.parseInt(catearr[i]); intcaijiunum=Integer.parseInt(cnumarr[i]); doublecaijiuprice=Double.parseDouble(cpricearr[i]); //將數(shù)據(jù)封裝成orderitem Orderitemorderitem=newOrderitem(); orderitem.setOrderId(orderid); orderitem.setCaijiuId(caijiuid); orderitem.setCaijiunum(caijiunum); orderitem.setCategoryId(categoryid); session.save(orderitem); total=DoubleUtils.add(total,DoubleUtils.mul(caijiuprice,caijiunum)); } //System.out.println(total); //將數(shù)據(jù)封裝成orders Ordersorder=newOrders(); order.setSubdate(subdate); order.setEatdate(eatdate); order.setState(Short.parseShort("0")); order.setTotal(total); order.setUserId(userid); order.setId(orderid); session.save(order); }catch(Exceptione){ System.out.println("生成單件訂單發(fā)生異常!"); pw.write("error"); pw.flush(); pw.close(); returnnull; } mit(); session.close(); pw.write(orderid); returnnull;}餐飲管理代碼://餐飲管理部分 @SuppressWarnings("unchecked") publicActionForwardcpLoad(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse){ response.setCharacterEncoding("utf-8"); Stringtype=request.getParameter("type"); Listcaipin=canyinService.getResult("fromCaijiuwheretype=?",newObject[]{Short.valueOf(type)}); JSONObjectjsonObj=newJSONObject(); Mapmap=newHashMap(); Listlist=newArrayList(); for(inti=0;i<caipin.size();i++){ Caijiucj=(Caijiu)caipin.get(i); Mapm=newHashMap(); m.put("id",cj.getId()); m.put("name",cj.getName()); m.put("price",cj.getPrice()); m.put("descri",cj.getDescri()); m.put("num",cj.getNum()); m.put("type",cj.getType()); m.put("state",cj.getState()); list.add(m); } map.put("total",caipin.size()); map.put("rows",list); try{ PrintWriterout=response.getWriter(); out.write(jsonObj.fromObject(map).toString()); out.flush(); out.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnnull; } //給修改圖片的form加載數(shù)據(jù) @SuppressWarnings("unchecked") publicActionForwardtoUpdPhoto(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse){ response.setCharacterEncoding("utf-8"); Listcaipin=canyinService.getResult("fromCaijiu",null); request.setAttribute("caipin",caipin); returnmapping.findForward("toUpdPhotoUI"); } //修改餐飲信息圖片 @SuppressWarnings("unchecked") publicActionForwardUpdPhoto(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse){ response.setCharacterEncoding("utf-8"); ManagerFormmngForm=(ManagerForm)form; FormFilephoto=mngForm.getImgfile(); Stringid=request.getParameter("caipinid"); StringnewImage=MyUtils.uploadcjPhoto(request,photo,id); Caijiucaijiu=(Caijiu)canyinService.findById(Caijiu.class,Integer.parseInt(id)); caijiu.setPhoto(newImage); canyinService.update(caijiu); Stringmsg=""; if(newImage==null||"".equals(newImage)){ msg="圖片添加失敗!"; }else{ msg="圖片添加成功!"; } try{ PrintWriterpw=response.getWriter(); pw.write(msg); pw.flush(); pw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnnull; } //添加菜品信息 publicActionForwardcpInsert(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse){ Stringinserted=request.getParameter("inserted"); //updated格式:[{"id":2,"num":9,"price":"1666.0","descri":"","name":"木須肉66"},{"id":3,"num":12,"price":"1566.0","descri":"","name":"紅燒肉66"}] JSONArrayjsonarr=JSONArray.fromObject(inserted); intflag=0; try{ for(inti=0;i<jsonarr.size();i++){ Mapmap=(Map)jsonarr.get(i); //Integerid=(Integer)map.get("id"); Stringname=(String)map.get("name"); Doubleprice=Double.parseDouble(String.valueOf(map.get("price"))); Stringdescri=(String)map.get("descri"); Integernum=Integer.parseInt(String.valueOf(map.get("num"))); Shorttype=Short.parseShort(String.valueOf(map.get("type"))); Shortstate=Short.parseShort(String.valueOf(map.get("state"))); Caijiucaijiu=newCaijiu(); //caijiu.setId(id); caijiu.setName(name); caijiu.setPrice(price); caijiu.setDescri(descri); caijiu.setNum(num); caijiu.setType(type); caijiu.setState(state); canyinService.save(caijiu); flag++; } }catch(Exceptione){ System.out.println("添加數(shù)據(jù)出現(xiàn)異常!"); } if(flag!=0){ try{ PrintWriterrpw=response.getWriter(); rpw.write(flag+""); rpw.flush(); rpw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } returnnull; } //刪除菜品信息 publicActionForwardcpDelete(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse){ Stringdeleted=request.getParameter("deleted"); JSONArrayjsonarr=JSONArray.fromObject(deleted); intflag=0; try{ for(inti=0;i<jsonarr.size();i++){ Mapmap=(Map)jsonarr.get(i); Integerid=(Integer)map.get("id"); Caijiucaijiu=(Caijiu)canyinService.findById(Caijiu.class,id); if(caijiu!=null){ userService.delete(caijiu); flag++; } } }catch(Exceptione){ System.out.println("刪除數(shù)據(jù)出現(xiàn)異常!"); } if(flag!=0){ try{ PrintWriterrpw=response.getWriter(); rpw.write(flag+""); rpw.flush(); rpw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } returnnull; } //更新菜品信息 publicActionForwardcpUpdate(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse){ Stringupdated=request.getParameter("updated"); JSONArrayjsonarr=JSONArray.fromObject(updated); intflag=0; try{ for(inti=0;i<jsonarr.size();i++){ Mapmap=(Map)jsonarr.get(i); Integerid=(Integer)map.get("id"); Stringname=(String)map.get("name"); Doubleprice=Double.parseDouble(String.valueOf(map.get("price"))); Stringdescri=(String)map.get("descri"); Integernum=Integer.parseInt(String.valueOf(map.get("num"))); Shorttype=Short.parseShort(String.valueOf(map.get("type"))); Shortstate=Short.parseShort(String.valueOf(map.get("state"))); Caijiucaijiu=newCaijiu(); caijiu.setId(id); caijiu.setName(name); caijiu.setPrice(price); caijiu.setDescri(descri); caijiu.setNum(num); caijiu.setType(type); caijiu.setState(state); canyinService.update(caijiu); flag++; } }catch(Exceptione){ System.out.println("更新數(shù)據(jù)出現(xiàn)異常!"); } if(flag!=0){ try{ PrintWriterrpw=response.getWriter(); rpw.write(flag+""); rpw.flush(); rpw.close(); }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } returnnull;}PAGEPAGE1目錄TOC\o"1-2"\h\z第一章項(xiàng)目基本情況 3一、項(xiàng)目情況說(shuō)明 3二、可行性研究的依據(jù) 5第二章項(xiàng)目建設(shè)的必要性與可行性 8一、項(xiàng)目建設(shè)背景 8二、項(xiàng)目建設(shè)的必要性 9三、項(xiàng)目建設(shè)的可行性 14第三章市場(chǎng)供求分析及預(yù)測(cè) 17一、項(xiàng)目區(qū)生豬養(yǎng)殖和養(yǎng)殖糞污的利用現(xiàn)狀 17二、禽畜糞污產(chǎn)量、沼氣及沼肥產(chǎn)量調(diào)查與分析 18三、項(xiàng)目產(chǎn)品市場(chǎng)前景分析 20第四章項(xiàng)目承擔(dān)單位的基本情況 21一、養(yǎng)殖場(chǎng)概況 21二、資產(chǎn)狀況 21三、經(jīng)營(yíng)狀況 21第五章項(xiàng)目地點(diǎn)選擇分析 23一、選址原則 23二、項(xiàng)目選點(diǎn) 23HYPERLINK\l"_Toc2143

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論