酒店預訂系統(tǒng)_第1頁
酒店預訂系統(tǒng)_第2頁
酒店預訂系統(tǒng)_第3頁
酒店預訂系統(tǒng)_第4頁
酒店預訂系統(tǒng)_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

北京理工大學珠海學院課程設計說明書2016—2017學年第1學期題目:酒店預訂系統(tǒng)學院:商學院專業(yè)班級:信息管理與信息系統(tǒng)四班學號姓名:8謝澤銓學號姓名:1熊祖威 學號姓名:4邵驊學號姓名:3歐邦用指導教師:成績:時間:年月日目錄第一章設計內(nèi)容與目標 41.1項目背景 41.2項目目的 41.3使用環(huán)境 41.4開發(fā)方法 4第二章需求分析 52.1軟件工具與硬件環(huán)境需求 52.2功能需求2.2.1系統(tǒng)功能需求 52.2.2系統(tǒng)功能結構圖 52.2.3功能需求具體介紹 62.2.4對系統(tǒng)性能的規(guī)定 62.2.5統(tǒng)計分析 6第三章系統(tǒng)分析 83.1現(xiàn)行系統(tǒng)的現(xiàn)況以及存在問題 83.1.1傳統(tǒng)酒店房間預訂業(yè)務活動 83.1.2傳統(tǒng)酒店房間預訂業(yè)務數(shù)據(jù)處理 83.2全面描述新系統(tǒng)的功能和目標 93.2.1從用戶方的角度: 93.2.2從酒店方的角度: 93.3新系統(tǒng)的邏輯模型 93.3.2數(shù)據(jù)流圖 103.3數(shù)據(jù)字典 133.3.1詞條描述 133.4E-R圖 203.5新系統(tǒng)的可行性分析 21第四章系統(tǒng)設計 224.1系統(tǒng)概述 224.2開發(fā)、測試與運行環(huán)境 224.3系統(tǒng)結構圖 224.3.1功能模塊劃分 224.3.2功能模塊描述 234.4代碼設計 234.5數(shù)據(jù)庫設計 244.5.1數(shù)據(jù)庫環(huán)境說明 244.5.2數(shù)據(jù)庫命名規(guī)則 244.5.3安全性設計說明 244.5.4概念結構設計 244.5.5關系數(shù)據(jù)模型 254.5.6數(shù)據(jù)庫實施 254.6用戶界面設計概述 284.7綜合考慮 314.7.1穩(wěn)定性和可擴展性 314.7.2性能分析 324.7.3性能指標實現(xiàn) 324.7.4防錯與出錯處理 32第五章酒店預訂系統(tǒng)的實現(xiàn) 335.1開發(fā)環(huán)境的選擇和依據(jù) 335.1.1開發(fā)環(huán)境的選擇 335.1.2開發(fā)環(huán)境選擇的依據(jù) 335.1.3開發(fā)框架和方法 335.2系統(tǒng)功能模塊的實現(xiàn) 335.2.1用戶模塊實現(xiàn) 335.2.2查詢模塊實現(xiàn) 385.2.3預訂模塊實現(xiàn) 425.2.4退訂模塊實現(xiàn) 475.3酒店預訂系統(tǒng)APP測試情況 485.3.1測試用例 485.3.2測試環(huán)境與配置 485.3.3測試方法 485.3.4測試數(shù)據(jù) 49第六章全文總結 50

第一章設計內(nèi)容與目標1.1項目背景當下是一個信息化的時代,越來越多的用戶喜歡在網(wǎng)上進行消費活動,如網(wǎng)上訂餐,網(wǎng)上購物等等。而酒店預訂作為一種較為普遍的消費活動,自然也需要借助信息的力量來使其更加方便快捷,讓顧客具有更好的消費體驗,同時節(jié)約顧客的時間成本。本系統(tǒng)是針對酒店的具體業(yè)務而開發(fā)的。業(yè)務管理以酒店前臺管理為核心,通過使用手機APP的方式,為旅客提供高效的服務,減免手工處理的繁瑣與誤差,及時、準確的反映酒店的經(jīng)營情況,提供給旅客以快捷、準確和可靠的信息和服務,同時,也提高了酒店自身的管理水平。1.2項目目的在如今信息化的背景下,任何行業(yè)都與信息化息息相關。如何利用現(xiàn)代社會賦予我們的新觀念、新手段創(chuàng)造更大的財富,針對酒店預訂這一環(huán)節(jié),我們了解到目前酒店預訂工作依舊效率低,大多數(shù)用戶仍然使用著電話預定的人工預訂方式,因而不能及時了解用戶的需求,不能夠很好地滿足用戶的需求。人工管理存在許多弊端,由于不可避免的人為因素,如登記錯誤,預訂重復等,造成數(shù)據(jù)丟失、誤報,因此就需要優(yōu)化后的酒店預訂系統(tǒng)。為了方便顧客更好地進行酒店預訂以及幫助酒店更好地管理,避免浪費時間成本和管理成本,我們準備開發(fā)一個既方便顧客預訂客房又能使酒店方便管理的具有良好客戶體驗的酒店預訂管理系統(tǒng)。1.3使用環(huán)境本系統(tǒng)要求用戶需要在Android4.0及其以上版本的系統(tǒng)上使用。1.4開發(fā)方法數(shù)據(jù)庫采用面向過程的開發(fā)方法,APP應用利用JAVA語言進行面向?qū)ο蟮拈_發(fā)方法。第二章需求分析2.1軟件工具與硬件環(huán)境需求(1)軟件工具:MicrosoftVisualStudio2013,AndroidStudio(2)軟件環(huán)境:Windows操作系統(tǒng)(3)硬件環(huán)境:配置在1G

RAM內(nèi)存,160G硬盤,100Mbps網(wǎng)卡以上2.2功能需求

