基于O2O模式的高校图书馆微信小程序设计与实现

来源:优秀文章 发布时间:2023-04-15 点击:

王振辉, 王振铎

(1.西安翻译学院, 工程技术学院, 陕西, 西安 710105;2.西安思源学院, 电子信息工程学院, 陕西, 西安 710038)

高校图书馆是大学生课外获取知识的一个重要场所,是素质教育重要文化阵地。在互联网+国家战略引领下,加快图书馆信息化建设,特别是创新服务模式,将网上网下商务模式O2O的优势完美结合应用于传统图书馆行业,提高图书馆工作效率和管理水平,是高校图书馆急需解决的问题。特别是在后疫情时代,线下现场业务和线上电子业务组合的O2O模式的创新发展,也是亟待完善的课题。

作为轻量级应用的微信小程序,它具有开发快,成本低,免安装等优点,其“用完即走”理念,可以升级传统图书馆信息服务水平,为用户提供了无处不在的软件服务。小程序能聚焦读者,细分服务,更好挖掘用户功能需求,用符合用户喜好的形式开展信息服务。小程序和O2O模式结合可以更方便地提供线上体验和筛选服务,并通过位置服务等使图书馆线下资源得到推广和高效利用。

近年来,在图书馆界对微信服务在图书馆的应用进行了理论和实践研究。芦晓红分析了图书馆微信小程序应用场景并指出小程序服务内容主要集中在图书馆宣传、馆藏查询、图书借阅、资讯活动、图书推荐、图书馆占座/房间预订、读者个人中心等[1]。程柳音分析了图书馆微信公众平台服务现状和优势,指出公众平台存在注册管理不规范、推广不专业、服务类型不够多样化等问题并提出解决对策[2]。张楠对42所“双一流”高校图书馆微信公众平台作为研究对象提出新冠肺炎疫情期间高校图书馆微信服务提升策略[3]。综上所述,图书馆对小程序研究还处于边应用边改进阶段,相关理论研究和实践经验还不够成熟,并且高校图书馆小程序提供的服务与城市公共图书馆微信小程序提供服务由于应用场合和场景不同有较大差距。高校图书馆在借鉴公共图书馆的建设思路,将微信小程序结合O2O模式,应对公共安全事件的综合研究和服务实践性文章几乎没有。

为此,文章提出了基于微信小程序和O2O模式的高校图书馆管理系统框架,通过线上预约、线下配送,入馆人员统计、座位预订与间隔选座等功能为应对公共卫生安全事件提供技术保障。系统以 MySQL作为数据库,采用JSON作为小程序前端和图书馆Web应用数据的交互标准,使用微服务框架,提升了小程应用的通用性、可扩展性和可靠性。

研究以西安翻译学院图书馆为实践对象,利用其现有的图书信息管理系统,充分考虑读者对图书馆线上线下业务的需求,设计基于微信的图书馆小程序。

1.1 图书馆小程序设计思想

(1) 小程序+二维码实现O2O模式

小程序服务为读者提供无处不在的服务,通过研究用户场景不断构建新的服务生态,来使图书馆的服务深入读者。小程序服务具有二维码信息量大、容错性强、技术可靠、使用方便、成本低等优点,在众多领域得到广泛应用。利用小程序+二维码可以优化图书馆线下服务。

(2) 微服务理念

设计时使用Spring Cloud微服务,将小程序后台系统的各模块独立为组件,降低系统复杂性。各组件服务通过接口进行相互通信,从而快速构建高内聚、低耦合的复用系统,也可灵活应对系统业务变化。小程序可以通过请求restful API访问后台的微服务组件。

(3) Ajax+JSON实现异步数据通信

JSON文件是小程序的配置文件,也是小程序与后台Web服务进行数据交互的标准,直接决定小程序响应时间。使用AJax通过在后台与服务器进行少量数据交换,Ajax 可以使小程序视图实现异步数据更新,从而使用户拥有良好使用体验。

1.2 图书馆小程序体系结构

图书馆小程序的体系结构(图1)分为3层。第一层是系统前端,即微信小程序,负责人机交互,是读者线上办理业务的窗口;
第二层是系统后台,即图书馆Web应用,为小程序数据提供Web服务接口,同时也是图书馆业务员和管理人员业务处理平台;
第三层是系统数据,即图书馆数据库,存储读者、图书馆业务人员、管理员、图书等业务数据。

图1 图书馆小程序系统架构

1.3 系统功能模块

与公共图书馆小程序提供咨询、活动直播和资讯类功能相比,高校图书馆小程序更多提供的是基础性服务。当然各高校读者和图书馆业务又存在差异,所以功能也不尽相同。本文图书馆微信小程序设计了五大功能模块,分别是读者中心、图书业务、座位预订、咨询活动和图书推荐。这五大功能模块完成了图书馆信息发布,日常业务办理及自习室座位管理工作。图2是小程序功能结构图。

图2 图书馆小程序功能结构图

