李傳鍇, 葉方超, 匡芳君
(溫州商學(xué)院 信息工程學(xué)院, 浙江 溫州 325035)
研究可知,現(xiàn)代酒店在管理上已全面采用了信息化、網(wǎng)絡(luò)化的工作方式[1]。目前,大多酒店管理系統(tǒng)均采用客戶與服務(wù)器(Client/Server,C/S)模式體系結(jié)構(gòu)[2],每個終端都需要安裝一個客戶端,對于不同操作系統(tǒng)就需要開發(fā)不同的版本,操作系統(tǒng)一旦升級還需要提供后續(xù)的技術(shù)支持。不僅如此,這一工作管理模式還存在可移植性差、可拓展性和可維護性仍屬欠佳等缺陷。因此,亟待研發(fā)一套功能完善且基于Web的酒店管理系統(tǒng)來有效降低維護和運行成本[3],提高工作效率。基于此,在本次研究中就采用了B/S模式和MVC框架,利用JDBC與SQL Server數(shù)據(jù)庫[4]設(shè)計開發(fā)了酒店管理系統(tǒng),使其具有很強的靈活性和復(fù)用性。
JSP全稱為Java Server Pages,中文名叫Java服務(wù)器頁面,是一種動態(tài)網(wǎng)頁開發(fā)技術(shù)。設(shè)計時,使用JSP標(biāo)簽在HTML網(wǎng)頁中插入Java代碼,從而形成JSP文件。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計的顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序開發(fā)變得迅速和容易。
MVC[5]全名是Model View Controller,是模型(Model)-視圖(View)-控制器(Controller)的縮寫。這是一種軟件設(shè)計典范,即用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個部件里面,在改良和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯。MVC技術(shù)的研發(fā)拓展重點就是用于映射傳統(tǒng)的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結(jié)構(gòu)中。
本文研發(fā)的酒店管理系統(tǒng)分前臺和后臺。其中,前臺由客戶使用,后臺由酒店工作人員使用。所以前臺需要針對客戶做到界面美觀,且操作簡單、易懂。而后臺針對酒店工作人員,需要涉及到入住管理、客房管理、財務(wù)管理、用戶管理以及員工管理等一系列操作環(huán)節(jié),不僅要做到功能規(guī)劃完備,還要有利于系統(tǒng)維護人員日后的升級維護,以保證系統(tǒng)的安全性、便利性、高效性等。
本文將客戶群體分為超級管理員(老板),一般管理員(酒店職員)和客戶(酒店顧客)3類。這3類用戶將在系統(tǒng)中以不同的權(quán)限進行區(qū)分,并通過權(quán)限管理來限制其所能處置的操作,另外還設(shè)計有多終端適配、多瀏覽器適配,以適應(yīng)廣泛的用戶群體。系統(tǒng)功能模塊如圖1所示。由圖1可見,對于該系統(tǒng)的功能設(shè)計可得闡釋分析如下。
(1)客戶。要能實現(xiàn)賬戶注冊、登錄、賬戶信息修改、客房查詢、客房預(yù)定、取消預(yù)約、訂單管理等操作。
(2)一般管理員。要能實現(xiàn)對客房狀態(tài)管理、客房密碼管理、客戶入住、客戶退房、客戶換房、修改客戶信息,查詢客戶信息等操作。
(3)超級管理員。要能實現(xiàn)對酒店客房數(shù)量的增減、一般管理員的職位修改和增減、訂單查詢、財務(wù)管理等操作。

圖1 系統(tǒng)功能模塊圖
本系統(tǒng)包含的實體主要有:客戶、房間、訂單、員工、入住人等,下面將給出各實體間的E-R圖。實體關(guān)系圖如圖2所示。通過E-R圖可以梳理解讀各個實體之間的配屬關(guān)系。

圖2 酒店管理E-R圖
根據(jù)系統(tǒng)研發(fā)確定的需求和功能,設(shè)計得出該系統(tǒng)的10個關(guān)系。該研究內(nèi)容可做剖析論述如下。
(1)房間表。包括:房間號、房間密碼、房型、房價、狀態(tài)、特殊說明、入住時間、退房時間、可住人數(shù)。
(2)房間預(yù)定表。包括:房間號、預(yù)定入住時間、預(yù)定退房時間、狀態(tài)。
(3)預(yù)定表。包括:預(yù)定訂單號、預(yù)定房價、預(yù)定時間、入住人數(shù)、預(yù)定入住時間、預(yù)定退房時間、天數(shù)、預(yù)定人身份證號、手機號、預(yù)定人姓名、訂房數(shù)。
(4)入住人員表。包括:入住人身份證、入住人姓名、入住時間、房間號、入住人編號。
(5)訂單表。包括:訂單號、房費、押金、商品消費、結(jié)賬時間、實際入住天數(shù)、訂房數(shù)、經(jīng)手人、訂房人身份證號、訂房人手機號、訂房人姓名、入住時間、退房時間、入住人數(shù)。
(6)訂房表。包括:訂房編號、訂單號、房間號、房型。
(7)財務(wù)表。包括:訂單號、結(jié)賬時間、房間號、總金額、經(jīng)手人。
(8)客戶表。包括:賬號、密碼、姓名、年齡、性別、生日、郵箱、手機號、身份證號、積分、消費金額、入住酒店次數(shù)、取消訂單次數(shù)、密保問題、密保問題答案。
(9)員工表。包括:賬號、密碼、姓名、性別、年齡、生日、郵箱、手機號、工資、職位、密保問題、密保問題答案。
(10)權(quán)限表。包括:賬號、權(quán)限。
點擊首頁的右上角即可登錄,登錄頁面如圖3所示。不論是管理員、或是客戶都在此頁面登錄,選擇專屬身份登錄即可。客戶登錄時,在輸入正確賬號、密碼后會跳轉(zhuǎn)到首頁,而管理員登錄后會跳轉(zhuǎn)到后臺管理頁面,以展開各類不同的管理型操作。當(dāng)然,若是不存在該賬號或密碼錯誤則會提示登錄錯誤。若無賬號,則點擊按鈕右上方的注冊按鈕,就可進入注冊界面,所有填入的信息確認(rèn)合法通過后就將提示注冊成功。若忘記密碼,也可點擊忘記密碼將其找回,就是通過驗證注冊時填入的密保預(yù)設(shè)問題來重置密碼。用戶也可在登錄后點擊右上角導(dǎo)航欄處的用戶名進入個人中心,對個人信息進行修改或完善。

