李林錦,操守正,顏山明
(東南大學(xué)成賢學(xué)院,江蘇 南京 210088)
在大學(xué)教育的四年中,大學(xué)生們?cè)诿β档膶W(xué)習(xí)生活中總會(huì)遇到各種各樣的小問(wèn)題。將移動(dòng)無(wú)線網(wǎng)絡(luò)融入生活,改變生活,解決大學(xué)生活中出現(xiàn)的種種問(wèn)題,這是順應(yīng)時(shí)代的必然趨勢(shì),也是教育體系走向智能化的方向。小程序概念由騰訊與阿里巴巴率先提出,并在2017年1月份正式推出微信小程序與支付寶小程序,隨后又有字節(jié)跳動(dòng)、百度等相繼推出自家的小程序產(chǎn)品,秉承應(yīng)用“觸手可及”的夢(mèng)想,用戶通過(guò)掃描二維碼或者搜索即可使用小程序[2];小程序經(jīng)過(guò)長(zhǎng)時(shí)間的更新優(yōu)化,到現(xiàn)在已擁有強(qiáng)大的擴(kuò)展能力以及極小的數(shù)據(jù)容量,這種輕量化的應(yīng)用服務(wù)具有無(wú)須下載安裝即可直接使用的特點(diǎn),被廣大師生所喜愛(ài)[3]。而在這其中,微信小程序更是擁有最為龐大的用戶量,并且能一直保持其用戶量在一定范圍內(nèi)不減,這使得微信小程序非常適合于開(kāi)發(fā)需要由用戶能提供服務(wù)的平臺(tái)類型程序。
(1)普通用戶,通過(guò)微信直接注冊(cè)登錄獲得兩重身份:發(fā)單人、接單人;分別對(duì)應(yīng)任務(wù)發(fā)布者和任務(wù)接收者。
(2)后臺(tái)系統(tǒng)管理員用戶,在后臺(tái)管理頁(yè)面有一系列管理員功能。包括管理用戶信息、管理訂單信息、管理資金等。
發(fā)布任務(wù):提出問(wèn)題,上傳需要他人幫忙的任務(wù),任務(wù)被完成后,發(fā)單人需要向完成者支付一定賞金。
執(zhí)行任務(wù):接收發(fā)單人提出的任務(wù),并按照訂單要求將其完成,并獲取一定報(bào)酬。
通訊交流:處于進(jìn)行中的訂單為了方便任務(wù)的流程順利進(jìn)行,發(fā)布者與接收者可以通過(guò)內(nèi)置的通信功能實(shí)現(xiàn)任務(wù)細(xì)節(jié)的傳達(dá)。
個(gè)人中心:負(fù)責(zé)管理個(gè)人的資料信息、隱私設(shè)置、釋放內(nèi)存空間等,其中還有歷史訂單的查詢,可以對(duì)有疑問(wèn)的訂單詢問(wèn)客服,請(qǐng)求介入。
信用度系統(tǒng):每個(gè)用戶將擁有屬于自己的信用度數(shù)值,用戶的兩個(gè)身份——發(fā)布者和接受者共用一套數(shù)值,該數(shù)值代表了用戶在該系統(tǒng)內(nèi)的信用度,系統(tǒng)會(huì)根據(jù)信用度動(dòng)態(tài)推送不同價(jià)值的訂單;同時(shí)信用度數(shù)值不可隱藏,顯示在用戶名旁邊,用戶可根據(jù)信用度自行選擇委托。
2.4.1 短租
這種任務(wù)主要應(yīng)用于學(xué)生生活中一些較為緊急的狀況,例如:某學(xué)生在圖上館中學(xué)習(xí)時(shí),因出門(mén)時(shí)天氣較好而未下雨。在學(xué)習(xí)結(jié)束,出圖書(shū)館時(shí)卻下起了雨,這個(gè)時(shí)候就需要一把傘,如果有同一宿舍樓在圖書(shū)館里學(xué)習(xí)的同學(xué),而且?guī)Я藗憔涂梢越酉氯蝿?wù)一同回宿舍樓,或者宿舍其他同學(xué)處于空閑狀態(tài)的接了任務(wù)并將傘帶過(guò)來(lái)。
2.4.2 長(zhǎng)租
這種任務(wù)主要在學(xué)習(xí)生活中需要什么東西一段時(shí)間,而價(jià)格昂貴,因一時(shí)需要購(gòu)買導(dǎo)致性價(jià)比太低,其他同學(xué)擁有又剛好閑置。例如:有同學(xué)參加動(dòng)漫社真人cos秀,但是沒(méi)有合適的cos服裝,就可以發(fā)布任務(wù)暫借cos服一段時(shí)間。其他有這套cos服的同學(xué)暫時(shí)不用,就可以接受任務(wù)出租暫借給需要的同學(xué),幫助他人并獲得回報(bào)。
2.4.3 代購(gòu)
這種任務(wù)主要在學(xué)習(xí)生活中,許多同學(xué)由于某些原因無(wú)法自己進(jìn)行購(gòu)物,這時(shí)就可以發(fā)布委托讓他人代購(gòu)。例如:某同學(xué)因?yàn)橹形缟险n沒(méi)有時(shí)間,不能及時(shí)去食堂吃飯,就可以發(fā)布任務(wù)請(qǐng)人帶飯到寢室,有空的同學(xué)們看見(jiàn)接受任務(wù)就可以幫忙帶飯并獲得報(bào)酬。
2.4.4 中轉(zhuǎn)
這類任務(wù)的需求十分巨大,往往是本人沒(méi)有空余時(shí)間或者距離過(guò)遠(yuǎn)時(shí)出現(xiàn),在校園內(nèi)經(jīng)常出現(xiàn),例如:許多同學(xué)或許會(huì)在電商平臺(tái)購(gòu)買商品、家里人寄送物品,將快遞寄到校園后可能由于校內(nèi)沒(méi)有該快遞公司的指定快遞點(diǎn),快遞不得不放在校外自己領(lǐng)取,這時(shí)便可以發(fā)布任務(wù)讓接收的人取件帶回。
本系統(tǒng)采取MVVM架構(gòu),小程序的wxml、wxss作為視圖層View;小程序的js,json作為視圖處理層ViewModel;服務(wù)器Jfinal作為業(yè)務(wù)邏輯層model;其中使用Nosql數(shù)據(jù)庫(kù)Redis做消息中間件,對(duì)數(shù)據(jù)做緩存處理,druid數(shù)據(jù)庫(kù)連接池提高數(shù)據(jù)庫(kù)并發(fā)效率。
使用mysql關(guān)系數(shù)據(jù)庫(kù)做持久化處理,建立相應(yīng)關(guān)系數(shù)據(jù)模型映射的表項(xiàng),包括:管理員表(admin);意見(jiàn)反饋表(feedback);系統(tǒng)公告(news);訂單狀態(tài)推送(message);普通用戶表(user);訂單列表(orderlist);訂單類型表(ordertype);訂單與用戶關(guān)聯(lián)表(ou);四種訂單類型的等待狀態(tài)訂單表(xxxlist);四種訂單類型的非等待狀態(tài)訂單表(xxxhistory)。
通過(guò)對(duì)持久層常用數(shù)據(jù)進(jìn)行緩存處理,避免了數(shù)據(jù)頻繁從數(shù)據(jù)庫(kù)取出造成的資源浪費(fèi),也提高了小程序端對(duì)數(shù)據(jù)的訪問(wèn)速度[4]。
采用信息隊(duì)列存放未讀信息,將用戶離線狀態(tài)時(shí)接收到的通信信息存放在高性能緩存中,采用hash表存儲(chǔ)保證查詢效率,能在上線后以極快的速度獲取未讀信息隊(duì)列。
使用延時(shí)隊(duì)列管理定時(shí)任務(wù);創(chuàng)建單獨(dú)的線程對(duì)處于等待中的短租訂單列表延時(shí)隊(duì)列進(jìn)行循環(huán)檢查,判斷最早抵達(dá)的訂單是否過(guò)期,過(guò)期則出隊(duì)。由此對(duì)短租類型的訂單進(jìn)行自動(dòng)管理。
基于Jfinal框架提供的ActiveRecord插件,為數(shù)據(jù)庫(kù)與JAVA數(shù)據(jù)映射方面提供了良好的支持,一個(gè)Model對(duì)象唯一對(duì)應(yīng)數(shù)據(jù)庫(kù)中的一條記錄;在對(duì)插件進(jìn)行簡(jiǎn)單配置后,Model類能提供任何數(shù)據(jù)庫(kù)表項(xiàng)中存在的字段;Db與Record搭配能夠提供Model類之外更豐富的數(shù)據(jù)庫(kù)操作,有著高度可自定義的SQL語(yǔ)句;同時(shí)支持多個(gè)不同的數(shù)據(jù)源,并且針對(duì)這些數(shù)據(jù)源配置獨(dú)立的方言、緩存、事務(wù)。
為保證用戶賬戶安全,微信小程序平臺(tái)為開(kāi)發(fā)者提供了用戶的openid以及sessionid。通過(guò)三方認(rèn)證——小程序客戶端、應(yīng)用服務(wù)器端、微信接口服務(wù)端對(duì)用戶賬戶安全提供了保障。
在小程序端,用戶登錄通過(guò)調(diào)用微信API——wx.login()獲取動(dòng)態(tài)code;將code通過(guò)wx.request()函數(shù)發(fā)送到應(yīng)用服務(wù)器接口;后臺(tái)再通過(guò)appid+appsecret(小程序特征碼)+code組合請(qǐng)求微信接口;微信接口驗(yàn)證code,并返回session_key+openid;服務(wù)器自定義客戶端登錄態(tài),將自定義登錄態(tài)做為主鍵存儲(chǔ)在用戶表中做唯一標(biāo)識(shí),同時(shí)將登錄態(tài)返回小程序客戶端;小程序客戶端將自定義登錄態(tài)存儲(chǔ)至本地緩存中。
用戶使用微信賬號(hào)登錄進(jìn)入小程序,系統(tǒng)判斷是否為新用戶,并確定是否需要注冊(cè)填寫(xiě)相關(guān)信息。
用戶可以通過(guò)點(diǎn)擊首頁(yè)的訂單列表查看感興趣的訂單詳情,并根據(jù)自身情況決定是否接受該訂單,也可以選擇自己發(fā)布一份訂單。進(jìn)入訂單流程后可以隨時(shí)與對(duì)方用戶就本次委托進(jìn)行信息交流,交代細(xì)節(jié)。系統(tǒng)會(huì)隨訂單狀態(tài)的改變?yōu)橛脩敉扑托畔ⅰ?/p>
每一個(gè)訂單完成后都可就本次完成情況為對(duì)方用戶做出評(píng)分,該評(píng)分關(guān)系到個(gè)人信用度系統(tǒng),并且權(quán)值較高。因此,只有雙方的相互配合、互相尊重才能使訂單順利完成。
訂單結(jié)算采用只在小程序內(nèi)流通的電子貨幣,以減少用戶操作步驟,頻繁進(jìn)行重復(fù)操作,電子貨幣存入小程序內(nèi)的錢包中,當(dāng)用戶需要體現(xiàn)時(shí)可進(jìn)入個(gè)人中心按步驟體現(xiàn);當(dāng)需要支付結(jié)算金額時(shí)會(huì)優(yōu)先從小程序貨幣中扣除,余額不足會(huì)調(diào)用微信支付API申請(qǐng)從微信零錢扣款。
充分利用網(wǎng)絡(luò)快速發(fā)展以及移動(dòng)終端設(shè)備的快速普及,推廣移動(dòng)互聯(lián)網(wǎng)在高校中的應(yīng)用,便利在校師生的學(xué)習(xí)生活,借由微信小程序?yàn)槭椎囊槐娦〕绦虍a(chǎn)品可以輕松實(shí)現(xiàn)這一目標(biāo),這同時(shí)也推動(dòng)了對(duì)無(wú)線互聯(lián)網(wǎng)絡(luò)在高校中的應(yīng)用這一問(wèn)題的思考,移動(dòng)互聯(lián)網(wǎng)還有什么是現(xiàn)階段沒(méi)有發(fā)掘的應(yīng)用?還能如何跨越維度的解決各方面的問(wèn)題?隨著思維的創(chuàng)新,軟件結(jié)構(gòu)體系的升級(jí),這些問(wèn)題將會(huì)很快得到一個(gè)甚至多個(gè)解,還會(huì)有更多待發(fā)掘的應(yīng)用領(lǐng)域等待著人們的探索。