張銀霞,郭暢
(北京聯(lián)合大學(xué)師范學(xué)院,北京100011)
智能手機在大學(xué)生群體中的使用率越來越高,他們很習(xí)慣在網(wǎng)絡(luò)平臺購物、點餐、交流?,F(xiàn)在越來越多的學(xué)校門口在就餐時間內(nèi)聚集了大量的送餐外賣,而外賣餐飲的制作環(huán)境、食材的安全性等方面都存在諸多問題。實際上,校園食堂的餐飲相對于校外的餐飲的優(yōu)勢還是很大的,安全衛(wèi)生、綠色健康價格還親民,但隨著校園師生的逐漸增多,排隊的情況日益增加,因各種原因無法來到食堂點餐的情況也有很多。結(jié)合這兩大問題,反觀我國手機微信市場、校園食堂訂餐軟件,目前還沒有一款將校園食堂和外賣結(jié)合在一起的微信公眾號。本系統(tǒng)基于校園實際需求調(diào)研,開發(fā)一款名為“虛擬化校園食堂餐飲系統(tǒng)”的微信公眾號,利用手機微信掃碼集學(xué)校食堂點餐、評價、食堂餐飲管理等多功能為一體的綜合餐飲管理系統(tǒng),面向不同的用戶身份開放權(quán)限,虛擬校園食堂就餐功能,提供交友、論壇空間,豐富大學(xué)生的就餐交流方式,弘揚中國傳統(tǒng)餐飲文化。
本系統(tǒng)分為前臺客戶端和后臺服務(wù)器端兩部分,主要功能需求分為食堂訂餐及配餐、虛擬化校園食堂空間和管理四大模塊。本系統(tǒng)分為三種角色:教師和學(xué)生、食堂工作人員和管理人員。前臺客戶端是基于手機微信掃碼在手機上使用,其中:食堂訂餐、虛擬化校園食堂空間由教師和學(xué)生使用,可以進行查看學(xué)校食堂的配餐、菜品信息智能化篩選、下單訂購、菜品評價、餐飲自主搭配、論壇交流及交友、查看積分和虛擬化食堂功能等;食堂配餐模塊由食堂工作人員使用,可以進行菜品信息的發(fā)布。后臺服務(wù)器端是ASP.NET動態(tài)網(wǎng)站在電腦端使用,主要是該系統(tǒng)的管理模塊由食堂工作人員和管理員共同使用,可以實現(xiàn)對學(xué)生或教工的信息管理、學(xué)生菜品評價信息管理、食堂員工信息管理、公告管理、菜品信息發(fā)布和充值等內(nèi)容,功能模塊圖如圖1 所示。
圖1 系統(tǒng)功能模塊圖
在實現(xiàn)技術(shù)方面,本軟件的客戶端基于.NET 的MVC 模式開發(fā)微信公眾平臺的應(yīng)用程序,選擇“開發(fā)模式”的微信公眾服務(wù)平臺,開發(fā)賬號的類型為測試賬號,開發(fā)工具為Visual Studio 2015,用到的微信前端開發(fā)技術(shù)有HTML5、CSS3、JavaScript、jQuery Mobile、微信JS-DK、微信瀏覽器私有接口WeixinJSBridge 和JSAPI;本軟件的服務(wù)器端管理系統(tǒng)為ASP.NET 動態(tài)網(wǎng)站,開發(fā)工具為Visual Studio2015,編程語言為C#,使用SQL Server 2008 進行數(shù)據(jù)存儲和管理。
(1)配置ASP.NET 空間:本系統(tǒng)采用阿里云主機服務(wù)器作為存放ASP.NET MVC 應(yīng)用程序的主機空間,并申請域名。
(2)微信開發(fā)公眾平臺模式設(shè)計:本系統(tǒng)需要調(diào)用微信公眾平臺提供的開發(fā)接口API,所以要申請成為開發(fā)者模式。登錄微信公眾平臺官方網(wǎng)站,申請成為微信公眾平臺開發(fā)者,獲取應(yīng)用ID(APPID)和應(yīng)用秘鑰(AppSecret)。
(3)申請接口測試號:本系統(tǒng)申請微信公眾測試號,可以調(diào)用所有接口,不受限制。
本軟件系統(tǒng)的功能數(shù)據(jù)基本都來源于自建庫,需要調(diào)用微信公眾平臺的接口,實現(xiàn)客戶端微信和服務(wù)器端動態(tài)網(wǎng)站數(shù)據(jù)交互。開發(fā)者在調(diào)用微信公眾平臺的各個接口時多需要使用access_token。在獲取ac?cess_token 時需要開發(fā)者的appID 和appsecret,通過在后臺服務(wù)器端動態(tài)網(wǎng)站的頁面中添加完成,獲取的關(guān)鍵代碼實現(xiàn)如下所示:
本系統(tǒng)功能分支較多,此章節(jié)僅列出有代表性的系統(tǒng)核心功能的實現(xiàn)方法。
本系統(tǒng)公告信息由管理員在后臺服務(wù)器網(wǎng)頁發(fā)布,實時推送到手機微信消息界面供教師和學(xué)生用戶查看,公告信息模塊的實現(xiàn)代碼如下所示。
實現(xiàn)原理:訪問根據(jù)微信的公眾類CRMComm,通過wx.GetAccessToken 獲得ACCESS_TOKEN 值,并獲得用戶信息users。根據(jù)model.user_name 用戶名拿到oauth_openid 微信openid,并通過微信推送信息的URL,將通知標(biāo)題、通知時間、通知簡介進行發(fā)布,并且按照send_msg_date 里的通過后臺申請的微信模板信息(每個模板信息id 不同),最后用HttpPost 將URL 的數(shù)據(jù)post 到上面的URL 地址上,最終推送到微信消息界面。并將通知的控件model 的狀態(tài)status 由bll.up?date 進行更新。
每當(dāng)用戶購買完畢,會根據(jù)用戶的購買情況推送相關(guān)菜品到微信消息界面,調(diào)用微信接口推送消息的實現(xiàn)原理同公告信息模塊,只是模板信息id 不同,消息的智能推送代碼的實現(xiàn)代碼如下所示:
教師和學(xué)生用戶通過主頁點擊“食堂訂餐”按鈕進入菜品列表頁面,可預(yù)覽食堂菜品名稱、圖片、簡介、添加時間、價格。代碼實現(xiàn)時,通過StringBuilder 對象templateBuilder,使 用templateBuilder.Append 方 法 以HTML5 標(biāo)記方式實現(xiàn),菜品信息展示的核心代碼如下所示:
點擊相應(yīng)的菜品可選擇數(shù)量并加入購物車,當(dāng)點擊確認(rèn)按鈕將執(zhí)行ShopCart.Add 自動將菜品加入購物車并跳轉(zhuǎn)到購物車food_cart.aspx,菜品添加購物車實現(xiàn)的核心代碼如下所示:
食堂人員可通過手機微信員工入口輸入管理員設(shè)置的特定賬號登錄,通過手機拍照、相冊和iCloud 方式上傳菜品圖片、輸入菜品名稱、簡介、價格發(fā)布菜品,該功能是通過在頁面的源代碼中通過JavaScript 腳本代碼調(diào)用第三方插件完成,實現(xiàn)的核心代碼如下所示:
食堂人員可以輸入菜品詳情信息并上傳到數(shù)據(jù)庫表中,通過DoAdd 增加操作,將菜品的名稱、價格、圖片以及摘要上傳,食堂配餐信息上傳數(shù)據(jù)庫實現(xiàn)的關(guān)鍵代碼如下所示:
由于學(xué)校統(tǒng)一對學(xué)生進行管理的特殊性,學(xué)生就餐時間會相對比較集中,導(dǎo)致放學(xué)時間段食堂人流量大、排隊時間長、就餐人員用餐體驗差等問題,同時現(xiàn)在的大學(xué)生使用手機上網(wǎng)的頻率越來越高,在網(wǎng)絡(luò)上他們可以暢所欲言、展示自己的個性,但由于時間、空間、場地等各種限制,學(xué)生交友范圍有限,但校園的人員身份相對比較安全可靠,可以提供一個交友的網(wǎng)絡(luò)虛擬平臺,讓大學(xué)生們邊吃邊聊,就像置身于校園食堂、自主餐廳等現(xiàn)實環(huán)境中一樣,在放松愉悅的同時,使學(xué)生們的交友范圍可以跨專業(yè)、跨班級,結(jié)交更多的校園好友,也有利于學(xué)生們形成專業(yè)互補、組隊比賽、考證幫扶等學(xué)習(xí)活動的開展,給他們的大學(xué)生活帶來更多的樂趣?;谶@樣的一個目的在這款校園食堂餐飲管理系統(tǒng)中又開發(fā)出一個功能叫“虛擬化校園食堂空間”。
“虛擬化校園食堂空間”以大學(xué)生學(xué)習(xí)需求的種類為標(biāo)準(zhǔn)進行空間版塊劃分,由管理員在服務(wù)器端動態(tài)網(wǎng)站中進行空間組的創(chuàng)建和管理,以論壇的形式展示,教師和學(xué)生根據(jù)需要選擇空間版塊組,不同的空間組只能看到本組的內(nèi)容。教師和學(xué)生留言后不是立刻顯示而是需要后臺管理員人工篩選審核后才會顯示,以保證系統(tǒng)健康的交流環(huán)境。教師和學(xué)生可以通過上方的搜索框來進行關(guān)鍵詞的搜索。
(1)“虛擬化校園食堂空間”組的創(chuàng)建和管理實現(xiàn)
該部分是在服務(wù)器端動態(tài)網(wǎng)頁中實現(xiàn),虛擬化校園食堂空間組的賦值和顯示實現(xiàn)見下方ShowInfo 事件過程處理,增加空間組的實現(xiàn)關(guān)鍵代碼見下方DoAdd事件過程處理。
實現(xiàn)原理:輸入的組名和選擇是否隱藏通過Show?Info 進行賦值,根據(jù)bll.GetModel 里的id 將輸入的值賦值到控件model 上。并且通過DoAdd 進行增加到虛擬化校園空間列表內(nèi),進行對控件model 的bll.Add 插入操作。最后根據(jù)bll.GetModel 里的id 將輸入的值賦值到控件model 上。并且通過DoEdit 進行對status 的model 空間進行修改操作,如果rblIsLock.Checked 是開著的,那么將status 改為0,反之改為1,執(zhí)行bll.update將model 進行修改。
(2)“虛擬化校園食堂空間”客戶端頁面實現(xiàn)
“虛擬化校園食堂空間”客戶端頁面在手機上運行,可以實現(xiàn)“預(yù)定座位”、預(yù)定和會員點擊“預(yù)定餐位”三種方式進入,通過HTML5 語言顯示了虛擬化校園空間的分組名稱和布局,實現(xiàn)的關(guān)鍵代碼如下所示:
(3)“虛擬化校園食堂空間”組的論壇版塊
虛擬化校園空間頁面可以分別從首頁點擊“預(yù)定座位”按鈕、預(yù)定和會員點擊“預(yù)定餐位”三種方式進入。用戶可以在對應(yīng)版塊發(fā)布消息、留言、討論等內(nèi)容,單擊提交按鈕后,可將姓名、發(fā)表內(nèi)容和發(fā)布時間等信息上傳到后臺數(shù)據(jù)庫的留言表中,等待管理員審核后顯示,留言內(nèi)容上傳數(shù)據(jù)庫實現(xiàn)的關(guān)鍵代碼如下所示:
用戶在搜索欄中輸入關(guān)鍵詞后可以實現(xiàn)搜索功能,前臺頁面的關(guān)鍵詞搜索實現(xiàn)的關(guān)鍵代碼下所示:
其中,SiteSearch 函數(shù)代碼如下所示:
圖2 公告信息結(jié)果
圖3 消息智能推送
圖4 食堂訂餐
圖5“虛擬化校園食堂”
該系統(tǒng)的部分運行結(jié)果依據(jù)上述核心功能模塊的順序進行展示,公告信息實現(xiàn)效果如圖2 所示,消息的智能推送如圖3 所示,食堂訂餐模塊如圖4 所示,“虛擬化校園食堂空間”模塊如圖5 所示。
本軟件系統(tǒng)實現(xiàn)時重點突破解決了如下問題:
(1)系統(tǒng)應(yīng)用的便捷性,使用微信掃碼即可訪問本系統(tǒng),不需額外下載App,符合人們使用手機的習(xí)慣。
(2)菜品推薦的多樣化標(biāo)準(zhǔn)的設(shè)定和信息的智能化處理,從系統(tǒng)平臺的數(shù)據(jù)中提取用餐者以菜品的種類為標(biāo)準(zhǔn)的個人偏好和用餐規(guī)律,進行菜品推薦,并為食堂配餐傾向性,做好服務(wù)工作提供決策依據(jù)。
(3)平臺的虛擬化校園餐廳功能,提供諸如交流、評價、論壇、交友等功能,模擬實際校園餐廳的空間和作用,給學(xué)生提供更多的相互認(rèn)識、交流的機會,弘揚中國傳統(tǒng)用餐文化,豐富學(xué)生的大學(xué)生活,也為其各項學(xué)習(xí)活動提供互幫互助的機會,也有利于改善學(xué)生的就餐體驗。
本軟件系統(tǒng)還有以下幾點先進性和獨特性:
(1)現(xiàn)在市場上此類功能定位的軟件系統(tǒng)還比較少,本系統(tǒng)是規(guī)范、安全、凈化校園用餐環(huán)境,輔助學(xué)校進行餐飲管理的好助手。
(2)本系統(tǒng)自主開發(fā)的服務(wù)器端后臺,搭載動態(tài)網(wǎng)站和數(shù)據(jù)庫服務(wù)器,具有強大的智能信息處理能力,相對于市面上單純的App 和使用微信公眾號、小程序創(chuàng)建起來的類似軟件,對信息的處理能力更強大,可較好地服務(wù)于客戶端定制信息的需求,給用戶更好地使用感受。