微信关注的客户服务系统的设计与实现_第1页
微信关注的客户服务系统的设计与实现_第2页
微信关注的客户服务系统的设计与实现_第3页
微信关注的客户服务系统的设计与实现_第4页
微信关注的客户服务系统的设计与实现_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

...wd......wd......wd...微信关注的客户服务系统的设计与实现摘要微信,作为一款跨平台即时聊天工具,在短短几年的时间内凝聚了大批用户群体。现如今,微信俨然已经成人们的生活方式,因此,基于微信的应用如雨后春笋般飞速而生。开发者或商家可以在微信公众平台上申请应用账号即微信公众号,该帐号与QQ账号是相通的,通过公众号,商家可在微信平台上实现和特定群体的文字、图片、语音、视频的全方位沟通、互动,形成一种主流的线上线下微信互动营销方式。与传统app相比,在客户层面,基于微信关注的应用方便很多,用户不必下载安装,只需关注即可方便使用各项功能。在商家公司层面,基于微信关注的应用开发维护成本降低很多,安全性高,而且营销推广与传统方式相比成本更低,更加便捷,商家公司可定期给用户推送相关信息,还可与顾客进展互动,大大提高了用户粘度。本文描述的基于微信关注的客户服务系统在用户层面分为两类,客户和系统管理员。其中在客户层面实现了客户浏览信息,在线下单,样品抢先预定,互动反响,随时随地查看订单信息等功能。客户关注公众平台账号后首次进入应用时可选择与微信账号进展绑定,而后每次进入应用后不用再次登录,即可使用相关功能。对于客户,分为从未购置过产品和已经购置过产品两种,已经购置过产品的用户可享有预定样品的权限,以后每次有新品发布时,该类客户即可抢先预定。而从未购置过产品的用户则没有该权限。在管理员层面,管理员即使用本系统的商家公司可以随时随地查看运营情况,商品管理,信息发布,数据统计,处理订单等,还可以实现角色别离,所谓角色别离就是将系统管理员按不同的权限分为不同的角色。超级管理员、仓库、销售、运营等不同角色各司其职,互不干扰,使效率成倍提高。关键词:微信,微信公众平台,微信应用,APP目录摘要IABSTRACTII1前言11.1课题研究背景11.2课题研究现状11.2.1订阅号11.2.2服务号21.2.3企业号21.3课题研究目的21.4课题研究内容21.5本章小结32相关技术介绍42.1开发工具简介42.1.1网页开发工具42.1.2系统开发工具42.1.3数据库及其工具42.1.4建模工具42.2关键技术介绍52.2.1PHP52.2.2Jquery52.2.3JavaScript62.2.4ThinkPHP架构62.2.5bootstrap架构62.2.6MVC设计模式62.3软件/硬件要求72.3.1软件要求72.3.2硬件要求72.4本章小结73需求分析83.1业务流程概述83.2前端需求分析93.2.1首页展示93.2.2商品列表93.2.3样品列表103.2.4产品相册列表113.2.5产品服务列表113.2.6案例展示列表123.2.7新闻资讯列表123.2.8用户咨询反响133.2.9用户登录133.2.10用户在线下单143.2.11用户订单信息查看143.3后台需求分析153.3.1管理员登录注销153.3.2注册用户管理163.3.3角色管理163.3.4产品管理173.3.5新闻管理183.3.6订单管理183.3.7咨询反响管理193.4交互的实现203.4.1客户端与服务器的交互203.4.2微信服务器与系统的交互203.5本章小结214系统设计224.1系统数据库设计224.1.1ER图设计224.1.2系统表设计234.2系统分层设计264.2.1模型层设计〔model〕274.2.2视图层设计〔view〕274.2.3控制层设计〔control〕284.3系统模块详细设计294.3.1系统模块基本设计294.3.2产品管理模块304.3.3订单管理模块334.3.4文章管理模块354.3.5用户管理模块384.3.6角色管理模块404.3.7咨询反响管理模块424.4本章小结445系统实现455.1系统前端实现455.1.1实现的功能455.1.2性能要求455.1.3详细设计465.1.3运行结果展示505.2系统后台实现565.2.1实现的功能565.2.2性能要求575.2.3详细设计575.2.4运行结果展示605.3本章小结646总结与展望656.1工程总结656.1.1开发中的问题656.2工程展望656.2.1工程创新点656.2.2工程展望65译文及原文69前言本章分别从课题研究背景、课题研究现状、课题研究目标以及课题研究内容概述性地阐述本课题的产生背景以及要研究和实现的系统概况,为以后章节的描述做一个概括性的铺垫。1.1课题研究背景随着科技的开展,智能手机越来越普及,如今,智能手机已经稳稳地跻身于手机主流市场。然而不管是什么样的智能机,几乎每部手机都有一个必备的软件——微信,一款由腾讯公司继QQ之后推出的又一即时跨平台通讯工具。2011年1月腾讯公司推出微信1.0测试版本,该版本仅有简单的聊天、分享照片、修改个人资料等功能。随后,在两个月时间内发布了1.1、1.2和1.3三个测试版本,用户数也增长到五百万左右。截至2012年3月,微信注册用户数已经超过1亿;2012年9月,突破2亿;2013年1月,突破3亿;2013年第四季度,月活泼用户数已经到达3.55亿。目前,微信已在全球200多个国家和地区拥有大批用户,国内外月活泼用户超过2.7亿。微信公众账号截至目前已经增长到200多万个,并且每天有8000多个新的公众账号诞生,信息交互[1]超过亿次。迄今为止微信已成为增速最快的手机应用,也是增速最快的互联网服务[2]。在短短两年多的时间里,微信已成为最热门的信息传播平台和大批手机用户的生活方式,开创了移动互联网传播的新时代。1.2课题研究现状随着微信的快速开展,腾讯又推出了基于微信关注的应用,其便捷性和广阔的用户群体使得基于微信关注的应用快速开展,各大企业都纷纷推出自己的微信公众平台,其中微信公众平台可以分为三类,下面将分别进展阐述。1.2.1订阅号适用于个人和组织,为媒体和个人提供一种新的信息传播方式,构建与读者之间更好的沟通与管理模式。1.2.2服务号适用于企业和组织,给企业和组织提供更强大的业务服务与用户管理能力,帮助企业快速实现全新的公众号服务平台。1.2.3企业号适用于企业,帮助企业和组织内部建设员工、上下游合作伙伴与企业IT系统间的连接。1.3课题研究目的微信庞大的用户群,使得基于微信关注的应用推广非常方便,不仅如此,基于微信的应用省去了传统app开发维护成本高,推广麻烦等一系列缺点,用户只需扫描关注即可使用各种功能。因此,开发基于微信关注的客户服务系统是大势所趋。本系统致力于为客户提供最方便最实用的生活工具,将客户和公司两个角色恰当的融合到一个系统中,在为客户带来方便的同时,对公司运营效率也有显著的提升,角色别离的设计使得公司员工各尽所能、各司其职。1.4课题研究内容本文所述基于微信关注的客户服务系统由前端和后台管理系统组成,其中前端功能有用户浏览产品,登录注册,查看公司新闻动态、产品相册、客户案例,在线下单,预定样品,查看管理自己的订单等等,上述功能只有在用户关注公众平台后才可使用,用户只需首次关注绑定即可,省去了每次输入用户名密码的繁琐。后台管理系统有客户管理、角色管理、产品管理、订单管理、文章管理、样品管理、样品订单管理、咨询反响管理等功能,其中产品管理下有产品分类和产品两个栏目,文章管理下有文章分类和文章两个栏目。角色即拥有不同权限的管理员,超级管理员有全部的操作权限,在角色管理一栏中,可以为角色分配不同的权限,系统根据角色权限显示相应的菜单,从而实现角色的别离。1.5本章小结在本章中,从课题研究背景、课题研究现状、课题研究目标以及课题研究内容较简要的阐述了本课题所设计和实现的系统。其中从课题研究背景和现状较生动的描述本课题所研究系统的外在条件。课题研究目标和研究内容描述了本系统的内在必要性和系统所具备的基本功能,方便于以后章节的描述。2相关技术介绍本章介绍系统开发的主要工具和技术,包括thinkPHP、bootstrap等主流框架及zendstudio开发环境和PHP、jquery,JavaScript等语言,还有系统对软件、硬件的相关要求。2.1开发工具简介2.1.1网页开发工具基于Web的可视化系统开发工具使开发者很方便的创立动态的Web应用程序。系统将采用Dreamweaver进展页面的开发,它是用来快速创立数据驱动Web应用程序的开发环境。同时采用Photoshop制作相关图片进展网站美工。页面上使用的相关技术包括:Html,thinkPHP标签,Javascript,JQuery等。2.1.2系统开发工具使用zendstudio进展系统框架的搭建和系统功能的实现。应用部署服务器采用Apache。框架采用目前最流行简洁的thinkPHP框架。2.1.3数据库及其工具数据库采用小型的关系型数据库MySQL,数据库工具采用phpMyAdmin。phpMyAdmin是一个以PHP为根基,基于Web方式架构在网站主机上的MySQL的数据库管理工具,管理者可通过Web接口管理MySQL数据库。Web接口可以提供一个简易方式输入繁杂的SQL语法,尤其方便处理大量资料的导入及导出。2.1.4建模工具建模工具采用OfficeVisio2007,Visio是微软公司出品的一款用于方便IT和商务专业人士对于较复杂信息,流程和系统的分析交流软件。使用该软件可以方便简单的进展业务流程图,数据流图,ER图,用例图等的绘制,使得开发效率得到显著的提升。2.2关键技术介绍2.2.1PHPPHP〔超文本预处理器〕是一种通用开源脚本语言。语法吸收了C语言、Java和Perl等语言的特点,非常利于初学者学习,使用非常广泛,主要用于Web网站开发,服务器脚本程序的编写等。PHP独特的语法混合了C、Java、Perl以及PHP自创的语法,它可以比其他脚本语言更快速地执行动态网页。使用PHP语言编写的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML〔标准通用标记语言下的一个应用〕文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;编译后的代码PHP也可以执行,通过预编译,可以到达加密和优化代码运行,使代码运行更快。2.2.2JqueryJquery是一个优秀的Javascript库。虽然它属于轻量级的js库,但兼容CSS3,还兼容各种浏览器〔IE6.0+,FF1.5+,Safari2.0+,Opera9.0+〕,jQuery2.0及后续版本不再支持IE6/7/8浏览器。jQuery使开发者能更方便地处理HTML、events、实现动画效果,并且对AJAX交互方式进展了很好的封装,开发者可以很方便的调用。jQuery另外一个对比大的优势是,它的说明文档很全很详细,而且各种应用也有相应demo,同时还有许多成熟的插件可供选择。jQuery还能够使用户的html页面代码和html内容别离,也就是说,不用需要在html里面插入一些复杂的js来调用命令了,只需要定义id或class即可。2.2.3JavaScriptJavaScript也被称为ECMAScript,是常用web浏览器的一局部,实现了客户端脚本和用户之间的交互。用户可以通过JavaScript控制浏览器,与服务器进展异步通讯,还可以改变显示的文档内容。JavaScript尽管一些命名,句法和标准库相似,但它和Java是无关的,在语义上有很大的差异。它的解释器被称为JavaScript引擎,属于浏览器的一局部,JavaScript作为广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTML网页增加动态和一些特效功能。2.2.4ThinkPHP架构ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、底层架构、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都非常方便。2.2.5bootstrap架构Bootstrap,来自Twitter,是目前最受欢送的前端框架。Bootstrap是基于HTML、CSS、JAVASCRIPT的,它简洁灵活,使得Web开发更加快捷。它由Twitter的设计师MarkOtto和JacobThornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS标准,即它是由动态CSS语言Less编写而成。2.2.6MVC设计模式MVC全名是ModelViewController,是模型(model)-视图(view)-控制器(controller)的缩写,是实现用户界面的一种软件架构模式。[3]。它将一个给定的应用软件分为三个相互关联的局部,以独立的内部信息表示信息的展示或承受用户的方法。按照把业务逻辑、数据、界面显示进展别离的方法组织代码,将业务逻辑聚集到controller里面,在改良和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑的代码。MVC设计模式广泛用于用于映射传统的输入、处理和输出功能在一个逻辑[4]的图形化用户界面的构造中。2.3软件/硬件要求2.3.1软件要求软件要求即系统运行所必需的软件支持,主要有数据库、开发工具、服务器、和开发语言四个方面。其中数据库采用MySQL5.6.21,开发工具采用Zendstudio,服务器采用Apache2.4.9,PHP版本为PHP5.4.40。2.3.2硬件要求硬件要求即系统运行所必需的硬件环境,主要有处理器、内存、磁盘等方面。CPU为频率1GHz以上的32位(x86)或64位(x64)处理器。内存要求为512MB内存〔建议使用1G或以上内存〕。硬盘空间要求有效硬盘空间1G或以上。2.4本章小结本章主要介绍了系统开发的主要工具和技术,包括thinkPHP、bootstrap等主流框架及zendstudio开发环境和PHP、jquery,JavaScript等语言,此外还对系统运行所必需的硬件和软件要求也进展了详细说明,为后面系统的开发实现打下了较好的根基。3需求分析本章节主要进展系统进展需求分析,将从业务流程、前端、后台、交互几个方面进展需求的详细分析。首先将对整个业务流程进展梳理,对于每一个需求都画出用例图,以便更好的分析需求。3.1业务流程概述本文所述基于微信关注的客户服务系统前端主要实现客户注册登录绑定账号、在线下单、产品展示、案例展示、新闻展示、样品预定、订单查看等功能。后台实现了角色管理、客户管理、商品管理、新闻管理、订单管理、咨询管理等功能。客户关注微信公众平台前方可使用以上功能,当用户购置过产品后就可预定样品。图3-1系统功能概述分析图图3-1描述了本文所述基于微信关注的客户服务系统的主要功能。其中用户可以注册登录、浏览商品、在线下单、查看订单。管理员可以管理订单、管理产品、分配角色等。3.2前端需求分析3.2.1首页展示首页是整个系统前端的入口,用户可以通过微信公众平台底部菜单和应用菜单导航栏进入首页。首页展示采用对比舒适的天蓝渐变色,使人看上去对比舒服。首页展示内容有关于我们、产品服务、新闻资讯、产品列表、产品相册、样品列表、客户案例、关注我们、联系我们九大板块组成,点击每个版块即可进入相应版块。图3-2首页展示用例图图3-2描述了首页展示的内容:关于我们、产品服务、新闻资讯、产品列表、产品相册、样品列表、客户案例、关注我们、联系我们。用户进入首页有两种途径:微信公众平台底部菜单、导航栏。3.2.2商品列表商品列表页展示最新十条商品,用户可通过微信公众号菜单和首页进入商品列表页面,商品列表页面可以通过商品分类进展商品的筛选。每个商品展示预览图片,标题,规格,详细描述等信息,用户可选择在线下单进展购置商品。图3-3产品列表展示用例图图3-3描述了产品列表页的功能,每个产品展示预览图片,标题,规格,详细描述等信息,用户可选择在线下单进展购置商品。3.2.3样品列表样品列表页展示最新十条样品,用户可通过微信公众号菜单和首页进入样品品列表页面,样品列表页面可以通过样品分类进展样品的筛选。每个样品展示图片,标题,规格,特性等信息,当客户已经购置过商品的话便可以预定样品,否则预定样品按钮不可用。图3-4样品列表展示用例图图3-4描述了样品列表页的主要功能,每个样品展示预览图片,标题,规格,详细描述等信息,已经购置过产品的用户可选择在线下单进展购置商品。3.2.4产品相册列表产品相册列表展示最新产品的高清图册,用户可以通过微信公众平台底部菜单和首页进入产品相册列表页。产品相册采用精巧的圆角相册展示,用户点击后可查看高清大图,也可左右切换,方便浏览。图3-5产品相册列表展示用例图图3-5描述了产品相册基本功能,每个预览图片点击后可浏览高清大图,也可左右滑动查看。3.2.5产品服务列表产品服务列表展示公司服务内容及范围,用户可以通过微信公众平台底部菜单和首页进入产品服务列表页。该列表页还展示对比固定工程的报价单,使客户一目了然。图3-6产品服务列表展示用例图图3-6描述了服务列表的基本功能,每个服务工程点击后可浏览详细介绍,也可查看整个报价单。3.2.6案例展示列表案例展示列表页展示公司经典案例,用户可以通过微信公众平台底部菜单和首页进入该页。该页详细介绍案例,并提供地址查看,使得客户更直观的了解公司信息和实力。图3-7产品服务列表展示用例图图3-7描述了案例列表页基本功能,每个案例工程点击后可浏览详细介绍,也可查看详细成果。3.2.7新闻资讯列表新闻资讯列表页展示最新业内咨询,产品最新优惠等,用户可以通过微信公众平台底部菜单和首页进入该页。新闻资讯可以通过分类进展筛选,客户也可以发表自己的看法进展评论。图3-8产品服务列表展示用例图图3-8描述了新闻资讯页的基本功能,每条信息点击后可浏览详细内容,也可按类别筛选,评论。3.2.8用户咨询反响用户咨询反响页给用户提供反响机制,用户可将自己建议反响给公司。用户可以通过微信公众平台底部菜单和首页进入该页。图3-9产品服务列表展示用例图图3-9描述了咨询反响页的基本功能,进入该页后用户可以反响信息给管理员,当标题、内容、联系方式填写正确后才能提交。3.2.9用户登录当用户首次进入应用进展购置商品或查看订单时会自动转向登录页面,由于用户每次进入应用时会随身携带唯一的openid标识,所以用户首次登录后以后可以不用登录,便可使用各项功能。图3-10用户登陆用例分析图图3-10描述了用户登录的流程:输入用户名和密码,验证通过后即可登录成功进入功能页面,否则提示相应的错误,重新输入登录。3.2.10用户在线下单在产品列表页用户可以在线下单,用户可以通过微信公众平台底部菜单和首页进入商品列表页进展在线下单。图3-11用户在线下单用例分析图图3-11描述了用户在线下单的流程:选择商品,填写相关信息,填写错误则提示重填,否则提交订单并提示继续下单还是查看订单,根据选择跳转到商品列表页或订单中心。3.2.11用户订单信息查看用户可以通过微信公众平台底部菜单查看订单信息,对于未发货的订单可以取消,已发货的订单可以查看物流信息。其中订单信息以未支付,待发货,待收货状态进展筛选。图3-12用户查看订单用例分析图图3-12描述了用户查看订单的流程:订单分为三种:未支付订单、未发货订单、已发货订单和已完成订单,对于未支付的订单用户可选择继续支付货取消订单。对于未发货订单用户可选择取消订单。对于已发货订单用户可查看订单物流信息。对于已完成订单用户可评价。3.3后台需求分析3.3.1管理员登录注销系统管理员和系统角色首次访问后台是会自动转向登录页面,登录成功后根据角色权限显示相应的菜单。登录之后也可注销账号退出登录。图3-13管理员登录用例分析图图3-13描述了用户登录的流程:输入用户名和密码,验证通过后即可登录成功进入功能页面,否则提示相应的错误,重新输入登录。3.3.2注册用户管理系统管理员和有用户管理权限的角色登录后台后可以查看、编辑、添加、删除、锁定注册用户。图3-14管理员登录用例分析图图3-14描述了管理员管理用户的流程:管理员可以添加、编辑、搜索、查看、删除用户。3.3.3角色管理角色就是具有不同权限的系统管理员,超级管理员可以创立角色并分配相应的权限,登录后台时根据相应的角色权限展示功能菜单,有角色管理权限的角色也可以添加、编辑系统角色。图3-15管理员管理角色用例分析图图3-15描述了管理员管理角色的流程:管理员可以添加、编辑、搜索、查看、删除角色。3.3.4产品管理产品管理分为产品分类管理和商品管理,有产品管理权限的角色可以添加、编辑、删除产品及其分类。图3-16管理员管理产品用例分析图图3-16描述了管理员管理产品的流程:管理员可以添加、编辑、搜索、查看、删除产品及其分类。3.3.5新闻管理新闻管理包含新闻分类和新闻管理。有新闻管理权限的角色可以添加、编辑、删除新闻及其分类。图3-17管理员管理新闻用例分析图图3-17描述了管理员管理新闻的流程:管理员可以添加,编辑,搜索,查看,删除新闻及其分类。3.3.6订单管理订单管理包含订单的搜索,按状态筛选,订单批量导出打印,订单编辑,查看等功能。有订单管理权限的角色可以编辑、打印订单。图3-18管理员管理订单用例分析图图3-18描述了管理员管理订单的流程:管理员可新增订单、产看订单、查询订单、删除订单、编辑修改订单、跟踪订单产看订单物流信息。3.3.7咨询反响管理该功能可查看,编辑客户的咨询反响信息。有该权限的角色可以管理用户反响咨询信息。图3-19管理员管理咨询反响例分析图图3-19描述了管理员管理咨询反响信息的流程:管理员查看、编辑修改咨询反响信息。3.4交互的实现3.4.1客户端与服务器的交互客户端通过发送请求跟服务器进展异步交互,服务器收到请求后返回相应的内容到客户端,客户端获取内容后展示在页面上。图3-20客户端与服务器的交互分析图图3-20描述了客户端与服务器交互的分析图,客户端向服务器发送请求,服务器根据请求内容返回相应的内容并展现给用户。3.4.2微信服务器与系统的交互微信公众平台开发接口[5]提供与用户进展消息交互、自定义菜单交互的能力。对于成功接入公众平台开发接口的公众账号,当用户发消息给公众号,微信公众平台服务器会使用请求对接入的网址进展消息推送,第三方服务器可通过响应包回复特定构造[6],从而到达回复消息的目的。图3-21微信公众平台与系统程序的交互分析图图3-21描述了微信公众平台与系统交互的分析图,首先在微信公众平台后台填写向本系统发送请求的地址,微信服务器会发送一个验证请求,验证通过后就可以启用该配置,以后每次用户在公众平台有动作时,微信服务器会将相应的请求发送到填写的地址,系统接收到请求后返回相应的内容给微信服务器,微信服务器接收到请求后检查无误后推送给用户展示在微信公众平台。3.5本章小结本章主要对工程课题进展了需求分析,根据业务流程的步骤和功能将系统划分为前端和后台两个模块:其中前端模块通过产品、新闻资讯、在线下单、反响咨询等方面介绍需求。后台模块通过角色管理、用户管理、订单管理、商品管理、新闻管理、咨询管理等方面阐述了具体需求。4系统设计本章主要是在第三章需求分析的根基上,对系统进展详细的模块划分,并详细阐述每一个模块的功能,及其具体实现。同时对系统的数据库进展设计,定义系统所需要使用的表。4.1系统数据库设计4.1.1ER图设计整个系统中实体之间的联系对比复杂,为了能够清晰简洁的阐述清楚各个实体之间的联系,采用ER图〔实体-联系图〕来表示他们之间的联系。在设计时,主要从系统整体和主要模块方面进展ER图的设计。图4-1系统E-R图图4-1描述了系统E-R图,主要对象有商品,角色,文章〔新闻〕,用户,角色。其中,每个角色可以添加多个商品,订单,文章,每个用户可以有多个订单,多条咨询反响,每篇文章有多个评论,每个用户有多个评论,每个订单中可以有多个商品。4.1.2系统表设计系统一共包括10张表,其中表前缀为wx_,用于方便识别属于微信数据库。现各表分别介绍如下:wx_article文章新闻表:主要用于保存发表的新闻文章信息。表4-1文章新闻表中文名字段名类型主键外键null默认值文章IDidbigint〔20〕√×文章标题namevarchar2〔200〕×文章分类classifyidint〔20〕√×文章内容contentText(10000)×预览图previewvarchar2〔200〕×发布时间createdatedatetime表4-1描述了文章新闻数据表,该表存储了管理员发布的一些文章,包括新闻、活动等信息其中文章分类字段classifyid为外键,对应于文章分类表的id。wx_article_classify文章新闻分类表:主要用于保存新闻文章分类信息。表4-2文章新闻分类表中文名字段名类型主键外键null默认值文章分类IDidbigint〔20〕√×文章分类名称namevarchar2〔200〕×添加时间createdatedatetime表4-2描述了文章新闻分类数据表,该表存储了文章分类信息。主键id是每条字段的唯一标识符,文章表可以引用该id,从而确定文章分类信息。wx_article_comment文章新闻评论表:主要用于保存新闻文章评论信息。表4-3文章新闻评论表中文名字段名类型主键外键null默认值文章评论IDidbigint〔20〕√×文章IDarticleidbigint〔20〕√×文章评论标题nameVarchar2〔200〕×文章评论内容contentText(10000)×邮箱Emailvarchar2〔200〕×评论时间createdatedatetime表4-3描述了文章新闻评论数据表,该表存储了文章评论信息。主键id是每条字段的唯一标识符,外键articleid对应相应的文章,从而确定文章评论信息。wx_consult咨询反响表:主要用于保存用户咨询反响信息。表4-4咨询反响表中文名字段名类型主键外键null默认值咨询IDidbigint〔20〕√×标题nameVarchar2〔200〕×内容contentText(10000)×邮箱Emailvarchar2〔200〕×发布时间createdatedatetime表4-4描述了用户咨询反响数据表,该表存储了用户咨询反响信息。主键id是每条字段的唯一标识符,保存内容有标题、内容、联系方式、反响时间。wx_order订单表:主要用于保存用户提交的订单信息。表4-5订单表中文名字段名类型主键外键null默认值订单IDidbigint〔20〕√×用户IDuseridbigint〔20〕√×联系人nameVarchar2〔200〕×手机phoneVarchar2(11)×地址addressvarchar2〔500〕×商品idproductidBigint(20)√商品名称productnameVarchar2(100)支付方式paywayInt(5)商品数量AmountInt(5)订单总价PriceFloat(15)商品单价SinglepriceFlaot(10)订单状态StatusInt(5)快递公司expresscompanyVarchar(20)快递单号ExpressnoVarchar(24)预览图PreviewVarchar2(100)状态改变时间Changedatedatetime下单时间createdatedatetime表4-5描述了订单数据表,该表存储了订单信息。主键id是每条字段的唯一标识符,外键productid对应相应的产品,从而确定订单产品,userid也是外键,对应用户id,从而确定订单用户,此外保存了订单的一些基本信息,入联系人、联系方式、价格、数量、地址等等。wx_product产品表:主要用于保存产品信息。表4-6产品信息表中文名字段名类型主键外键null默认值产品IDidbigint〔20〕√×产品分类idclassifybigint〔20〕√×产品标题namevarchar(100)×产品描述describetext〔20000〕×预览图PreviewVarchar2(50)产品价格PriceFloat(10)库存数量AmountFloat(10)添加时间createdatedatetime表4-6描述了产品数据表,该表存储了产品信息。主键id是每条字段的唯一标识符,外键classifyid对应相应的产品分类,从而确定产品分类信息。此外该表还存储了产品的一些基本信息,如标题、描述、预览图片、价格、数量等等。wx_product_classify产品分类表:主要用于保存产品分类信息。表4-7产品分类表中文名字段名类型主键外键null默认值产品分类IDidbigint〔20〕√×标题nameVarchar2〔200〕×发布时间createdatedatetime表4-7描述了产品分类数据表,该表存储了产品分类信息。主键id是每条字段的唯一标识符,产品表应用该id,而确定产品分类信息。wx_role角色表:主要用于保存管理角色信息。表4-8系统角色表中文名字段名类型主键外键null默认值角色IDidbigint〔20〕√×角色名nameVarchar2〔200〕×登录后台密码passwordVarchar2(100)×状态statusint〔5〕×权限authorityVarchar2(100)上次登录时间logindateDatetime创立时间createdatedatetime表4-8描述了系统角色数据表,该表存储了系统角色相关信息。主键id是每条字段的唯一标识符,此外还有角色名称和密码用于登录后台,状态表示该角色可用与否,还有角色最后一次登录时间,权限等,拥有角色管理权限的管理员可以编辑这些信息。wx_user用户表:主要用于保存用户信息。表4-9系统用户表中文名字段名类型主键外键null默认值用户IDidbigint〔20〕√×用户名usernameVarchar2〔200〕×登录密码passwordVarchar2(100)×状态statusint〔5〕×opeinidopenidVarchar2(100)邮箱EmailVarchar2(50)年龄AgeInt(5)性别GenderInt(5)住址AddressVarchar2(300)上次登录时间logindateDatetime注册时间createdatedatetime表4-9描述了用户数据表,该表存储了用户相关信息。主键id是每条字段的唯一标识符,此外还有用户名称和密码用于登录,状态表示该角色可用与否,还有角色最后一次登录时间,权限、邮箱、性别、年龄、住址等等,拥有用户管理权限的管理员可以编辑这些信息。4.2系统分层设计视图层(view)InternetExplorer、chrome、Firefox、safari、移动端浏览器控制层(control)订单管理产品管理文章管理角色管理样品管理用户管理咨询反响模型层(model)数据库图4-1系统分层图〔1〕视图层(view):用来与用户交互,并把来自系统的信息显示给客户。〔2〕控制层(control):这一层处理应用的核心业务逻辑。〔3〕模型层(model):这一层处理数据库信息,按照实体类型建模。4.2.1模型层设计〔model〕在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBs和ColdFusionComponents这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。本文描述系统将每一个实体抽象成一个model对象,实体属性对应对象的属性,对实体的操作对应对象的方法,除此之外将所有实体的共性操作抽象出来放到根基对象中,其他对象均继承自此对象,下面重点讲述系统的几个重要模型。〔1〕根基模型Model该模型封装了所有根基操作,包括数据库的连接,对数据库表基本的增删改查操作,此外该类还实现了对数据的安全过滤和缓存机制。〔2〕文章新闻模型ArticleModel该模型继承自Model模型,此外还定义了属于自己的属性:id、name、classify、preview、content、createDate。〔3〕订单模型OrderModel该模型继承自Model模型,此外还定义了属于自己的属性:'id','userid','name','mobile','address','productid','productname','payway','status','amount','price','singleprice','expresscompany','expressno','preview','changeDate','createDate'。〔4〕产品模型ProductModel该模型继承自Model模型,此外还定义了属于自己的属性:'id','classify','name','describe','preview','price','amount','createDate'。〔5〕用户模型UserModel该模型继承自Model模型,此外还定义了属于自己的属性:'id','username','password','openid','email','age','gender','address','createDate'。4.2.2视图层设计〔view〕视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括AdobeFlash和像XHTML,XML/XSL,WML等一些标识语言和Webservices.本文描述系统将每一个视图对应一个HTML模版页面,model层的数据经过control层运算后传到视图层,由视图负责渲染模版展示出来。下面重点讲述系统的几个重要视图。(1)文章新闻视图ArticleView该视图下包含index、add、edit视图,分别用来展示、添加、编辑文章新闻。(2)订单视图OrderView该视图下包含index、add、edit、expressinfo、send视图,分别用来展示订单、添加订单、编辑订单、查看物流信息、订单发货。(3)产品视图ProductView该视图下包含index、add、edit视图,分别用来展示、添加、编辑产品。(5)用户视图UserView该视图下包含index、add、edit、login、register视图,分别用来展示、添加、编辑用户和用户的登录注册。4.2.3控制层设计〔control〕控制器承受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。本文所描述的系统将每一个controler对应一个model,多个view。每个control都继承自根基控制器Control,下面重点讲述系统的几个重要控制器。〔1〕根基控制器Control该控制器实现了所有控制器的一些共性操作,包括模版渲染、数据处理、重定向、缓存操作等。〔2〕文章新闻控制器ArticleControl该控制器继承自根基控制器Control,除此之外还有index、add、edit、save、delete操作,分别对应处理文章新闻视图中的列表、添加、编辑、保存、删除操作。〔4〕订单控制器OrderControl该控制器继承自根基控制器Control,除此之外还有index、add、edit、save、delete操作,分别对应处理订单视图中的列表、添加、编辑、保存、删除操作。〔4〕产品控制器ProductControl该控制器继承自根基控制器Control,除此之外还有index、add、edit、save、delete操作,分别对应处理产品视图中的列表、添加、编辑、保存、删除操作。〔5〕用户控制器UserControl该控制器继承自根基控制器Control,除此之外还有index、add、edit、save、delete、login、singup操作,分别对应处理用户视图中的列表、添加、编辑、保存、删除操作和用户登录、注册。4.3系统模块详细设计4.3.1系统模块基本设计基于微信关注的客户服务系统基于微信关注的客户服务系统订单管理产品管理用户管理角色管理文章管理咨询管理样品管理图4-2系统模块图整个系统被划分成七个子模块,每个模块的主要功能如下:〔1〕订单管理模块,包括订单新增,订单修改,订单删除,订单查询,订单跟踪,订单筛选,订单打印等功能。〔2〕产品管理模块,包括产品及分类新增,产品及分类修改,产品及分类删除,产品及分类查询等功能。〔3〕用户管理模块,包括用户的新增,用户的查询,用户的编辑,用户的删除等功能。〔4〕角色管理模块,包括角色的查询,角色的修改,角色的查看,角色权限的编辑,角色的新增等功能。〔5〕样品管理模块,包括样品的新增,样品的修改,样品查看,样品删除等功能。〔6〕文章管理模块,包括文章信息及其分类的新增、修改、删除、查看等功能。〔7〕咨询反响模块,包括咨询反响信息的修改、删除、查看等功能。4.3.2产品管理模块该模块主要是针对产品及其分类的增删改查。如以以下列图4-3所示,该图描述了产品管理模块流程图,该模块实现产品的新增、修改、查询、删除操作。进入产品管理页面后是所有产品的列表,点击新增产品按钮后进入新增产品页面,在该页面用户需填写产品标题,选择产品分类,上传产品预览图片,填写产品价格、数量、规格、详细描述等信息后点击提交按钮后即可,提交成功后转入到查询界面。在搜索框中输入信息,点击查询按钮,系统根据输入信息进展模糊匹配产品信息,将产品标题中包含该字符串的所有产品罗列出来展示在页面,用户可对搜索出来的产品进展编辑,删除操作。图4-3产品管理模块流程图在查询出来的产品中选中相应的产品后可对其进展编辑和删除。点击编辑按钮后进入编辑界面,此时所有产品信息都显示出来,并且是处于可编辑状态,用户编辑相应的信息后点击保存按钮即可,保存成功后转入到查询界面。点击删除按钮后弹出确认删除的提示框,用户选择确定后删除相应产品,并刷新当前页面,用户选择取消后关闭对话框,不做任何操作。在产品新增页面,当用户提交信息不符合规定时会提示错误信息,例如:产品标题须是6到20个汉字和英文字符串,可以是纯汉字或英文,价格和数量字段强制填写数字类型,上传图片可以是本地上传或远程图片。产品描述是10到10000个字符的字符串。当信息全部填写正确后才能提交到后台,提交至后台后对所有字段进展过滤,首先过内容中包含的滤脚本标签,即采用strip_tags函数进展过滤。产品分类信息的增删改查:图4-4产品分类管理模块流程图图4-4描述了产品分类管理模块流程图,该模块实现产品分类的新增、修改、查询、删除操作。进入产品分类管理页面后是所有产品分类的列表,点击新增产品分类按钮后进入新增产品分类页面,在该页面用户需填写产品分类标题,备注等信息后点击提交按钮后即可,提交成功后转入到查询界面。在搜索框中输入信息,点击查询按钮,系统根据输入信息进展模糊匹配产品分类信息,将产品分类标题中包含该字符串的所有产品分类罗列出来展示在页面,用户可对搜索出来的产品分类进展编辑,删除操作。在查询出来的产品分类中选中相应的产品分类后可对其进展编辑和删除。点击编辑按钮后进入编辑界面,此时所有产品分类信息都显示出来,并且是处于可编辑状态,用户编辑相应的信息后点击保存按钮即可,保存成功后转入到查询界面。点击删除按钮后弹出确认删除的提示框,用户选择确定后删除相应产品分类,并刷新当前页面,用户选择取消后关闭对话框,不做任何操作。在产品分类新增和编辑页面对用户输入的信息进展检查,产品分类标题为必填项,必须2到20个字符的汉字、英文组合或纯汉字或英文。备注不是必填项,信息填写正确前方可提交至后台,提交至后台后需要对每个字段值进展过滤,采用strip_tags函数过滤。4.3.3订单管理模块该模块主要是针对订单的增删改查。图下4-5所示,该图描述了订单管理模块流程图,该模块实现订单的新增、修改、查询、删除操作。进入订单管理页面后是所有订单的列表,点击新增订单按钮后进入新增产品页面,在该页面用户需选择产品,填写联系人,填写、数量、选择付款方式、填写用户名等信息后点击提交按钮后即可,提交成功后转入到查询界面。在搜索框中输入信息,点击查询按钮,系统根据输入信息进展模糊匹配订单信息,将产品标题、用户名中包含该字符串的所有订单罗列出来展示在页面,用户可对搜索出来的订单进展编辑,删除操作。图4-5订单管理模块流程图在查询出来的订单中选中相应的订单后可对其进展编辑和删除。点击编辑按钮后进入编辑界面,此时所有订单信息都显示出来,并且是处于可编辑状态,用户编辑相应的信息后点击保存按钮即可,保存成功后转入到查询界面。点击删除按钮后弹出确认删除的提示框,用户选择确定后删除相应订单,并刷新当前页面,用户选择取消后关闭对话框,不做任何操作。订单状态改变情况如以以下列图所示。图4-6订单状态改变流程图图4-6描述了订单状态改变流程图,对于订单,相关规则为:用户提交的订单,如果是货到付款,则初始状态为未发货,管理员可选择发货,发货时需填写物流信息。如果是在线支付,假设用户付款成功,则该订单状态为未发货。对于在线支付而又未支付的订单,显示修改价格按钮,管理员可以修改此订单的价格,用户可以选择支付。对于已发货的订单可以查看物流信息,物流信息采用第三方接口api,提供物流公司和快递号即可查看。4.3.4文章管理模块该模块主要是针对文章及其分类的增删改查。图4-7文章管理模块流程图图4-7描述了文章管理模块流程图,该模块实现文章的新增、修改、查询、删除操作。进入文章管理页面后是所有文章的列表,点击新增文章按钮后进入新增文章页面,在该页面用户需填写文章标题,选择文章分类,上传文章预览图片,填写文章详细内容等信息后点击提交按钮后即可,提交成功后转入到查询界面。在搜索框中输入信息,点击查询按钮,系统根据输入信息进展模糊匹配文章信息,将文章标题中包含该字符串的所有文章罗列出来展示在页面,用户可对搜索出来的文章进展编辑,删除操作。在查询出来的文章中选中相应的文章后可对其进展编辑和删除。点击编辑按钮后进入编辑界面,此时所有文章信息都显示出来,并且是处于可编辑状态,用户编辑相应的信息后点击保存按钮即可,保存成功后转入到查询界面。点击删除按钮后弹出确认删除的提示框,用户选择确定后删除相应文章,并刷新当前页面,用户选择取消后关闭对话框,不做任何操作。在文章新增页面,当用户提交信息不符合规定时会提示错误信息,例如:文章标题须是6到20个汉字和英文字符串,可以是纯汉字或英文,价格和数量字段强制填写数字类型,上传图片可以是本地上传或远程图片。文章描述是10到10000个字符的字符串。当信息全部填写正确后才能提交到后台,提交至后台后对所有字段进展过滤,首先过内容中包含的滤脚本标签,即采用strip_tags函数进展过滤。文章分类信息的增删改查:如以以下列图4-8所示,该图描述了文章分类管理模块流程图,该模块实现文章分类的新增、修改、查询、删除操作。进入文章分类管理页面后是所有文章分类的列表,点击新增文章分类按钮后进入新增文章分类页面,在该页面用户需填写文章分类标题,备注等信息后点击提交按钮后即可,提交成功后转入到查询界面。在搜索框中输入信息,点击查询按钮,系统根据输入信息进展模糊匹配文章分类信息,将文章分类标题中包含该字符串的所有文章分类罗列出来展示在页面,用户可对搜索出来的文章分类进展编辑,删除操作。在查询出来的文章分类中选中相应的文章分类后可对其进展编辑和删除。点击编辑按钮后进入编辑界面,此时所有文章分类信息都显示出来,并且是处于可编辑状态,用户编辑相应的信息后点击保存按钮即可,保存成功后转入到查询界面。点击删除按钮后弹出确认删除的提示框,用户选择确定后删除相应文章分类,并刷新当前页面,用户选择取消后关闭对话框,不做任何操作。在文章分类新增和编辑页面对用户输入的信息进展检查,文章分类标题为必填项,必须2到20个字符的汉字、英文组合或纯汉字或英文。备注不是必填项,信息填写正确前方可提交至后台,提交至后台后需要对每个字段值进展过滤,采用strip_tags函数过滤。图4-8文章分类管理模块流程图4.3.5用户管理模块该模块主要是针对用户的增删改查。如以以下列图4-9所示,该图描述了用户管理模块流程图,该模块实现用户的新增、修改、查询、删除操作。进入用户管理页面后是所有用户的列表,点击新增用户按钮后进入新增用户页面,在该页面填写用户名,密码,openid等信息后点击提交按钮后即可,提交成功后转入到查询界面。在搜索框中输入信息,点击查询按钮,系统根据输入信息进展模糊匹配用户信息,将用户名中包含该字符串的所有用户罗列出来展示在页面,管理员可对搜索出来的用户进展编辑,删除操作。在查询出来的用户中选中相应的用户后可对其进展编辑和删除。点击编辑按钮后进入编辑界面,此时所有用户信息都显示出来,并且是处于可编辑状态,用户编辑相应的信息后点击保存按钮即可,保存成功后转入到查询界面。点击删除按钮后弹出确认删除的提示框,管理员选择确定后删除相应用户,并刷新当前页面,管理员选择取消后关闭对话框,不做任何操作。图4-9用户管理模块流程图用户状态改变情况如以以下列图4-10所示,该图描述了用户状态改变流程图,对于用户,状态有禁用和正常两种,所有用户管理员均可以将其删除,对于禁用的用户显示激活按钮,可以将其激活回到正常状态。图4-10用户状态改变流程图4.3.6角色管理模块该模块主要是针对角色的增删改查。如以以下列图4-11所示,该图描述了角色管理模块流程图,该模块实现角色的新增、修改、查询、删除操作。进入角色管理页面后是所有角色的列表,点击新增角色按钮后进入新增角色页面,在该页面填写角色名,密码,权限等信息后点击提交按钮后即可,提交成功后转入到查询界面。图4-11角色管理模块流程图在搜索框中输入信息,点击查询按钮,系统根据输入信息进展模糊匹配角色信息,将角色名中包含该字符串的所有角色罗列出来展示在页面,管理员可对搜索出来的角色进展编辑,删除操作。在查询出来的角色中选中相应的角色后可对其进展编辑和删除。点击编辑按钮后进入编辑界面,此时所有角色信息都显示出来,并且是处于可编辑状态,角色编辑相应的信息后点击保存按钮即可,保存成功后转入到查询界面。点击删除按钮后弹出确认删除的提示框,管理员选择确定后删除相应角色,并刷新当前页面,管理员选择取消后关闭对话框,不做任何操作。图4-12角色状态改变流程图图4-12描述了角色状态改变流程图,对于角色,状态有禁用和正常两种,所有角色超级管理员均可以将其删除,对于禁用的角色显示激活按钮,可以将其激活回到正常状态。4.3.7咨询反响管理模块该模块主要是针对用户咨询反响的删改查。图4-13咨询反响管理模块流程图图4-13描述了咨询反响管理模块流程图,该模块实现咨询反响的修改、查询、删除操作。进入咨询反响管理页面后是所有咨询反响的列表。在搜索框中输入信息,点击查询按钮,系统根据输入信息进展模糊匹配咨询反响信息,将咨询反响标题中和内容中包含该字符串的所有咨询反响罗列出来展示在页面,用户可对搜索出来的咨询反响进展编辑,删除操作。在查询出来的咨询反响中选中相应的咨询反响后可对其进展编辑和删除。点击编辑按钮后进入编辑界面,此时所有咨询反响信息都显示出来,并且是处于可编辑状态,用户编辑相应的信息后点击保存按钮即可,保存成功后转入到查询界面。点击删除按钮后弹出确认删除的提示框,用户选择确定后删除相应咨询反响,并刷新当前页面,用户选择取消后关闭对话框,不做任何操作。在咨询反响新增页面,当用户提交信息不符合规定时会提示错误信息,例如:咨询反响标题须是6到20个汉字和英文字符串,可以是纯汉字或英文。咨询反响描述是10到10000个字符的字符串。当信息全部填写正确后才能提交到后台,提交至后台后对所有字段进展过滤,首先过内容中包含的滤脚本标签,即采用strip_tags函数进展过滤。4.4本章小结在本章中,对系统进展了详细的设计,分别从系统数据库设计,系统分层设计,系统模块设计方面描述。在数据库设计中,对整个ER图进展了分析,还有对每个数据表进展了详细的设计描述。在分层设计中,通过控制层、模型曾、视图层进展了详细的设计描述。系统模块设计中,从订单、产品、用户、角色、样品、文章、资讯七个方面进展了详细的设计描述。5系统实现在本章中,将本课题实现的系统进展了详细的实现,其中主要论述了系统实现的功能、性能需求、界面设计、数据交互设计和最后实现的效果截图。其中在设计局部对各模块分别画了功能流程图来进展一一分析,在实现局部,分为前端和后台两局部进展描述,在实现局部对重要代码进展了详细的介绍分析,并对代表性的运行效果进展截图展示。5.1系统前端实现5.1.1实现的功能用户进入首页看到的界面,显示的内容主要有九项:关于我们、产品服务、新闻资讯、产品列表、产品相册、样品列表、客户案例、关注我们、联系我们。关于我们:公司的一些基本信息的介绍。产品服务:主要服务工程的介绍及报价。新闻资讯:最新的新闻、活动信息等。产品列表:所有产品列表,显示每个产品的标题、预览图、价格、规格、详细介绍等信息。产品相册:所有产品的缩略图展示,点击后显示高清大图,可以幻灯片滑动。样品列表:展示所有样品的基本信息,已购置过产品的用户可以申请预定样品。客户案例:经典客户案例展示,包括案例的详细介绍及成果查看。关注我们:显示公司微博、facebook、twitter等账号,用户可以点击关注。联系我们:显示公司联系方式及地址,用户也可以在该页面提交反响咨询意见。5.1.2性能要求在九项内容中,关于我们、产品服务、客户案例、关注我们、联系我们五项是缓存生成的静态HTML页面以加快访问速度。新闻资讯、产品样品列表、产品相册信息是从数据库中读取出来的。5.1.3详细设计1〕界面方面:首先是首页展示,根据mvc逻辑,当用户访问首页时有IndexController类处理该请求,也就是说当用户访问首页时执行IndexController类的index〔〕方法,该方法代码及注释如下:publicfunctionindex($openid=''){ $this->addOpenId($openid);//将用户openid添加至session $this->assign("siteName",C('siteName'));//从配置文件获取网站名称,并赋值到模版 $this->display('index');输出相应的模版文件} publicfunctionaddOpenid($openid){ if(!empty($_SESSION['openid'])){//判断session中是否已添加openid returntrue; } else{ $_SESSION['openid']=$openid;//假设还未添加,则将该openid放入session returntrue; }}2〕关于我们:该页对应于AboutController下的about方法,当用户点击该页面时是由该函数来处理的,下面是该函数代码及注释:publicfunctionabout($openid=''){ $this->addOpenId($openid);//检查openid是否为空,为空则添加 $this->assign('title',"关于我们");//添加页面标题 $this->display('about');//输出对应模版文件 }3〕产品服务:该页对应于ProductController下的serviceList方法,当用户点击该页面时是由该函数来处理的,下面是该函数代码及注释:publicfunctionserviceList($openid=''){ $this->addOpenId($openid);//检查openid是否为空,为空则添加 $this->assign('title','产品服务');//添加页面标题 $this->display('service');//输出对应模版文件 }4〕新闻资讯:该页对应于ArticleController下的newsList方法,当用户点击该页面时是由该函数来处理的,下面是该函数代码及注释:publicfunctionnewsList($openid='',$classify=''){//新闻列表处理函数 $this->addOpenId($openid);//检查openid是否为空,为空则添加 $article=M('Article');//创立文章模型对象 $articleClassify=M('ArticleClassify');创立文章分类模型对象 if($classify==''){//假设分类信息为空即首次进入,则获取所有新闻信息 $this->assign('articles',$article->where()->select());//从数据库查找所有新闻信息并赋值到模版 }else{//否则,即分类信息不为空 $data['classify']=$classify; $this->assign('articles',$article->where($data)->select());//根据分类信息从数据库查找相应新闻并赋值到模版 } $this->assign('articleClassifys',$articleClassify->where()->select());//从数据库将所有分类信息读取出来并赋值到模版,供用户筛选 $this->assign('title','新闻列表');//定义页面标题 $this->display('newslist');//输出相应的模版 }新闻资讯详细页面:该页对应于ArticleController下的news方法,当用户点击文章列表页的某条文章时会跳转到此页,该页面时是由该函数来处理的,下面是该函数代码及注释:publicfunctionnews($id=0){//新闻资讯详情页面函数 $article=M('Article');//创立文章模型对象 $articleComment=M('ArticleComment');//创立文章评论模型对象 $map['articleid']=$id;//赋值文章id变量 $data['id']=$id;//赋值id变量 $this->assign('articles',$article->where($data)->select());//从数据库获取该id的文章信息并赋值到模版 $this->assign('comments',$articleComent->where($map)->select());//获取该条新闻的评论信息并赋值到模版 $this->assign('title','新闻');//定义页面标题 $this->display('news');//输出相应模版 }5〕产品列表:该页对应于ProductController下的List方法,当用户进入该页面时是由该函数来处理的,下面是该函数代码及注释:publicfunctionlists($openid='',$classify=''){//产品列表处理函数 $this->addOpenId($openid);//设置openid $productClassify=M('ProductClassify');//创立产品分类模型对象 $product=M('Product');//创立产品模型对象 $this->assign('productClassifys',$productClassify->where()->select());//从数据库查找所有产品分类信息并赋值到模版 if(empty($classify)){//假设分类信息为空,即首次进入,则查找所有产品 $this->assign('products',$product->where()->select()); }else{//否则,检索相应分类的产品信息并赋值到模版 $data['classify']=$classify; $this->assign('products',$product->where($data)->select()); } $this->assign('title',"产品列表");//定义页面标题 $this->display('product_list');//输出相应模版 }6〕产品相册:该页对应于ProductController下的gallery方法,当用户进入该页面时是由该函数来处理的,下面是该函数代码及注释:publicfunctiongallery($openid=''){//产品相册处理函数 $this->addOpenId($openid);//检查添加openid至session $this->assign('title','产品相册');//定义页面标题 $this->display('gallery');//输出相应页面模版 }7〕样品列表:该页对应于ExampleProductController下的list方法,当用户进入该页面时是由该函数来处理的,下面是该函数代码及注释:publicfunctionlists($openid='',$classify=''){//样品列表页处理函数 $this->addOpenId($openid);//检查设置openid $productClassify=M('ProductClassify');//创立产品分类模型对象 $product=M('ExampleProduct');//创立样品模型对象 $this->assign('productClassifys',$productClassify->where()->select());//检索所有产品分类信息并赋值到模版 if(empty($classify)){//假设分类为空,则检索所有样品 $this->assign('products',$product->where()->select()); }else{//否则。检索相应分类下的样品,并赋值到模版 $data['classify']=$classify; $this->assign('products',$product->where($data)->select()); } $this->assign('title',"产品列表");//定义页面标题 $this->display('product_list');//输出相应模版 }8〕客户案例:该页对应于ProductController下的client方法,当用户进入该页面时是由该函数来处理的,该函数处理方式于“产品相册“页面类似,页面标题赋值,模版输出等操作。9〕关注我们:该页对应于AboutController下的follow方法,当用户进入该页面时是由该函数来处理的,该函数处理方式于“客户案例“页面类似,页面标题赋值,模版输出等操作。10〕联系我们:该页对应于AboutController下的contact方法,当用户进入该页面时是由该函数来处理的,该函数处理方式于“关注我们“页面类似,页面标题赋值,模版输出等操作。5.1.3运行结果展示 1〕首页展示截图:图5-1首页展示界面截图图5-1展示了首页展示界面截图。在首页展示界面,一共有九项内容,分别是关于我们、产品服务、新闻资讯产品列表,产品相册、样品列表、客户案例、关注我们、联系我们。每个内容分别是一个超链接,点击进去后是详细内容,详细内容后面章节将会表达。2〕关于我们截图:图5-2关于我们展示界面截图图5-2展示了关于我们展示界面截图。该页面是由首页关于我们点击进入的,也可以由微信公众平台底部菜单进入。该页主要是详细介绍公司的一些情况。2〕产品服务截图:图5-3产品服务展示界面截图图5-3展示了产品服务展示界面截图。该页详细介绍了公司的各类服务工程及一些报价单,方便客户一目了然。3〕新闻资讯、产品列表截图:图5-4新闻资讯、产品列表展示界面截图图5-4展示了新闻资讯列表、产品列表展示界面截图。在新闻列表页展示的是最新的新闻信息,客户可以根据类别进展筛选查看,点击标题后就进入新闻资讯详细描述页面。产品列表页展示最新的产品信息,客户也可以根据分类进展筛选,客户可以查看产品信息,也可以选择立即预定。4〕产品相册、客户案例截图:图5-5客户案例、产品相册展示界面截图图5-5展示了客户案例、产品相册列表展示界面截图。客户案例页面详细展示了公司的经典案例及详细介绍,客户可查看成果等。产品相册列表展示最新的产品图册,点击后可查看高清大图,也可滑动查看,非常方便。5〕关注我们、联系我们实现截图:图5-6联系我们、关注我们展示界面截图图5-6展示了关注我们、联系我们展示界面截图。“关注我们〞页面列出了公司的一些媒体账号,如facebook,twitter,微博等等,用户可以点击进展关注,关注后可查看公司详细动态。6〕新闻资讯详情页实现截图:图5-7新闻资讯详情页面展示界面截图图5-7展示了新闻资讯详情页面展示界面截图。该页是新闻资讯详情页,展示新闻资讯的详细情况,用户也可以参与评论,查看评论等。5.2系统后台实现5.2.1实现的功能用户进入后台看到的界面,显示两栏菜单:系统管理、业务管理。系统管理:包含用户管理和角色管理两局部。A:用户管理:主要是对用户的增删改查操作。B:角色管理:主要是对角色的增删改查操作。业务管理:包含产品管理、产品分类管理、文章管理、文章分类管理、订单管理、样品管理、咨询反响管理七局部。A:产品管理:主要是对产品的增删改查操作。B:产品分类管理:主要是对产品分类的增删改查操作。C:文章管理:主要是对文章的增删改查操作。D:文章分类管理:主要是对文章分类的增删改查操作。E:订单管理:主要是对订单的增删改查操作。F:咨询反响管理:主要是对咨询反响的删改查操作。5.2.2性能要求在首页,页面每隔10分钟向后台异步请求,检查是否有新的订单,有则提示管理员。数据库读取内容和静态页面均有缓存,以加快访问速度5.2.3详细设计 1〕界面方面:首先是首页展示,根据mvc逻辑,当用户访问首页时有IndexController类处理该请求,也就是说当用户访问首页时执行IndexController类的index〔〕方法,该方法代码及注释如下:publicfunctionindex(){//后台首页处理函数 if(empty($_SESSION['admin'])){//判断管理员是否登陆 $this->error('请先登录!','admin.php/Index/login.html',1);//管理员未登录或session失效时转向登陆页面 return; } $thi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论