圖3 登錄界面
用戶點擊導(dǎo)航欄的房間預(yù)定或者在首頁選擇入住時間和退房時間點擊查詢,就將進入到房間預(yù)定的頁面,選擇房型后就將進入到提交訂單頁面。如圖4所示,如果輸入預(yù)定房間數(shù)量,確定入住與退房時間,即會彈出訂單總價,在核查預(yù)定人信息無誤并輸入入住人數(shù)后,就可提交訂單,若提示預(yù)定成功,則預(yù)定完成。用戶可在個人中心對訂單進行查看或取消訂單操作。研發(fā)時可參考如下關(guān)鍵設(shè)計代碼。
public intInsetordertb(Ordertbordertb, inttype){
Connectionconn=getConn();
Stringsql= "{call reserve(?,?,?,?,?,?, ?,?,?)}";
introw= 0;
CallableStatementcstmt= null;
try {
cstmt=conn.prepareCall(sql);
cstmt.setString(1,ordertb.getOordernum());
cstmt.setInt(2,type);
cstmt.setInt(3,ordertb.getResnum());
cstmt.setString(4,ordertb.getOintime());
cstmt.setString(5,ordertb.getOouttime());
cstmt.setString(6,ordertb.getCustid());
cstmt.setString(7,ordertb.getCustphone());
cstmt.setString(8,ordertb.getCustname());
cstmt.setInt(9,ordertb.getRnum());
row=cstmt.executeUpdate();
}catch(SQLExceptione) {
e.printStackTrace();
} finally {
closeConn(conn,cstmt,null);
}
returnrow;
}

圖4 提交訂單界面
進入后臺需要使用管理員登錄才能進入。管理員有2種,一般管理員即是酒店員工,超級管理員即是老板。其中,當(dāng)一般管理員登錄后臺后,可調(diào)取房間和員工2種功能。此時若選擇員工功能,則能查詢、并修所有改客戶的基本信息。在房間功能內(nèi),將能查詢所有的房間信息,如圖5所示。具體包括:房間的預(yù)定情況,以及該房間的歷史訂單。而若選擇員工功能,則在辦理入住時可以登記入住人員的信息,修改房間狀態(tài)以及查詢相應(yīng)的房間密碼,并在客戶退房后設(shè)置修正房間密碼。而當(dāng)超級管理員登錄后臺后,將能全盤掌控員工、房間、財務(wù)中的所有操作。超級管理員在員工功能內(nèi),除了能查詢和修改客戶信息外,還能對一般管理員賬戶、即員工實施管理,能添加、刪除、修正一般管理員賬戶。在房間功能中,超級管理員還能對客房進行增加和刪除。在財務(wù)功能中,超級管理員能查看、修改所有訂單信息,以及查看系統(tǒng)生成的統(tǒng)計報表。研發(fā)時,可參考如下關(guān)鍵設(shè)計代碼。

圖5 房間查詢界面
public List
PreparedStatementpstmt= null;
Connectionconn=this.getConn();
List
try {
pstmt=conn.prepareCall("{callselect_password(?)}");
pstmt.setString(1,rid);
rs=pstmt.executeQuery();
while(rs.next()) {
Roomroom=newRoom();
room.setRid(rs.getString("rid"));
room.setRpwd(rs.getString("rpwd"));
passwordList.add(room);
}
}catch(SQLExceptione) {
e.printStackTrace();
}finally {
closeConn(conn,pstmt,rs);
}
returnpasswordList;
}
隨著酒店管理業(yè)務(wù)的現(xiàn)代化和電子商務(wù)的不斷進步,利用計算機進行酒店管理已成為時下酒店維系正常運營的一個核心組成部分。本文研發(fā)設(shè)計的酒店管理系統(tǒng)經(jīng)過測試及試運行,基本實現(xiàn)了需求分析中的全部功能。該系統(tǒng)運行穩(wěn)定、安全、可靠,而且界面整潔美觀,還具有易操作、易維護的特點,同時也是此類管理系統(tǒng)在Web端設(shè)計上的成功嘗試,由此也保證了移動辦公的可行性。但在測試過程中也反映出一些不足,例如查詢訂單后的分類,房間狀態(tài)的自動更新等等,需要進一步改進和完善。