国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于微信的圖書轉(zhuǎn)借系統(tǒng)的設(shè)計與實現(xiàn)
——以浙江工業(yè)大學(xué)圖書館為例

2019-04-25 06:22:48佘靜濤浙江工業(yè)大學(xué)圖書館
圖書館理論與實踐 2019年3期
關(guān)鍵詞:瀏覽器二維碼公眾

佘靜濤(浙江工業(yè)大學(xué)圖書館)

1 引言

基于微信的圖書轉(zhuǎn)借服務(wù)就是:當(dāng)一個讀者不想去圖書館還書且另一個讀者剛好想看這本書時,借出方利用轉(zhuǎn)借功能將圖書信息生成二維碼, 借入方打開微信端掃一掃即可借走此書。[1]通過這種借閱方式,不僅使得讀者大為方便,同時也減輕了圖書館館員的工作壓力,極大地提高了圖書的利用率。

目前,基于微信的圖書轉(zhuǎn)借系統(tǒng)已經(jīng)進(jìn)入實踐領(lǐng)域。2015年,圖創(chuàng)軟件自主研發(fā)了國內(nèi)第一套圖書轉(zhuǎn)借系統(tǒng),該系統(tǒng)整合圖書館的業(yè)務(wù)系統(tǒng),內(nèi)嵌圖書館微信公眾號、門戶和App,海南大學(xué)、云南大學(xué)都是該系統(tǒng)的用戶;[2]2016年5月,“浙江圖書館圖書轉(zhuǎn)借服務(wù)——隨時隨地借書體驗”推出。[3]從圖書轉(zhuǎn)借系統(tǒng)的研究成果來看,陳靖認(rèn)為圖書轉(zhuǎn)借服務(wù)這種新型圖書借閱制度的優(yōu)勢在于:節(jié)約讀者的時間、解決讀者的不便、促進(jìn)讀者之間知識共享、促進(jìn)傳統(tǒng)圖書館業(yè)務(wù)優(yōu)化升級;[4]李保紅對圖書館轉(zhuǎn)借系統(tǒng)產(chǎn)生的背景、如何應(yīng)用以及所產(chǎn)生的功能效益進(jìn)行了描述;[1]豆洪青等認(rèn)為轉(zhuǎn)借服務(wù)是傳統(tǒng)圖書館借閱服務(wù)線上線下融合的體現(xiàn)。[5]但是針對微信公眾平臺的圖書轉(zhuǎn)借系統(tǒng)設(shè)計與實現(xiàn)的相關(guān)研究幾乎沒有。

2 基于微信的圖書轉(zhuǎn)借系統(tǒng)的設(shè)計

本研究以浙江工業(yè)大學(xué)圖書館為實踐對象,利用其現(xiàn)有的圖書信息管理系統(tǒng),充分考慮讀者對圖書轉(zhuǎn)借服務(wù)的需求,設(shè)計基于微信的圖書轉(zhuǎn)借系統(tǒng)。

2.1 系統(tǒng)功能模塊

浙江工業(yè)大學(xué)圖書館基于微信的圖書轉(zhuǎn)借系統(tǒng)經(jīng)過前期大量的調(diào)研與準(zhǔn)備工作,實現(xiàn)的主要功能模塊如下。① 系統(tǒng)登錄及驗證模塊。驗證讀者身份,該模塊用以確保讀者賬號的合法性。② 讀者借閱信息模塊。讀者可以在微信客戶端上通過點擊菜單或者輸入關(guān)鍵字,獲取自己的圖書借閱信息,并通過鏈接直接跳轉(zhuǎn)到圖書的發(fā)布轉(zhuǎn)借和轉(zhuǎn)借他人的頁面,也可以使用瀏覽器登錄圖書轉(zhuǎn)借系統(tǒng)進(jìn)行相關(guān)操作。③ 已發(fā)布的圖書轉(zhuǎn)借信息查看模塊。讀者可以查看其他讀者已發(fā)布的圖書轉(zhuǎn)借信息,可以使用題名和責(zé)任者作為檢索詞對已發(fā)布的圖書進(jìn)行檢索,同時支持語音錄入檢索詞。④ 圖書轉(zhuǎn)借信息發(fā)布模塊。讀者可以將自己借閱的圖書信息進(jìn)行發(fā)布,發(fā)布時需要提供電話、QQ號或者微信號以便其他讀者聯(lián)系。⑤ 圖書轉(zhuǎn)借二維碼生成模塊。圖書借出人在面對面轉(zhuǎn)借時,將自己的賬號、圖書的館藏號等信息生成二維碼供借入人掃碼。⑥ 微信掃二維碼借書模塊。圖書借入人在當(dāng)面轉(zhuǎn)借時,使用微信掃碼功能識別二維碼并借入圖書,轉(zhuǎn)借結(jié)果語音提示。⑦ 圖書借閱規(guī)則模塊。保證圖書轉(zhuǎn)借系統(tǒng)的借閱規(guī)則與圖書館借閱規(guī)章制度一致,保障圖書使用的公平性。

