梁 民 蔡立慶
(1.中國人民大學(xué)實(shí)驗(yàn)室管理與教學(xué)條件保障處 北京海淀 100872;2.中國人民大學(xué)明德物業(yè)公司 北京海淀 100872)
中國人民大學(xué)有各類學(xué)術(shù)活動(dòng)和社團(tuán)活動(dòng),經(jīng)常有小型研討需求,因?yàn)闆]有合適的場(chǎng)所,學(xué)生一般會(huì)選擇咖啡廳、校園草坪、宿舍等場(chǎng)所開展此類活動(dòng)。同時(shí),老師有時(shí)會(huì)跟學(xué)生有小型學(xué)術(shù)研討或者會(huì)議,由于老師辦公室面積小及辦公室沒有投影或者大屏等展示系統(tǒng),討論效果不理想,有時(shí)師生會(huì)隨機(jī)選擇無課教室進(jìn)行研討活動(dòng),影響了正常自習(xí)的同學(xué)。為解決師生迫切的研討場(chǎng)地需求,更好地為教學(xué)科研服務(wù),中國人民大學(xué)新建成的圖書館專門建立了7間研討室,擬對(duì)師生開放,可通過適當(dāng)?shù)念A(yù)約方式使用,開展各類活動(dòng)。
綜合考慮手機(jī)等移動(dòng)終端的廣泛使用,加之微信的高普及率以及微信小程序、無需安裝即可使用的便捷性,文章設(shè)計(jì)并實(shí)現(xiàn)了一套基于微信小程序的研討室預(yù)約系統(tǒng)。
微信小程序是騰訊公司于2017年1月19日發(fā)布的一種全新的連接用戶與服務(wù)的應(yīng)用,依托微信平臺(tái),用戶通過掃描二維碼或通過微信搜索就能打開應(yīng)用,無需下載,實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,也體現(xiàn)了“用完即走”的理念,不用擔(dān)心安裝太多應(yīng)用的問題[1]。
傳統(tǒng)應(yīng)用軟件的運(yùn)行速度很大程度上取決于設(shè)備的配置和性能,而微信小程序的運(yùn)行速度主要依賴于微信軟件的運(yùn)行,占用手機(jī)的內(nèi)存較小,受手機(jī)性能的影響較小,運(yùn)行速度比傳統(tǒng)應(yīng)用軟件快。
為方便用戶操作、易于推廣和增強(qiáng)用戶使用粘度,要求系統(tǒng)基于微信小程序開發(fā),系統(tǒng)界面要簡潔,交互操作需要簡單方便,核心功能要放在頁面主要位置。要求能夠隨著未來發(fā)展,平臺(tái)能靈活擴(kuò)展[2]。
普通用戶和系統(tǒng)管理者分別有以下功能需求:用戶登錄系統(tǒng)后可以查詢研討室使用情況,支持按房間號(hào)、日期、時(shí)間段組合查詢,根據(jù)需要可填寫申請(qǐng)信息并提交申請(qǐng)。用戶提交申請(qǐng)后可以查看預(yù)約情況,并可對(duì)已預(yù)約申請(qǐng)進(jìn)行修改或者取消操作;管理員登錄系統(tǒng)后可以查看已提交預(yù)約申請(qǐng)研討室的基本信息以及申請(qǐng)理由及申請(qǐng)狀態(tài),可對(duì)已提交的申請(qǐng)進(jìn)行通過或者駁回等審核操作。
此部分主要對(duì)系統(tǒng)進(jìn)行了需求分析,在明確了需求的基礎(chǔ)上,對(duì)系統(tǒng)進(jìn)行了模塊設(shè)計(jì)和數(shù)據(jù)庫設(shè)計(jì),現(xiàn)分述如下。
根據(jù)系統(tǒng)需求分析,系統(tǒng)分為注冊(cè)/登錄模塊、查詢模塊、預(yù)約模塊、用戶信息修改模塊和管理員管理模塊等五個(gè)模塊。系統(tǒng)總體功能模塊圖見下圖。
圖1 預(yù)約系統(tǒng)總體模塊圖
各個(gè)模塊的功能描述如下:
(1)注冊(cè)/登錄模塊功能
此模塊主要實(shí)現(xiàn)用戶的注冊(cè)及登錄功能。其中用戶名建議使用學(xué)號(hào)或者職工號(hào),密碼要求長度大于8位的強(qiáng)密碼。非法用戶將不能登錄系統(tǒng)。
(2)查詢模塊
用戶通過此模塊可以查詢一周內(nèi)可預(yù)約的空閑時(shí)段研討室,用戶可以按研討室教室號(hào)或者時(shí)段或者日期等不同的關(guān)鍵字查詢。系統(tǒng)支持應(yīng)該單一關(guān)鍵字或者組合關(guān)鍵詞查詢。
(3)預(yù)約模塊
可預(yù)約時(shí)段和學(xué)校排課時(shí)段一致,即從早上8點(diǎn)開始至晚上10點(diǎn),每2個(gè)小時(shí)為一個(gè)可預(yù)約時(shí)段。用戶進(jìn)入預(yù)約模塊后,可按日期或者房間號(hào)篩選可預(yù)約研討室,選中某個(gè)時(shí)段的教室號(hào)后,輸入相關(guān)信息后再按“確定預(yù)約”即可完成預(yù)約操作。
(4)用戶修改信息模塊
此模塊顯示個(gè)人用戶已預(yù)約的研討室基本信息,在此模塊可查看已預(yù)約教室和待審批教室詳細(xì)信息,還可對(duì)已預(yù)約的研討室進(jìn)行取消或者更改時(shí)間、時(shí)段等操作。
(5)管理模塊
管理模塊主要完成用戶預(yù)約申請(qǐng)的審批以及管理員的權(quán)限管理等功能。
根據(jù)系統(tǒng)實(shí)際需求,系統(tǒng)采用MySQL數(shù)據(jù)庫,數(shù)據(jù)庫涉及6個(gè)表,主要有研討室預(yù)約表、用戶預(yù)約信息表、研討室信息表、預(yù)約審批表、管理員信息表、統(tǒng)計(jì)表等。為了突出預(yù)約系統(tǒng)的核心業(yè)務(wù),本文選取2個(gè)核心數(shù)據(jù)表進(jìn)行描述。
(1)研討室預(yù)約表
研討室預(yù)約表(RoomBooking)主要存放每個(gè)研討室各時(shí)段預(yù)約占用情況,該表主要有研討室號(hào)、已預(yù)約日期、時(shí)段、預(yù)約者、審批者等字段。該表的結(jié)構(gòu)見表1。
表1 研討室狀態(tài)表 RoomBooking
(2)用戶預(yù)約情況表
用戶預(yù)約情況表(ApplicantInformation)存放每位用戶的研討室預(yù)約信息。該表包含了用戶學(xué)生號(hào)(職工號(hào))、用戶類別(老師,學(xué)生)以及歷史預(yù)約信息等相關(guān)字段信息。該表的結(jié)構(gòu)見表2。
表2 用戶預(yù)約情況表 ApplicantInformation
系統(tǒng)分為微信小程序端和服務(wù)器端兩部分。小程序端使用的技術(shù)主要有JSON,WXML,WXSS、,和JAVASCRIPT。預(yù)約系統(tǒng)小程序主體部分由App.js,App.json,App.wxss三個(gè)文件組成。小程序端開發(fā)環(huán)境為微信開發(fā)者工具。服務(wù)器端使用JAVA作為開發(fā)語言,數(shù)據(jù)庫使用MySQL,WEB,發(fā)布服務(wù)器使用tomcat,開發(fā)環(huán)境為ultraedit。
小程序前端和服務(wù)器的數(shù)據(jù)通信通過小程序的網(wǎng)絡(luò)API實(shí)現(xiàn),具體是使用wx.request()方法,其工作原理是從小程序端向服務(wù)器發(fā)起HTTPS網(wǎng)絡(luò)請(qǐng)求、傳遞數(shù)據(jù)參數(shù),并將服務(wù)器接口處理結(jié)果返回。在預(yù)約系統(tǒng)中,登錄系統(tǒng)、查詢功能、預(yù)約功能的實(shí)現(xiàn),都會(huì)從小程序前端到服務(wù)器端傳遞數(shù)據(jù),使用到wx.request()方法。
(1)查詢功能的實(shí)現(xiàn)
在查詢模塊中,用戶可以查詢一周內(nèi)可預(yù)約的研討室,可以按研討室教室號(hào)或者時(shí)段等不同的關(guān)鍵字查詢,也可數(shù)個(gè)關(guān)鍵字組合查詢。
查詢功能實(shí)現(xiàn)具體流程如下:用戶在查詢界面(view視圖)輸入查詢關(guān)鍵字,提交后,參數(shù)值傳遞到.js頁,在此頁,會(huì)通過小程序的網(wǎng)絡(luò)API把參數(shù)傳遞到后臺(tái),后臺(tái)通過數(shù)據(jù)庫查詢后,把結(jié)果返回前臺(tái),在前臺(tái)展示出來。
①在view視圖中主要代碼如下:
設(shè)置“提交”按鈕的屬性值為"submit",用戶點(diǎn)擊“提交”按鈕時(shí),會(huì)把在此頁面form中輸入的參數(shù)值傳遞到.JS頁,做進(jìn)一步處理。
②JS頁中使用wx.request()方法,把房間號(hào)、時(shí)間、時(shí)間段三個(gè)參數(shù)傳遞給后臺(tái)處理,并通過success()獲得查詢結(jié)果。JS中主要代碼如下:
③后臺(tái)頁面使用request.getString()方法獲得前臺(tái)wx.request()方法傳遞過來的參數(shù),主要代碼如下:
(2)預(yù)約功能實(shí)現(xiàn)
和查詢功能類似,預(yù)約功能使用wx.request()方法把要預(yù)約的教室號(hào)、日期、時(shí)段等參數(shù)從前臺(tái)傳遞給服務(wù)器,后臺(tái)對(duì)數(shù)據(jù)庫進(jìn)行update。
JS主要代碼
因?yàn)闊o需從服務(wù)器反回?cái)?shù)據(jù),所以此段沒有調(diào)用success。
基于微信的廣泛應(yīng)用和依托微信平臺(tái)開發(fā)小程序的易普及性和推廣性,本研究設(shè)計(jì)了一套基于微信小程序的研討室預(yù)約系統(tǒng)。系統(tǒng)前端采用JSON,WXML,WXSS、和JAVASCRIPT等技術(shù),后端采用JAVA作為開發(fā)語言,數(shù)據(jù)庫使用MySQL,WEB發(fā)布服務(wù)器使用tomcat。在微信小程序客戶端實(shí)現(xiàn)了研討室查詢、預(yù)約、管理等功能。系統(tǒng)上線運(yùn)行證明,基于微信小程序的研討室預(yù)約系統(tǒng)與基于WEB端和手機(jī)App研發(fā)的預(yù)約系統(tǒng)相比更易于推廣,給用戶更便捷的體驗(yàn)。