摘 要:隨著企業(yè)微信的逐漸推廣,越來越多的業(yè)務系統嵌入到企業(yè)微信中使用,這種方式比傳統的APP或者小程序模式更易被用戶接受,因為不需要額外的安裝或者發(fā)布,省去了流程上的繁瑣,但從原有模式向企業(yè)微信的轉變都涉及到技術架構的變遷,比如原有的登錄模式要變成讀取企業(yè)微信的當前賬戶信息實現免登錄,程序的運行緩存、顯示的適配等方面也要遵循企業(yè)微信的標準,本文從體檢預約系統的開發(fā)過程以及如何嵌入到企業(yè)微信中運行詮釋該模式下的開發(fā)模式及方法。
關鍵詞:企業(yè)微信;體檢預約
一、研究背景
在很多企事業(yè)單位,體檢是一年一度的必做項目,當然體檢的預約或采用傳統的電子表格或者在線表格,有開發(fā)能力的單位可能是上線了系統版的體檢預約系統,比如網頁版或者APP版以及小程序的形式,這些都是在技術演進過程中可能出現,但目前隨著企業(yè)微信的越發(fā)流行,越來越多的企業(yè)都開始在企業(yè)微信上進行一般流程業(yè)務的辦理,于是在企業(yè)微信中集成體檢預約系統也就成了時下比較符合趨勢的做法,集成以后可以從企業(yè)微信工作臺里面直接進入,因為企業(yè)微信進入的時候需要登錄,在登錄的情況下,進入具體的應用就不需要再次進行登錄了,應用會自動識別當前企業(yè)微信的登錄用戶并自動進行用戶信息獲取,實現用戶的無感登錄,最大程度上方便用戶的使用。
二、研究意義
研究企業(yè)微信下的體檢預約系統的開發(fā)首先是要迫使開發(fā)者使用企業(yè)微信自身的接口,必須要先學習企業(yè)微信的開發(fā)模式,從某種意義上講也算是一種技術的與時俱進,因為企業(yè)微信下的開發(fā)和部署和傳統模式還是有較大區(qū)別的,首先是企業(yè)微信開發(fā)接口的學習與調用,以在應用內部獲取用戶信息實現登錄時的接口調用步驟為例,就要知道如下步驟:首先企業(yè)授權第三方應用管理指定的客服帳號的會話消息時,當微信客戶進入該客服會話或發(fā)起咨詢時,第三方可獲取該客戶的external_userid;其次第三方需自行通過其他已有的方式獲取客戶的Unionid;最后再通過Unionid與external_userid關聯接口,將獲取到的Unionid和external_userid實現關聯識別。再比如進行頁面的適配時,除了考慮開發(fā)環(huán)境以及常規(guī)運行環(huán)境的約束外,還要考慮企業(yè)微信中的運行環(huán)境約素,最終使得程序能在企業(yè)微信中正常運行,所以研究企業(yè)微信下的應用開發(fā)或者將應用遷移到企業(yè)微信中,除了方便用戶的使用,使得企業(yè)內部的信息化程度向更新的方式轉遍,更是對開發(fā)者技術與時俱進的推動,有利于整個技術及應用氛圍的營造。
三、研究內容及實現方式
項目研究的主要內容包括以下幾點:
1.體檢預約系統的需求分析
體檢預約系統的功能可多可少,具體要看使用者的需求,本系統選取本校的教職工體檢為背景,主要功能需求能實現可預約體檢時間以及地點的羅列并查看,能正確顯示某個時間地點的可預約總數以及可預約余量,針對于某個時間和地點,能預約該時間點和對應地點的體檢,預約后可以顯示自己的預約信息,并可以針對次預約進行取消,一個用戶僅能預約一次體檢時間,預約后便不可再預約,但取消后可以重新預約,總的來說對于終端用戶而言,功能需求主要是可預約日期的列表展示、預約、取消預約以及查看預約詳情。對于管理端功能,要能實現所有預約信息的查看、排序以及導出,同時要具備消息的自動發(fā)送功能,在用戶所預約的體檢日期的前一天通過后臺服務向用戶的企業(yè)微信賬戶發(fā)送文本消息,提醒用戶進行明天的體檢,同時消息內容及格式應能編輯。
2.體檢預約系統的功能設計及數據庫設計
基于需求分析,可以得出體檢預約系統主要包含終端用戶功能和管理員功能,整體系統功能框架圖如下。
如圖1所示,管理員首先要在后臺預置可預約列表,列表信息包括體檢地點和日期,信息預置好以后,終端用戶進入后即可看到可預約列表,并可對某個時間和地點進行預約,預約后可查看預約詳情并可取消預約;后臺可以查看所有的預約列表信息并可對結果進行導出,同時能夠根據用戶預約的時間提前一天向該賬戶發(fā)送企業(yè)微信消息。
為了支撐上述功能,數據庫設計了2張表,預約信息表和預約用戶表,其中預約信息表里面存儲所有可預約的信息,通過對里面信息的遍歷可在前臺生成預約列表,預約用戶表里面存儲用戶的預約信息,其中用戶表并不是字典表,而是預約之后的結果表,兩張表的設計如下。
3.后臺接口設計及實現
功能設計及數據庫完成后,要使得設計的功能以及后臺的數據庫能被正常使用,需要使用后臺服務將這些功能付諸實踐,也即是編程能被前臺調用的接口,本次接口設計遵循目前主流的Restful接口規(guī)則,共設計了3組接口。
首先是預約接口組,其中包含了獲取可預約列表信息list(),獲取某一項具體預約詳情信息info(),獲取預約信息examInfo(),獲取預約地點examPlaceInfo(),獲取總體日期范圍totalDateRange(),以及常規(guī)的增刪改功能接口;其次是用戶操作接口組,其中包含了登錄接口login(),更改管理員接口changeAdmin(),更改用戶配置接口changeOpinions(),獲取企業(yè)微信用戶配置接口weComInfo(),該接口主要進行用戶的自動登錄,以及獲取用戶列表接口list(),獲取用戶信息接口info(),進行體檢預約功能的接口appointExam()以及該接口對應的常規(guī)增刪改功能接口;最后是體檢預約的結果導出接口,包含了導出體檢預約地點接口exportExamExcel(),導出體檢預約信息表exportUserExcel()以及導出示例列表接口exportBaseExcel()。通過上述接口的實現即可將設計接口的功能結合數據庫發(fā)布給前臺使用,限于篇幅限制,本文不在贅述接口的具體規(guī)格。
4.前端實現
在前述需求分析,功能設計以及數據庫設計,接口設計完成的情況下,最后剩下的就是前臺功能的開發(fā),通過使用接口提供的功能訪問當前的企業(yè)微信賬戶,獲取用戶信息后展示對應的信息,具體的內容可以查看圖1的功能框架圖,此處對于功能不再贅述,后續(xù)通過截圖的方式即可一目了然。前臺設計使用基于uniapp的跨平臺開發(fā)模式,通過一套代碼的編寫可以部署到多個平臺,企業(yè)微信的本質就是在企業(yè)微信中運行的小程序,或者理解為企業(yè)微信中內置的網頁瀏覽器的運行結果,需要特別說明的是,系統在進入時如何實現自動登錄,主要是基于對企業(yè)微信用戶配置信息的訪問,在企業(yè)微信平臺中,用戶一旦進行了企業(yè)微信級別的登錄便會在本地保存登錄信息,系統通過接口訪問該配置信息后即可傳遞到系統中并實現了登錄效果,從而可以進行后續(xù)的操作。
四、系統測試及總結
項目開發(fā)完成后主要界面如左圖所示,首先根據測試的基本要求進行了本地開發(fā)環(huán)境級別的測試,發(fā)現問題后及時修改bug,在對本地經過多輪測試未再發(fā)現問題后即部署到校園網環(huán)境進行正式的測試,此時測試的范圍也從小范圍轉向了班級層面進行壓力測試,通過預置多個預約內容發(fā)動班級的同學進行全面測試,同時在測試過程中也并非簡單的嘗試性測試這么簡單,通過事先編寫測試用例并進行用例的完備性論證,同時對于得出的BUG也進行正式的記錄并通過班委收集反饋,同時我們也借鑒了軟件測試理論中的自動化測試,通過借用自動化測試工具以及編寫測試腳本進行簡單的自動化測試,發(fā)現問題及時修復并進行驗證,如此循環(huán)往復,在一系列高強度的測試后系統的健壯性得意保證,截止到目前為止,暫未發(fā)現更多Bug,當然基于軟件的特點,測試也是貫穿于軟件的全生命周期,隨時發(fā)現隨時解決。
五、開發(fā)該項目對在校學習的啟發(fā)
本次體檢預約系統的開發(fā)主要是在學完前端以及后臺的專業(yè)課后展示如何從無到有開發(fā)產品的全過程,基本上行遵循了軟件工程的開發(fā)理念和過程,整個開發(fā)由團隊來實現,我們也是模擬了目前職業(yè)技能競賽中的模式,一個人負責前端,一個人負責后臺接口及部署,第三個人負責數據的設計寄實現,團隊全程參與整個開發(fā),掌握開發(fā)關鍵節(jié)點和技術細節(jié),通過此項目的開發(fā),較好地理解產品開發(fā)過程并能較好地進行觸類旁通和舉一反三的實踐,在建立了一套標準開發(fā)流程的基礎上,更培養(yǎng)了團隊成員對產品開發(fā)的熱情和自信,同時也更加堅定了我們以實際項目進行職業(yè)教育學習的基本理念,希望未來能將這種理念積極貫徹和推廣下去,探索更多職業(yè)教育學習的心得和收獲。
參考文獻:
[1] 移動應用開發(fā)——基于UNI-APP框架. 彭燦華,韋曉敏,楊呈永,2021.07.
[2] Vue.js 3移動應用開發(fā)實戰(zhàn). 清華大學出版社. 2022.07.
[3] Android移動應用開發(fā). 羅劍,潘雪峰.機械工業(yè)出版社. 2012.08.
[4] Java Web項目開發(fā)案例實戰(zhàn). 尹有海.中國水利水電出版社. 2020.09.
[5]MySQL數據庫設計與應用. 肖宏啟,楊豐嘉,柳均. 清華大學出版社,2021.10.