2.2 系統(tǒng)設(shè)計思路

微信公眾平臺提供了強(qiáng)大的消息API接口和微信JS-SDK網(wǎng)頁開發(fā)工具包。使用消息API接口,開發(fā)者可以通過微信公眾平臺獲取微信客戶端發(fā)送的文字、圖片、音頻和視頻消息,根據(jù)不同消息的響應(yīng)函數(shù)將處理過的數(shù)據(jù)反饋給微信客戶端。使用 JS-SDK網(wǎng)頁開發(fā)工具包,開發(fā)者可借助微信高效地使用拍照、選圖、語音、位置等手機(jī)系統(tǒng)的能力,同時可以直接使用微信分享、掃一掃、卡券、支付等功能為用戶提供更優(yōu)質(zhì)的網(wǎng)頁體驗。[6]浙江工業(yè)大學(xué)圖書館基于微信的圖書轉(zhuǎn)借系統(tǒng)不僅需要使用微信客戶端發(fā)送、接收消息,而且需要使用微信的錄音、語音識別、掃一掃等諸多功能。因此,本研究確立了利用微信公眾平臺的消息API和JS-SDK網(wǎng)頁開發(fā)工具包實現(xiàn)圖書轉(zhuǎn)借系統(tǒng)的技術(shù)路線。

經(jīng)過分析圖書轉(zhuǎn)借系統(tǒng)的功能需求以及確定了系統(tǒng)的技術(shù)路線后,本文制定了系統(tǒng)的架構(gòu)(見圖1),明確了系統(tǒng)的設(shè)計思路。

圖1 圖書轉(zhuǎn)借系統(tǒng)架構(gòu)

圖書轉(zhuǎn)借系統(tǒng)部署在微信服務(wù)平臺服務(wù)器上,通過微信服務(wù)器和圖書館信息管理系統(tǒng)進(jìn)行通信,系統(tǒng)不僅能實現(xiàn)對微信公眾平臺消息API接口和JS-SDK網(wǎng)頁開發(fā)工具包的調(diào)用,同時也可實現(xiàn)對圖書館信息管理系統(tǒng)接口的調(diào)用。

系統(tǒng)采用MVC三層架構(gòu),即模型(Model)、視圖(View)、控制器(Controller)。核心部分的設(shè)計思路如下。

(1)系統(tǒng)調(diào)用微信公眾平臺的JS-SDK網(wǎng)頁開發(fā)工具包和百度的智能語音合成、人臉識別接口,實現(xiàn)系統(tǒng)的圖書轉(zhuǎn)借掃碼、語音檢索、語音提示和用戶綁定等功能。調(diào)用Google Zxing 2.0開源類庫,[7]實現(xiàn)圖書轉(zhuǎn)借二維碼的生成功能。

(2)系統(tǒng)需要調(diào)用的圖書館信息管理系統(tǒng)相關(guān)接口主要有三個。① 讀者借閱信息接口。通過該接口,開發(fā)者可以獲取讀者借閱圖書的信息,包括書的題名、ISBN號、出版社、館藏號、借閱時間、應(yīng)歸還時間等。② 讀者信息接口。通過該接口,開發(fā)者可以獲取讀者信息,包括讀者的學(xué)工號、聯(lián)系方式、姓名、照片等。③ 圖書轉(zhuǎn)借服務(wù)接口。通過該接口,開發(fā)者提供對應(yīng)參數(shù)實現(xiàn)圖書的轉(zhuǎn)借服務(wù)。接口需要判斷圖書能否被轉(zhuǎn)借,保證圖書轉(zhuǎn)借系統(tǒng)的借閱規(guī)則與圖書館借閱規(guī)則一致,并返回出錯信息。