在图2中,核心功能是读者认证与身份识别、读书借阅和座位预订和使用。下面概要介绍一下这些功能的实现逻辑。

1.3.1 读者认证与识别

由于系统用户群体定位的是教师和学生,所以该款小程序使用前先要进行注册。学生填写学号等学生信息,教师填写教师编号等教师信息。读者登录时使用学号或教师编号结合密码进行,密码忘记可以使用注册的手机号找回。由于涉及线下无接触取书等实名操作,系统专门设计了人脸数据采集模块和验证模块,以保证系统操作的可追溯性。

1.3.2 座位预订和使用

图书馆座位使用总体分为小程序预约—扫描确认—离场确认3个业务流程。

(1) 预约座位

读者首先选择自习室,再选择时间段,系统显示自习室中未使用的座位号。用户确认选座即可。若选座后临时有事情,无法使用座位,可以使用“取消预约”功能,方便他人使用。

(2) 使用座位

读者进入自习室,扫描座位上的二维码进行“签到”,中间有事扫描使用“临时离开”功能,座位自动保留30分钟。超过时间回来使用要重新使用“签到功能”。座位使用完毕后扫描办理“签离”功能,释放座位。

(3) 管理员管理座位

自习室管理员端可以查看座位状态,对座位进行实时干预。当一个座位超过30分钟后没人使用,将自动反馈给管理员端,管理员可以每隔一段时间对这些座位进行清理,释放座位占用状态为可用状态。

1.3.3 线上图书预约借阅线下取书

图书馆小程序致力智慧图书馆运营场景,搭建了“在线图书预约→图书配送到柜→取书柜自提”的整体解决方案。具体来说,学生通过微信小程序线上预约后,图书馆配送团队(学校勤工俭学学生完成)完成扫码投送,学生以扫码形式自助取书,从而实现无人交付、避免人群聚集、实现无接触取书服务。

1.4 数据库设计

图书馆微信小程序的数据保存在阿里云后台MySQL数据库中。在设计时兼顾三范式和性能要求(适当冗余)。小程序存储的数据主要是图书、座位、读者、管理员、预借图书预订座位和活动通知。现以座位预订表创建为例,介绍其结构描述信息(表1)。

表1 座位预订表结构

2.1 系统实现

系统实现使用MINA框架及微服务设计思想,开发具有原生App体验的服务,使用户有更好的使用体验。小程序自身主要由两个独立运行的模块组成:View模块(视图层)和Service(业务逻辑层)模块。View模块负责交互界面的显示,通过WeixinJSBridge来与后台通信,由WXML和WXSS结合编写,通过组件进行展示。Service模块负责后台的逻辑操作,同样通过WeixinJSBridge与后台通信,使用JavaScript引擎提供运行环境和小程序特有的功能。因此,本项目业务逻辑是通过编写各个页面绑定的.js脚本文件来完成的。业务逻辑层处理完数据后,会将其发送往数据层,并在视图层接收事件反馈。系统主界面提供了位置定位、图书查询、座位预订等主要功能导航,方便读者办理业务。主界面如图3所示。

图3 图书馆微信小程序主界面

2.2 关键技术

2.2.1 二维码生成与识别技术

二维码QRCode使用方便,在图书借阅、座位签到等场景中会应用到。其中二维码生成功能如果是后台Web系统,可使用Google Zxing组件[4]。小程序中生成二维码API微信没有公开。所以可以采用第三方的插件实现,GitHub中的weapp-qrcode可以实现,但相比之下base64-weapp-qrcode.js插件兼容性更好,且基于base64编码输出二维码时,不依赖canvas。

生成二维码的核心代码如下:

