基于PHP的客流相关大数据分析系统设计与实现

2017-11-20 14:51沙涛
电脑知识与技术 2017年25期
关键词:视图大数据

沙涛

摘要:综合目前对客流相关信息商业分析的优缺点,设计出一种美观易用的可视化分析结果显示界面。采用了MVC三层架构思想,在实现客流量、入店量、入店率等客流相关基本信息的查询功能的基础上,以3D渐变模型输出未来人流预测结果变化,对结果的可视化进行了美化,并增加了硬件管理的功能。

关键词:大数据;PHP;MVC;B/S;视图

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)25-0232-03

隨着无线互联网技术的发展,促进了无线数据采集行业的发展和应用。近年来无线数据采集技术在医疗、设备管理以及商业智能等领域获得了广泛的应用。在诸多应用中,对商场中顾客活动信息的采集和分析及预测是其重要的一个方面。如今商业竞争日益激烈,有效的运用并分析各种顾客数据信息成为商业营销成败的重要因素。这使得经营者必须对不停变化的市场做出正确反应,且具备商业前瞻性和尽可能地节约商业运作成本,提高商场日常运行的科学性、提高环境的舒适性、人力资源配置的合理性等。而市场规律的主导者便是顾客,若能科学,有效地对客流相关信息进行时间空间上多维度的分析,并及时地做出经营决策,必然对商业销售有很大帮助。本项目旨在开发出方便商家分析客户相关数据,减小管理人员工作量,迅速把握市场动向,帮助商家做出快速、正确的决策的管理系统。

1 PHPMVC架构思想

PHP作为一种超文本预处理器,它的MVC架构分为Model(模型)、View(视图)、Controller(控制器),Model(模型),负责程序应用功能的实现,程序的逻辑的实现。使用强类型的数据集,通过结构化查询语句,实现对数据库中的数据进行查询、插入、更新、删除等操作,负责数据管理,数据生成。View(视图),控制器调用模型类后返回的数据通过视图组装成不同格式的输出。视图根据不同的需求,来决定调用模板引擎进行内容解析后输出还是直接输出。Controller(控制器),控制器主要负责请求的接收,并调用相关的模型处理,并最终通过视图输出。控制器将处理好的参数以参数绑定的形式传递给视图中的模板,最终由经过PHP预处理的静态页面呈现,如图1所示。

2 Web系统设计

2.1 数据库设计

本项目采用MySQL5.7.14作为后台数据库,并针对WiFi探针设备id、WiFi探针设备mac地址、发送频率、设备连接的WiFi的ssid等数据对象建立相应的数据表:WiFi探针设备总表:保存WiFi探针设备的id、mac地址、发送频率、设备连接的WiFi的ssid、设备连接的WiFi的mac、采集到mac的时间、北半球纬度、北半球经度、地址信息等基本信息,设置行标id为主键;WiFi探针设备详细信息表:参照WiFi探针上传记录的id、采集时间、采集到的手机mac地址、手机信号强度、距离、手机连接WiFi的ssid、是否与路由器相连、目标设备的mac、手机是否休眠、信道、曾经连接过的WiFi等基本信息,设置参照WiFi探针上传记录的id为主键,并参照WiFi探针设备总表的主键;获取WiFi探针设备的基本信息,从而为大数据分析提供数据基础。为数据集提供建立的数据表如图2和图3所示。

2.2 业务逻辑与数据访问

客流分析模块主要通过建立数据对象的方式来绑定和获取所需数据信息,首先建立一个命名为flow_day()的方法用来获取近七日客流量变化的信息,首先设置七个时间变量,分别为最近七天的时间戳,通过PHP调用SQL语句中的聚集函数,将每天的客流量计数并存入到数据对象中,之后通过PHP进行参数绑定,输出到对应视图模板flow_day.html中,视图将传递过来的参数解析后,渲染输出结果显示。类似地,定义flow_cent_day()用来获取入店率,定义visiting_cycle()用来获取顾客来访周期,定义resident_time()用来获取驻店时长,定义agglomeration()用来实现硬件监控功能。