(3)圖書轉(zhuǎn)借系統(tǒng)需要與圖書館信息管理系統(tǒng)數(shù)據(jù)保持同步,同步的數(shù)據(jù)包括讀者信息和圖書的借閱信息。其中,讀者信息用以保證圖書借出人和借入人的賬號合法權(quán)限,借閱信息用以保證已發(fā)布的圖書轉(zhuǎn)借信息的時效性。

(4)圖書轉(zhuǎn)借系統(tǒng)需要將圖書館賬號與微信公眾號的OpenID(每個用戶對每個公眾號有一個唯一的OpenID)關(guān)聯(lián)起來,并將關(guān)聯(lián)信息存入數(shù)據(jù)庫,以避免在使用圖書轉(zhuǎn)借系統(tǒng)時反復(fù)輸入圖書館賬號。

(5)讀者使用微信客戶端與系統(tǒng)交互,系統(tǒng)首先調(diào)用微信公眾平臺的接收消息接口接收讀者消息,消息中包含了讀者的OpenID和關(guān)鍵詞等信息,然后系統(tǒng)根據(jù)關(guān)鍵詞調(diào)用響應(yīng)函數(shù),由響應(yīng)函數(shù)處理讀者的請求,最后系統(tǒng)調(diào)用微信公眾平臺的發(fā)送消息接口,將處理好的數(shù)據(jù)返回給讀者。

(6)讀者可以使用微信瀏覽器或者普通瀏覽器登陸圖書轉(zhuǎn)借系統(tǒng),系統(tǒng)根據(jù)瀏覽器自帶的User Agent字符串,判斷讀者使用的瀏覽器類型。如果是微信瀏覽器,系統(tǒng)會自動使用微信網(wǎng)頁授權(quán)[8]的方式判斷用戶身份后登錄系統(tǒng);如果是普通瀏覽器,則需要讀者輸入賬號和密碼登錄系統(tǒng)。與微信瀏覽器相比,普通瀏覽器無法調(diào)用手機(jī)系統(tǒng)的大部分能力。

(7)系統(tǒng)將圖書的信息、當(dāng)前借閱人的信息以及提供轉(zhuǎn)借服務(wù)的程序地址等信息置于二維碼中,借入人可以通過使用微信掃一掃功能實現(xiàn)轉(zhuǎn)借。

(8)為保障圖書使用的公平性,系統(tǒng)數(shù)據(jù)庫保存讀者的轉(zhuǎn)借(借出)記錄,保證一年之內(nèi)同一讀者對同一圖書的轉(zhuǎn)借(借出)次數(shù)不超過2次。

3 基于微信的圖書轉(zhuǎn)借系統(tǒng)的實現(xiàn)

浙江工業(yè)大學(xué)圖書館圖書轉(zhuǎn)借系統(tǒng)在充分考慮了服務(wù)器操作系統(tǒng)兼容性問題的基礎(chǔ)上,利用微信公眾平臺的消息API接口、JS-SDK網(wǎng)頁開發(fā)工具包和Google Zxing 2.0開源類庫,調(diào)用百度的智能語音合成、人臉識別等接口,使用Java編程語言和Hibernate數(shù)據(jù)庫框架開發(fā)圖書轉(zhuǎn)借系統(tǒng),系統(tǒng)的數(shù)據(jù)庫采用MySQL關(guān)系型數(shù)據(jù)庫,Web頁面使用HTML5和AJAX技術(shù)。

3.1 系統(tǒng)實現(xiàn)

根據(jù)系統(tǒng)功能需求和系統(tǒng)設(shè)計思路,系統(tǒng)的數(shù)據(jù)模型由JSP文件實現(xiàn),主要負(fù)責(zé)讀寫數(shù)據(jù)庫,為系統(tǒng)提供數(shù)據(jù)源。系統(tǒng)的視圖使用HTML5及jQuery技術(shù)實現(xiàn),主要負(fù)責(zé)數(shù)據(jù)的呈現(xiàn)以及與用戶的交互??刂破饔梢粋€采用AJAX技術(shù)的JS文件實現(xiàn),主要負(fù)責(zé)系統(tǒng)的邏輯處理。系統(tǒng)的工作流程如圖2所示。