2.2.1系統(tǒng)功能需求作為酒店注冊用戶,可以通過本系統(tǒng)可以對酒店內(nèi)未預訂的房間經(jīng)行查詢,預訂,對于已預訂的房間進行退訂的操作,同時用戶也可更改個人信息,查詢個人預訂記錄。對于系統(tǒng)本身,系統(tǒng)會根據(jù)用戶的預定和退訂即時更新房間信息對于酒店管理員,可以通過使用信息推送模塊,根據(jù)需要發(fā)布房間優(yōu)惠信息。2.2.2系統(tǒng)功能結構圖酒店預訂系統(tǒng)功能結構圖如圖2.1所示:2.2.3功能需求具體介紹為方便用戶和管理員對此系統(tǒng)的操作,下面具體介紹它的一些功能:用戶注冊功能,面向所有未注冊的游客,想要預訂酒店房間的客人,需先注冊成用戶才能進行本系統(tǒng),享受本系統(tǒng)的預訂房間功能,注冊時需正確填寫本人手機聯(lián)系方式(也作為用戶賬號),設置用戶密碼來完成用戶注冊。查詢功能模塊中,用戶可以通過房間的信息,如房間類型等信息,進行單個查詢或者關鍵字搜索來查詢未預訂的房間信息,從而方便用戶預訂房間,還可以通過時間的先后順序查詢自身的預訂記錄,還能夠進行個人信息的查詢。用戶預訂房間功能,只面向已注冊的用戶,為他們提供簡便快捷的預訂功能,用戶預定房間時需正確填寫入住時間、退房時間,入住人姓名、聯(lián)系方式,支付完成后生成預訂訂單。用戶取消預訂房間功能,用戶可在入住時間前三個小時自由取消預訂的房間,同時酒店會扣取用戶所預訂房間價格的5%,但不在入住時間的三個小時前取消預訂訂單,將不可再取消該訂單,房間將會保留給該客戶直到退房時間。管理員更新優(yōu)惠信息功能,管理員根據(jù)酒店的經(jīng)營政策在APP應用界面上推送房間優(yōu)惠信息。房間信息更新功能,用戶預定和退訂操作成功后將會影響數(shù)據(jù)庫的房間信息,本系統(tǒng)會即時獲取數(shù)據(jù)庫信息從而自動更新房間信息。2.2.4對系統(tǒng)性能的規(guī)定為保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效地運行,酒店預訂系統(tǒng)應該滿足以下的性能需求:(1)系統(tǒng)處理的準確性和及時性:系統(tǒng)處理的準確性和及時性是系統(tǒng)的必要性能,在系統(tǒng)設計、開發(fā)過程中,要充分考慮系統(tǒng)當前和將來可能承受的工作量,使系統(tǒng)的處理能力和響應能力能夠滿足業(yè)務的需求。系統(tǒng)的開發(fā)性和可擴充性:酒店預訂系統(tǒng)在開發(fā)過程中,應該充分考慮以后的可擴充性,保證在未來一段時間內(nèi),在可接受用戶需求更新的范圍內(nèi),要求系統(tǒng)提供足夠的手段進行功能的調(diào)整和擴充。而要實現(xiàn)這一點,應通過系統(tǒng)的開放性來完成,既系統(tǒng)應是一個開放系統(tǒng),只要符合一定的規(guī)范,可以簡單的加入和減少系統(tǒng)的模塊,如增加APP的推送提示模塊等。(3)系統(tǒng)的易用性:酒店預訂系統(tǒng)是直接面對使用人員的,而使用的人員是廣大人民群眾,他們對使用APP的了解不盡相同,所以就需要系統(tǒng)提供一個良好的用戶接口和易用、直觀的人機交互用戶界面。本APP應盡量使用大部分人們所熟悉的術語和信息的界面,縮短用戶對系統(tǒng)熟悉的過程,提高用戶使用的便利性和簡明性。(4)系統(tǒng)的響應速度:酒店預訂系統(tǒng)在日常處理中的響應速度應該為秒級,達到實時要求,以及時反饋信息。2.2.5統(tǒng)計分析在系統(tǒng)的使用過程中中,會產(chǎn)生各種各樣的預定記錄,而這些數(shù)據(jù)將儲存在一個數(shù)據(jù)庫中,系統(tǒng)管理員可在數(shù)據(jù)庫中獲取所需的數(shù)據(jù)(如使用數(shù)據(jù)庫語言獲得數(shù)據(jù)),從而得到所需的報表,如酒店管理員想知道某個月那種房間類型被預訂數(shù)是最多的“每月熱門預訂房間類型報表”,也可獲取每月每個房間類型收入的“每月預訂房間類型收入報表”等,對其進行統(tǒng)計分析所得到的統(tǒng)計報表有助于酒店經(jīng)營管理的改善和提高。(1)每月熱門預訂房間類型報表查詢時間:制表時間:制表人:房間類型1月預訂數(shù)量2月預訂數(shù)量3月預訂數(shù)量4月預訂數(shù)量5月預訂數(shù)量6月預訂數(shù)量7月預訂數(shù)量8月預訂數(shù)量9月預訂數(shù)量10月預訂數(shù)量11月預訂數(shù)量12月預訂數(shù)量匯總(2)每月預訂房間類型收入報表查詢時間:制表時間:制表人:房間類型1月預訂收入2月預訂收入3月預訂收入4月預訂收入5月預訂收入6月預訂收入7月預訂收入8月預訂收入9月預訂收入10月預訂收入11月預訂收入12月預訂收入?yún)R總(3)房間預訂狀況表查詢?nèi)掌冢褐票頃r間:制表人:房間類型預訂數(shù)未預訂數(shù)房間總數(shù)(4)房間預訂記錄報表查詢?nèi)掌冢褐票頃r間:制表人:用戶帳號用戶名預訂房間類型預訂房間數(shù)量預訂房間價格入住時間退房時間聯(lián)系方式第三章系統(tǒng)分析3.1現(xiàn)行系統(tǒng)的現(xiàn)況以及存在問題在調(diào)查過現(xiàn)有的酒店房間預訂業(yè)務流程,了解到現(xiàn)如今大多數(shù)酒店仍然使用著人工的方式進行酒店預訂業(yè)務活動,從業(yè)務流程與數(shù)據(jù)處理兩大方面來了解現(xiàn)如今的酒店關于酒店預訂業(yè)務活動的現(xiàn)狀以及存在的問題。3.1.1傳統(tǒng)酒店房間預訂業(yè)務活動傳統(tǒng)的手工酒店預訂的業(yè)務流程如圖3.1所示3.1.2傳統(tǒng)酒店房間預訂業(yè)務數(shù)據(jù)處理通過調(diào)查了解到,傳統(tǒng)酒店房間預訂業(yè)務數(shù)據(jù)處理全部由人工來操作,包括響應用戶的查詢和操作,手工記錄用戶的信息并將其歸檔,手工收費以及要定期對記錄的數(shù)據(jù)進行整理。同時對操作中出現(xiàn)的問題進行人工的查詢和修改。3.1.3存在的問題通過對業(yè)務流程圖以及數(shù)據(jù)處理分析了解到傳統(tǒng)酒店房間預訂業(yè)務的不足之處:需要耗費大量的人工和時間,比如要人工記錄各種信息,包括用戶的預訂信息等響應速度不一,因為客服和前臺人員工作經(jīng)驗不同,且人對數(shù)據(jù)信息的反應速度不同,造成每一次操作的時間不一樣操作過程過于繁瑣,如記錄客戶信息要手工填寫,操作過程出現(xiàn)錯誤不能返回,只能重新開始操作操作中出現(xiàn)問題較多,比如用戶的信息記錄錯誤,歸檔錯誤等出現(xiàn)問題不能及時修改,需要花費時間去查找問題,比如用戶預訂了房間但是前臺并沒有記錄等不能完整的收錄用戶的信息,從而不能判斷用戶的喜好,以及很難查閱到用戶的所有交易信息收費全部需要手工完成,月底或季度年度的運營統(tǒng)計分析造成不便,因為人工操作不可避免出現(xiàn)錯誤,此外,人工結算成本過高且時間過長3.2全面描述新系統(tǒng)的功能和目標根據(jù)現(xiàn)有的存在問題從用戶方和酒店方的角度分析實現(xiàn)優(yōu)化房間預訂的目標。3.2.1從用戶方的角度:(1)使用房間查詢的功能,不需要進行繁瑣的電話溝通,只需打開酒店房間預訂系統(tǒng)即可查詢到所滿意的房間,并可以進行實時預訂。(2)使用房間預訂的功能,預訂成功時,與酒店方形成一種合約關系,保證用戶得到相應的房間。(3)使用退房功能,能夠在規(guī)定時間之內(nèi)取消對房間的預訂,減輕了用戶因突發(fā)情況發(fā)生時負擔。3.2.2從酒店方的角度:(1)對賬戶進行管理,能夠減少大量的人工輸入,采用一個用戶對應一個賬號的方式,用于記錄用戶信息和預訂信息。(2)對賬戶進行查詢,通過用戶數(shù)據(jù)清晰地收錄每個客人的對房間的喜愛偏好,為用戶提供便利,提高用戶滿意度。(3)收費采用第三方收款方式,準確實時到賬,減低了由于人為出現(xiàn)收款錯誤的失誤,進一步減輕了酒店方的風險。(4)當出現(xiàn)退房等異常情況時,不再需要人為重新登記房間信息,后臺自動清空已預訂房間,更新房間預訂表,方便酒店管理人員核實房間使用情況。(5)設置房間訂金,在進行預訂時,當預訂只能通過電話時,不能收取任何的預訂費用,而通過酒店房間預訂系統(tǒng)能夠入住前三個小時之內(nèi)收取5%的房間訂金,保證酒店的正常運營,減低酒店的損失。(6)進行一系列的統(tǒng)計報表分析,當達到規(guī)定的時間,系統(tǒng)會進行月末統(tǒng)計,對每月熱門預訂房間類型,預訂房間類型,收入房間預訂以及房間預訂記錄報表,有助于酒店管理層人員作出判斷,對酒店現(xiàn)狀改善和提高。3.3新系統(tǒng)的邏輯模型由上述所描述的系統(tǒng)的功能得到我們所設計的系統(tǒng)的業(yè)務流程圖。3.3.1業(yè)務流程圖如圖3.2所示:3.3.2數(shù)據(jù)流圖根據(jù)上文需求分析所要求的功能需求和非功能需求,使用數(shù)據(jù)流方法對酒店預訂活動進行建模。從2.2.3節(jié)——“功能需求具體介紹”中的需求描述可知,酒店的房間預訂業(yè)務活動主要由游客查詢、用戶注冊、用戶查詢、用戶預訂、用戶退訂五大組成,在對酒店預訂房間經(jīng)營過程和業(yè)務流程進行1詳細分析的基礎上,構造酒店預訂管理系統(tǒng)的功能模型用數(shù)據(jù)流圖描述如下。3.3.2.1抽象頂層數(shù)據(jù)流圖酒店預訂管理系統(tǒng)的頂層數(shù)據(jù)流圖用功能活動“酒店預訂管理”來描述,如圖3.1所示。3.3.2.2第一層數(shù)據(jù)流圖對頂層數(shù)據(jù)流圖進行分解即得到圖3.2所示的第一層數(shù)據(jù)流圖。圖3.2較詳細地描述了實現(xiàn)用戶預訂酒店房間的業(yè)務活動所需的基本功能。完成各項活動所需要輸入的數(shù)據(jù)、輸出信息,經(jīng)過功能活動處理后存儲的信息。3.3.2.3第二層數(shù)據(jù)流圖由于圖3.2描述的功能活動還不夠具體,繼續(xù)對圖3.1中的功能活動進行分解即得到第二層數(shù)據(jù)流圖,如圖3.3~圖3.7所示。3.3.2.3第三層數(shù)據(jù)流圖本系統(tǒng)的核心功能是用戶的查詢功能模塊和預訂功能模塊,繼續(xù)對圖3.5和圖3.6中的查詢功能和預訂功能活動進行分解即得到第三層數(shù)據(jù)流圖,如圖3.8與圖3.8所示。3.3數(shù)據(jù)字典3.3.1詞條描述3.3.1.1數(shù)據(jù)流詞條數(shù)據(jù)流編號數(shù)據(jù)流名簡述組成來源去向F1用戶登陸信息對需要使用該酒店預訂系統(tǒng)的用戶提供正確的用戶賬號和相應的密碼信息用戶賬號+密碼用戶酒店預訂系統(tǒng)、信息處理F1.1用戶基本信息用戶登錄成功后系統(tǒng)會獲得相應的用戶基本信息用戶賬號+密碼+性別+姓名+郵箱+手機號信息處理用戶操作處理F1.2用戶信息輸入用戶對系統(tǒng)所輸入的信息,分為查詢信息,預訂信息,退訂信息,修改信息分四種:預訂信息,查詢信息,退訂信息,修改密碼用戶用戶操作信息接收F1.3用戶舊密碼用戶原本使用的密碼用戶賬號+密碼用戶操作信息接受密碼修改F1.4用戶新密碼用戶通過密碼修改獲得的新密碼用戶賬號+密碼密碼修改用戶登錄信息處理F2查詢信息對于需要了解實際房間信息情況或個人預訂記錄信息的用戶,可通過向系統(tǒng)輸入查詢信息,系統(tǒng)則會檢索這些信息并作相應處理查詢條件:共分兩種情況:房間查詢信息、用戶預訂記錄查詢信息用戶操作處理查詢處理F2.1查詢房間信息系統(tǒng)檢索用戶所輸入的查詢信息為查詢房間信息的信息,系統(tǒng)進入房間信息查詢界面關鍵字或時間判別查詢信息房間信息查詢合法性F2.1.1查詢房間信息條件用戶為查詢房間信息,所輸入的合法性查詢房間信息的方式關鍵字或時間房間信息查詢合法性匹配房間信息F2.1.2匹配房間數(shù)據(jù)系統(tǒng)檢測用戶所輸入的查詢房間信息條件,并在數(shù)據(jù)庫找到符合該條件的房間信息房間類型+房間價格匹配房間信息檢驗房間余量F2.2預訂記錄查詢信息系統(tǒng)判斷用戶的查詢信息為個人預訂查詢記錄信息,并進入預訂記錄查詢界面時間判別查詢信息預訂記錄查詢合法性F2.2.1匹配時間信息系統(tǒng)檢測用戶所輸入的時間查詢信息,并在數(shù)據(jù)庫找到符合該條件的預訂記錄信息時間匹配查詢時間信息檢驗預訂記錄時間F5未使用房間信息系統(tǒng)檢索用戶所輸入的房間查詢信息,輸出相應可預訂的房間信息房間類別+房間價格檢驗房間信息用戶、預訂處理F6個人預訂記錄信息系統(tǒng)檢索用戶所輸入的預訂記錄查詢信息,輸出相應的預訂記錄信息房間類型+房間數(shù)量+用戶帳號+聯(lián)系方式+入住時間+退房時間+預訂日期檢驗預訂記錄信息用戶、退訂處理F3預訂信息用戶根據(jù)需要,向系統(tǒng)輸入預訂信息,系統(tǒng)可檢測這些信息,并作出相應的預訂處理用戶賬號,入住時間,退房時間,房間類型,房間數(shù)量用戶操作處理預訂處理F3.1預訂記錄信息系統(tǒng)通過用戶所輸入的預訂信息用戶賬號,入住時間,退房時間,房間類型,房間數(shù)量預訂條件處理更新預訂記錄信息和房間信息F3.1.1檢驗房間數(shù)量信息系統(tǒng)接收用戶所輸入的預訂信息,用于檢測用戶所輸入的預訂房間數(shù)量是否符合酒店實際房間數(shù)量用戶賬號,入住時間,退房時間,房間類型,房間數(shù)量接收預訂信息檢驗預訂房間數(shù)量F3.1.2檢驗日期信息系統(tǒng)檢測預訂信息中的入住時間和退房時間是否符合實際情況用戶賬號,入住時間,退房時間,房間類型,房間數(shù)量檢驗預訂房間數(shù)量檢驗預訂房間日期F7預訂房間訂單系統(tǒng)通過用戶所輸入的預訂信息,所輸出用戶預訂記錄信息房間類型+房間數(shù)量+用戶帳號+聯(lián)系方式+入住時間+退房時間+預訂日期檢驗預訂房間日期用戶,更新房間信息,更新預訂記錄信息F4退訂信息用戶根據(jù)需要,向系統(tǒng)輸入退訂信息,系統(tǒng)可檢測這些信息,并作出相應的退訂處理房間類型+房間數(shù)量+用戶帳號+聯(lián)系方式+入住時間+退房時間+預訂日期用戶操作處理更新預訂記錄與房間信息F4.1刪除數(shù)據(jù)用戶所刪除預訂記錄數(shù)據(jù)房間類型+房間數(shù)量+用戶帳號+聯(lián)系方式+入住時間+退房時間+預訂日期退訂信息接收取消退訂3.3.1.2數(shù)據(jù)元素詞條數(shù)據(jù)項編號數(shù)據(jù)元素名稱別名數(shù)據(jù)類型及寬度取值范圍描述U-01用戶賬號usernameString11-99999999999區(qū)分不同用戶U-02用戶密碼passwordString184{[數(shù)字,字母]}20用戶登錄系統(tǒng)密碼U-03用戶手機號mobilePhoneNumberString11-99999999999用戶聯(lián)系方式U-04用戶姓名userNameString102{漢字}5用戶稱呼方式U-05用戶郵箱userEmailString30[A-z,0-9]{1,}\[A-z,09,\.]{1}用戶聯(lián)系方式R-01房間類型Room_nameString10[‘單人間’],[‘雙人間’],[‘標準間’],[‘豪華間’]房間類型的說明R-01房間價格Room_priceInt4“01”-“1000”房間的價格R-01房間數(shù)量Room_countInt4“000”-“100”房間的數(shù)量R-02入住日期checkInDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“24”用戶到達酒店的日期R-03退房日期checkOutDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“23”用戶離開酒店的日期R-04預訂日期bookingDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“23”用戶完成預定房間訂單的日期R-05取消預訂日期canceiDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“24”用戶取消預定房間訂單的日期3.3.1.3數(shù)據(jù)文件(1)文件編號:D1數(shù)據(jù)文件名稱:用戶簡述:保存的是用戶的基本信息數(shù)據(jù)存儲組成:用戶賬號,密碼,性別,姓名,郵箱,手機號關鍵字:用戶賬號(2)文件編號:D2數(shù)據(jù)文件名稱:預訂記錄簡述:保存的是用戶預訂的記錄的信息數(shù)據(jù)存儲組成:用戶賬號、姓名、手機號、郵箱、房間類型、入住時間、退房時間、房間價格關鍵字:用戶賬號(3)文件編號:D3數(shù)據(jù)文件名稱:房間信息簡述:保存的是當前房間情況的信息數(shù)據(jù)存儲組成:房間類型、房間價格、房間數(shù)量關鍵字:房間類型3.3.1.4外部實體外部實體編號:S1名稱:用戶簡述:用戶主要面向廣大人民群眾,為使用本系統(tǒng)的人有關數(shù)據(jù)流:系統(tǒng)與用戶交互的是用戶信息3.3.1.5處理過程介紹處理過程編號處理過程名輸入數(shù)據(jù)流輸出數(shù)據(jù)流簡述P1信息處理用戶登錄信息,用戶新密碼用戶基本信息該加工模塊主要實現(xiàn)對登入操作的合法性檢測P1.1用戶登入信息處理用戶登錄信息用戶基本信息實現(xiàn)提示用戶登錄成功P2用戶操作處理用戶基本信息,舊密碼預訂信息,查詢信息,退訂信息,用戶新密碼用戶可選擇操作的三個模塊,分別是修改密碼、預訂、查詢、退訂模塊P2.1用戶操作信息接收用戶所輸入的信息查詢信息,預訂信息,取消預訂信息,用戶舊密碼接收用戶所輸入的信息P2.2修改密碼用戶舊密碼用戶新密碼該加工模塊主要實現(xiàn)用戶修改個人密碼的功能P3查詢處理查詢信息房間未使用信息,預訂記錄信息接收用戶查詢請求,反饋結果P3.1查詢信息處理查詢信息查詢房間未使用信息,查詢預訂記錄信息接收查詢信息后,不同的查詢條件中,結合預訂記錄、房間信息兩個存儲文件,給出相應處理措施P3.1.1查詢信息接收查詢信息查詢信息用于接收用戶所輸入的查詢信息P3.1.2判斷查詢信息查詢信息房間查詢信息,預訂記錄查詢信息對所接收的查詢信息進行判斷,分析得出所輸入的查詢信息類別P3.2分析房間信息查詢房間信息反饋房間未使用信息檢索用戶的房間查詢信息,并輸出相應的房間信息P3.2.1房間信息查詢合法性房間查詢信息房間信息查詢條件檢驗用戶所輸入的房間查詢信息的合法性P3.2.2匹配房間信息房間信息查詢條件匹配房間信息檢索用戶所輸入的房間查詢信息,并根據(jù)查詢信息的條件在數(shù)據(jù)庫中匹配房間信息并輸出P3.2.3檢驗房間余量匹配房間信息未使用房間信息對所匹配成功的房間信息進行檢驗,對房間余量大于0的房間信息進行輸出P3.3分析預訂記錄信息預訂記錄查詢信息預訂記錄信息檢索用戶的預訂記錄查詢信息,并輸出相應的預訂記錄信息P3.3.1匹配查詢時間信息查詢時間信息匹配時間信息檢索用戶所輸入的預訂記錄查詢信息,并根據(jù)查詢信息的條件在數(shù)據(jù)庫中匹配預訂記錄信息并輸出P3.3.2檢驗預訂記錄時間時間信息預訂記錄信息對所匹配成功的房間信息進行檢驗,將符合時間的預訂記錄信息進行輸出P4預訂處理預訂信息、未使用房間信息預訂房間訂單接收用戶的預訂信息,系統(tǒng)進行處理并反饋給用戶P4.1預訂條件處理預訂信息預訂記錄信息對于用戶輸入的預訂條件,結合當前房間占用情況,將最終的預訂結果反饋給用戶P4.1.1接收預訂信息預訂信息預訂信息接收用戶的預訂信息P4.1.2檢驗預訂房間數(shù)量預訂信息預訂信息對用戶所輸入的預訂信息進行檢驗,檢驗所輸入的房間數(shù)量是否符合酒店實際情況P4.1.3檢驗預訂房間日期預訂信息預訂記錄信息對用戶所輸入的預訂信息進行檢驗,檢驗所輸入的入住日期與退房日期是否符合實際生活情況P4.2更新預訂記錄與房間信息處理結果預訂結果在得到系統(tǒng)回復后,將預訂結果記錄添加到預訂記錄中,并反饋給用戶P4.2.1接收預訂記錄信息預訂記錄信息預訂記錄信息接收符合實際情況的用戶預訂房間信息P4.2.2更新房間信息預訂記錄信息預訂記錄信息用戶預訂成功時更新酒店房間信息P4.2.3更新預訂記錄信息預訂記錄信息預訂記錄信息用戶預訂成功時更新個人預訂記錄信息P5取消預訂處理退訂信息、預訂房間訂單接收用戶的退訂信息,系統(tǒng)進行退訂處理P5.1退訂信息接收退訂信息刪除數(shù)據(jù)接收用戶輸入的退訂信息P5.2取消退訂刪除數(shù)據(jù)系統(tǒng)得到用戶的刪除預訂記錄信息后,對預訂記錄和房間信息兩個存儲文件進行更新3.4E-R圖3.5新系統(tǒng)的可行性分析系統(tǒng)開發(fā)過程中會受到時間、資源、技術等因素的限制。在明確了系統(tǒng)的開發(fā)任務目標和系統(tǒng)范圍之后,需要從技術、經(jīng)濟、操作等方面進行項目可行性分析,評估判斷系統(tǒng)開發(fā)項目在現(xiàn)有技術和經(jīng)濟條件下是否可行,是否能夠達到預期目標,以及保證項目正常進行需要的各種資源和支撐條件。系統(tǒng)可行性分析圍繞著技術、經(jīng)濟、操作可行性三個方面。3.5.1技術可行性本系統(tǒng)使用的開發(fā)語言為java,使用android作為開發(fā)技術,在android平臺上開發(fā)運行,使用Bmob后端云數(shù)據(jù)庫。作為目前一種流行的開發(fā)技術,android是基于linux的自由及開放源代碼的操作系統(tǒng);經(jīng)過多年的發(fā)展,android的開發(fā)技術已經(jīng)非常成熟且方便快捷,配合上Bmob后端云數(shù)據(jù)庫,能夠高效便捷地實現(xiàn)開發(fā)目標。所以本系統(tǒng)的開發(fā)技術室可行的。3.5.2經(jīng)濟可行性投入方面,因為android操作系統(tǒng)以及Bmob后端云數(shù)據(jù)庫都是免費使用的,同時本團隊擁有系統(tǒng)開發(fā)人員,無需支付系統(tǒng)開發(fā)人工費用,所以系統(tǒng)從開發(fā)到運行都是免費的,后期的維護只需要支付很少的人工費用。收入方面,通過用戶下載量來收取相對應的廣告費用。3.5.3操作可行性本系統(tǒng)是為廣大人民群眾,為其方便預訂房間開發(fā)的,使用大部分人們所熟悉的術語和信息的界面,縮短用戶對系統(tǒng)熟悉的過程,提高用戶使用的便利性和簡明性,只要用戶稍微懂得使用手機并且在合適的網(wǎng)絡環(huán)境下就能自由使用本系統(tǒng)。第四章系統(tǒng)設計4.1系統(tǒng)概述酒店預訂系統(tǒng)是使用的開發(fā)語言為java,使用android作為開發(fā)技術,在android平臺上開發(fā)運行,使用Bmob后端云數(shù)據(jù)庫的系統(tǒng),系統(tǒng)的開發(fā)目的是為了方便酒店管理和用戶預訂;從而使酒店的管理高效便捷且可以節(jié)約時間成本和勞動成本;用戶的預訂也更加簡單。做為一個面向不同年齡階層的操作系統(tǒng),一定要簡單易操作,所以系統(tǒng)使用的開發(fā)語言為java,使用android作為開發(fā)技術,在android平臺上開發(fā)運行,使用Bmob后端云數(shù)據(jù)庫提高用戶使用的便利性和簡明性,只要用戶稍微懂得使用手機并且在合適的網(wǎng)絡環(huán)境下就能自由使用本系統(tǒng)。4.2開發(fā)、測試與運行環(huán)境類別標準配置最低配置開發(fā)環(huán)境Window7AndroidStudio、EclipseWindowxpWindow10AndroidStudio、EclipseUbuntu14.04AndroidStudio、Eclipse測試環(huán)境Android4.4Android402Android5.0Android6.0運行環(huán)境Android5.0Android4.024.3系統(tǒng)結構圖4.3.1功能模塊劃分本系統(tǒng)要實現(xiàn)用戶預訂房間功能,需要設置用戶模塊,使用戶可以通過手機直接登錄本酒店的預訂APP,在手機APP上實現(xiàn)酒店房間的查詢、預訂等活動。本系統(tǒng)由用戶模塊、預訂模塊、查詢模塊、退訂模塊組成,系統(tǒng)功能模塊如圖4.1所示及描述如下。4.3.2功能模塊描述(1)用戶模塊該模塊主要功能是用戶進入本系統(tǒng)所需進行的登錄或注冊操作,用戶登錄成功后可對自己的用戶信息進行修改,如郵箱,密碼,用戶名進行修改。(2)查詢模塊該模塊主要功能是用戶查詢自己所需的信息,有房間信息與預訂記錄信息,并根據(jù)個人需要進入預訂模塊過退訂模塊。(3)預訂模塊該模塊主要功能是用戶根據(jù)查詢模塊所獲得到得房間信息,根據(jù)自己的個人需求填寫入住日期、退房日期和房間數(shù)量,合理填寫后完成預訂訂單。(4)退訂模塊該模塊主要功能是用戶根據(jù)查詢模塊所獲得到得預訂記錄信息,根據(jù)自己的個人需求與實際時間情況進行房間退訂。4.4代碼設計酒店預訂系統(tǒng)代碼設計是根據(jù)酒店經(jīng)營管理的特點,結合實際用戶預訂房間活動過程,所設計出的符合實際情況的代碼,所設計代碼結構如下:(1)用戶帳號代碼由11位數(shù)字組成,實際為用戶注冊時所輸入的手機號為用戶帳號代碼,格式如下:(2)預訂編號代碼由8位數(shù)字組成,格式如下:4.5數(shù)據(jù)庫設計4.5.1數(shù)據(jù)庫環(huán)境說明系統(tǒng)采用Bmob云數(shù)據(jù)庫系統(tǒng),利用AndroidStudio等編程工具從數(shù)據(jù)庫獲取信息并顯示在用戶界面等。4.5.2數(shù)據(jù)庫命名規(guī)則表和字段采用駝峰命名法。4.5.3安全性設計說明用戶密碼等隱私信息從用戶登錄到注銷全程都進行加密傳輸,即使是數(shù)據(jù)庫管理員也無法查看用戶密碼等隱私信息。4.5.4概念結構設計根據(jù)系統(tǒng)分析的數(shù)據(jù)流圖和數(shù)字字典,即可設計出能夠滿足用戶需求的各實體及他們的關系。這些實體包含的具體信息,通過其相互關系形成的數(shù)據(jù)流動,分析得到本系統(tǒng)的E-R圖,如圖4.1所示。4.5.5關系數(shù)據(jù)模型根據(jù)上節(jié)的概念模型得到本系統(tǒng)的關系數(shù)據(jù)模型用戶信息表(User):手機號、用戶名、郵箱、密碼房間類型表(Room_name):類型名稱、類型價格、類型數(shù)量預訂表(Scheduled):預訂編號、手機號、房間類型、預訂時間、入住時間、退房時間、退訂狀態(tài)4.5.6數(shù)據(jù)庫實施數(shù)據(jù)庫的完整性和安全性設計,根據(jù)酒店預訂業(yè)務規(guī)則設計觸發(fā)器、存儲過程。用戶信息表(User):用戶信息表主要用于保存使用本系統(tǒng)的用戶信息,如用戶帳號和用戶密碼(必需),和用戶可選擇填寫的用戶郵箱列名別名數(shù)據(jù)類型及寬度默認值取值范圍主鍵/外鍵可否為空手機號mobilePhoneNumberString11-99999999999主鍵NotNULL密碼passwordString184{[數(shù)字,字母]}20NotNULL用戶名userNameString10user_手機尾號后四位1{數(shù)字、字母、漢字}5NULL郵箱userEmailString30[A-z,0-9]{1,}\[A-z,09,\.]{1}NULL房間類型表(Room_name):房間類型表主要用于保存房間類型的信息。列名別名數(shù)據(jù)類型及寬度取值約束主鍵/外鍵可否為空類型價格Room_priceNumber4“01”-“1000”NotNULL類型名稱Room_nameString10[‘單人間’],[‘雙人間’],[‘標準間’],[‘豪華間’]主鍵NotNULL類型數(shù)量Room_countNumber4“01”-“100”NotNULL(3)預訂表(Scheduled):預訂表主要用于保存用戶完成預訂房間操作時,所生成的預訂記錄數(shù)據(jù),如用戶帳號、聯(lián)系方式、預訂房間類型、預訂房間數(shù)量、預訂時間、入住時間和退房時間,并且當用戶在規(guī)定時間內(nèi)即在入住時間前三個小時內(nèi)退訂將會更新預訂記錄表列名別名數(shù)據(jù)類型及寬度取值約束主鍵/外鍵可否為空預訂編號IDNumber4自增長主鍵NotNULL手機號mobilePhoneNumberString11外鍵NotNULL類型名稱Room_nameString10[‘單人間’],[‘雙人間’],[‘標準間’],[‘豪華間’]外鍵NotNULL預訂價格Room_priceNumber4“01”-“1000”NotNULL入住日期checkInDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“24”NotNULL退房日期checkOutDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“23”NotNULL預訂日期bookingDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“23”NotNULL退訂日期canceiDatedatetime“0001”-“9999”+“01”-“12”+“01”-“31”+“00”-“24”NuLL4.6用戶界面設計概述下面圖就列出了系統(tǒng)中的一些界面:此界面為登陸界面,登陸是進入酒店預定系統(tǒng)主界面的前提,在此界面輸入正確的密碼方可登陸,若沒有賬號,可點擊注冊按鈕進行注冊。此界面為注冊界面,需要輸入用戶正確的手機號作為用戶賬號才能注冊成功,當注冊成功時會自動跳轉(zhuǎn)到登陸界面。。此界面為酒店預訂系統(tǒng)的主界面,在該界面用戶可以看到三個可選擇項:房間信息界面,搜索界面,用戶信息界面(默認為房間信息界面),用戶可以通過點擊房間的圖片或信息進入到房間預約的界面。當用戶進入酒店預約的界面時,用戶需要填寫相應的信息來預約心儀的房間,若信息正確,則會跳到支付頁面支付相應的費用;在預約成功后,用戶可以在房間預約記錄中查看已成功預約的房間信息。搜索房間界面中,當用戶進行了搜索的操作,若符合搜索條件,界面會顯示用戶搜索到的房間,同時用戶也可以再次點擊搜索到的房間信息進行預約的操作。在用戶信息界面中,用戶可以看到兩個可選擇項:用戶個人修改信息和房間預約記錄。在房間預約記錄中,用戶可以查看已經(jīng)預約的房間,同時可以點擊退訂按鈕,來退訂已經(jīng)成功預定的房間,退訂成功時將會更新預訂記錄表中的退訂日期屬性數(shù)據(jù),表示該預訂房間已退訂成功,當在入住前三個小時前,退訂按鈕會顯示灰色,此時用戶將不能進行退訂操作。4.7綜合考慮4.7.1穩(wěn)定性和可擴展性在總體設計的時候,既要使總體結構穩(wěn)定,又要適應需求變化。4.7.1.1穩(wěn)定性在設計酒店預訂系統(tǒng)總體設計中,為了確保系統(tǒng)的穩(wěn)定性,使總體結構穩(wěn)定,又要適應需求變化,預測需求可能發(fā)生的變化。在用戶表中,用戶信息將通過用戶自己輸入相對應的信息,若格式正確,將會被后臺數(shù)據(jù)庫記錄,而為了適應用戶的需求,用戶信息的密碼,郵箱可以更改。房間表中關于房間的基礎屬性不變,而隨著預訂數(shù)量的變化,房間的數(shù)量將會增加或者減少。在預定表里,后臺數(shù)據(jù)庫將會實時記錄用戶信息與其預約的房間信息,而為了滿足用戶退訂的需求,當用戶進行了退訂的操作時,數(shù)據(jù)庫將會更新預訂記錄表,顯示退訂時間,表示用戶在規(guī)定時間內(nèi)退訂成功。4.7.1.2擴展性在設計酒店預訂系統(tǒng)的時候為了考慮整個系統(tǒng)的未來成長。我們通過可擴展性來擴充功能以完善整個系統(tǒng)。添加游客用戶,該身份擁有查看房間數(shù)量、類型、價格等功能,但是該身份沒有進行預約房間的權限;信息推送功能,酒店出現(xiàn)新的優(yōu)惠或者房間價格出現(xiàn)變動的時候,將會彈出信息框提醒用戶,方便用戶隨時核實房間更新信息;在首頁上層添加一個廣告位,目的是宣傳酒店的其他業(yè)務,該廣告位可以隨時進行更新。4.7.2性能分析4.7.2.1數(shù)據(jù)精確度查詢時應保證查全率,所有相應域包含查詢關鍵字的記錄都應能查到。因為通常的系統(tǒng)規(guī)模在幾百到幾千項記錄,以查全率為標準所帶來的對查準率的影響并不大。管理登記時數(shù)據(jù)準確度具有可控性,系統(tǒng)設置數(shù)據(jù)屬性時對要求整數(shù)的數(shù)據(jù)設置成整型,對財務數(shù)據(jù)要求保留到小數(shù)點后三位,并滿足實際情況。數(shù)據(jù)計算設置時可以進行數(shù)據(jù)類型轉(zhuǎn)換,保證準確度。4.7.2.2時間特性一般操作的響應時間應在1~2秒內(nèi),對數(shù)據(jù)庫和用戶指令的響應根據(jù)具體的網(wǎng)絡和硬件條件會有不同4.7.2.3適應性在操作方式、運行環(huán)境、與其他軟件的接口以及開發(fā)計劃等發(fā)生變化時,應具有的適應能力。系統(tǒng)可以支持軟鍵盤、觸屏控制。系統(tǒng)可以適應4.7.3性能指標實現(xiàn)(1)用戶界面對用戶友好,易操作,支持軟鍵盤和觸屏(2)系統(tǒng)基于Android4.0進行開發(fā)和維護使用,使用Bmob后端云數(shù)據(jù)庫4.7.4防錯與出錯處理(1)為了預防系統(tǒng)出錯,本酒店管理系統(tǒng)將具有可恢復性,在預定過程中,如果軟件突然崩潰或者錯誤以后應該可以將忽略當前此次操作,重新進入初始預定界面,不記錄到數(shù)據(jù)庫。(2)在用戶確認進行預訂或者退訂房間工作,會發(fā)生數(shù)據(jù)修改并記錄到數(shù)據(jù)庫時候應給與彈窗提示,防止用戶或酒店的錯誤操作而導致經(jīng)濟的損失。第五章酒店預訂系統(tǒng)的實現(xiàn)本章敘述了系統(tǒng)開發(fā)的詳細過程,首先明確了系統(tǒng)所使用的開發(fā)環(huán)境和運行環(huán)境,即采用了Android平臺為開發(fā)平臺,數(shù)據(jù)庫采用了Bmob后端云數(shù)據(jù)庫,而數(shù)據(jù)流圖的繪制則是采用了MicrosoftVisio繪圖軟件,然后根據(jù)上一章的系統(tǒng)設計,詳細實現(xiàn)了酒店預訂系統(tǒng)的界面設計,給出了部分系統(tǒng)界面。5.1開發(fā)環(huán)境的選擇和依據(jù)5.1.1開發(fā)環(huán)境的選擇本系統(tǒng)采用了Android平臺為開發(fā)平臺,數(shù)據(jù)庫采用了Bmob后端云數(shù)據(jù)庫,而數(shù)據(jù)流圖的繪制則是采用了MicrosoftVisio繪圖軟件。5.1.2開發(fā)環(huán)境選擇的依據(jù)安卓手機APP占APP市場比例大。5.1.3開發(fā)框架和方法本系統(tǒng)使用了MVP開發(fā)模式,采用了xutils3框架。本系統(tǒng)使用MVP開發(fā)模式可以高內(nèi)聚,并且有解耦的作用,低耦合有助于程序的維護,單獨的功能做成獨立模塊,整個系統(tǒng)由一個個模塊通過接口組合而成,如果需要更新或者修改局部功能,只要修改一個接口的一個模塊,不影響整個系統(tǒng)其他功能使用。5.2系統(tǒng)功能模塊的實現(xiàn)從第三章系統(tǒng)設計可以得到酒店預訂系統(tǒng)包括以下各部分組成,分別是:用戶模塊,實現(xiàn)用戶注冊、登錄和修改個人信息的功能;查詢模塊,實現(xiàn)用戶根據(jù)需要查詢自己所需的信息,有房間信息和個人預訂記錄信息等;預訂模塊,實現(xiàn)用戶預訂自己所心儀的房間的功能;退訂模塊,實現(xiàn)用戶可以在規(guī)定時間內(nèi)根據(jù)需要取消自己已預訂的房間的功能和在規(guī)定時間外用戶將不能取消已預訂房間的功能。5.2.1用戶模塊實現(xiàn)用戶模塊主要用于存儲用戶的基本信息,以便用戶進入本系統(tǒng),和方便管理個人信息。

