林偉瓊
(廈門(mén)大學(xué)嘉庚學(xué)院,福建 漳州 363105)
目前,各類(lèi)社區(qū)團(tuán)購(gòu)平臺(tái)發(fā)展迅猛,數(shù)量巨大的商家也快速進(jìn)入該行業(yè),但針對(duì)平臺(tái)的快遞管理還比較落后。擁有快捷、有效收寄途徑的多平臺(tái)客戶(hù)端能夠提高用戶(hù)使用意愿,在提高效率的同時(shí)吸引更多用戶(hù)加入。隨著微信的普及,微信小程序逐漸受到越來(lái)越多人的關(guān)注,因其無(wú)需下載安裝,在微信中可直接使用而受到廣大用戶(hù)的青睞。故選擇微信小程序作為主平臺(tái)。為研究平臺(tái)快遞系統(tǒng)的運(yùn)作模式與后臺(tái)數(shù)據(jù)傳遞方式,同時(shí)兼顧當(dāng)前用戶(hù)的使用習(xí)慣,本設(shè)計(jì)從PC、微信、網(wǎng)頁(yè)3個(gè)不同的平臺(tái)模擬了從商家寄件、快遞員處理到管理員查詢(xún),以及客戶(hù)收貨確認(rèn)的全流程。
Spring是高效的開(kāi)源框架,旨在通過(guò)解決業(yè)務(wù)邏輯層和其他各層的松耦合問(wèn)題來(lái)簡(jiǎn)化企業(yè)應(yīng)用程序開(kāi)發(fā)。Spring框架是分層結(jié)構(gòu),由7個(gè)定義好的模塊組成[1],如圖1所示。
圖1 Spring框架
好的模式對(duì)于項(xiàng)目效率的提升至關(guān)重要。MVC即模型視圖控制器,是一款軟件設(shè)計(jì)模型。MVC模式將業(yè)務(wù)邏輯、數(shù)據(jù)和接口顯示的方法分離,將業(yè)務(wù)邏輯聚合到一個(gè)組件中,無(wú)需在改進(jìn)和個(gè)性化定制界面與用戶(hù)交互時(shí)重寫(xiě)業(yè)務(wù)邏輯。MVC可以將傳統(tǒng)的輸入、處理和輸出功能映射到邏輯圖形用戶(hù)界面結(jié)構(gòu)中,擁有耦合性低、重用性高、生命周期成本低、部署快、可維護(hù)性高等優(yōu)點(diǎn)。
MVC是J2EE的核心思想,包括主流的三大組件view層、model層、controller層,分別為表現(xiàn)層組件、控制器層組件、業(yè)務(wù)邏輯層組件[2]。本系統(tǒng)選用新興框架SpringMVC,其模式架構(gòu)如圖2所示。
圖2 SpringMVC模式架構(gòu)
1.3.1 微信小程序
微信小程序是一種無(wú)需下載即可使用的應(yīng)用,它依托于微信,可跨安卓和iOS平臺(tái)使用,開(kāi)發(fā)成本低,操作簡(jiǎn)單。微信客戶(hù)可以通過(guò)微信聊天進(jìn)入小程序,也可以在使用小程序時(shí)方便切換到聊天界面,靈活快捷。基于小程序的諸多優(yōu)點(diǎn),小程序的線上線下推廣十分普遍[3]。本系統(tǒng)小程序主要用到的請(qǐng)求方式為HTTPS連接請(qǐng)求。
1.3.2 微信開(kāi)發(fā)者工具
為幫助開(kāi)發(fā)者高效開(kāi)發(fā)并調(diào)試微信小程序,微信開(kāi)發(fā)人員在原有公眾號(hào)網(wǎng)頁(yè)調(diào)試工具的基礎(chǔ)上,推出了全新的微信開(kāi)發(fā)者工具,集成了公眾號(hào)網(wǎng)頁(yè)調(diào)試和小程序調(diào)試兩種開(kāi)發(fā)模式[3]。
使用小程序調(diào)試時(shí),開(kāi)發(fā)者可以實(shí)現(xiàn)小程序API和頁(yè)面開(kāi)發(fā)調(diào)試、代碼查看和編輯、小程序預(yù)覽和發(fā)布等功能。
1.3.3 騰訊位置服務(wù)SDK
騰訊位置服務(wù)為微信小程序提供了基礎(chǔ)的標(biāo)點(diǎn)能力、線和圓的繪制接口等地圖組件和位置展示、地圖選點(diǎn)等地圖API位置服務(wù),使得開(kāi)發(fā)者可以自由開(kāi)發(fā)相關(guān)微信小程序。騰訊位置服務(wù)微信小程序JavaScript SDK是專(zhuān)為小程序開(kāi)發(fā)者提供的LBS數(shù)據(jù)服務(wù)工具包,可以在小程序中調(diào)用騰訊位置服務(wù)的POI檢索、關(guān)鍵詞輸入提示、地址解析、逆地址解析、行政區(qū)劃和距離計(jì)算等數(shù)據(jù)服務(wù)。
1.4.1 騰訊云服務(wù)器
云服務(wù)器(Cloud Virtual Machine, CVM)可提供安全可靠的彈性計(jì)算服務(wù),只需短短幾分鐘就可以在云端獲取并啟用CVM,滿足計(jì)算需求。隨著業(yè)務(wù)需求的變化,需根據(jù)客戶(hù)要求實(shí)時(shí)擴(kuò)展或縮減計(jì)算資源。CVM支持按需使用的資源計(jì)費(fèi),以降低軟硬件采購(gòu)成本,簡(jiǎn)化IT運(yùn)維工作[4]。本系統(tǒng)使用的云服務(wù)器選用Ubuntu 18.04操作系統(tǒng)。
1.4.2 MySQL數(shù)據(jù)庫(kù)
MySQL是一個(gè)快速、多用戶(hù)、多線程的SQL數(shù)據(jù)庫(kù)服務(wù)器,它可以作為不同操作系統(tǒng)的關(guān)系數(shù)據(jù)系統(tǒng),以客戶(hù)機(jī)服務(wù)器的方式實(shí)現(xiàn),屬于分布式數(shù)據(jù)庫(kù)管理系統(tǒng)。MySQL由于其開(kāi)源免費(fèi)、結(jié)構(gòu)簡(jiǎn)單、開(kāi)發(fā)門(mén)檻低等優(yōu)勢(shì),迅速成為互聯(lián)網(wǎng)行業(yè)首選數(shù)據(jù)庫(kù)。其中,結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)是進(jìn)行數(shù)據(jù)庫(kù)管理最常用的語(yǔ)言。MySQL數(shù)據(jù)庫(kù)通過(guò)數(shù)據(jù)機(jī)構(gòu)B+Tree實(shí)現(xiàn)索引,大大提高了查詢(xún)效率[5]。
物流管理系統(tǒng)工作分解結(jié)構(gòu)(WBS)如圖3所示。
圖3 物流管理系統(tǒng)工作分解結(jié)構(gòu)
物流管理系統(tǒng)模擬使用流程主要分為消費(fèi)者、管理員、快遞員3大模塊。
從消費(fèi)者使用網(wǎng)頁(yè)端登錄或微信端預(yù)約寄件開(kāi)始,消費(fèi)者端將填寫(xiě)的寄件信息上傳到云服務(wù)器上的MySQL數(shù)據(jù)庫(kù)。預(yù)約之后,消費(fèi)者前往網(wǎng)點(diǎn)寄件,管理員輸入消費(fèi)者預(yù)約寄件時(shí)填寫(xiě)的手機(jī)號(hào)碼,查詢(xún)相應(yīng)的預(yù)約單并在取得要寄的物品之后點(diǎn)擊“確認(rèn)”按鈕發(fā)貨;若之前未預(yù)約,則從快遞員端的填寫(xiě)信息頁(yè)面直接填寫(xiě)發(fā)貨信息,小程序更新數(shù)據(jù)庫(kù)中運(yùn)單的狀態(tài)。此時(shí)“預(yù)約-發(fā)貨”的流程完成。
運(yùn)單到達(dá)下一個(gè)站點(diǎn)后,由下一個(gè)站點(diǎn)的快遞員通過(guò)輸入運(yùn)單號(hào)或掃描條形碼來(lái)更改運(yùn)單的目前所在地和運(yùn)輸狀態(tài)等。
運(yùn)單到達(dá),收件人取件時(shí)再次輸入運(yùn)單號(hào)或掃描條形碼,運(yùn)單狀態(tài)變?yōu)椤耙咽肇洝保锪髋渌头?wù)結(jié)束。
在物品運(yùn)輸過(guò)程中,消費(fèi)者可以使用網(wǎng)頁(yè)或微信小程序,根據(jù)運(yùn)單號(hào)查詢(xún)運(yùn)輸信息。
管理員通過(guò)管理員端可以查看包括預(yù)約單在內(nèi)的運(yùn)單詳細(xì)信息、快遞員信息、網(wǎng)點(diǎn)信息或查看網(wǎng)點(diǎn)下運(yùn)單的進(jìn)出情況,以及對(duì)快遞員和網(wǎng)點(diǎn)信息進(jìn)行修改[6-7]。物流管理系統(tǒng)使用流程如圖4所示。
圖4 物流管理系統(tǒng)使用流程
物流管理系統(tǒng)功能分為4個(gè)模塊:C#管理員端、網(wǎng)頁(yè)用戶(hù)端、微信快遞員端與微信用戶(hù)端。用戶(hù)未從用戶(hù)端登錄時(shí),只能作為游客進(jìn)行簡(jiǎn)單的操作,登錄之后可以作為會(huì)員進(jìn)行快遞訂單的預(yù)約。管理員可以對(duì)消費(fèi)者、運(yùn)單、員工、網(wǎng)點(diǎn)等進(jìn)行數(shù)據(jù)的增、刪、改、查管理。快遞員可以更新運(yùn)單狀態(tài),便于查詢(xún)者快速知曉快遞的運(yùn)輸情況。4個(gè)應(yīng)用通過(guò)各自不同的方法鏈接并操作云服務(wù)器Ubuntu系統(tǒng)上的MySQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互[8-9]。物流管理系統(tǒng)結(jié)構(gòu)如圖5所示。
圖5 物流管理系統(tǒng)結(jié)構(gòu)
(1)管理員登錄及權(quán)限管理。
(2)菜單欄擁有4個(gè)子菜單,分別為開(kāi)始、信息查詢(xún)、信息管理以及精確查詢(xún)。每個(gè)子菜單下都有相應(yīng)的按鈕,是程序執(zhí)行的主要觸發(fā)點(diǎn)。MyTabPage類(lèi)保存了程序用到的界面布局。
(3)主界面選項(xiàng)卡的動(dòng)態(tài)生成。
(4)信息查詢(xún)菜單主要用于無(wú)需輸入額外條件的總體查詢(xún),有4個(gè)按鈕,分別為員工信息查詢(xún)、網(wǎng)點(diǎn)信息查詢(xún)、運(yùn)單狀態(tài)查詢(xún)、已預(yù)約運(yùn)單查詢(xún)。
(5)信息管理菜單用于添加、刪除數(shù)據(jù)庫(kù)中的內(nèi)容,通過(guò)添加、刪除員工與網(wǎng)點(diǎn)的按鈕實(shí)現(xiàn)相關(guān)功能。
(6)精確查詢(xún)菜單功能主要是通過(guò)輸入單號(hào)來(lái)準(zhǔn)確查詢(xún)某個(gè)運(yùn)單的運(yùn)輸記錄,或通過(guò)員工號(hào)查詢(xún)員工、通過(guò)網(wǎng)點(diǎn)號(hào)查詢(xún)?cè)摼W(wǎng)點(diǎn)下員工、通過(guò)網(wǎng)點(diǎn)名稱(chēng)查詢(xún)?cè)摼W(wǎng)點(diǎn)派件記錄等。
(7)運(yùn)單追蹤。輸入8位運(yùn)單號(hào)后點(diǎn)擊“追蹤”按鈕,程序?qū)⑼ㄟ^(guò)運(yùn)單號(hào)查詢(xún)相應(yīng)的運(yùn)單信息,并通過(guò)DataTable顯示在列表中。
(8)查詢(xún)?cè)敿?xì)信息。輸入8位運(yùn)單號(hào)后,點(diǎn)擊“查詢(xún)?cè)敿?xì)信息”按鈕將進(jìn)入運(yùn)單的詳細(xì)信息界面,顯示MyOrder表中的運(yùn)單信息,并使用C-Code接口生成條形碼(條形碼內(nèi)容為運(yùn)單號(hào))。程序中選用生成運(yùn)單號(hào)的條形碼為Code128A類(lèi)型,編碼范圍是標(biāo)準(zhǔn)數(shù)字、字母、控制符、特殊字符。
(1)快遞員登錄實(shí)現(xiàn)與底部導(dǎo)航欄。
(2)運(yùn)單狀態(tài)更新功能便于快遞員更新運(yùn)單信息,更新方式包括輸入運(yùn)單號(hào)和掃描條形碼。
(3)寄件信息錄入功能是客戶(hù)未預(yù)約就前往網(wǎng)點(diǎn)郵寄快遞所需使用的功能。
(4)預(yù)約件處理功能用于客戶(hù)在網(wǎng)上預(yù)約后前往網(wǎng)點(diǎn)寄件,快遞員通過(guò)預(yù)約時(shí)預(yù)留的手機(jī)號(hào)碼獲取并確認(rèn)預(yù)約信息。
網(wǎng)頁(yè)端使用的框架為Spring+SpringMVC+Hibernate,采用騰訊云服務(wù)器,域名為clamdinner.cn。網(wǎng)頁(yè)用戶(hù)端具有運(yùn)單追蹤、快遞預(yù)約及網(wǎng)點(diǎn)查詢(xún)功能。用戶(hù)進(jìn)入訂單預(yù)約界面后,后臺(tái)會(huì)默認(rèn)將用戶(hù)注冊(cè)時(shí)填寫(xiě)的常用信息輸入寄件方信息中,所在城市與目的城市不可輸入,需從下拉框中選擇。待填寫(xiě)完成并通過(guò)合法性檢查之后方可提交,后臺(tái)將數(shù)據(jù)插入Appointment表中,生成一條訂單預(yù)約信息。
服務(wù)網(wǎng)點(diǎn)查詢(xún)功能僅提供Node表中已記錄的網(wǎng)點(diǎn)信息查詢(xún)功能。點(diǎn)擊按鈕,后臺(tái)直接查詢(xún)所有網(wǎng)點(diǎn)信息并在前端顯示[10-11]。
3.4.1 微信用戶(hù)端簡(jiǎn)介與預(yù)約寄件實(shí)現(xiàn)
微信用戶(hù)端主要架構(gòu)與微信快遞員端相同。預(yù)約功能僅在客戶(hù)預(yù)約寄件時(shí)使用??蛻?hù)填寫(xiě)信息后,后臺(tái)直接將信息記錄到預(yù)約表Appointment中。
在未同意寄件承諾之前,提交按鈕為灰色且不可選擇。點(diǎn)擊寄件人信息與收件人信息會(huì)跳轉(zhuǎn)到另一個(gè)頁(yè)面。
3.4.2 運(yùn)單追蹤
小程序主界面是運(yùn)單追蹤界面,輸入運(yùn)單號(hào),點(diǎn)擊“確定”或掃描條形碼就可以通過(guò)HTTPS請(qǐng)求得到數(shù)據(jù)庫(kù)中對(duì)應(yīng)訂單的信息。
3.4.3 地圖模塊
在點(diǎn)擊運(yùn)單追蹤界面的圖標(biāo)之后會(huì)進(jìn)入地圖模塊,在地圖上顯示運(yùn)單當(dāng)前所在地與目的地間的距離與路線,如圖6所示。
圖6 地圖界面
該功能主要使用了騰訊位置服務(wù)微信小程序JavaScript SDK的地址解析功能和騰訊地圖Direction API的駕車(chē)(Driving)路線規(guī)劃功能。
本系統(tǒng)基于現(xiàn)實(shí)的社區(qū)團(tuán)購(gòu)商家需求,模擬真實(shí)從客戶(hù)下單到收貨的快遞場(chǎng)景來(lái)實(shí)現(xiàn)快遞信息的管理。從網(wǎng)頁(yè)、微信用戶(hù)端、微信小程序快遞員端與C#管理端進(jìn)行開(kāi)發(fā),實(shí)現(xiàn)了對(duì)物流數(shù)據(jù)的有效監(jiān)控,以及對(duì)物流數(shù)據(jù)的透明管理。在提高管理效率的同時(shí)能夠增強(qiáng)用戶(hù)粘性,應(yīng)用前景廣闊。
物聯(lián)網(wǎng)技術(shù)2021年12期