圖2 圖書轉(zhuǎn)借系統(tǒng)工作流程圖

用戶將圖書館賬號與微信公眾號的OpenID綁定后,可以使用微信瀏覽器或者普通瀏覽器登錄圖書轉(zhuǎn)借系統(tǒng)。系統(tǒng)支持用戶綁定、發(fā)布圖書轉(zhuǎn)借信息、查看讀者借閱信息、查找已發(fā)布的圖書、將圖書轉(zhuǎn)借他人以及使用微信掃碼借書等。其中,用戶綁定、生成圖書轉(zhuǎn)借二維碼和微信掃碼借書功能是系統(tǒng)實現(xiàn)的重點和難點。

(1)用戶綁定功能。為了確保轉(zhuǎn)借圖書由本人操作,用戶綁定的時候不僅需要驗證用戶圖書館賬戶的合法性,同時需要對用戶進(jìn)行人臉識別,因此在綁定的過程中引入了百度的人臉識別技術(shù),具體的實現(xiàn)過程如下。① 系統(tǒng)的數(shù)據(jù)庫中建立一個圖書館賬號與微信公眾號OpenID的映射表“binduser”以保存微信公眾號綁定用戶的信息(見表1)。② 編寫實現(xiàn)用戶綁定的數(shù)據(jù)模型userBind.jsp,程序的流程見圖3。③編寫用戶綁定信息的同步程序,同步程序是一個在系統(tǒng)啟動時就執(zhí)行的多線程程序,每隔2小時執(zhí)行一次,負(fù)責(zé)將用戶綁定映射表信息與圖書館信息管理系統(tǒng)中的用戶信息進(jìn)行同步。

表1 用戶綁定映射表“binduser”

圖3 綁定程序流程圖

(2)生成圖書轉(zhuǎn)借二維碼。系統(tǒng)調(diào)用Google Zxing 2.0開源類庫實現(xiàn)生成圖書轉(zhuǎn)借二維碼的功能,實現(xiàn)的核心代碼如下。

/*“encode”函數(shù)生成帶Logo和書名的圖書轉(zhuǎn)借二維碼,參數(shù)“text”包括轉(zhuǎn)借服務(wù)程序地址、借出人的信息和圖書的信息,“l(fā)ogopath”是Logo圖片的地址,“title”是圖書的題名,“width”和“height”是生成二維碼圖片的寬和高,“response”是個數(shù)據(jù)流對象,負(fù)責(zé)在瀏覽器上顯示二維碼*/