对于客流量的获取,定义7个数string型变量,用于获取不同的时间戳,在组装SQL查询语句时,首先用date()函数将时间戳转化为日期,然后用命名占位符的方式,将变量作为条件组装到语句中,以防止SQL注入攻击,然后建立一个数组对象$list用来存储查询结果,之后对查询结果进行统计,将结果通过assign()函数进行参数绑定,并将对应的值输出至页面中间EChart的图表中。

对于入店率,首先我们要获取客流量,在获取了客流量之后,我们定义一个区域内的公共WiFi,并获得它的mac地址,当顾客进入区域内时若开启连接WiFi功能就会自动连接上公共WiFi,WiFi探针设备采集到顾客手机连接的WiFi的mac地址与定义好的公共WiFimac地址相同时,该顾客会被记录为入店访客,通过调用flow_cent_day()实现这一功能,并在前端设置一个800X500px的div容器用于装入EChart组件来显示结果,核心代码如下:

若要进入顾客来访周期功能页,可在浮动菜单栏的中的顾客行为分析下找到,设置浮动菜单栏为ul标签,在ul标签下定义li标签为顾客行为分析,再在该li标签下建一个ul标签,然后建立li标签,在其中定义一个a标签实现页面跳转,类似地,将其他功能放入菜单栏中,实现功能导航。

为了实现硬件监控功能,首先得对上传数据进行监控,调用PHP自带函数time()获取当前时间,然后调用SQL语句检查数据库中是否有数据正在上传,如果有则创建一个命名为text的string对象存入“FINE,当前此WiFi探针正在上传数据,良好”,如果检测到数据库没有更新数据则存入“Warning,当前此wifi探针没有上传数据,请检查”,整个系统部署在云服务器上,采用流行的B/S架构,用户只需打开浏览器输入ip地址即可使用本系统的功能。endprint

以上业务流程如图4所示。

2.3 用户界面设计

Web界面设计采用了Material Design设计风格,主要由title菜单和body主体两部分构成,title中横排摆放三个div,第一个div中用于显示语言环境和切换,第二个div中显示项目logo图片、联系电话、邮箱、地址并配以图片来增加整体美观程度,第三个div中包含浮动导航菜单栏。body区域中间为数据结果显示区,下方为技术支持链接。

浮动菜单栏整体为一个ul标签,在第一个ul中分为五个li标签,分别为首页、硬件管理、客流分析、顾客行为分析和商业大数据分析,每个li标签下再建立子ul标签,并在ul标签下建立若干li标签用于存放跳转到对应功能页面的a标签,当用户想要访问某一功能时,即可在浮动菜单栏第一层li标签中找到所需功能的类别,将鼠标移动到类别上去后,即可在其下拉菜单中找到功能页面跳转按钮,点击即可进入功能页面。浮动菜单栏采用白色纯色填充,与人流量大数据分析系统的主题色对应,并配以简约大气的FontAwesome字体。

body部分中间为图表展示,运用了echarts.js组件,根据不同功能,使用不同的图表来展示,以入店率为例,将其背景颜色设为#999,以使其适合整体风格设计,在图表主题选项中将saveAsImage设置为{show:true}使得用户能够随时将结果以图片形式保存,接着设置三个数据对象:客流量、入店量、入店率,设置y轴最大值为1000和100%,每行间隔设置为100和10%,以保證数据量在这个区间内,然后设置x轴为近七天的时间点,间隔为一天,然后将type设置为shadow,这个属性能够实现鼠标悬浮在图表上时,显示动态效果和细节信息。然后把控制器中将会传递到这个页面的数据用{$变量名}的形式存放到三个数据对象的data属性里,这样PHP会自动解析其中的数据。

图表下方是数据显示中心,实质上是一个7行的p标签,标签中每行内容用