ready: function() {

var imgData = QR.drawImg(this.data.value, {

typeNumber: 4, //码点大小 1-40,数字越大,码点越小,二维码会显得越密集

errorCorrectLevel: "H", //纠错等级 H等级最高

size: parseInt(rpx2px * this.data.width)

})

this.setData({

qrcodeURL: imgData

})

二维码保存读者业务数据,如果只是一项数据,如读者编号,直接以字符串方式提供保存即可,如果包含多项数据,比如读者编号,图书编号,那么可以先把这几项数据以JSON串格式保存,解析更为方便。

二维码生成后的识别可以使用微信扫一扫接口,也可以用第三方插件jsQR或qrcodejs实现,但后者的缺点是识别精度较低,不稳定。因此,扫描识别二维码时直接用小程序开发的API即可。

扫码识别的核心代码如下:

wx.scanCode({

scanType: "qrCode",

success: (res) => {

//根据扫码的结果跳转至目标页面进行展示...

}

}) const QR = require("../../utils/qrcode.js");

QR.api.draw(str, canvasId, cavW, cavH);

2.1.1 ig药液的制备 取金芪降糖片去包衣,粉碎,过40目筛,混合均匀,精密称取该粉末适量,生理盐水配制为0.7 g/mL的混悬液,超声30 min,静置24 h,于4℃保存。

2.2.2 人脸采集与识别技术

小程序上传人脸照片功能涉及采集、存储用户生物特征(人脸照片或人脸视频),微信平台暂不支持此功能。但图书馆系统中如有强追溯用户操作行为时,如支持人脸识别认证登录、图书转借认证、电子借书证办理等功能就会涉及人脸数据采集或照片上传。低成本解决方案时用小程序后台Web应用采集人像照片文件,前台小程序负责人脸识别认证即可。也可以在小程序中调用摄像功能。具体处理流程是前端通过小程序调用摄像头进行人脸定位成功后把抓拍的图片传到后台,后台通过腾讯云(也可以是百度AI或阿里云的实人认证接口)做人脸检测对比即可[5]。

2.2.3 位置服务功能

小程序可以解决图书馆内方向辨识度低和结构相似的缺点,为用户提供方便快捷的图书馆导引服务,同时可以根据读者位置,进行最近路线图书配送服务[6]。

在小程序中位置服务功能可以使用腾讯位置服务,也可以使用第三方公司如百度或高德地图API接口。但是第三方地图API只能通过接口获取数据,地图不能直接引入小程序,所以使用腾讯位置服务能开发出功能更为强大、兼容性更好。

小程序中使用腾讯位置服务进行定位服务的实现步骤如下:

(1) 注册一个腾讯位置服务的帐号;

(3) 下载微信小程序JavaScript SDK,放入到小程序项目中;

(4) 登录微信小程序后台,添加 request 合法域名 https://apis.map.qq.com;

(5) 在app.json中配置permission字段,以获取用户定位信息;

(6) 调用 wx.getLocation获取当前用户的地理位置(微信返回的是经纬度、速度等参数);

(7) 使用JavaScript SDK 的API函数逆地址解析(qqmapsdk.reverseGeocoder将经纬度信息转换为包括国家,省、市、区、街道等具体地理位置信息)即可。

为了测试该小程序的功能、性能及用户体验,笔者从软件工程专业学生中随机选择了30名学生进行软件的真机测试,真机Android版本均为8.0以上,机型为iphone,华为、小米、红米、vivo、OPPO。从参与测试的同学的使用反馈来看,该系统的主要图书预借、座位预订功能正确,系统能实时响应用户请求。系统的主要问题反映在位置服务精度问题,即系统精度在50米到100米之间,误差很大。经过分析,微信小程序有两种定位模式,一种是 wgs84(GPS) , 一种是 gcj02(火星坐标),默认wgs84,wgs84 返回的是 gps 坐标,gcj02 返回的是 wx.openLocation 的坐标。在计算距离的时候gcj02定位更为精确。具体代码在app.js的onload事件中将type值修改为gcj02,具体参考代码如下:

wx.getLocation({

type: "gcj02",

success (res) {

const latitude = res.latitude

const longitude = res.longitude

const speed = res.speed

const accuracy = res.accuracy

}

})

由于各公司地图标注的经纬度和实际有一定偏差,为了更好提高位置定位准确度,软件在测试过程中根据所使用的地图,先计算偏移,然后对经纬度进行修正来查出准确的地图位置。经过以上修改,重新测试后,系统精度在0.5 m以内。当然,位置定位精度和手机设备也有关。在测试过程中,发现高端手机iPhone,华为Mate40位置偏差最小,而测试使用的低端手机红米位置偏差最大,有时红米还会提示无法定位位置,经开启红米手机的GPS定位,才能正确提供位置服务,当然这只是小概率事件,但也从一个侧面说明,手机定位的准确度对小程序定位准确度是有影响的。

随着移动互联网技术和通讯技术的迅速普及和发展,高校传统图书馆移动服务逐渐发力。本文依托微信小程序服务优势,设计了一个图书馆移动端服务小程序,为读者提供了便捷、可靠的新服务模式。随着用户电子业务操作习惯的养成,小程序在图书馆管理中的作用也将不断扩大。本文为图书馆等文化部门开展O2O服务和自主个性化需求的移动应用服务提供了参考。

猜你喜欢座位二维码程序换座位哈哈画报(2022年5期)2022-07-11二维码童话世界(2020年32期)2020-12-18小康二维码心声歌刊(2020年5期)2020-11-27试论我国未决羁押程序的立法完善人大建设(2019年12期)2019-05-21巴士上的座位小天使·一年级语数英综合(2019年2期)2019-01-10“程序猿”的生活什么样瞭望东方周刊(2017年42期)2017-12-05让严肃的二维码呆萌起来学生天地(2017年10期)2017-05-17英国与欧盟正式启动“离婚”程序程序环球时报(2017-03-30)2017-03-30换座位作文通讯·初中版(2016年10期)2016-11-12二维码,别想一扫了之儿童故事画报·发现号趣味百科(2015年10期)2016-01-20推荐访问:程序设计 图书馆 模式
上一篇:东平台分量应变与体应变可靠性分析及特殊事件影响对比*
下一篇:以公共交通为导向的城市发展模式研究

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有