public static boolean encode (String text,String logopath,String title,int width,int height,HttpServletResponse response) {

try{…

BufferedImage image=new BufferedImage (width, height,BufferedImage.TYPE_INT_RGB);

Hashtable hints=new Hashtable();//用于配置矩陣參數(shù)

hints.put(EncodeHintType.CHARACTER_SET,"utf-8");//設(shè)置二維碼內(nèi)容所使用編碼

hints.put(EncodeHintType.ERROR_CORRECTION,ErrorCorrectionLevel.M);//設(shè)置二維碼容錯級別

BitMatrix bitMatrix=new MultiFormatWriter().encode (text,BarcodeFormat.QR_CODE,width,height,hints);//生成二維碼矩陣

image=toBufferedImage(bitMatrix); //?toBuffered-Image函數(shù)利用矩陣數(shù)據(jù)創(chuàng)建圖片Graphics2Dgs=image.createGraphics() ;

Imageimg=ImageIO.read(newFile(logpath)) ;

gs.drawImage(img,78,78,40,40,null);//將 logo 圖片繪制在二維碼圖片中

Colorco=newColor(195,195,195) ;

Fontfo=newFont("宋體 ",Font.PLAIN,12) ;

gs.setColor(co) ;

gs.setFont(fo) ;

if(getStringLenth (title) >=9) {

gs.drawString(title.substring(0,putStringLenth(8,title))+"...",38.0F,177.0F);}//將圖書題名繪制在二維碼中

else{gs.drawString(title,38+((12-getStringLenth(title)) /2*10) ,177.0F) ;}

gs.dispose() ;

img.flush() ;

ImageIO.write(image,"png",response.getOutputStream());returntrue;//將圖片數(shù)據(jù)寫入到數(shù)據(jù)輸出流對象}catch (Exceptione) {…}}

(3)微信掃碼借書。① 系統(tǒng)的數(shù)據(jù)庫中建立一個記錄讀者圖書轉(zhuǎn)借記錄的表“exchangebooklog”,通過該表實現(xiàn)一年之內(nèi)同一讀者對同一圖書的轉(zhuǎn)借(借出)次數(shù)不能超過2次的圖書轉(zhuǎn)借規(guī)則,避免圖書轉(zhuǎn)借過程中產(chǎn)生的糾紛,表結(jié)構(gòu)見表2。② 系統(tǒng)通過調(diào)用微信公眾平臺的JS-SDK網(wǎng)頁開發(fā)工具包使用微信掃一掃的功能,該功能使系統(tǒng)能夠獲取圖書轉(zhuǎn)借二維碼中包含的轉(zhuǎn)借服務(wù)程序地址、借出人的信息和圖書的信息并直接跳轉(zhuǎn)到該地址。③ 轉(zhuǎn)借服務(wù)程序利用微信網(wǎng)頁授權(quán)機(jī)制獲取掃碼人的OpenID,根據(jù)OpenID在用戶綁定映射表中得到掃碼人圖書館賬號信息。利用二維碼中包含的信息,調(diào)用圖書館信息管理系統(tǒng)的轉(zhuǎn)借服務(wù)接口,完成圖書轉(zhuǎn)借服務(wù)。完成圖書轉(zhuǎn)借服務(wù)后系統(tǒng)需要更新數(shù)據(jù)庫中已發(fā)布圖書的相關(guān)信息。④ 編寫已發(fā)布的圖書轉(zhuǎn)借信息的同步程序,同步程序是一個在系統(tǒng)啟動時就執(zhí)行的多線程程序,程序每隔2小時執(zhí)行一次,負(fù)責(zé)將已經(jīng)通過其他途徑歸還的圖書信息從圖書轉(zhuǎn)借系統(tǒng)數(shù)據(jù)庫中刪除,以保證發(fā)布的圖書轉(zhuǎn)借信息的時效性。

表2 讀者圖書轉(zhuǎn)借記錄表“exchangebooklog”

3.2 系統(tǒng)測試

經(jīng)過檢測,圖書轉(zhuǎn)借系統(tǒng)的運行結(jié)果符合浙江工業(yè)大學(xué)圖書館規(guī)章制度中有關(guān)圖書借閱的相關(guān)規(guī)定,具體的測試結(jié)果見表3。

表3 圖書轉(zhuǎn)借系統(tǒng)測試結(jié)果

本文介紹了浙江工業(yè)大學(xué)圖書館圖書轉(zhuǎn)借系統(tǒng),旨在利用移動通信的便利性為讀者提供一種新的借閱服務(wù)模式,同時也希望與其他高校圖書館分享圖書轉(zhuǎn)借系統(tǒng)的設(shè)計與實現(xiàn)方法,讓更多高校圖書館利用微信公眾平臺,搭建自己的圖書轉(zhuǎn)借系統(tǒng)。

猜你喜歡
瀏覽器二維碼公眾
可以吃的二維碼
公眾號3月熱榜
二維碼
童話世界(2020年32期)2020-12-18 18:15:41
公眾號9月熱榜
公眾號8月熱榜
公眾號5月熱榜
反瀏覽器指紋追蹤
電子制作(2019年10期)2019-06-17 11:45:14
讓嚴(yán)肅的二維碼呆萌起來
環(huán)球瀏覽器
再見,那些年我們嘲笑過的IE瀏覽器
宜宾县| 洪雅县| 井研县| 衡南县| 滦平县| 怀远县| 突泉县| 邵东县| 师宗县| 平安县| 平潭县| 抚州市| 灵川县| 永仁县| 康定县| 米脂县| 钦州市| 沾化县| 嵊泗县| 盱眙县| 苗栗县| 四会市| 屯留县| 金堂县| 嘉定区| 郁南县| 沈阳市| 夹江县| 宁晋县| 集贤县| 三台县| 油尖旺区| 济宁市| 土默特左旗| 周至县| 通辽市| 襄樊市| 南康市| 巴彦县| 比如县| 汨罗市|