LoginActivity.java

//按鈕點擊事件

@Event(value

=

{R.id.sign_in_button,

R.id.sign_up_text})

private

void

onClick(View

view)

{

switch

(view.getId())

{

case

R.id.sign_in_button:

//獲取手機號

String

phoneNumber

=

signInPhone.getText().toString().trim();

//獲取密碼

String

password

=

signInPassword.getText().toString().trim();

//判斷手機號和密碼是否為空

if

(TextUtils.isEmpty(phoneNumber)

||

TextUtils.isEmpty(password))

{

Toast.makeText(LoginActivity.this,

"請輸入用戶名和密碼",

Toast.LENGTH_SHORT).show();

}

else

{

User

user

=

new

User();

//設置手機號

user.setMobilePhoneNumber(phoneNumber);

//設置用戶名

user.setUsername("usr_"

+

phoneNumber.substring(7));

//設置密碼

user.setPassword(password);

//登錄邏輯

loginPresenter.login(user);

}

break;

case

R.id.sign_up_text:

Intent

signIntent

=

new

Intent(LoginActivity.this,

SignActivity.class);

overridePendingTransition(android.R.anim.fade_in,

android.R.anim.fade_out);

startActivity(signIntent);

break;

}

}

LoginPresenterImpl.java

@Override

