楊眾
摘要:提出基于微信云開發的校園新冠肺炎防疫登記小程序,系統使用簡單、快捷,入校人員掃描二維碼可登記個人信息,實現了校園往來人員登記、在校學生健康情況上報、防疫物資領用登記及公共設施消毒記錄等功能。通過使用該系統,學??梢愿行?、更精細地掌握每一名師生和來訪人員的身體狀況,更好地執行校園防疫管理。程序基于微信云端開發,無需本地化部署,快速響應,數據支持云端管理,無需下載多余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.