杨众
摘要:提出基于微信云开发的校园新冠肺炎防疫登记小程序,系统使用简单、快捷,入校人员扫描二维码可登记个人信息,实现了校园往来人员登记、在校学生健康情况上报、防疫物资领用登记及公共设施消毒记录等功能。通过使用该系统,学校可以更有效、更精细地掌握每一名师生和来访人员的身体状况,更好地执行校园防疫管理。程序基于微信云端开发,无需本地化部署,快速响应,数据支持云端管理,无需下载多余APP,使用便捷,为各大中小院校防疫工作提供了技术保障。
关键词:微信小程序;云开发;新冠肺炎;JavaScript;CSS
中图分类号:TP393文献标志码:A文章编号:1008-1739(2020)12-68-4
0引言
2020年初,全国爆发新型冠状病毒肺炎,教育部发布的《高等学校新型冠状病毒肺炎防控指南》中要求,各高校在学生返校时应增设观察点,学生分批入校时需进行体温测量和健康状况登记排查。传统防疫登记的方法是学生在入校时逐一填写纸质的健康状况登记表,填写的内容是否标准和准确需要老师人工进行核对,当学生集中入校时会出现登记拥堵现象,登记效率缓慢,入校登记的大量纸质信息需要人工进行整理和归档,这些都为登记带来了困难。
采用微信小程序防疫系统登记的方法,数据可以与校园现有信息化平台相对接,入校人员只要扫一下二维码,系统自动校验人员类型、手机号、地理位置和数据标准性,降低了登记复杂度,提高了登记效率[1]。系统具有学生健康情况每日上报、防疫物资领用登记及公共设施消毒记录等功能,便于开展校园防疫管理工作。
1微信小程序云开发
微信小程序云开发是微信小程序团队与腾讯云推出的全新架构方案,采用Serverless开发模式,將小程序后台的开发、部署、上线和运维工作托管到腾讯云,大大节省了系统的运营和管理成本[2]。云开发提供云数据库、云存储和云函数三大技术能力。
云数据库采用基于JSON类型的NoSql非关系型数据库,类似于Mongdb,数据库接口支持小程序端调用和云函数调用,实现对数据库里增、删、改、查等操作。区别于关系型数据库,如果在程序中需要经常查询表之间复杂的关联关系时,关系型数据库比较适合,如果对数据进行大量读写,那么文档型数据库更加快捷。
云存储能够支持在小程序端直接对文件进行上传和云存储,同时也能够在云端对文件进行可视化的管理操作。
云函数为开发者提供了在云端运行后台代码的能力,支持微信接口调用,通过云函数,可以很快地获取小程序的Appid,Openid,调用腾讯云的SDK和数据库[3]。
2系统功能设计
2.1校园出入人员登记管理
校园出入人员登记分为校外人员来访登记、校内人员出入登记和学生返校登记三部分。
通行人员通过微信扫描出入口二维码,程序判断该微信手机号是否在校内登记,从而判断是否为校内人员。如果不是校内人员,则跳转到校外人员来访登记;如果是校内人员,则接下来判断人员类型,微信手机号为教职工类型,则跳转到校内人员出入登记,如果是学生,则进入下一判断。如果是首次登记的学生,则说明学生是刚结束寒假归来,需要填写学生返校登记表;如果学生非首次登记,则跳转到校内人员出入登记。完成登记后,小程序会提示人员登记成功,门卫人员放行,登记管理流程如图1所示。
其中,学生返校登记信息包括:学生姓名、学号、所在队伍、手机号、体温、居住地、假期疫情接触情况排查、身体健康情况和位置信息。
校外人员来访登记的信息包括:姓名、单位、当前位置、手机号、身体健康情况和来访事由。
校内人员出入登记的信息包括:姓名、单位、当前位置、手机号、身体健康情况和出入事由。
2.2学生健康情况每日上报
学生开学返校后,还需对在校的状态进行密切观察和登记,小程序提供了学生每日健康情况上报功能。通过记录每日学生的上报,管理老师可以对所负责学生的身体状况和行为轨迹有一定的掌握和了解,方便教师在疫情期间对学生的管理。学生每日上报的健康情况包括:今日体温、当前身体状况和今日活动。
2.3防疫物资领用登记
为保证疫情期间校园内人员的干净和无污染,学校为广大师生定期派发防疫消毒物资,师生可以通过该程序窗口进行提交申请,包括消毒口罩、消毒液、医用手套及洗手液等。
2.4公共设施消毒记录
该功能适用于学校后勤服务部门,清洁人员可以把每日消毒的区域、次数和消毒后的现场照片通过小程序进行上报,管理人员通过查看做到心中有数。
2.5校园客服
采用小程序内置的客服功能,通行人员可以将使用过程中遇到的问题进行上报,后台管理员可以针对出现的问题进行及时有效的解决。
3设计实现
系统采用微信官方推出的Web开发工具来进行开发,使用版本为v1.02.1911180。前端采用WXML,WXSS,Java Script语言实现,后端采用了微信的云数据库、云存储和云函数的开发架构。
3.1登陆校验
登记小程序已经和学校企业号对接,出入人员通过手机微信扫描小程序二维码后,程序会判断该微信号是否曾经关注过校园微信企业号,从而迅速判断出用户身份,不同类型的用户填写不同的登记表。
在微信开放平台中,用户登录不同的应用,比如公众号、企业号和小程序,所生成的UnionID是一致的,因此登记小程序可以通过UnionID来区分用户的唯一性。登记小程序在扫码登录时在页面对应的js中调用wx.login()接口来获取用户code,通过wx.getUserInfo()接口获取encryptedData和iv,后台通过调用auth.code2Session接口,来获取session_key,最后将iv和session_key解密encryptedData生成UnionID[4]。获取UnionID后,程序将登记小程序的UnionID和企业号的UnionID做比对,如果一致,说明该用户曾关注过,为校内人员;如果没找到,说明为校外人员。
3.2防疫登记
3.2.1界面设计
在开发微信小程序组件时,可以调用开源组件库的方式,快速完成界面部分的开发。本系统界面组件部分引入Vant Weapp,它是移动端Vue组件库的小程序版本,提供了标准的API接口規范,开发出的界面效果优秀。由于小程序交互部分是采用JavaScript开发,所以在使用Vant Weapp之前需要安装Node.js,它是一个基于Chrome V8引擎的JavaScript运行环境。防疫登记表包括学生返校登记表、校内人员出入登记表和校外人员来访登记表。
3.2.2电话号码获取
微信小程序提供获取用户手机的接口API,通过将获取位置的按钮绑定bindgetphonenumber()获取手机号函数,函数返回值为加密数据,结合session_key以及app_id来进行解密以获取手机号[5]。
3.3登记定位
程序使用百度地图提供的位置API进行签到定位,该接口可以帮助开发者快速获取百度丰富的位置资源,并提供POI查询、地址解析和天气查询接口[5]。程序中用到主要接口代码如下:
var BaiduMap = require(../../api/bmap-wx.js) //首先引入百度位置js程序文件
var Map = new BaiduMap.BMapWX ({ak}) //定义应用接口的ak
wxMarkerData = data.wxMarkerData; //取当前位置坐标,包括经度和纬度
Map.regeocoding (); //调用regeocoding函数进行逆地址解析,由坐标找出位置
设计界面如图2所示。
3.4公共消毒记录
校园清洁人员可以通过该功能把每日消毒的现场照片在系统中上报,因此该功能使用的是小程序云存储开发。
用户首先选择清理消毒的照片在程序中进行上传,小程序调用wx.cloud.uploadfile接口将图片上传至云存储,函数返回fileID作为该图片在存储中的位置索引。在小程序端将fileID和对应的消毒记录存入云存储,完成消毒记录上传。同样,查看消毒记录需要先进入到数据库进行查询该记录,找到记录对应的fileID,再调用数据库的wx.cloud.getTemFileURL生成图片链接进行查看,如图3所示。
3.5云数据库设计
微信小程序数据库是文档型数据库,采用JSON形式,默认提供2 GB的免费存储空间。文档型数据库采用collection集合、doc记录和field字段的结构,其中collection相当于关系型数据库中的table表,doc记录相当于row行,field字段相当于column列[6]。程序在云数据库设计中的基本调用方法如下:
const db = wx.cloud.database( )//云数据库初始化
db.collection(user).add({ })//增加云数据库内容
db.collection(users).where({ })//查询数据库内容
db.collection(user).doc(this.data.number).update//通过学号更新用户表
4结束语
从当前高校防疫实际需求出发,设计出基于微信小程序云开发的新冠肺炎防疫系统,系统功能针对性强,开发迅速,部署容易,能够实现高校对师生的全方位防疫管理,对各高校打好校园防疫攻坚战有着重要的意义。
参考文献
[1]厉旭杰,于哲.二维码技术在的高校资产管理系统中的应用[J].现代计算机(专业版),2017(24):77-80.
[2]林洁明.基于微信云开发的空管固定资产管理系统[J].新商务周刊,2019(16):63.
[3]张利香,甘发旺,薄建国.基于微信小程序与云开发的成绩查询系统实现[J].内蒙古科技与经济,2019(13):59-60.
[4]刘强.基于微信的校园信息服务系统设计研究[D].新乡:河南师范大学,2014.
[5]刘红卫.微信小程序应用探析[J].无线互联科技,2016,(23): 11-12,40.
[6]陈婕.文档型数据库与关系型数据库的比较[J].湖北工业大学学报,2006,21(4):98-100.