吳國華
?
基于微信小程序的圖書館座位預(yù)約選座系統(tǒng)的設(shè)計
吳國華
同濟大學(xué)軟件學(xué)院,上海 200000
微信小程序一經(jīng)問世,就引起了各行各業(yè)的強烈關(guān)注,代表了移動端應(yīng)用未來發(fā)展的趨勢。圖書館在移動應(yīng)用方面存在的問題,通過微信小程序可以迎刃而解。通過微信小程序開發(fā)圖書館座位預(yù)約系統(tǒng)研究和設(shè)計,初步實現(xiàn)了設(shè)計目標(biāo),展示了微信小程序在開發(fā)、應(yīng)用上的便捷性。
微信小程序;座位預(yù)約系統(tǒng);圖書館
微信小程序(Wechat mini programs)由騰訊微信事業(yè)部開發(fā),2017 年1 月9 日正式上線,是一種無需下載安裝即可使用的應(yīng)用,可與微信公眾號綁定,用戶通過搜索或掃描二維碼即可找到并打開應(yīng)用,體現(xiàn)了“用完即走”理念[1]。微信小程序是根植于微信App這一個擴展。截至2017年5月,微信擁有9.38億用戶,是眾多社交APP的領(lǐng)跑者[2]。微信小程序所代表的下一代移動互聯(lián)網(wǎng)服務(wù)理念就是:無須安裝、觸手可及、用完即走、無須卸載,即縮短用戶操作路徑、減少安裝App的麻煩、釋放手機內(nèi)存、節(jié)省時間、提升體驗[2]。由此可見,微信小程序雖然命名為“小程序”,其實是一種比我們現(xiàn)有任何App都更加靈活、更加簡便的一種新的App平臺,運行在微信小程序中的應(yīng)用,無需考慮移動設(shè)備的操作系統(tǒng)是安卓還是iOS,無需考慮操作系統(tǒng)的版本,不占用獨立內(nèi)存和存儲空間。基于微信小程序的特性,我們有理由相信,在很多場景中,小程序?qū)⒋笠?guī)模替代傳統(tǒng)App。
高校的圖書館一般都是學(xué)校中最理想的學(xué)習(xí)、自習(xí)的場所。經(jīng)過近幾年的發(fā)展,高校圖書館不僅蘊藏著豐富的文獻(xiàn)和學(xué)習(xí)資源,而且在閱讀環(huán)境上改善了很多,空調(diào)、Wi-Fi熱點、電源插座等設(shè)施基本都已配備。這些資源和設(shè)施都免費提供給在校學(xué)生使用。不少高校圖書館新館建設(shè)得猶如酒店、百貨商場。隨著到圖書館學(xué)習(xí)、查閱文獻(xiàn)的學(xué)生越來越多,特別是在期末、重大考試前,圖書館經(jīng)常是早早地排起了“長龍”,這時的“占座”現(xiàn)象也尤其突出。占座的工具層出不窮,有書、杯子以及寫上占座詞語的字條,甚至有些讀者使用鏈條鎖,給圖書館管理帶來了很多問題。有些讀者占著座位,卻一天都不使用,造成了極大的資源浪費。
圖書館自助選座預(yù)約系統(tǒng)在這種環(huán)境下應(yīng)運而生。自助選座系統(tǒng)通過良好的可視化界面展示圖書館座位的狀態(tài),并能夠?qū)崿F(xiàn)用戶與系統(tǒng)的友好交互。通過網(wǎng)絡(luò)實現(xiàn)移動端、PC端預(yù)約座位,解決了圖書館排隊的問題,改善了圖書館座位資源的浪費情況,提高了圖書館座位資源的利用率。系統(tǒng)產(chǎn)生的讀者選座、預(yù)約、暫離等行為數(shù)據(jù),可以剖析讀者在圖書館的使用規(guī)律,發(fā)掘和提煉出相關(guān)信息,以此進(jìn)一步改進(jìn)圖書館座位資源分配,為圖書館的管理提供決策依據(jù)[3]。
市場上現(xiàn)有的自助選座預(yù)約系統(tǒng)主要由設(shè)置在圖書館的觸屏電腦來實現(xiàn)預(yù)約選座和到館簽到,多個閱覽室(自習(xí)室)、多個樓層需要部署多個觸屏電腦,這會帶來排隊選座、簽到等方面的問題,同時這些設(shè)備也需要投入大量資金和人力,效費比不高。
有廠商意識到了移動端將是選座預(yù)約系統(tǒng)的主要載體,選座App也就隨著出現(xiàn)。選座App基本可以解決觸屏電腦選座的尷尬,但是它也存在一些不足:需要針對不同的環(huán)境定制開發(fā)App;后期維護App需要大量的人力和財力;App的推廣慢,用戶也容易出現(xiàn)流失,畢竟在手機上安裝大量的App,會影響手機的運行速度。
微信小程序的出現(xiàn),給自助選座預(yù)約系統(tǒng)帶來了另一個不錯的選擇。從前文中微信小程序的特點可以看出,微信小程序很好地契合了預(yù)約選座系統(tǒng)的需求。首先,微信平臺擁有龐大的用戶群體,讀者的手機中絕大部分都安裝了微信;其次,微信小程序不像傳統(tǒng)App那樣,不需要“下載”“安裝”,不需要占用存儲空間和運行內(nèi)存,對用戶而言,大大降低了使用成本;最后,微信小程序可以多種方式啟用,可以通過搜索小程序名稱、掃描小程序二維碼或別人分享的鏈接和二維碼,推廣非常簡便。
系統(tǒng)由服務(wù)器端、中間件層、微信小程序?qū)雍陀脩舳?層結(jié)構(gòu)組成。服務(wù)器端存儲用戶信息、統(tǒng)計信息、違規(guī)信息;中間件層負(fù)責(zé)獲取、交換服務(wù)器端和小程序數(shù)據(jù);微信小程序提供預(yù)約系統(tǒng)前臺界面和數(shù)據(jù)處理;用戶端允許用戶通過搜索或掃描小程序二維碼使用預(yù)約系統(tǒng)。
2.1.1 用戶界面
(1)用戶登錄
用戶登錄是指第一次使用預(yù)約選座小程序或退出賬號后重新進(jìn)入時需要使用的系統(tǒng)開始模塊。用戶登錄模塊采用多種信息匹配的方式認(rèn)證用戶,用戶信息存儲在服務(wù)器端,包含以下信息:姓名、學(xué)號/工號、借閱證號。用戶登錄中需要輸入:姓名、學(xué)號/工號、手機號碼,讀者輸入的姓名和學(xué)號/工號匹配成功才允許登錄系統(tǒng),如圖1所示。
登錄成功后進(jìn)入預(yù)約系統(tǒng)主界面,如圖2所示。
(2)預(yù)約座位
該功能模塊,主要負(fù)責(zé)預(yù)約信息的顯示和輸入,如選擇場館、預(yù)約日期、預(yù)約起始時間和使用時長等,如圖3所示。
系統(tǒng)為了方便讀者選座,預(yù)設(shè)預(yù)約日期范圍為當(dāng)天、明天和后天,也就是系統(tǒng)只接受3天內(nèi)的預(yù)約。這主要是出于防止出席盲目預(yù)約和時間過長導(dǎo)致的不確定性而影響讀者違約的情況。預(yù)約時長上規(guī)定為最長3小時,最短30分鐘。
(3)隨機選座
隨機選座模塊是為了方便讀者快速預(yù)約,系統(tǒng)隨機分配可用座位。
(4)自助選座
自助選座功能主要是為那些對座位有各種要求的讀者提供一個人性化的功能,如座位是否靠近窗戶、是否靠近書架,或者就喜歡某個座位的特殊要求。系統(tǒng)界面如圖4所示。
(5)撤銷預(yù)約
系統(tǒng)還提供撤銷預(yù)約的功能,方便讀者由于計劃有變而采取撤銷預(yù)約,釋放預(yù)約的座位提供給其他讀者使用。
(6)簽到
系統(tǒng)調(diào)用手機的攝像頭,掃描該閱覽室的簽到二維碼,系統(tǒng)自動識別二維碼并為該讀者處理簽到。
圖1 用戶登錄
圖2 預(yù)約系統(tǒng)主界面
圖3 預(yù)約座位
圖4 自選座位
2.1.2 違規(guī)檢查
系統(tǒng)預(yù)約規(guī)則為:超出預(yù)約時間15分鐘還未簽到即為“違約”,違約次數(shù)超過3次,系統(tǒng)自動凍結(jié)該用戶7天,期間不能使用座位預(yù)約功能。
2.1.3 后臺管理
后臺管理功能模塊主要實現(xiàn)用戶管理、閱覽室管理、閱覽室預(yù)約記錄和預(yù)約統(tǒng)計報表等功能。其中用戶管理中可以對某個用戶禁止預(yù)約、解除禁止預(yù)約、取消懲罰等操作。
3.1.1 .NET框架(.NET Framework)
.NET框架(.NET Framework)是由微軟開發(fā),致力于敏捷軟件開發(fā)(Agile software development)、快速應(yīng)用開發(fā)(Rapid application development)、平臺無關(guān)性和網(wǎng)絡(luò)透明化的軟件開發(fā)平臺。.NET是微軟為2000年代對服務(wù)器和桌面型軟件工程邁出的第一步。.NET包含許多有助于互聯(lián)網(wǎng)和內(nèi)部網(wǎng)應(yīng)用迅捷開發(fā)的技術(shù)。
3.1.2 SQL Server 2008
SQL Server系列軟件是Microsoft 公司推出的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。SQL Server 2008 版本可以將結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化文檔的數(shù)據(jù)直接存儲到數(shù)據(jù)庫中,可以對數(shù)據(jù)進(jìn)行查詢、搜索、同步、報告和分析等操作。數(shù)據(jù)可以存儲在各種設(shè)備上,從數(shù)據(jù)中心最大的服務(wù)器一直到桌面計算機和移動設(shè)備,它都可以控制數(shù)據(jù)而不用管數(shù)據(jù)存儲在哪里。此外,SQL Server 2008 允許使用 Microsoft .NET 和Visual Studio開發(fā)的自定義應(yīng)用程序中使用數(shù)據(jù),在面向服務(wù)的架構(gòu)(SOA)和通過 Microsoft BizTalk Server 進(jìn)行的業(yè)務(wù)流程中使用數(shù)據(jù)。信息工作人員可以通過日常使用的工具直接訪問數(shù)據(jù)。
3.1.3 IIS
Internet Information Services 7.0 (IIS7) 不僅是一個 Web 服務(wù)器,更是一個安全性增強、易于管理的平臺,適用于開發(fā)和可靠地寄存Web 應(yīng)用程序和服務(wù)。此外,IIS7 是 Windows Web 平臺的主要增強,在統(tǒng)一的 Microsoft Web 平臺技術(shù)和ASP.NET、Windows Communication Foundation Web 服務(wù)以及Windows SharePoint Services 中扮演著中心角色。IIS7 是 Microsoft 發(fā)布的迄今為止為止最強大的 Web 服務(wù)器。它提供了一組新功能,極大地改進(jìn)了開發(fā)、部署和管理 Web 解決方案的方式。IIS7 的模塊化設(shè)計使管理員擁有了前所未有的控制Web 服務(wù)器的能力。
3.2.1 用戶認(rèn)證模塊
系統(tǒng)根據(jù)用戶輸入的信息,自動匹配用戶姓名和學(xué)號(工號),匹配成功即更新用戶手機號碼,允許進(jìn)入預(yù)約系統(tǒng)。主要實現(xiàn)代碼如下:
requestLoginLocalServer() {
var that = this;
//發(fā)起網(wǎng)絡(luò)請求
wx.request({
url: app.globalData.baseUrl + "wx_minilogin",
data: {
openid: app.globalData.OPEN_ID,
data: that.data.ENCRYPTED_DATA,
iv: that.data.IV,
skey: app.globalData.SESSION_KEY,
studentno: that.data.studentid,
mobile: that.data.mobile,
uname: that.data.name,
},
method: "POST",
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success: function (res) {
if (res.data.res == 1) {
app.globalData.IS_REGISTER = true;
vardataInfo = res.data.ext;
varidx;
for (idxindataInfo) {
app.globalData.UID = dataInfo[idx].uid;
app.globalData.userPic = app.globalData.avatardUrl + dataInfo[idx].userpic;
app.globalData.siteUserInfo = dataInfo[idx];
try {
wx.setStorageSync("siteUserinfo", app.globalData.siteUserInfo);
} catch (e) {
}
}
wx.redirectTo({
url: '../index',
})
}
else {
wx.showModal({
title: '提示',
content: res.data.msg,
showCancel:false
})
}
},
fail: function (res) {
wx.showToast({
title: res.data.msg,
})
}
})
}
3.2.2 隨機選座模塊
系統(tǒng)自動在可用座位中選取一個座位,主要實現(xiàn)代碼如下:
getRandPos: function (currentStatu) {
varcurrentStatu = currentStatu;
varroomId = this.data.roomArray[this.data.roomIdx].id;
var date = this.data.selectDate;
varstarttime = this.data.selectDate + ' ' + this.data.startTimeArray[this.data.startIdx] + ":00";
var duration = this.data.durationSendArray[this.data.durationIdx];
var that = this;
wx.request({
url: that.data.baseUrl + "get_random_desk",
data: {
uid: app.globalData.UID,
rid: roomId,
ctime: date,
stime: date + ' ' + that.data.allowSelectArray[that.data.startIdx] + ":00",
dur: duration
},
method: "POST",
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success: function (res) {
console.log(res)
if (res.data.res == 1) {
varvData = res.data.ext[0];
console.log(vData);
selectPosId = vData.pid;
that.showRndWin(vData.pid, vData.r + "排" + vData.c + "桌" + vData.name, vData.rname, date, that.data.allowSelectArray[that.data.startIdx] + ":00", vData.etime, currentStatu);
}
else {
console.log("orderPos res not 1")
wx.showModal({
content: res.data.msg,
showCancel: false
});
}
},
fail: function (res) {
console.log(res.msg)
wx.showToast({
title: res.msg,
})
}
})
}
3.2.3 違規(guī)檢查模塊
系統(tǒng)規(guī)定超出預(yù)約時間15分鐘還未簽到即為“違約”,違約次數(shù)超過3次,系統(tǒng)自動凍結(jié)該用戶7天,主要實現(xiàn)代碼如下:
主要實現(xiàn)代碼如下:
if@m_state=0 and@m_sm>15 begin--超出分鐘,標(biāo)為過期未簽到
updateS_LabOrdersetstate=2 whereID=@m_idandRoomID=@m_roomandUserID=@m_userid
if (selectbcfromS_UserwhereID=@m_userid)>=2 begin
--違約次數(shù)超過2次,則凍結(jié)使用7天
updateS_Usersetbc=0,bctime=DATEADD(d,7,@m_stime)whereID=@m_userid
endelsebegin
--違約次數(shù)+1
updateS_Usersetbc=bc+1,bctime=nullwhereID=@m_userid
end
insertintoS_LabOrderLog(OrderID,UserID,AddTime,Memo)values(@m_id,@m_userid,GETDATE(),'過期未簽到(自動)')
end
微信小程序通過微信龐大的用戶群及微信小程序本身的優(yōu)勢,一問世就受到強烈關(guān)注。小程序的特點,可以很好地應(yīng)用于圖書館選座、入館教育、培訓(xùn)等方面。圖書館在數(shù)字化、移動化、泛在化等多種社會發(fā)展趨勢中也需有所作為,應(yīng)與第三方合作,挖掘內(nèi)部資源,完善和優(yōu)化圖書館的移動服務(wù)生態(tài),提升圖書館行業(yè)在“互聯(lián)網(wǎng)的下半場”中的價值。
[1]朱玉強.微信小程序在圖書館移動服務(wù)中的應(yīng)用實踐——以排架游戲為例[J].圖書館論壇,2017,37(7):132-138.
[2]王天泥.當(dāng)圖書館遇上微信小程序[J].圖書與情報,2016(6):83-86.
[3]華澤,韓東旭,陸悠,張妮.學(xué)校圖書館自習(xí)室自動選座系統(tǒng)的設(shè)計與實現(xiàn)[J].現(xiàn)代計算機(專業(yè)版),2017(30):56-60.
Design of Library Seat Reservation and Selection System Based on WeChat Small Program
Wu Guohua
School of Software Engineering Tongji University, Shanghai 200000
Once the WeChat small program comes out, it has aroused the strong concern of all walks of life, and represents the trend of the future development of mobile terminal application. The problems existing in the mobile application of the library can be solved through the WeChat small program. The research and design of Library seat reservation system is carried out through WeChat small program. The design goal is initially achieved, showing the convenience of WeChat small program in development and application.
WeChat small program; seat reservation system; library
G250.7;G252
A
1009-6434(2017)9-0044-05
吳國華(1983—),男,在福建省龍巖學(xué)院圖書館工作,同濟大學(xué)軟件學(xué)院軟件工程碩士研究生在讀。