沙濤
摘要:綜合目前對(duì)客流相關(guān)信息商業(yè)分析的優(yōu)缺點(diǎn),設(shè)計(jì)出一種美觀易用的可視化分析結(jié)果顯示界面。采用了MVC三層架構(gòu)思想,在實(shí)現(xiàn)客流量、入店量、入店率等客流相關(guān)基本信息的查詢功能的基礎(chǔ)上,以3D漸變模型輸出未來(lái)人流預(yù)測(cè)結(jié)果變化,對(duì)結(jié)果的可視化進(jìn)行了美化,并增加了硬件管理的功能。
關(guān)鍵詞:大數(shù)據(jù);PHP;MVC;B/S;視圖
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)25-0232-03
隨著無(wú)線互聯(lián)網(wǎng)技術(shù)的發(fā)展,促進(jìn)了無(wú)線數(shù)據(jù)采集行業(yè)的發(fā)展和應(yīng)用。近年來(lái)無(wú)線數(shù)據(jù)采集技術(shù)在醫(yī)療、設(shè)備管理以及商業(yè)智能等領(lǐng)域獲得了廣泛的應(yīng)用。在諸多應(yīng)用中,對(duì)商場(chǎng)中顧客活動(dòng)信息的采集和分析及預(yù)測(cè)是其重要的一個(gè)方面。如今商業(yè)競(jìng)爭(zhēng)日益激烈,有效的運(yùn)用并分析各種顧客數(shù)據(jù)信息成為商業(yè)營(yíng)銷成敗的重要因素。這使得經(jīng)營(yíng)者必須對(duì)不停變化的市場(chǎng)做出正確反應(yīng),且具備商業(yè)前瞻性和盡可能地節(jié)約商業(yè)運(yùn)作成本,提高商場(chǎng)日常運(yùn)行的科學(xué)性、提高環(huán)境的舒適性、人力資源配置的合理性等。而市場(chǎng)規(guī)律的主導(dǎo)者便是顧客,若能科學(xué),有效地對(duì)客流相關(guān)信息進(jìn)行時(shí)間空間上多維度的分析,并及時(shí)地做出經(jīng)營(yíng)決策,必然對(duì)商業(yè)銷售有很大幫助。本項(xiàng)目旨在開發(fā)出方便商家分析客戶相關(guān)數(shù)據(jù),減小管理人員工作量,迅速把握市場(chǎng)動(dòng)向,幫助商家做出快速、正確的決策的管理系統(tǒng)。
1 PHPMVC架構(gòu)思想
PHP作為一種超文本預(yù)處理器,它的MVC架構(gòu)分為Model(模型)、View(視圖)、Controller(控制器),Model(模型),負(fù)責(zé)程序應(yīng)用功能的實(shí)現(xiàn),程序的邏輯的實(shí)現(xiàn)。使用強(qiáng)類型的數(shù)據(jù)集,通過(guò)結(jié)構(gòu)化查詢語(yǔ)句,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行查詢、插入、更新、刪除等操作,負(fù)責(zé)數(shù)據(jù)管理,數(shù)據(jù)生成。View(視圖),控制器調(diào)用模型類后返回的數(shù)據(jù)通過(guò)視圖組裝成不同格式的輸出。視圖根據(jù)不同的需求,來(lái)決定調(diào)用模板引擎進(jìn)行內(nèi)容解析后輸出還是直接輸出。Controller(控制器),控制器主要負(fù)責(zé)請(qǐng)求的接收,并調(diào)用相關(guān)的模型處理,并最終通過(guò)視圖輸出??刂破鲗⑻幚砗玫膮?shù)以參數(shù)綁定的形式傳遞給視圖中的模板,最終由經(jīng)過(guò)PHP預(yù)處理的靜態(tài)頁(yè)面呈現(xiàn),如圖1所示。
2 Web系統(tǒng)設(shè)計(jì)
2.1 數(shù)據(jù)庫(kù)設(shè)計(jì)
本項(xiàng)目采用MySQL5.7.14作為后臺(tái)數(shù)據(jù)庫(kù),并針對(duì)WiFi探針設(shè)備id、WiFi探針設(shè)備mac地址、發(fā)送頻率、設(shè)備連接的WiFi的ssid等數(shù)據(jù)對(duì)象建立相應(yīng)的數(shù)據(jù)表:WiFi探針設(shè)備總表:保存WiFi探針設(shè)備的id、mac地址、發(fā)送頻率、設(shè)備連接的WiFi的ssid、設(shè)備連接的WiFi的mac、采集到mac的時(shí)間、北半球緯度、北半球經(jīng)度、地址信息等基本信息,設(shè)置行標(biāo)id為主鍵;WiFi探針設(shè)備詳細(xì)信息表:參照WiFi探針上傳記錄的id、采集時(shí)間、采集到的手機(jī)mac地址、手機(jī)信號(hào)強(qiáng)度、距離、手機(jī)連接WiFi的ssid、是否與路由器相連、目標(biāo)設(shè)備的mac、手機(jī)是否休眠、信道、曾經(jīng)連接過(guò)的WiFi等基本信息,設(shè)置參照WiFi探針上傳記錄的id為主鍵,并參照WiFi探針設(shè)備總表的主鍵;獲取WiFi探針設(shè)備的基本信息,從而為大數(shù)據(jù)分析提供數(shù)據(jù)基礎(chǔ)。為數(shù)據(jù)集提供建立的數(shù)據(jù)表如圖2和圖3所示。
2.2 業(yè)務(wù)邏輯與數(shù)據(jù)訪問(wèn)
客流分析模塊主要通過(guò)建立數(shù)據(jù)對(duì)象的方式來(lái)綁定和獲取所需數(shù)據(jù)信息,首先建立一個(gè)命名為flow_day()的方法用來(lái)獲取近七日客流量變化的信息,首先設(shè)置七個(gè)時(shí)間變量,分別為最近七天的時(shí)間戳,通過(guò)PHP調(diào)用SQL語(yǔ)句中的聚集函數(shù),將每天的客流量計(jì)數(shù)并存入到數(shù)據(jù)對(duì)象中,之后通過(guò)PHP進(jìn)行參數(shù)綁定,輸出到對(duì)應(yīng)視圖模板flow_day.html中,視圖將傳遞過(guò)來(lái)的參數(shù)解析后,渲染輸出結(jié)果顯示。類似地,定義flow_cent_day()用來(lái)獲取入店率,定義visiting_cycle()用來(lái)獲取顧客來(lái)訪周期,定義resident_time()用來(lái)獲取駐店時(shí)長(zhǎng),定義agglomeration()用來(lái)實(shí)現(xiàn)硬件監(jiān)控功能。
對(duì)于客流量的獲取,定義7個(gè)數(shù)string型變量,用于獲取不同的時(shí)間戳,在組裝SQL查詢語(yǔ)句時(shí),首先用date()函數(shù)將時(shí)間戳轉(zhuǎn)化為日期,然后用命名占位符的方式,將變量作為條件組裝到語(yǔ)句中,以防止SQL注入攻擊,然后建立一個(gè)數(shù)組對(duì)象$list用來(lái)存儲(chǔ)查詢結(jié)果,之后對(duì)查詢結(jié)果進(jìn)行統(tǒng)計(jì),將結(jié)果通過(guò)assign()函數(shù)進(jìn)行參數(shù)綁定,并將對(duì)應(yīng)的值輸出至頁(yè)面中間EChart的圖表中。
對(duì)于入店率,首先我們要獲取客流量,在獲取了客流量之后,我們定義一個(gè)區(qū)域內(nèi)的公共WiFi,并獲得它的mac地址,當(dāng)顧客進(jìn)入?yún)^(qū)域內(nèi)時(shí)若開啟連接WiFi功能就會(huì)自動(dòng)連接上公共WiFi,WiFi探針設(shè)備采集到顧客手機(jī)連接的WiFi的mac地址與定義好的公共WiFimac地址相同時(shí),該顧客會(huì)被記錄為入店訪客,通過(guò)調(diào)用flow_cent_day()實(shí)現(xiàn)這一功能,并在前端設(shè)置一個(gè)800X500px的div容器用于裝入EChart組件來(lái)顯示結(jié)果,核心代碼如下:
若要進(jìn)入顧客來(lái)訪周期功能頁(yè),可在浮動(dòng)菜單欄的中的顧客行為分析下找到,設(shè)置浮動(dòng)菜單欄為ul標(biāo)簽,在ul標(biāo)簽下定義li標(biāo)簽為顧客行為分析,再在該li標(biāo)簽下建一個(gè)ul標(biāo)簽,然后建立li標(biāo)簽,在其中定義一個(gè)a標(biāo)簽實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn),類似地,將其他功能放入菜單欄中,實(shí)現(xiàn)功能導(dǎo)航。
為了實(shí)現(xiàn)硬件監(jiān)控功能,首先得對(duì)上傳數(shù)據(jù)進(jìn)行監(jiān)控,調(diào)用PHP自帶函數(shù)time()獲取當(dāng)前時(shí)間,然后調(diào)用SQL語(yǔ)句檢查數(shù)據(jù)庫(kù)中是否有數(shù)據(jù)正在上傳,如果有則創(chuàng)建一個(gè)命名為text的string對(duì)象存入“FINE,當(dāng)前此WiFi探針正在上傳數(shù)據(jù),良好”,如果檢測(cè)到數(shù)據(jù)庫(kù)沒(méi)有更新數(shù)據(jù)則存入“Warning,當(dāng)前此wifi探針沒(méi)有上傳數(shù)據(jù),請(qǐng)檢查”,整個(gè)系統(tǒng)部署在云服務(wù)器上,采用流行的B/S架構(gòu),用戶只需打開瀏覽器輸入ip地址即可使用本系統(tǒng)的功能。endprint
以上業(yè)務(wù)流程如圖4所示。
2.3 用戶界面設(shè)計(jì)
Web界面設(shè)計(jì)采用了Material Design設(shè)計(jì)風(fēng)格,主要由title菜單和body主體兩部分構(gòu)成,title中橫排擺放三個(gè)div,第一個(gè)div中用于顯示語(yǔ)言環(huán)境和切換,第二個(gè)div中顯示項(xiàng)目logo圖片、聯(lián)系電話、郵箱、地址并配以圖片來(lái)增加整體美觀程度,第三個(gè)div中包含浮動(dòng)導(dǎo)航菜單欄。body區(qū)域中間為數(shù)據(jù)結(jié)果顯示區(qū),下方為技術(shù)支持鏈接。
浮動(dòng)菜單欄整體為一個(gè)ul標(biāo)簽,在第一個(gè)ul中分為五個(gè)li標(biāo)簽,分別為首頁(yè)、硬件管理、客流分析、顧客行為分析和商業(yè)大數(shù)據(jù)分析,每個(gè)li標(biāo)簽下再建立子ul標(biāo)簽,并在ul標(biāo)簽下建立若干li標(biāo)簽用于存放跳轉(zhuǎn)到對(duì)應(yīng)功能頁(yè)面的a標(biāo)簽,當(dāng)用戶想要訪問(wèn)某一功能時(shí),即可在浮動(dòng)菜單欄第一層li標(biāo)簽中找到所需功能的類別,將鼠標(biāo)移動(dòng)到類別上去后,即可在其下拉菜單中找到功能頁(yè)面跳轉(zhuǎn)按鈕,點(diǎn)擊即可進(jìn)入功能頁(yè)面。浮動(dòng)菜單欄采用白色純色填充,與人流量大數(shù)據(jù)分析系統(tǒng)的主題色對(duì)應(yīng),并配以簡(jiǎn)約大氣的FontAwesome字體。
body部分中間為圖表展示,運(yùn)用了echarts.js組件,根據(jù)不同功能,使用不同的圖表來(lái)展示,以入店率為例,將其背景顏色設(shè)為#999,以使其適合整體風(fēng)格設(shè)計(jì),在圖表主題選項(xiàng)中將saveAsImage設(shè)置為{show:true}使得用戶能夠隨時(shí)將結(jié)果以圖片形式保存,接著設(shè)置三個(gè)數(shù)據(jù)對(duì)象:客流量、入店量、入店率,設(shè)置y軸最大值為1000和100%,每行間隔設(shè)置為100和10%,以保證數(shù)據(jù)量在這個(gè)區(qū)間內(nèi),然后設(shè)置x軸為近七天的時(shí)間點(diǎn),間隔為一天,然后將type設(shè)置為shadow,這個(gè)屬性能夠?qū)崿F(xiàn)鼠標(biāo)懸浮在圖表上時(shí),顯示動(dòng)態(tài)效果和細(xì)節(jié)信息。然后把控制器中將會(huì)傳遞到這個(gè)頁(yè)面的數(shù)據(jù)用{$變量名}的形式存放到三個(gè)數(shù)據(jù)對(duì)象的data屬性里,這樣PHP會(huì)自動(dòng)解析其中的數(shù)據(jù)。
圖表下方是數(shù)據(jù)顯示中心,實(shí)質(zhì)上是一個(gè)7行的p標(biāo)簽,標(biāo)簽中每行內(nèi)容用
換行,并設(shè)置為居中顯示,每一行中除了第一段直接使用編輯好的文字,其余使用由控制器傳來(lái)的參數(shù)決定,將數(shù)據(jù)設(shè)為半透明灰色樣式以提高整體美觀,具體設(shè)置如下:font-size:20px;line-height:30px;color:#9b9b9b;text-align:center;margin:13px 0 0,從而保證數(shù)據(jù)信息能跨行顯示。
人流量大數(shù)據(jù)分析系統(tǒng)考慮到主要用戶為商鋪經(jīng)營(yíng)者或需要密切監(jiān)控人流變化的區(qū)域,所以整體風(fēng)格應(yīng)適用于商用。背景顏色不能太深,如果底層顏色過(guò)深,對(duì)比就會(huì)過(guò)于強(qiáng)烈,不利于顏色豐富的圖片和圖表的顯示效果。背景圖片為商務(wù)辦公場(chǎng)景圖片,圖片上附帶有文字說(shuō)明,所以將圖片用PS進(jìn)行了虛化,更好的顯示文字信息。主界面和頁(yè)底圖片均橫鋪滿整個(gè)頁(yè)面,使得頁(yè)面整體效果更加大氣,符合應(yīng)用場(chǎng)景。
body底部為一個(gè)大的div用于存放背景圖片,在這個(gè)div中有四個(gè)小的div,分為關(guān)于我們、功能中心、技術(shù)支持和聯(lián)系詳情,在關(guān)于我們的div中設(shè)置height為兩行文字的高度,在其中插入p標(biāo)簽作為文字說(shuō)明。功能中心、技術(shù)支持和聯(lián)系詳情都為一個(gè)strong標(biāo)簽的標(biāo)題加上ul標(biāo)簽包含三個(gè)li標(biāo)簽的菜單。設(shè)置div為最外層div的高度,為了使得內(nèi)容能夠在每個(gè)div的中間顯示,就需要在這些區(qū)域內(nèi)填充一個(gè)適合內(nèi)容大小的div,并將這個(gè)div的display屬性設(shè)置為none即不可見,再在div中設(shè)置一個(gè)strong標(biāo)簽和一個(gè)ul標(biāo)簽,將要顯示的標(biāo)簽的display屬性設(shè)置為block,strong標(biāo)簽用于存放標(biāo)題,所以需要加粗加大顯示,ul標(biāo)簽中存放3個(gè)li標(biāo)簽,每個(gè)li標(biāo)簽中放置一個(gè)a標(biāo)簽實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)。ul標(biāo)簽需要設(shè)置為小于外層div寬度,并調(diào)整保證在IE、火狐等瀏覽器中能夠正常顯示,最后將可以點(diǎn)擊的內(nèi)容的cursor屬性設(shè)置為hand,這樣當(dāng)鼠標(biāo)移動(dòng)到內(nèi)容上時(shí)會(huì)變?yōu)橐粋€(gè)像手一樣的光標(biāo)。底部菜單設(shè)計(jì)的核心代碼如下:
3 項(xiàng)目成果與分析
結(jié)合以上步驟,以筆者使用WiFi探針設(shè)備采集到的數(shù)據(jù)為例,在火狐瀏覽器上的數(shù)據(jù)分析結(jié)果顯示界面如圖5所示,同參考文獻(xiàn)[4]等系統(tǒng)相比,本系統(tǒng)可視化程度更高,獲取源數(shù)據(jù)無(wú)需用戶經(jīng)過(guò)某個(gè)特定設(shè)備,只要顧客攜帶手機(jī)等無(wú)線網(wǎng)絡(luò)設(shè)備即可獲取分析所要的源數(shù)據(jù),同時(shí)整個(gè)系統(tǒng)采用B/S架構(gòu),用戶無(wú)需下載客戶端,只要打開瀏覽器就可以隨時(shí)隨地訪問(wèn)本系統(tǒng),查看分析結(jié)果。此外本系統(tǒng)進(jìn)一步集成了硬件管理功能,方便用戶看到硬件工作狀態(tài)。
4 結(jié)束語(yǔ)
針對(duì)目前大數(shù)據(jù)商業(yè)客流分析還沒(méi)有很完備成熟的系統(tǒng)的現(xiàn)狀,本文設(shè)計(jì)并實(shí)現(xiàn)了一種基于PHP的客流相關(guān)大數(shù)據(jù)分析系統(tǒng),采用MySQL作為后臺(tái)數(shù)據(jù)庫(kù),WiFi探針采集源數(shù)據(jù),結(jié)合PHP對(duì)源數(shù)據(jù)進(jìn)行數(shù)據(jù)分析與挖掘,對(duì)顧客進(jìn)行多個(gè)維度的定量分析,并將結(jié)果通過(guò)可視化圖表反饋給用戶,作為用戶的商鋪擁有者可根據(jù)本系統(tǒng)提供的分析結(jié)果來(lái)進(jìn)行有效的管理工作,增加銷售利潤(rùn),大數(shù)據(jù)時(shí)代,收集數(shù)據(jù),對(duì)大數(shù)據(jù)的應(yīng)用將會(huì)是未來(lái)發(fā)展的前沿,如何實(shí)時(shí)上傳數(shù)據(jù),提高數(shù)據(jù)分析的計(jì)算能力將是下階段工作的重點(diǎn)。
參考文獻(xiàn):
[1] Larry Ullman. PHP與MySQL動(dòng)態(tài)網(wǎng)站開發(fā)[M]. 杜凱,陳宗斌,譯. 北京: 人民郵電出版社, 2013.
[2] 史楊. 基于PHP技術(shù)網(wǎng)絡(luò)考試系統(tǒng)的開發(fā)[J]. 電腦知識(shí)與技術(shù), 2011, 7(6):1301-1303.
[3] 邁耶. CSS權(quán)威指南[M]. 北京: 中國(guó)電力出版社, 2008.
[4] 謝少群. 大數(shù)據(jù)時(shí)代商場(chǎng)客流分析系統(tǒng)開發(fā)與研究[J]. 大眾科技, 2014, 16(176):163-164.
[5] 林子雨. 大數(shù)據(jù)技術(shù)原理與應(yīng)用[M]. 2版.北京: 人民郵電出版社, 2017.
[6] 熊忠陽(yáng). 面向商業(yè)智能的并行數(shù)據(jù)挖掘技術(shù)及應(yīng)用研究[D]. 重慶: 重慶大學(xué), 2004.
[7] 冷彪. 基于客流數(shù)據(jù)的區(qū)域出行特征聚類[J]. 計(jì)算機(jī)研究與發(fā)展, 2014, 51(12):2653-2662.endprint