




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于微信关注的客户服务系统设计与实现摘要微信,作为一款跨平台即时聊天工具,在短短几年的时间内凝聚了大批用户群体。现如今,微信俨然已经成人们的生活方式,因此,基于微信的应用如雨后春笋般飞速而生。开发者或商家可以在微信公众平台上申请应用账号即微信公众号,该帐号与QQ账号是相通的,通过公众号,商家可在微信平台上实现和特定群体的文字、图片、语音、视频的全方位沟通、互动,形成一种主流的线上线下微信互动营销方式。与传统app相比,在客户层面,基于微信关注的应用方便很多,用户不必下载安装,只需关注即可方便使用各项功能。在商家公司层面,基于微信关注的应用开发维护成本降低很多,安全性高,而且营销推广与传统方式相比成本更低,更加便捷,商家公司可定期给用户推送相关信息,还可与顾客进行互动,大大提高了用户粘度。本文描述的基于微信关注的客户服务系统在用户层面分为两类,客户和系统管理员。其中在客户层面实现了客户浏览信息,在线下单,样品抢先预定,互动反馈,随时随地查看订单信息等功能。客户关注公众平台账号后首次进入应用时可选择与微信账号进行绑定,而后每次进入应用后不用再次登录,即可使用相关功能。对于客户,分为从未购买过产品和已经购买过产品两种,已经购买过产品的用户可享有预定样品的权限,以后每次有新品发布时,该类客户即可抢先预定。而从未购买过产品的用户则没有该权限。在管理员层面,管理员即使用本系统的商家公司可以随时随地查看运营情况,商品管理,信息发布,数据统计,处理订单等,还可以实现角色分离,所谓角色分离就是将系统管理员按不同的权限分为不同的角色。超级管理员、仓库、销售、运营等不同角色各司其职,互不干扰,使效率成倍提高。关键词:微信,微信公众平台,微信应用,APP
DESIGNANDIMPLEMENTIONOFAWECHATBASEDCUSTOMERSERVICESYSTEMABSTRACTWeChat,asacross-platformandinstant-messagingtool,gatheringalargenumberofusersinthelastfewcoupleofyears.Nowadays,WeChathasalreadybeenpartofpeople’slivesandthusapplicationsthatbasedonWeChathavebeendevelopedoutamazingquickly.WeChatOfficialAccountsareaccountsthatdevelopersorcompaniesapplyforinWeChatPublicPlatform,thatis,connectedtoQQaccounts,enterprisescanimplementcommunicationthroughtexts,images,voicesandvideoswithspecificusers.Thisbringsamainstreaminteractivemarketingapproacheitherbyonlineoroffline.ComparedtotraditionalApp,WeChatbasedapplicationsarewaymoreconvenientifwelookatthisfromtheviewofcustomers;thatis,forusers,there’snoneedtodownloadandinstallsuchthattheyonlyneedtosubscribeandthentheycouldconvenientlyenjoyeveryfeature.Fromtheviewofdevelopers,thecostofdevelopment,maintenancewillbereducedalot,thesecurityishigherandcomparedtotraditionalmarketing,thisWeChatbasedapproachismoreconvenientandreducesalotofcost;developersandcompaniescouldpushinformationtousersandinteractwiththemregularly,whichgreatlyimprovesconnectionbetweencompaniesandcustomers.ThispaperdescribesaWeChatbasedcustomerservicesystem,whichimplementsinformation-browsing,orderingonline,pre-orderingsamples,gettingfeedbackfrominteractions;andalso,weimplementroleseparation,super-administrator,storehouse,sellingandoperations,whichtotallyrunsseparatelysuchthattheywon’tinterferewitheachotherandtheefficiencywillbeimprovedalot.Keywords:WeChat,WeChatPublicPlatform,WeChatApplications,APP目录摘要 IABSTRACT II1前言 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.1PHP 52.2.2Jquery 52.2.3JavaScript 62.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参考文献 67致谢 68译文及原文 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客户端与服务器的交互客户端通过发送HTTP请求跟服务器进行异步交互,服务器收到请求后返回相应的内容到客户端,客户端获取内容后展示在页面上。图3-20客户端与服务器的交互分析图图3-20描述了客户端与服务器交互的分析图,客户端向服务器发送HTTP请求,服务器根据请求内容返回相应的内容并展现给用户。3.4.2微信服务器与系统的交互微信公众平台开发接口[5]提供与用户进行消息交互、自定义菜单交互的能力。对于成功接入公众平台开发接口的公众账号,当用户发消息给公众号,微信公众平台服务器会使用http请求对接入的网址进行消息推送,第三方服务器可通过响应包回复特定结构[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下的clien
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年靶点发现与验证技术在创新药物研发中的生物信息学伦理问题报告
- 门店出售协议合同书模板
- 高效的对赌协议合同模板
- 机械加工厂劳务合同范本
- 签订合同后主体变更协议
- 精装修房子购买合同范本
- 甲方如何写合同协议模板
- 村委与贫困户养殖协议书
- 签了认购协议被动签合同
- 电源安装工程合同协议书
- 2025年宿迁市公需考试试题
- 建设工程项目的组织协调保障措施
- 2025年春季学期国家开放大学行政管理专业毕业论文选题指南
- CO2还原合成甲醇反应器研究进展
- DB3713T-291-2023工程建设项目“多测合一”技术规程
- 苏教版四年级下册数学计算题每日一练带答案(共20天)
- 江苏连云港某公司“12.9”爆炸事故报告
- 人教版三年级上下数学试卷合集-综合素质训练
- 沥青混凝土质量保证体系及措施
- 钢筋机械连接技术规程 JGJ 107-2016
- 《亚马逊运营知识》课件
评论
0/150
提交评论