楊眾
摘要:提出基于微信云開發(fā)的校園新冠肺炎防疫登記小程序,系統(tǒng)使用簡(jiǎn)單、快捷,入校人員掃描二維碼可登記個(gè)人信息,實(shí)現(xiàn)了校園往來(lái)人員登記、在校學(xué)生健康情況上報(bào)、防疫物資領(lǐng)用登記及公共設(shè)施消毒記錄等功能。通過(guò)使用該系統(tǒng),學(xué)校可以更有效、更精細(xì)地掌握每一名師生和來(lái)訪人員的身體狀況,更好地執(zhí)行校園防疫管理。程序基于微信云端開發(fā),無(wú)需本地化部署,快速響應(yīng),數(shù)據(jù)支持云端管理,無(wú)需下載多余APP,使用便捷,為各大中小院校防疫工作提供了技術(shù)保障。
關(guān)鍵詞:微信小程序;云開發(fā);新冠肺炎;JavaScript;CSS
中圖分類號(hào):TP393文獻(xiàn)標(biāo)志碼:A文章編號(hào):1008-1739(2020)12-68-4
0引言
2020年初,全國(guó)爆發(fā)新型冠狀病毒肺炎,教育部發(fā)布的《高等學(xué)校新型冠狀病毒肺炎防控指南》中要求,各高校在學(xué)生返校時(shí)應(yīng)增設(shè)觀察點(diǎn),學(xué)生分批入校時(shí)需進(jìn)行體溫測(cè)量和健康狀況登記排查。傳統(tǒng)防疫登記的方法是學(xué)生在入校時(shí)逐一填寫紙質(zhì)的健康狀況登記表,填寫的內(nèi)容是否標(biāo)準(zhǔn)和準(zhǔn)確需要老師人工進(jìn)行核對(duì),當(dāng)學(xué)生集中入校時(shí)會(huì)出現(xiàn)登記擁堵現(xiàn)象,登記效率緩慢,入校登記的大量紙質(zhì)信息需要人工進(jìn)行整理和歸檔,這些都為登記帶來(lái)了困難。
采用微信小程序防疫系統(tǒng)登記的方法,數(shù)據(jù)可以與校園現(xiàn)有信息化平臺(tái)相對(duì)接,入校人員只要掃一下二維碼,系統(tǒng)自動(dòng)校驗(yàn)人員類型、手機(jī)號(hào)、地理位置和數(shù)據(jù)標(biāo)準(zhǔn)性,降低了登記復(fù)雜度,提高了登記效率[1]。系統(tǒng)具有學(xué)生健康情況每日上報(bào)、防疫物資領(lǐng)用登記及公共設(shè)施消毒記錄等功能,便于開展校園防疫管理工作。
1微信小程序云開發(fā)
微信小程序云開發(fā)是微信小程序團(tuán)隊(duì)與騰訊云推出的全新架構(gòu)方案,采用Serverless開發(fā)模式,將小程序后臺(tái)的開發(fā)、部署、上線和運(yùn)維工作托管到騰訊云,大大節(jié)省了系統(tǒng)的運(yùn)營(yíng)和管理成本[2]。云開發(fā)提供云數(shù)據(jù)庫(kù)、云存儲(chǔ)和云函數(shù)三大技術(shù)能力。
云數(shù)據(jù)庫(kù)采用基于JSON類型的NoSql非關(guān)系型數(shù)據(jù)庫(kù),類似于Mongdb,數(shù)據(jù)庫(kù)接口支持小程序端調(diào)用和云函數(shù)調(diào)用,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)里增、刪、改、查等操作。區(qū)別于關(guān)系型數(shù)據(jù)庫(kù),如果在程序中需要經(jīng)常查詢表之間復(fù)雜的關(guān)聯(lián)關(guān)系時(shí),關(guān)系型數(shù)據(jù)庫(kù)比較適合,如果對(duì)數(shù)據(jù)進(jìn)行大量讀寫,那么文檔型數(shù)據(jù)庫(kù)更加快捷。
云存儲(chǔ)能夠支持在小程序端直接對(duì)文件進(jìn)行上傳和云存儲(chǔ),同時(shí)也能夠在云端對(duì)文件進(jìn)行可視化的管理操作。
云函數(shù)為開發(fā)者提供了在云端運(yùn)行后臺(tái)代碼的能力,支持微信接口調(diào)用,通過(guò)云函數(shù),可以很快地獲取小程序的Appid,Openid,調(diào)用騰訊云的SDK和數(shù)據(jù)庫(kù)[3]。
2系統(tǒng)功能設(shè)計(jì)
2.1校園出入人員登記管理
校園出入人員登記分為校外人員來(lái)訪登記、校內(nèi)人員出入登記和學(xué)生返校登記三部分。
通行人員通過(guò)微信掃描出入口二維碼,程序判斷該微信手機(jī)號(hào)是否在校內(nèi)登記,從而判斷是否為校內(nèi)人員。如果不是校內(nèi)人員,則跳轉(zhuǎn)到校外人員來(lái)訪登記;如果是校內(nèi)人員,則接下來(lái)判斷人員類型,微信手機(jī)號(hào)為教職工類型,則跳轉(zhuǎn)到校內(nèi)人員出入登記,如果是學(xué)生,則進(jìn)入下一判斷。如果是首次登記的學(xué)生,則說(shuō)明學(xué)生是剛結(jié)束寒假歸來(lái),需要填寫學(xué)生返校登記表;如果學(xué)生非首次登記,則跳轉(zhuǎn)到校內(nèi)人員出入登記。完成登記后,小程序會(huì)提示人員登記成功,門衛(wèi)人員放行,登記管理流程如圖1所示。
其中,學(xué)生返校登記信息包括:學(xué)生姓名、學(xué)號(hào)、所在隊(duì)伍、手機(jī)號(hào)、體溫、居住地、假期疫情接觸情況排查、身體健康情況和位置信息。
校外人員來(lái)訪登記的信息包括:姓名、單位、當(dāng)前位置、手機(jī)號(hào)、身體健康情況和來(lái)訪事由。
校內(nèi)人員出入登記的信息包括:姓名、單位、當(dāng)前位置、手機(jī)號(hào)、身體健康情況和出入事由。
2.2學(xué)生健康情況每日上報(bào)
學(xué)生開學(xué)返校后,還需對(duì)在校的狀態(tài)進(jìn)行密切觀察和登記,小程序提供了學(xué)生每日健康情況上報(bào)功能。通過(guò)記錄每日學(xué)生的上報(bào),管理老師可以對(duì)所負(fù)責(zé)學(xué)生的身體狀況和行為軌跡有一定的掌握和了解,方便教師在疫情期間對(duì)學(xué)生的管理。學(xué)生每日上報(bào)的健康情況包括:今日體溫、當(dāng)前身體狀況和今日活動(dòng)。
2.3防疫物資領(lǐng)用登記
為保證疫情期間校園內(nèi)人員的干凈和無(wú)污染,學(xué)校為廣大師生定期派發(fā)防疫消毒物資,師生可以通過(guò)該程序窗口進(jìn)行提交申請(qǐng),包括消毒口罩、消毒液、醫(yī)用手套及洗手液等。
2.4公共設(shè)施消毒記錄
該功能適用于學(xué)校后勤服務(wù)部門,清潔人員可以把每日消毒的區(qū)域、次數(shù)和消毒后的現(xiàn)場(chǎng)照片通過(guò)小程序進(jìn)行上報(bào),管理人員通過(guò)查看做到心中有數(shù)。
2.5校園客服
采用小程序內(nèi)置的客服功能,通行人員可以將使用過(guò)程中遇到的問(wèn)題進(jìn)行上報(bào),后臺(tái)管理員可以針對(duì)出現(xiàn)的問(wèn)題進(jìn)行及時(shí)有效的解決。
3設(shè)計(jì)實(shí)現(xiàn)
系統(tǒng)采用微信官方推出的Web開發(fā)工具來(lái)進(jìn)行開發(fā),使用版本為v1.02.1911180。前端采用WXML,WXSS,Java Script語(yǔ)言實(shí)現(xiàn),后端采用了微信的云數(shù)據(jù)庫(kù)、云存儲(chǔ)和云函數(shù)的開發(fā)架構(gòu)。
3.1登陸校驗(yàn)
登記小程序已經(jīng)和學(xué)校企業(yè)號(hào)對(duì)接,出入人員通過(guò)手機(jī)微信掃描小程序二維碼后,程序會(huì)判斷該微信號(hào)是否曾經(jīng)關(guān)注過(guò)校園微信企業(yè)號(hào),從而迅速判斷出用戶身份,不同類型的用戶填寫不同的登記表。
在微信開放平臺(tái)中,用戶登錄不同的應(yīng)用,比如公眾號(hào)、企業(yè)號(hào)和小程序,所生成的UnionID是一致的,因此登記小程序可以通過(guò)UnionID來(lái)區(qū)分用戶的唯一性。登記小程序在掃碼登錄時(shí)在頁(yè)面對(duì)應(yīng)的js中調(diào)用wx.login()接口來(lái)獲取用戶code,通過(guò)wx.getUserInfo()接口獲取encryptedData和iv,后臺(tái)通過(guò)調(diào)用auth.code2Session接口,來(lái)獲取session_key,最后將iv和session_key解密encryptedData生成UnionID[4]。獲取UnionID后,程序?qū)⒌怯浶〕绦虻腢nionID和企業(yè)號(hào)的UnionID做比對(duì),如果一致,說(shuō)明該用戶曾關(guān)注過(guò),為校內(nèi)人員;如果沒(méi)找到,說(shuō)明為校外人員。
3.2防疫登記
3.2.1界面設(shè)計(jì)
在開發(fā)微信小程序組件時(shí),可以調(diào)用開源組件庫(kù)的方式,快速完成界面部分的開發(fā)。本系統(tǒng)界面組件部分引入Vant Weapp,它是移動(dòng)端Vue組件庫(kù)的小程序版本,提供了標(biāo)準(zhǔn)的API接口規(guī)范,開發(fā)出的界面效果優(yōu)秀。由于小程序交互部分是采用JavaScript開發(fā),所以在使用Vant Weapp之前需要安裝Node.js,它是一個(gè)基于Chrome V8引擎的JavaScript運(yùn)行環(huán)境。防疫登記表包括學(xué)生返校登記表、校內(nèi)人員出入登記表和校外人員來(lái)訪登記表。
3.2.2電話號(hào)碼獲取
微信小程序提供獲取用戶手機(jī)的接口API,通過(guò)將獲取位置的按鈕綁定bindgetphonenumber()獲取手機(jī)號(hào)函數(shù),函數(shù)返回值為加密數(shù)據(jù),結(jié)合session_key以及app_id來(lái)進(jìn)行解密以獲取手機(jī)號(hào)[5]。
3.3登記定位
程序使用百度地圖提供的位置API進(jìn)行簽到定位,該接口可以幫助開發(fā)者快速獲取百度豐富的位置資源,并提供POI查詢、地址解析和天氣查詢接口[5]。程序中用到主要接口代碼如下:
var BaiduMap = require(../../api/bmap-wx.js) //首先引入百度位置js程序文件
var Map = new BaiduMap.BMapWX ({ak}) //定義應(yīng)用接口的ak
wxMarkerData = data.wxMarkerData; //取當(dāng)前位置坐標(biāo),包括經(jīng)度和緯度
Map.regeocoding (); //調(diào)用regeocoding函數(shù)進(jìn)行逆地址解析,由坐標(biāo)找出位置
設(shè)計(jì)界面如圖2所示。
3.4公共消毒記錄
校園清潔人員可以通過(guò)該功能把每日消毒的現(xiàn)場(chǎng)照片在系統(tǒng)中上報(bào),因此該功能使用的是小程序云存儲(chǔ)開發(fā)。
用戶首先選擇清理消毒的照片在程序中進(jìn)行上傳,小程序調(diào)用wx.cloud.uploadfile接口將圖片上傳至云存儲(chǔ),函數(shù)返回fileID作為該圖片在存儲(chǔ)中的位置索引。在小程序端將fileID和對(duì)應(yīng)的消毒記錄存入云存儲(chǔ),完成消毒記錄上傳。同樣,查看消毒記錄需要先進(jìn)入到數(shù)據(jù)庫(kù)進(jìn)行查詢?cè)撚涗洠业接涗泴?duì)應(yīng)的fileID,再調(diào)用數(shù)據(jù)庫(kù)的wx.cloud.getTemFileURL生成圖片鏈接進(jìn)行查看,如圖3所示。
3.5云數(shù)據(jù)庫(kù)設(shè)計(jì)
微信小程序數(shù)據(jù)庫(kù)是文檔型數(shù)據(jù)庫(kù),采用JSON形式,默認(rèn)提供2 GB的免費(fèi)存儲(chǔ)空間。文檔型數(shù)據(jù)庫(kù)采用collection集合、doc記錄和field字段的結(jié)構(gòu),其中collection相當(dāng)于關(guān)系型數(shù)據(jù)庫(kù)中的table表,doc記錄相當(dāng)于row行,field字段相當(dāng)于column列[6]。程序在云數(shù)據(jù)庫(kù)設(shè)計(jì)中的基本調(diào)用方法如下:
const db = wx.cloud.database( )//云數(shù)據(jù)庫(kù)初始化
db.collection(user).add({ })//增加云數(shù)據(jù)庫(kù)內(nèi)容
db.collection(users).where({ })//查詢數(shù)據(jù)庫(kù)內(nèi)容
db.collection(user).doc(this.data.number).update//通過(guò)學(xué)號(hào)更新用戶表
4結(jié)束語(yǔ)
從當(dāng)前高校防疫實(shí)際需求出發(fā),設(shè)計(jì)出基于微信小程序云開發(fā)的新冠肺炎防疫系統(tǒng),系統(tǒng)功能針對(duì)性強(qiáng),開發(fā)迅速,部署容易,能夠?qū)崿F(xiàn)高校對(duì)師生的全方位防疫管理,對(duì)各高校打好校園防疫攻堅(jiān)戰(zhàn)有著重要的意義。
參考文獻(xiàn)
[1]厲旭杰,于哲.二維碼技術(shù)在的高校資產(chǎn)管理系統(tǒng)中的應(yīng)用[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2017(24):77-80.
[2]林潔明.基于微信云開發(fā)的空管固定資產(chǎn)管理系統(tǒng)[J].新商務(wù)周刊,2019(16):63.
[3]張利香,甘發(fā)旺,薄建國(guó).基于微信小程序與云開發(fā)的成績(jī)查詢系統(tǒng)實(shí)現(xiàn)[J].內(nèi)蒙古科技與經(jīng)濟(jì),2019(13):59-60.
[4]劉強(qiáng).基于微信的校園信息服務(wù)系統(tǒng)設(shè)計(jì)研究[D].新鄉(xiāng):河南師范大學(xué),2014.
[5]劉紅衛(wèi).微信小程序應(yīng)用探析[J].無(wú)線互聯(lián)科技,2016,(23): 11-12,40.
[6]陳婕.文檔型數(shù)據(jù)庫(kù)與關(guān)系型數(shù)據(jù)庫(kù)的比較[J].湖北工業(yè)大學(xué)學(xué)報(bào),2006,21(4):98-100.