换行,并设置为居中显示,每一行中除了第一段直接使用编辑好的文字,其余使用由控制器传来的参数决定,将数据设为半透明灰色样式以提高整体美观,具体设置如下:font-size:20px;line-height:30px;color:#9b9b9b;text-align:center;margin:13px 0 0,从而保证数据信息能跨行显示。

人流量大数据分析系统考虑到主要用户为商铺经营者或需要密切监控人流变化的区域,所以整体风格应适用于商用。背景颜色不能太深,如果底层颜色过深,对比就会过于强烈,不利于颜色丰富的图片和图表的显示效果。背景图片为商务办公场景图片,图片上附带有文字说明,所以将图片用PS进行了虚化,更好的显示文字信息。主界面和页底图片均横铺满整个页面,使得页面整体效果更加大气,符合应用场景。

body底部为一个大的div用于存放背景图片,在这个div中有四个小的div,分为关于我们、功能中心、技术支持和联系详情,在关于我们的div中设置height为两行文字的高度,在其中插入p标签作为文字说明。功能中心、技术支持和联系详情都为一个strong标签的标题加上ul标签包含三个li标签的菜单。设置div为最外层div的高度,为了使得内容能够在每个div的中间显示,就需要在这些区域内填充一个适合内容大小的div,并将这个div的display属性设置为none即不可见,再在div中设置一个strong标签和一个ul标签,将要显示的标签的display属性设置为block,strong标签用于存放标题,所以需要加粗加大显示,ul标签中存放3个li标签,每个li标签中放置一个a标签实现页面跳转。ul标签需要设置为小于外层div宽度,并调整保证在IE、火狐等浏览器中能够正常显示,最后将可以点击的内容的cursor属性设置为hand,这样当鼠标移动到内容上时会变为一个像手一样的光标。底部菜单设计的核心代码如下:

3 项目成果与分析

结合以上步骤,以笔者使用WiFi探针设备采集到的数据为例,在火狐浏览器上的数据分析结果显示界面如图5所示,同参考文献[4]等系统相比,本系统可视化程度更高,获取源数据无需用户经过某个特定设备,只要顾客携带手机等无线网络设备即可获取分析所要的源数据,同时整个系统采用B/S架构,用户无需下载客户端,只要打开浏览器就可以随时随地访问本系统,查看分析结果。此外本系统进一步集成了硬件管理功能,方便用户看到硬件工作状态。

4 结束语

针对目前大数据商业客流分析还没有很完备成熟的系统的现状,本文设计并实现了一种基于PHP的客流相关大数据分析系统,采用MySQL作为后台数据库,WiFi探针采集源数据,结合PHP对源数据进行数据分析与挖掘,对顾客进行多个维度的定量分析,并将结果通过可视化图表反馈给用户,作为用户的商铺拥有者可根据本系统提供的分析结果来进行有效的管理工作,增加销售利润,大数据时代,收集数据,对大数据的应用将会是未来发展的前沿,如何实时上传数据,提高数据分析的计算能力将是下阶段工作的重点。

参考文献:

[1] Larry Ullman. PHP与MySQL动态网站开发[M]. 杜凯,陈宗斌,译. 北京: 人民邮电出版社, 2013.

[2] 史杨. 基于PHP技术网络考试系统的开发[J]. 电脑知识与技术, 2011, 7(6):1301-1303.

[3] 迈耶. CSS权威指南[M]. 北京: 中国电力出版社, 2008.

[4] 谢少群. 大数据时代商场客流分析系统开发与研究[J]. 大众科技, 2014, 16(176):163-164.

[5] 林子雨. 大数据技术原理与应用[M]. 2版.北京: 人民邮电出版社, 2017.

[6] 熊忠阳. 面向商业智能的并行数据挖掘技术及应用研究[D]. 重庆: 重庆大学, 2004.

[7] 冷彪. 基于客流数据的区域出行特征聚类[J]. 计算机研究与发展, 2014, 51(12):2653-2662.endprint

猜你喜欢
视图大数据
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图