public

void

login(User

user)

{

//顯示登錄加載

loginView.showLoading();

//登錄邏輯

loginModel.loadUserInfo(user,

this);

}

@Override

public

void

onLoginSuccess(User

user)

{

//隱藏登錄加載

loginView.hideLoading();

//接口回調(diào),登錄成功

loginView.loginSuccess(user);

}

@Override

public

void

onLoginFail(Exception

e)

{

//隱藏登錄加載

loginView.hideLoading();

//接口回調(diào),登錄失敗

loginView.loginFailed(e);

}

LoginModelImpl.java

//用戶登錄

@Override

public

void

loadUserInfo(final

User

user,

final

OnLoginListener

loginListener)

{

handler.post(new

Runnable()

{

@Override

public

void

run()

{

//通過檢驗數(shù)據(jù)庫里該用戶是否存在進行登錄

user.login(new

SaveListener<User>()

{

@Override

public

void

done(User

user,

BmobException

e)

{

//登錄成功返回User實例

if

(e

==

null)

{

//回調(diào)

loginListener.onLoginSuccess(user);

}

//登錄失敗返回Exception

else

{

//回調(diào)

loginListener.onLoginFail(e);

}

}

});

}

});

}Pro

//修改信息點擊事件

@Event(value

=

{R.id.confirmButton,

R.id.home})

private

void

onClick(View

view)

{

switch

(view.getId())

{

case

R.id.confirmButton:

//獲取用戶名

String

username

=

usernameEditText.getText().toString().trim();

//獲取郵箱地址

String

email

=

emailEditText.getText().toString().trim();

//獲取密碼

final

String

password

=

passwordEditText.getText().toString().trim();

//獲取重新輸入的密碼

final

String

newPassword

=

newPasswordEditText.getText().toString().trim();

//獲取確認密碼

String

confirmPassword

=

confirmPasswordEditText.getText().toString().trim();

//判斷用戶名密碼等是否為空

if

(!TextUtils.isEmpty(username)

&&

!TextUtils.isEmpty(email)

&&

TextUtils.isEmpty(password)

&&

TextUtils.isEmpty(newPassword)

&&

TextUtils.isEmpty(confirmPassword)

&&

isEmail(email))

{

progressDialog.show();

user.setUsername(username);

user.setEmail(email);

handler.post(new

Runnable()

{

@Override

public

void

run()

{

//更新用戶信息

user.update(user.getObjectId(),

new

UpdateListener()

{

@Override

public

void

done(BmobException

e)

{

//更新成功,提示用戶更新成功

if

(e

==

null)

{

progressDialog.dismiss();

Toast.makeText(Pro,

"更新信息成功",

Toast.LENGTH_SHORT).show();

}

//更新失敗,提示用戶更新失敗

else

{

progressDialog.dismiss();

Toast.makeText(Pro,

e.getMessage(),

Toast.LENGTH_SHORT).show();

}

}

});

}

});

}

5.2.2查詢模塊實現(xiàn)查詢模塊主要用戶查詢功能,用戶通過合理的查詢方式來查找自己需要的信息。

MainFragment.java

@Nullable

@Override

public

View

onCreateView(LayoutInflater

inflater,

@Nullable

ViewGroup

container,

@Nullable

Bundle

savedInstanceState)

{

View

view

=

x.view().inject(this,

inflater,

container);

Bundle

bundle

=

getArguments();

if

(bundle

!=

null)

{

user

=

(User)

bundle.get("user");

Log.d("USER",

"get

user

success");

}

//房間加載presenter

presenter

=

new

MainPresenterImpl(this);

refreshLayout.setColorSchemeColors(R.color.colorPrimary,

R.color.colorPrimaryDark,

R.color.textPrimary,

R.color.textPrimaryDark);

refreshLayout.setOnRefreshListener(this);

manager

=

new

LinearLayoutManager(getActivity(),

LinearLayoutManager.VERTICAL,

false);

adapter

=

new

MainAdapter();

recyclerView.setHasFixedSize(true);

recyclerView.setItemAnimator(new

DefaultItemAnimator());

recyclerView.setLayoutManager(manager);

adapter.setItemClickListener(onItemClickListener);

recyclerView.setAdapter(adapter);

//刷新加載房間

onRefresh();

return

view;

}

@Override

public

void

onRefresh()

{

if

(rooms

!=

null)

{

rooms.clear();

}

//加載房間邏輯

presenter.load();

}

@Override

public

void

showLoading()

{

refreshLayout.setRefreshing(true);

}

@Override

public

void

hideLoading()

{

refreshLayout.setRefreshing(false);

}

//加載成功回調(diào)

@Override

public

void

loadingSuccess(List<Room>

rooms)

{

this.rooms

=

rooms;

adapter.setData(rooms);

}

//加載失敗回調(diào)

@Override

public

void

loadingFailed(Exception

e)

{

Toast.makeText(getActivity(),

e.getMessage(),

Toast.LENGTH_SHORT).show();

Log.d("Exception",

e.getMessage());

}

MainPresenterImpl.java

//加載房間

@Override

public

void

load()

{

//顯示等待加載

mainView.showLoading();

//加載邏輯

mainModel.load(this);

}

//接口回調(diào),加載成功

@Override

public

void

onLoadingSuccess(List<Room>

rooms)

{

mainView.hideLoading();

mainView.loadingSuccess(rooms);

}

//接口回調(diào),加載失敗

@Override

public

void

onLoadingFailed(Exception

e)

{

mainView.hideLoading();

mainView.loadingFailed(e);

}

MainModelImpl.java

//加載房間

@Override

public

void

load(final

OnLoadListener

listener)

{

handler.post(new

Runnable()

{

@Override

public

void

run()

{

//新建查詢

BmobQuery<Room>

query

=

new

BmobQuery<>();

//查詢房間

query.findObjects(new

FindListener<Room>()

{

@Override

public

void

done(List<Room>

list,

BmobException

e)

{

if

(e

==

null)

{

//加載成功,返回List<Room>

溫馨提示

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

評論

0/150

提交評論