微信拼团商城的设计与实现

微信拼团商城的设计与实现

ID:35078071

大小:5.02 MB

页数:62页

时间:2019-03-17

上传者:U-56225
微信拼团商城的设计与实现_第1页
微信拼团商城的设计与实现_第2页
微信拼团商城的设计与实现_第3页
微信拼团商城的设计与实现_第4页
微信拼团商城的设计与实现_第5页
资源描述:

《微信拼团商城的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

I:10183.S分类号!TP311单位代码01353R699密级:公开研究生学号;2古林大学硕古単位论文专业学位()微信拼团商城的设计与实现TheDesignandImplementationofWeChat-GroupBuyingMall作者姓名:宋志鹏类别:工程硕古领域(方向):欤件工程指导教师:张家晨教授陈伟副教授培养单位:软件学院2016年6月 论文情况说明该论文为吉林大学软件学院在职(半脱产)软件工程硕±(单证)学位论文,论文形式为项目开发、课程设计类论、实验技术文。,不属于学术型论文特此说明。(:吉林软件学 微信拼团商城的设计与实现TheDesiignandImplementatonof-BuWeChatGroupyingMall作者姓名:宋志鹏)领域(方向;软件工程指导教师:张家晨教授陈伟副教授类别;在职工程硕±2016520日答辩日期:年月 未经本论文作者的书面授权,依法收存和保管本论文书面版本、电子版本的任何单位和个人,均不得对本论文的全部或部分内容进行任何形式的复制、修改、发行、出租、改编等有碍作者著作权的商业性使用(但纯学术性使用不在此限)。否则,应承担侵权的法律责任。吉林大学硕±学位论文原创性声明本人郑重声明:所呈交学位论文,是本人在指导教师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中W明确方式标明。本人完全意识到本声明的法律结果由本人承担。/学位论文作者签名;日期;2016年^月^日 摘要摘要微信拼团商城的设计与实现一随着微信用户规模的扩大:,逐渐衍生出另种商业模式微商。微商基于微信公众平台,结合其接口开发相应的商城,通过微信公众号或二维码扫描技术进行关注,并在微信朋友圈推送商品销售信息。相比于淘宝之类的传统互联网营销,微商的经营手段灵活,消息推送及时,。APP采购和支付均在手机上完成,方便易用用户也不需要安装各式各样的,对于用户智能设备的硬件配置要求很低。对于微商运营者而言,该模式也操作简捷。用户随时随地可W通过手机进行商品推广一、查看订单情况、在线客服等。另个更加吸引广大用户的原因,是其去品牌化特点。传统的电商平台是中也化、平台。化、品牌化微商转变原有的产品为中也方式,而注重其渠道,它强调人之间一。。的交流沟通如果你的人品不好,哪怕你的商品再好,也样卖不出去所W微商首先要卖的是人品、信任、逼格。一如何把握该商业模式,研发具有特色的微商城,是目前个很热口的课题。本人结合多年的软件开发经验,重点研究微信拼团商城的业务逻辑,设计合理的用户界面,研发稳定离效的后台管理中必,提出了基于SpdngMVC+Angular巧技术的系统设计方案。通过SpringMVC实现业务逻辑,并实现业务解親;通过AngularJS实现界面事件的双向绑定。同时结合Lodop实现物流单的打印,微信API完成微信支付,kuaidilOO接口实现物流跟踪。本论文的研究工作主要有下几个方面;1.深入研究SpringMVC的技术应用。2.研究AngularJS技术。3.研究微信公众平台开发技术。4.研究面向接口开发技术。1 摘要关键字:Silar微商;prngMVC;AnguJS;微信公众平台;II AbstractAbstractnha-TheDesiandImlementationofWeCtGrouBuyinMallgppgWiththeexpansionofthesizeofWeChatusers,thereisderivedanotherbusiness--modeli.WButhChtits:WeChatBusinesseChatsinessbasedoneWealatformcombinedwithp,interface化develo化ecorresondingmallthrouhaatentionto化eWeChatublicpp,gpypnumberorscann-donaingtwoimensilcodebuildtheconnectionandushcommoditsales,pyinformationinselfWeChatfriends.Comared化o化知straditionalElectro打icCommerce,sucliasTaobaoWeChatbusinessp,has凸exiblemanagementmeanstimelmessaesendrocurementandamentare,yg,ppycompletedonthephonebyconveniently.Usersdonot打eed化install过widevarietyofAPPhardwareconfiurationreuirementsforusersofintellientdevicesisverylow.Asfor,gqgtheWeChatshop,化emodelismoreforthright.Userscanpush風essage、checkorders、onlinecomiminicationaswheneverandwhereverossible.Anotherreasontoattractthemaoritofpjyusersisunboundcharacteristics.Traditionalelectronicbusinesslatformisfocuson化epcentralization、latform、brand.良山化eWeiChatbusinessisemhasize化echannelandppmoreefectivecommunicatio打neither凸ortheroduct.Ifour浊aracterisnotoodevenif,pyg,yourproductisgood,alsonobodywillbuyit.SotheWeiChatbusinessisthefirsttosellcharactertrastBIG,,Howtograspthebusi打essmodelresearchanddevelomentwiththecharacteristicsof,pmicromallisbecomin泣veroulartoic.Combinedwithsomeearsofsoftware,gypppydevelopmentexperience,IfocusonthebusinesslogicofWeChatgroupmall,designareasonableuserinterfaceresearchanddeveloastableandeficientbackroundmanaement,pggcenter.AsystemdesignschemebasedonSpringMVCtechnology,andrealize化ebusinessdecou-tlin.ThrouhAngularJStoachievetwowaybindininterfaceeventsathesametimepggg,CO见binedwi化Lodopassemblyt:oachieve化elogisticsofasingleprint,wi化WeChatAPIt:ocompleteWeChatamentwithkuai出100interfacerealizationofloisticstrackin?py,ggTheresearchworkofthisaermainlyhasthefollowinseveralasects:ppgp1-VCetca〇?IndthstudyfMSrinechnologalitionpopgypp2.InvestigativeAngularJStechniques。3.ResearchonWeChatubliclatformdevelomenttechnolo〇pgyppIII Abstract4.Researchoninterfacedevelomenttechnolo〇pgyKeywords:WeChatBusin说s;SpringMVC;AngularJS;WeChatpublicplatform;IV 目录目录第1章绪论111.课题意义及背景11.2目前微信商城现状21.3本文研究内容与主要工作31.4论文组织结构4第2章软件架构相关理论与方法52.1软件架构526.2SpringMVC框架2.3化atis框架72.4AngularJS框架82.5开发平台搭建9210.6本章小结第3章系统需求分析113.1总体业务需求113.2主要功能分析1737.2.1微信公众号申请123..2拼团规则183.2.3商品发布流程183.2.4用户拼团采购193.2.5订单管理203.3非功能性分析223.4数据关系分析2232.5本章小结4第4章系统架构设计24I 目录4.1系统硬件体系结构2542.2系统架构设计54.3网站UI274.4AngularJS指令设计294.5系统性能优化304.5.1分布式内存方式304.5.2分表方案304.5本章小结31第5章系统实现335.1开发环境与技术335.2微信公众号配置335.3AngularJS指令355.4商品管理365.5订单管理4052.6微信用户商品米购45.7Memcached配置445.8本章小结46第6章总结与展望476.1总结47t2展望47参考文献49致谢52n 第1章绪论第1章绪论1.1课题意义及背景一随着智能手机的普及,原来必须在电脑上进行的些工作己可迁移到手机上完成。手机端由于其具有的灵活便携性,随时随地可浏览采购支付,成为许多商家争抢的新领地。W淘宝的电子商务模式已经证明是相当成功的,数W千万计的商家入驻并进行商务W,2016活动。随着微信的兴起到年官方公布的数据显示,日登录用户量已经达到5.7亿。腾讯公司又结合它的微信产品,及时的推出了微信公布平台,供用户进行信息的推广和B1商品的交易,研发微信商城,。许多有眼光的商户已经捕捉到了这份商机借助微信朋友圈进行推广,并实现商品的销售。如果微信商城仅仅类似淘宝完成商品的移动交易方式,那它也不具备足够的吸引用一。户的资本为了体现微商城的灵活性,在原有的商城交易上形成了种新的交易模式:拼团购买一。该模式类似于捆绑销售方式,必须当用户的购买人数达到定的数量才可成。团,表示购买成功当然,该种销售模式商品的价格比个人单件购买要低的多。各商家为了体现自己的特色,又在该基础上添加了许多具有个性色彩的商业规则。比如为了吸引新用户关注自己的微信号,会定期的搞活进行抢红包、抢优惠券、抽奖。一一相关的优惠券在支付时可W低用定的费用。对于第个开团的用户,对于其成交价的一8.5折优惠等等系列的活动。所有送些,都体现了微信商城的与众不同,灵活多变。本课题的主要目的就是研究微信拼团商城的业务功能,并结合相关技术实现之。要W求系统具有良好的用户体验,,并同时具有高可扩展、可维护性W方便后期的功能变动:。该系统的特点主要体现在W下几个方面1.结合微信公众号,实现手机拼团活动。2.团购业务流程新颖。3.前台用户界面美观,操作流畅。4。.自动订单打印和跟踪1 第1章绪论5.多种不同的表格数据生成。1.2目前微信商城现状W一微信商城是从属于微信产品的个第H方开放平台,从其出现到目前大概有了5W。年时间,目前各大企业几乎都开通了微信公众号来进行信息的垂直推送随着移动设备和通讯网络的快速发展+一,互联网的概念进步深入社会的方方面面,一商业模式有了进步的演化,由原来的大而全,向小而精转化,向个性化转向。微信商城正好可W满足社会的这一需求。微信商城相比于传统的淘宝商城之类的电子商务平一一台,其最大的区别就在于产品的分类布局比较单,用户专注于类产品的专业营销。从微信商城平台的运营来讲,它也不同于传统的电子商务营销。传统的电子商务营销主要是通过百度推广之类的方式,让互联网用户可W快速的捜索互本产品。而微信商W""城则完全不同。它是通过自己的微信朋友圈扩散,类似于人脉。只要你的粉丝够多,你的人脉够广,那么你的影响就更多,潜在的买在也就越多。它的这种推广模式是爆炸式信息推广,购买过程不是支付完毕该商务活动就结束。如果某个用户觉得某个商品不错,他下单购买,然后他再将该商品信息发布到自己的朋友圈,吸引自己的好友继续购买,送样才能形成拼团效应。如果当前的购买活动达不到商家规定的拼团人数,则购买活过失败,商家自动退款给用户。一,般都比较精致,信息量不大。送个与传统微商城从产品的类型来将,针对性强的电子商务平台追求产品丰富,分类全面又有区别。W淘宝为例,淘宝上的服装商铺,为了方便用户的商品选择,会提供各种不同的分类,各种不同的套餐,多种不同的分类一。搜索而微商城因其主要是在移动平台操作,则界面布局简捷,只有几个大的分类和个关键字搜索,用户主要的操作就是通过滑屏上下浏览商品。从开发技术上讲,微商城的开发重点关注其跨平台性和快捷性。因为相对于PC而言一,移动设备的数据处理能力、通讯能力、存储能力毕竟要弱些。要想让大多数用户均可W方便的使用微商城,则必须进行技术的优化。每次请求的数据量要尽可能的少,尽量少占用客户端资源,业务处理放在服务器端去完成。目前微信商城的发展有W下几个特点:W.1开发技术不规范。2 第1章绪论2.结构僵化,不方便扩展。3.稳定性差。针对上述的种种问题,本课题在研究与设计时候,侧重于技术的选型和实现,尽量利用现在新的技术手段来达到高效率、方便扩展的目标,其主要特点有:1.解賴气最大限度的实现数据层、业务层、UI层的分解。保证UI层仅仅只负责数据呈现,事件的逻辑化理在业务层完成,处理完之后的数据进入数据层保存。当W后商务规则进行变动后,只需要修改业务层的实现过程,而不用修改其接口部分。2.所见即所得。U上。用户的I体验,突出用户体验在实现业务功能的同时,减少与服务器的交互次数。3.提高安全稳定性。安全稳定是系统运行的基本要求。为了保证商务过程的安全性,所有的会话过程均一加密,,交易过程结合用户手机校验码的方式进行综合验证。对每步资金的往来不管1111且日志文件只供管理员查看不可修改或删除。是入帐还是出账,均记录其日志,并1.3本文研究内容与主要工作本文研究在当前微商火爆的形势下一,研发出套商务模式新颖,运行稳定,框架灵,进行商品的拼团式销售。该销售模式通过捆绑式销售的方式活的微信商城平台,加大商品的销售量。同时,利用捆绑销售的价格优势,吸引更多的用户关注和购买商品。销。售渠道也由原来的商家找客户,转变为由客户来拉客户本课题研究的工作重点有如下几点:1.新颖的商业逻辑研究。。好的商业模式或思想,决定了平台运营的市场前景本课题在传统的电子商务基础上,研究拼团购买、梯形价格、产品赠送等模式,大大的吸引用户关注。2.研究微信公众平台。、微商城的运作是基于微信公众平台的,需要通过申请审核、动态菜单定制、UAU化一tui系列过程,才能搭建成功。对于微信支付,secretkePI口认证等要研究其用户y和A接,3 第1章绪论tw为了保证交易安全性,还要进行htps加密。W3.研究SpringMVC架构设计。分析各业务流程,将其业务逻辑和数据访问进行解賴。业务层和数据访问之间的访问均通过接口访问,屏蔽具体的实现细节。对于业务的变动,仅仅是修改其实现过程,而各层与层之间的接曰访问相对稳定。64【1].AnularJS。g技术Ana一rJSgul种双向绑定思想提出了,即用户的任何数据改变或动作,均会实时的在界面呈现,不需要过多的用户业务操作。该技术大大简化前台设计。对于复杂的业务事【U]件,可能扩展directive。指令,功能相当强大1.4论文组织结构本文共分六章,对微信拼团商城的分析与设计章节安排如下:第一章绪论。描述选题的实用性和特色性。第二章系统设计理论。从理论上介绍本系统采用的相关技术和工具,W及为什么要选择这些技术和工具。第H章业务功能分析。对系统进行业务流程分析,并进行模块划分,功能详细说明。第四章系统架构设计。结合第二章的架构理论,进行系统架构方案设计。第五章系统实现。选择重要环节,讲解系统的前台和后台实现,给出关键代码。第六章总结与展望。列出课题的成果及不足之处。4 第2章软件架构相关理论与方法第2章软件架构相关理论与方法一信息化的飞速发展,软件产品作为社会生产管理的种手段,日益深入民众生活。一软件产品的研发具有定的难度,具有复杂性、不可捉摸、思维产物等固有特点,使其一一在质量、工期、维护方面很难完全满足用户需求。软件开发者直致力于追求种高效的一、可靠的监管方式,种灵活的框架设计,W开发出高质量的产品。本章结合软件工程的相关思想,研讨系统架构的设计理论与方法。2.1软件架构ist'一Soh一软件架构ftwareArcitecture)堪t软件的草图,(它由系列相关的设计模,式组成,确定了软件设计思路。软件架构的选型与项目有关根据不同的项目特点,突出应用不同的技术一。软件的架构设计般由系统分析师和构架设计师来完成,好的架构,就是一个强壮的母体,为项目的成功打下坚实的基础。^91软件的架构设计时要满足3大原则:一一一1.单职责原则。即个模块或个组件,完成其核也的业务。2。.接日隔离原则设计过程要体现业务性,可不是关注业务的具体实现细节。3.开闭原则。方便项目的维护,维护过程尽量不要影响已有的功能模块,防止错误的蔓延。软件架构设计要达到如下的目标:?ful一一简明性。通过架构设计,将原来复杂的业务问题组成个有机的框架,形成个整体解决方案。?可行性。架构设计要可行,可适用,不是所有的项目都要追求高大上的架构。2D一?可扩展性巧caabellll。鉴于软件项目的不确定性,需要架构能容纳定的业务修改。)?技术前瞻性(Time化Market)。架构要充分考虑到现有的软硬件资源,W及当前流行PU的开发思想,W便软件具有更长的生命力。PS根据关注的不同角度:,将架构分成兰种1。.逻辑架构5 第2章软件架构相关理论与方法一。从逻辑思想上抽象业务,形成其业务关系根据软件的组件之间的关系,按定的UBLUDALer^ceMVC逻辑形式划分为许多层:I界面、、S层等。按照的思想,将业务与呈现分面,将操作与数据分开,可W分为Model数据模型层、View视图层、CoMrolP3业务控制层,DAO数据持久化层l2.物理架构为了实现软件的逻辑而己,需要在物理硬件上进行设计。传统的服务器资源是集中式架构,随着社会的发展,分布式、大数据、云平台日益成熟。物理架构考虑的是,如何结合硬件资源,将业务瓶颈分流,利用分布式或平衡负载思想转移到多台设备上去执削行。3.系统架构系统架构整合软硬件资源。在全面分析系统业务功能的同时,也关注其非功能性特,注意全面的分析系统的生态环境征或潜在业务需求,及其与外界的对接等。系统架一构是架构设计中难度最大的项工作,对后期的设备选型、开发技术确定、系统实现都有指导性意义。么2如ringMVC框架uSdn一oCA0Pfipg是个轻量级控制反转(l)和面向切面()的容器框架。该框架是为了。SnVC、处理复杂项目而产生的,其目的是降低各层之间的锦合度prigM将控制器模型对象、分派器分进行分离。设计是围绕分发器巧ispatche巧ervlet)展开的,Dispatche巧ervlet负责将请求派发到特定的handler,在派发时,进行业务的判断与控2制Srnf6。pig具有如下特点:?角色功能明确。验证器(Validator)、控制器(Controller)、(modelobect)、模型对象j均由独立的对象来实现一,各层之间相互调用,也可由个对象提供多个业务逻辑(不推荐)。?一配置文件管理方式。应用类和框架类都作为JavaBean配置,支持在个上下文中引一用其他上下文的中JavaBean,调用灵活。配置细节按规定的格式存放为个文件,后期改动方便。?可适配控制器Controller。用户制定不同的业务控制器,用户根据需要选择配置,而6 第2章软件架构相关理论与方法一不是从单控制器继承。?代码重用。封装业务对象和业务规则子类,在需要的地方引用即可。?定制绑定。可定义数据与界面的绑定规则,定义业务逻揖来实现不同数据类型之间的转化。?自定义验证。它已经提供了6类基本的验证机制,用户也可W继续其validation接口,定义特点的验证方式,,如:座机号码有效性的检验对录入日期格式的检验。?可定制路径映射。Spring提供U化映射与解析机制,可W按不同的参数,将其解板映射到不同的页面上。?mo-del转换灵活。它使用基于Ma的Kevaueepyl键值对来保存数据,并根据Ky与各种UI控件集成。?支持主题模式。主题化eme是当前流行的样式管理方式,通过更换主题可W快速的更换W巧的界面,不需要修改其他任何的业务功能,部署维护方便。2.3化atis框架一7aaPl一该组件是pche的个开源项目。它在原来普通SQL语句的基础上,进步将S化语句文本化,并支持相关参数传递。它利用xml配置文件,将接口和JavaB的n业务对象映射成数据库中的记录。它具有如下优点;?上手简单。相对于H化erna化的会自动化ORM模式,它是半自动的,用户可W在XML配置文件中直接书写SQL语句来实现相关数据操作。?SQL管理规范,直观性强,方便与其他系统的对接。?将SQL从原来的数据访问库剥离出来。?一一支持部分Hiberna化功能,可W将业务对象与数据库的表关系映射。?支持动态表关系映射。?支持编写动态SQL语句。P8]相对Hibernate,它的缺点也很明显;?对于表单字段多的应用环境,SQL工作量很大。?SQL语句依赖于数据库,移植到不同数据库工作量大。7 第2章软件架构相关理论与方法?Xm一Ol配置文件里标签id必须唯,DA方法重载困难。?与SQL语法紧密相关,具体实现仍然依赖于SQL。?DAO层过于简单一,后期需要进步的分解。?多表操作时,不支持级联操作。?编写动态复杂SQL不方便调试。?提供的动态SQL且可读性低。?使用不当,容易导致S化性能问题。?支持有限的参数类型。?多参数时,传参方式生硬。总结:化a化的优点其实也是化a化的缺点。正因为化a化使用简单,直接将SQL语句明文存放在配置文件里,所W对于SQL的性能便更多依赖于程序员的编程水平了。化a化适用于小型且项目使用,对于中大型项目还是推荐使用Hibema化。如果觉得Htzsiibernate因ORMSinjDBC为映射而效率低下,则可直接使用prg提供的简单框架(Tlate)emp,,同样支持对象映射并且支持现成的数据连接池。2.4AngularJS框架PW一AnularJsavaScrg是谷歌的个ji口框架,旨在简化前端应用程序的开发。现在微一软的Asp.netMV巧版本也集成了AngularJS。市面上还有个比较成熟的组件:EasyUI该组件也可灵活的实现数据绑定。之所W选择AngularJS框架,是因为其具有良好的设计思想,可W完整的实现UI,简化界面复杂度。同时层与业务层分离,具有强大的扩展指令。AnrJS5gula具有如下个明显的优点:1。.良好的应用程序结构JavaScript是脚本程序,依附于Html页面,书写灵活,没有明确的结构。虽然在编写小应用程序的时候没有问题,但如果界面数据量大,并且业务逻靖复杂时S,可能J代码就有上千行。该脚本对于后期的维护调试都是相当费劲。使用AnguladS,您可WMVC----通过(模型视图控制器)或MVVM(模型视图视图模型)模式来组织8 第2章软件架构相关理论与方法u一源代码。AlarJS是个MVW框架巧,你可W将业务逻辑封闭成独立的代码块,在页。面中引入,它可显著提高应用程序的可测试性和可维护性2。.双向数据绑定HTTP的特性是不保持状态数据的,每次数据的传递必须要通过重新发送请求,进行页面刷新来完成。为了避免页面的不断刷新,现在开发都采用K进行异步请求。但化的异步请求必须要程序员书写大量的代码。而AngularJS的数据模本身就支持数据模型改变时的视力更新,反之也可。这样大大减少化代码。3Direive。.ct指令n一AgularJS指令让用户自定义方法,进行页面的行为控制,也可W更进步,扩展API函数。你可扩展任何你所需要的数据检验、异步提交、文件上传、视频播放事件。并且该扩展的指令,是支持跨浏览器的。32]4.HTML模板。模板是电子商城设计中经常使用的技巧。结合模板技术,将应用程序的呈现与业务,则程序人员与美工并行开发。后期如果需要进行界面更新逻辑实现过程完整的分离,一一下配置文件即可只需要重新设计套模析,复制到相应目录下,修改。开发部署都相当方便。5、.可嵌入注入和测试。AnuarJSgl支持开放式的依赖注入。如果用户在客户端调试时,需要临时的设置化对象的值,可直接按F12,进行客户端调试,并修改对象,而不用修改程序或重录入,再启动运行界面。该方式提供了很好的可测试性,测试人员可W直接利用依赖注入方式输入多组测试用例。么5开发平台搭建微信拼团商城的主体平台开发基于Java技术,在MyEclipselO.O+SSH+化atis+29ca+nu【1Tomt7.0AglarJS+MySQL5.5平台上实现。SSH经过多年的发展,已经完全成熟,具有其他技术无法比拟的优势;?开源组合。开发人员可全面了解其内部机制,并进行深度订制。网上各类组织为其提供了很多丰富的插件,开发效率高。9 第2章软件架构相关理论与方法脚?典型的MVC思想。Stmts实现W纯层数据显示View部分,Hibernate实现DAO层的数据访问控制,Spring的作用贯穿了整个中间层,将W洗层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。?W1一开始就完全是固定的优秀的解賴性。很少有软件产品的需求从。客户对软件需求,,是随着软件开发过程的深入,不断明晰。SSH完美的进行了项目解賴使各部。分独立,易于维护和扩展?高效率。系统结合Memcached缓存方案,将相关资源调入内存缓存,大大加快系统的响应速度。?安全性。丰富的加密算法、文件部署方案、用户访问限制等措施,保证系统数据文件和数据库的安全。2.6本章小结本章主要介绍了软件架构设计的相关概念,并讨论总结了软件框架设计的步骤、法则,重点解释了Spring+MyBatis+AngularJS框架的优点。充分阐述微信拼团商城设计过程中解賴思想、组件化开发思想,W及如何结合该模式W追求最高灵活性、最大扩展性、最快的响应时间,为后续的系统设计做好理论铺垫。同时,本章简要的介绍了所采用的开发平台和开发框架版本组合,该组合是当前的主流搭配模式。10 第3章系统需求分析第3章系统需求分析、高校宿舍管理工作涉及到的人员面很广,有教师学生、保卫处、学生处、后勤管理处等,,,其工作职能参差交错。本人从的宿舍管理工作现状入手分析现有的管理方式同时调研各不同的部口和个人,结合本人多年的班主任管理经验,完整的梳理系统的功能需求。另外,微信拼团商城的相关数据来源涉及到教务处、财务处、学工处、后勤管理处。分别调研各处的数据格式和数据接口,W便在微信拼团商城中实现各环节的数据对接。5.1总体业务需求微信拼团商城主要功能是通过关注微信公众号,快速的在智能设备上实现商品的拼团购买过程。其最大特色是体现拼团购买,微信支付。为了吸引用户关注本微信公众号,A一购买过程阶梯价格,即买的人越多其最终售价越低y,同时对于团长(第个开团的用户),实行无条件打折机制,鼓励用户抢着开团,多开团。系统的主要用户有两类:系统管理员和微信用户。系统管理员进行商品信息的维护、,进行商品的浏览发货、订单打印等;微信用户则关注本微信公众号、收藏、采购、支付。tW3-1从功能角度划分,微信拼团商城包括巧大功能模块,用例團如图所示,分别是:?系统管理(UC001)。主要是负责系统运行的权限管理,包括用户管理和权限管理,本系统的管理采用权限组管理方式。?平台管理UC002。该模块主要完成系统的运行参数设置、基本数据设置、微()信关注用户管理、数据备份还原、日志管理。?商品管理(UC003)。管理商城的商品相关操作,W及订单管理,销售金额统计等。?微信前台(UC004)。系统的核也部分,主要是用来呈现商品,供微信用户来拼团:商品分类显示、查询、采购、支付、个人中也等。,支付等。包括的功能主要有3-1整个系统的功能结构如下图所示;11 第3幸系统需求分析;全局用例图广^"?incIude?X^\/用户组管理)^\?u^"/?incIud岭X〈〈US6■"*- ̄^<5^)y《系统售理员夕商品管理lude>〉—^)^^°難用户^°^^?'ndXclude>>\)\\\^jXA^\3SE单\^咬C^^3l-图31微信拼团商城全局用例图为了保证系统的运行,前期要做好基础数据工作的导入或设置。比如:系统管理员、权限、全国区域信息、物流接口申请配置等,,学工处、宿管员、学生进行协作完成入住3-1。先挑取核也的业务逻辑模块进行用例描述。商品发布用例描述如表所/Jn〇12 第3章系统需求分析表-13发布商品用例描述UC003-004(4)用例编号编号含义;表示第3个模块第个用例I用例名称商品管理 ̄ ̄用例插述发布商品参与者管理员前置条件涉及的相关基础数据:1.商品分类W及规格参数。2.区域信息。基本流程1.管理员登录后台。""2.打开商品管理,点击添加商品,显示商品发布界面。3.输入商品信息:全称、简称、简要描述、拼团人数、快递费,所售省份、商品规格。4.上传商品图片:首页图、图例、视频信息。5.设置价格参数:市场价、参团折扣价、折数、团长折数、单独购买价、总库存量。610.设置交易时间:如天有效。超过该时间拼团未达要求的,则表示拼团失败,自动退款。后续动作1.可在微信公众号中查看到当前商品信息W及图片。2.销售成功后,库存量会相应减少。3.商品下架时,修改其状态,但不真实的删除该商品。例外流程1.商品输入信息不正确或是不完善,及时提醒。2.商品发布失败,提示管理员失败原因。3.记录操作失败日志。非功能性需1.提示信息准确、丰富,有用户操作指南。求在用户生成订单后,如果拼团成功,管理员可在后台订单管理中必查询到当前的订PS1-,32单,并进行订单物流单打印W及发货处理。其物流面单打印用例描述如表所〇13 第3章系统需求分析表3-2物流单巧印用例描述-UC003005-001(编号含义用例编号:表示第3个模块第5个用例子功能1)I ̄ ̄用例名称物流单打印用例描述拼团成功,可选择打印物流单,W供后面发货。参与者管理员前置条件1.订单信息。2.微信用户信息。3.打印规则配置。""基本流程1.检索交易订单,查看交易中的订单信息。""2.若当前有快递单号,即可打印。3.选择物流分类,目前单位支持宅送、天天、中通、汇通。4.点击打印。5.输入当前物流单号。6.根据当前选的物流分类,自动打印成对应的物流单格式。7.操作结束。后续动作1.查看物流打印单效果。2.打印效果不好时,可能重新打印。例外流程1.物流单号不存在的,提醒打印失败。2.连接不上打印机的,提醒打印失败。3.打印机缺纸的,提醒打印失败。1一非功能性需.打印格式定要与物流公司的格式对应。求在微信用户购买过程中,为了方便用户购买,特别提醒两种购买模式:拼团购买与单独购买。拼团购买必须要满足拼团人数才会成功,其价格相对单独购买要优惠。单独购买一个人也可W进行购买,价路会适当的高于拼团价格,且没有任何的优惠活动3-3。用户购买用例描述如表所示。14 第3章,晕统需求分析表3-3用户购买用例描述-用例编号UC004005(编号含义:表示第4个模块第5个用例)I ̄ ̄用例名称用户购买^用例描述微信关注用户在微商城进斤商品的购买W及支付微信关注用户前置条件1.用户已经关注本微信公众号。 ̄ ̄基本流程1.打开微信,进入本微信公众平台。2.进入微商城。3.浏览或查询商品。4.点击查看商品明细。5。.点击开团61.团购的数据缺省为,直接微信支付。7.若需要使用优惠券的,可选挥使用优惠券,W及当前使用的面额。8口令,提。.输入微信支付示支付成功9.支付成功后,可W将该商品发布到朋友圈或是发送给某个朋友,W吸引其他人参团。10.若想单独胸买,则在第5步点击单独购买。11.若不想开团,则可点击附近的人或附近的团,检索已经开的团,并参团。12。.购买过程完成,可il在t个人中也查看到购买订单信息后续动作1.在个人中也查看购买订单信息。2.跟踪本单的物流信息。3。.如果拼团交易失败,跟踪退款信息例外流程1.对于售磬的商品,不可开团或单独购买,点击时显示当前已经销售完毕。2,.对于支付失败的准确提示交易失败信息。"3.如果当前购买人数太多,服务器繁忙的,提醒服务器正忙,"请耐也等待。非功能性需1.支付时提醒正在支付友好界面。求2.注意支付时的安全性和响应效率。在微信推广过程中,,为了前期的推广W吸引更多用户关注微信公众号特别提供了15 第3幸系统需求分析""栏参加活动有礼目。用户可W点击进入相关的栏目,进行微信的问答,W及抽奖活动,W获取数量不待的优惠券。该优惠券有明确的面值W及便用期限,可支付时抵-4所示等值的金额。用户积分活动用例描述如表3。表3*4用户购买用例描述UC004-(用例编号002编号含义:表示第4个模块第2个用例)I ̄ ̄用例名称积分活动 ̄ ̄用例描述一定优惠券微信关注用户进行积分活动游戏或问卷调查,W获取。参与者微信关注用户前置条件1.用户己经关注本微信公众号。 ̄ ̄ ̄基本流程1.打开微信,进入本微信公众平台。2.进入拼团商城微信公众号首页。3.点击推送的游戏栏目。4.回答问题或是领取优惠券。5.如果是回答问题类的调查式活动,则必须回答完所有问题,一系统会根据当前的提交内容正确率,赠与当前用户定的优惠券。6.领取优惠券的活动类似于大转盘的抽奖,抽取到什么就是什么。7.所有的优惠券都是独立的面值,独立的有效日期,用户可W查看自己的优惠券。^后续动作1.在个人中必查看优惠券。2.在支付时,选择利用优惠。1.对于某些商品不支持优惠券支付的,或是有限定使用面额的例外流程,提醒用户。1非功能性需.优惠券到期提醒服务。求16 第3章系统需求分析3.2主要功能分析下面对系统的主要功能进行分析,描述其要实现的业务功能和业务流程,为后期的开发提供实现思路。3.2.1微信公众号申请系统的开发从微信公众号的申请开始。微信公众号分为订阅号、服务号、企业号。一种途径订阅号主要是个人信息发布的,只能通过认巧的用户才可W定制主界面菜单,功能最弱。第二类是服务号,可支撑微商,可支持消息群发,相关富级A門接口等城应用。第H类是企业号,可结合相关的企业生产管理,协作运营,支持高级接口的调用。拼团商城根据其业务需要,可选择申请服务号或是企业号。本系统中使用的是服务一一一号。微信公众号的申请评审费用次300,审核周期般在周左右。审核通过之后,用户登录微信公众号后台,进行yA下配置:""1-.进入开发〉基本配置。,选择开发模式2.填写接口配置,抓LW及Token参数,该参数保证服务器与微信公众平台的对接。这里对后期服务部署要涉及的参数有:?AppID:应用ID。?A一一ppSecret:应用密钥,该值个月可重置次,供服务器连接微信公众号时身份认证用。3.配置服务器参数。?抓L:微商城服务器地址,如;http://182.254.247.110/my/weixinjsclient/checkSignature?Token;令牌,如daifei扣nl231iufeng?EncodingA盼K巧;消息加解密密钥,保证通讯的安全性。ZuXFlf6V如:7ZqDjjchi17Y2falnevrlHnZxUh8erh如tC4.配置微商城服务器,部署项目。5.扫描关注微信,并进行相关功能操作。17 第3章系统需求分析3..22拼团规则。为了吸引用户,系统特别引入独特的拼团规则拼团规则即用户拼团购买商品的。条件,,按不同的条件进行商品购买会产生不同的费用一一一3个价格个是市场价第个独立购买规则。系统中商品提供,,个是当前拼团一价,个是独立购买价。当用户因为人数限制不能拼团购买时可W独立购买,独立购13()。买价设置为拼团价的.倍该值可调第二个拼团规则,。如果用户拼团人数达到当前商品的销售阀值则可享受拼团价。拼团价取市场价的7折(该值可调)。如果拼团失败,则所有费用如数返还。,第兰个梯形价格。梯形价格的设置是这样的:对于某个拼团商品假如预先设定一的是5人成团,拼团价是30,团长8.5折优惠。在此基础之上,再添加个业务规则:如果当前团人数达到10人,则每多增加1人,价格少0.5元,最低价不得低于25一元。该模式形成后,所有的用户的购买价格均由团购成功的最后个人确定。如果本团的人数越多,那么本团的整体胸买价格就越低。对于之前己经支付了相关价格的用。户,在发货时,返还相应的金额第四个并巧价格。所谓的并订是指当用户在本商城同时采购了多件商品时,管理一员会与用户沟通,是否允许并单,,即将多次购买的物品次性打包发送过来。对于50%(并单节省的费用,该值可调)返回给用户。W上所有的购买行为,只要商品允许使用优惠券的,均可W按规则使用优惠券。一一,定的值。如100并且:当前某个订单达到,为,对于用户每订达到某个量时返回其返2%(该值可调)的优惠券。3.2.3商品发布流程拼团商城的主要业务过程离不开商品,所yA商品的类型设计,规格属性的设计,一、。商,可配置若是系统的核屯品发布时,用户需先准备好产品的图片(至少张主图干干辅图)。为了更精彩的展现商品内容,还可W上传对应的视频文件,W更直观的展现商品。商品的发布与维护由管理员操作,所有商品的更新操作均需记录系统日志,3-2W保证系统的安全性所示:。其发布流程如下图18 第3章系统需求分析开始^I登录后台 ̄ ̄^..J提示登录失败 ̄统M记录系日志YX填写商品明细;全称、简務、简要描述、拼团人?数、、快递费,所售省份商品规格I上传图片或视频V设S价巧:S价.《|及团长的折扣I设S:梯形价格规则III勾选:巧卖商品,可I挑选一^巧写学1号,修位状态Ii结束)图3-2商品发布一一梯形价格是本系统是提出的种新型概念:即每个用户购买同个商品的价格可W一样不。梯形价格的形成,可参见本章用户拼团流程。3.2.4用户拼团采购用户通过微信公众号进入微商城后,即按分类、日期、关键字来检索商品,并进一一行商品的采购。为了方便移动客户的使用,,商品的显示不采用传统的上页下页一一的分页,而改为动态加载。即第次显示20条记录,然后当用户浏览到最后条时,再加异步加载20条,依次类推。为了方便方便用户购买成功,进入商品明细页后,用户可W选择单独购买、开19 第3章系统需求分析团一、附近的团H种方式。单独购买即按单独购买价,进行次采购,与传统的采购过""一一程样,独立开:开团购买指的是本人作为团长个新的团,然后再将该商品的购买链接发过去或共享到朋友圈,W供朋友圈的人参团,所有本人朋友圈参团购买的用户均属于本团。附近的人或是附近的团,指的是通过查找已经存在的人或团来进行采购。附近的人,指的是当前本商品已经开团,但还没有拼团成功的,可直接参团。附近的团指的是本商城中,当前还未结束,开团成功且销售量最大的团。供用户根据自己的需求,快速选择参与。其操作流程如下图3-3所示。开始C)浏览商品^ ̄ ̄去选择某个商品 ̄i查看商品明细-YN.I丄''''选择商品规格争;选择商品数呈i支持IiT▼?返回首巧-图33拼团购买流程图3.2.5订单管理订单管理部分主要处理用户生成的订单,可W按区域、时间、手机号、订单不同20 第3章系统需求分析状态检索订单。其中订单的支付状态分为5类:待付款、已付款、付款失败、退款中、退款成功。巧单的交易状态分为3类:交易中、交易成功、交易取消。订单支付状态转PS-4所化如图示。3^ ̄ ̄订单支付状态转化图待付款退款成功^^IX^功广ii款中^支失度Vy\_\失巧^I退巧ANJ付巧失败已付巧^〔)图3-4订单支付状态转化團,;对于订单交易状态的变化,只要用户支付成功则显示在交易中当发货后,显一。示成功,显交易失败般由;若因为其他原因导致交易失败或中止时示为交易失败一二两个途径造成:第个原因是用户与管理员协商取消订单。第个原因是用户已经支付,但拼团失败。^订单交易状态转化图交巧中^-扣备专失巧n巧A巧巧成功巧S取消^J〔)-图35订单交易状态转化图订单管理包括的主要功能有:查询、打印物流单、退款、微信通知、手动发货等。?查询就是按上面所述,多条件组合查询订单内容。?打印物流单,就是根据不同物流公司的面单,将当前订单内容,打印到对应的位21 第3章系统需求分析置,W方便巧印机直接打印,而不用手动去书写物流单。?退款,或,管理。对于拼团失败是因为其他原因用户需要取消订单的员可通过后,台直接退款。所退款项直接返还到其支付帐户里退款成功后,向其微信里发信息通知。?微信通知。向用户定向发送微信内容。?手动发货。可W选中多个已经生成物流单事情的订单,可批是为其货。?订单修改。点击某个订单,可W对其进行信息的完善与修改。对于发货成功的订单,可W跟踪其物流信息。3.3非功能性分析为了保障系统的良好运行,除了其业务逻辑完善,实现预定的功能目标之外,还必须考虑其相关的潜在的非功能性需求,W保证系统在实际运维中方便管理。对于本微商,其主要有W下几点潜在要求城:1。,.性能需求系统的运行必须快捷,界面流畅给用户良好的体验。2.系统安全可靠。有关在线交易类的软件,首先任务是安全可靠。对于所有的业务往来记录操作日志,,并且结合事务机制保证其操作的完整性。绝不能允许一时成功一,时不成功的现象。3。.易用性界面操作简单,易懂,不需要进行用户培训。符合普通大众非专业人±的操作习惯。4.可维护性高。商务性的行为,根据市场的变化业务也会经常调整,软件必须做到易分析、易改变、易测试。5.方便扩展。鉴于微商城的特性,它本身就是基于第H开放平台二次开发的,部分功能是需要接口支持的。为了方便后期的功能扩展,相关的接口部分应利用文本配置方式,方便用户自行管理。3.4数据关系分析良好的数据库系统,降低数据维护维度。完整的数,会大大提高系统的运行性能22 第3幸系统需求分析-R据库设计要提供E图和数据字典数据库的设计应尽量做到>1;^下原则:一一一1.原始单据与实体之间尽量保持对,特殊情况下,可W是对多关系。一2.所有的表定要有主键。33NF.至少要满足。4.少建复杂表结构,多用View来替代。5.充分保证数据完整性。一6一,.数据分开存储原则。般来讲个表不推荐存放大量数据,超过百万条数据一的表结构,般按业务规则横向划分多个平等表结构。7。.合理利用索引提高检索效率8.多用触发器和存储过程来替代较复杂的SQL操作。-11ER3:在本系统中,主要的数据关系如下所述,如国?权限组具有多个不同操作功能。?-个用户可属于多个权限组。?每个商品必须属于某个分类。?每个商品要有若干个属性,并且每个属性可具有若干个属性值。?每个商品可具有多个图片和多个附件。?-个发布的商品对应一个拼团规则。?一个拼团规则包含一个明细,指明当前商品的销售价、最低价,W及人数达到一一定数量后,每增加人,优惠多少。?提供两种类型的优惠券一一,种是打折券,种是现金抵用券,每个商品可W指明是否可W优惠券。?若商品支付时可使用优惠券,则按条件可能使用多张,记录下当前优惠券的券号。?一一每个新开团用户均生成个唯的团号,W后参与该团的用户均用该团号。?-一个团可W具有多个用户,个用户可W参与多个不同的团。?一一每个订单购买成功时,可W为其生成个唯的订单号,无论打印多次,该订单号都保持不变。23 第3章系統需求分析曰态巧录较很组论品复j「IIPK陆1编PK编查?旦^I内容名称内容 ̄ ̄ ̄日期■t■*W用户壬^I1II1IFia编号?后台替理员论坛附件PK历1,FK2组t,巧化_化,脚2塞登,用I^4,^^品分类?.S^—為IISJ人_分类名称 ̄ ̄ms,。单IPK’FKI鱼互,''商届规巧名栋巧信用户置贷曰期——价格—带陆1It畳金締?>r一—?分类憲5PK遍旦田b一规格参数规则参数分类U名称化可拓送地区1阳1编号 ̄'^订单巧细II^ ̄^I/拼团规则1?^—商品附件PKms-订单编号.1商品编号数量规则明细.I1—1地址价格商品编号规卵JIDII图3-6核也业务E-R图上面的ER3-6BCNF图,规范来设计严格按,很好的实现了核也业务数据关系。35.本章小结本章总体上分析了微信拼团商城的核也业务需求,包括其功能性需求和非功能性需求。首先分析了其功能模块,并给出用例描述。接着分析功能的操作步骤,并分析其各个功能涉及的数据,W及整体数据结构。分析过程利用专业UML工具设计,符合软件工程规范,并参考相关软件行业标准。通过对商业模式的创新改革,力求突出本平台的服务特色,,尽最大可能的吸引用户W提高企业的知名度。24 第4章系化架构设计第4章系统架构设计本章研究系统的整体架构设计,レッ及物理部署方案。从总体上对系统进行架构设计,按MVC的思想,建立不同部件,及明确各个不同部件之间接相关调用关系,达到高内聚低賴合的目的,达到高可重复利用性,。力求在满足系统业务功能需求的同时高灵活性,高可扩展性。4.1系统硬件体系结构PSI系统采用分布式服务器架构,将静态页面、说明文档、帮助手册等放在ngnix服,务器上,而业务系统部署在Web服务器上。为了降低数据库压力将数据库服务器与Web服务器分器,、图片服务器分离。该方式是典型的商业运行模式在数据量增大的同时,具有较大的扩容性。分布式部署方案则将兰者均分离部署在不同的服务器上,各服务器承担不同的职4-1责,相互之间网络互联通讯如图所示。百-0.rn.這聋间'、\-爲心cyW"居I城站务》4-图1微信拼团商城服络器部署结构4.2系统架构设计软件实现部分采用模块化划分思想,将界面与业务逻辑控制分离的前提下,实现25 第4幸系统架构设计各模块的组件化。主要模块按功能需求完全分开,提取公用的抽象方法和接口。第H方组件的配置完全利用配置文件完成。微信拼团商城共分为4个逻辑组成部分:?basic化nc:用来存放基本的功能,如参数设置、公共数据维护等。?client:用来存放微信端的内容。?common;公共方法,系统服务器端。?server:后台管理的方法。?resources:存放相关资源文件,主要是配置文件。包括spring配置,h化ernate配置,memcached配置,log4j日志文件配置。4-2项目结构如图所示:I^com.nirror.un'basicFc一:sIijTT/1COD.nirror.coBBonIj> ̄=lJ—iIIiPI--COB.airror.ntcliecoo.u-irrorserver□,*II\/!?、Resources图4-2项目分层设计图按照MVC的思想,将操作过程解锅分解为:数据访问层、业务层、实体层兰个独立单元,H个单元通过消息传递实现松賴合调用。各组件功能划分清晰,调用关系明确,按逻辑思路划分如下:?Model层。存放P0对象,用来数据交互。?Service层。存放真正的业务实现方法,包括与数据库的交互,可W与0RM模式结合。?Controller层。包括业务方法,传递的数据是Model对象,数据的持久化等操作由Series完成。C-lientC下面W为例,描述按MV模式进行项目划分布局3,其包关系图如图4所示;26 第4章系统架构设计Client结构Z3I广For1'umClientControll巧化atis|III1I ̄ ̄ ̄'III!r ̄GoodsCli畑tContro"er|—一――control――le〉(hdaoibernate—r-—IIIIIIII7KIOrdersClientController]\||I<I/I_I1kI1/Ii1.!,II?^IservicebeanII ̄ ̄ ̄I、!/IQi啤1IBusiness图4-3client模块项目MVC结构在上图中,controller层提供业务方法,如:提供论坛管理、订单管理、商品管理等方法。其真正的数据修改、添加等功能ervice服务层来提供。本系统利用Hiberna,由ste实现数据持久化操作,故在service服务方法实现中调用dao的相关数据持久化方法。为了便于业务的更新与升级i,将所有的业务方法均封装为nterface,在controller■中只是对接口的调用,而不用关也业务方法的具体实现细节。在此对于数据库的操作提供两种ORM方式;Hibernate与化atis方式。Hibernate方式适合简单SQL操作,化a化方式适合于复杂的SQL语句操作,特别是经常变动的SQLIbL语句W配置文件的方式提供语句操作。a化将复杂的SQ,在后期业务变动或是修改时,只需要对应的修改配置文件即可。不需要修改业务对象再重新编译。4.3网站UI站点的UI层主要存放用户界面。包括样式、图片、视频等。好的UI具有样式鲜明,I分为两部分I操作简便,界面友好,响应快捷的特点。系统的U:后台管理员使用U界面I,W及前台微信用户访问U界面。为了方便管理,将两部分主体内容进行分享存放。nu一共享公用部分样式和脚本。同时larJS,结合Ag的思想,每个巧面对应个事件控制27 第4章系统架构设计s-,44巧。j文件其目录结构如图示S^WebRoot亡basicFuncommonc.css-exce削'■fontforum占?ETA-MINF"4cfmycss>fons担tI:仁mages色sjlib^temlatesLipvideo.lndexhtml4*serve?htm白lr占sj;;巳ueditor::upad色lo■VE5-F占!NV.indexhtm!爱instaHJodopS之.zb富Lodopruncs.sjlogin.html图4-4IU部分项目结构为了保证系统的安全性,将所有的页面文件存放到WebRoot根目录下,W防止用户的非法访问:。各文件目录的功能与说明如下?basicFunc:存放基本页面,如版本信息、目菜目录等。?ccH^on:系统出错文件、帮助使用手册等。?CSS;公用样式等。?excelftl:EXC化文件模版,借报表打印用。?font:公用的字体。?forum;存放论坛内容。?my;存放微信端界面,为了方便修改,所有的微信端用户界面W模版方式提供.全部放到template目录下。?server:存放管理员后台。?ueditor:第H方百度富文本框。?upload;存放用户上传资源。28 第4章系统架构设计?W邸-INF:资源目录和主配置文件。4.4AngularJS指令设计""Anular化最g主要的特点是双向绑定,即用户界面的操作结果,可化及时的反应给用户,而不需要再进行用户JS动作判断。该方式极大的增强了用户体验,减化界面控制逻辑,。为了达到更好的控制效果,需要自定义指令行为即当某事件发生时,界面如何做出相应的变化。其directive指令具有如下特点:1、预翻译,运行效率高。2、语法完善,方便扩展。3、跨浏览器支持好。4、支持跨域的数据绑定,呈现方式灵活多样。系统设计过程中,,根据其不同规划设计W下几类指令:1Cotrll.noer:存放所有的系统业务逻揖。2.Directive:定义模版痘染效果动作,W及定时器、模版加载事件。3Fitler。.:数据查询显示的过滤动作指令4.Main:脚本的加载指令,某些文件采用异步加载。5、.Service业务方法,如商品的展示、支付、用户中屯:存放等。6.Slide:控制移动设备的上下移动动作事件。7一一.模版:每个模版页面对应个业务方法指令,处理页面上的数据加载和动作。<打my色css接口ts赵imagesJ色jsa.s6:ppjbootstraps区.jcontrollers.sjdiectes.srrvjlers.s臣fitjmain.s區jserv.庭icssjstouchsliae.sj-5Angu圈4larJS指令文件29 第4章系统架构设计4.5系统性能优化PS1为了提高系统的响应速度,利用Memcached机制进行数据缓存。对于业务数据库中的表结构,采用分表查询方式。4.5.1分布式内存方式一Memcached机制可iU将数据缓存进内存,但其与直接的Cache不样。Memcached最大的优点是可能支持后期的分布式扩展。比如:当系统的用户业务量达到某个阀值,单台服务台己经不好处理时,这时就可W考虑进行分布式解决方案,而Memcached机制可支持分布式内存。系统设计中,将初始的基础数据,W及用户初始访问的商品列表缓存。Memcached的优点主要有如下几点;?使用预申请和分组的方式管理内存空间new-,而不是每次都需要个内存块slab。?一自动内在释放。当个si油不被引用时,就自动释放该块。?利用性能更好的newHash算法。?一Memcached是个独立的服务程序,可W结合其他植架进行灵活配置。4.5.2分表方案对于系统中的业务数据,商品数据和订单数据,将其分表存储。商务系统的数据量会随着时间急剧膨胀,会严重影响后期的检索性能。系统预期2个月后的用户量为20一天万左右,半年后的关注用户达50万。按照平常1%的用户下单,则每天会产生几千个订单一。对于订单表的数据维护将会是个难题。系统设计采用分表方案,即将不同的业务数据,进入不同的业务系统。首先,将订单数据根据其不同状态,插入不同的表。主要的业务状态有:交易中,交易成功,交易失败。建立H个巧单业务表,:交易中订单交易成功巧单,交易失败订单。H个订单中一数据利用触发器机制,保持数据的致性。对于交易成功和交易失败的甘单数据,需要进行频繁的统计,是后期业务统计热点30 第4章系统架构设计一一,将同类数据tu年为单位再进汇总。按年份步进行横向切割,保证每次系统运行过一程中,查询到的数据都只是小部分。4-6划分之后的订单数据结构如图所示;订单表划分OrderFailuredOrderProcessingOrderSucceedItIiII1I1IiItItIOrderFaHure肚0巧OrderSuccee故0巧i--)(1IIIIIIIIIIjjOrderFailured2014OrderSucceed2014I[ ̄e')v'...—-」—y图-46订单划分结构其中:?OrderFailured表示交易失败订单。化de巧ailured2014表示2014年失败订单记录,按日期索引排序。化derFailured2015表示2015年失败订单记录,按日期索引排序。依次类推,不同年份会有不同的该表。?OrderProcessing表示正在交易中订单。?OrderFSucceed表示交易成功订单。0rderFSucceed2014表示2014年成功订单记录,按日期索引排序。Order巧ucceed2015表示2015年成功订单记录,按日期索引排序。依次类推,不同年份会有不同的该表。4.6本章小结本章按项目特点,进行系统框架设计,设计符合移动端使用的微商城。系统设计的思想按照MVC的思想,将各层进行分离。将各层之间的交互尽量利用配置文件来实现,配置文件利用xml标准文件进行存放。31 第4章系统架构设计为了提供系統的性能,特别结合了当前流行的Meim:hached机制,将常用的数据加。,,载入内存中,减少10操作对于数据库的优化方面采用索引机制和分表机制来实现查询的最优化。32 第5章系纯实现第5章系统实现本章W系统的例也功能为例,从UI界面的设计,到核瓜功能的实现,描述项目的具体实现过程。5.1开发环境与技术一由于微商城的用户访问量会很大,个成熟的微商城的关注用户量会在50万W上。且拼团价格计算逻辑很复杂PSl,为保证系统高效稳定的运行,特选择Centos作为服务器。Centos开源系统具有稳定性高、集成性好、费用便宜等特点,系统环境如下所示。?应用服务器环境:Centos6.5+Tomcat7.0+M。ySQL5.6?系统开发工具:MyEclipselO.O+Spring4+Tomcat7.0+MySQL5.6+AngularJS。?其他工具:JQueryl.8,Lodop插件,AdobePDFActiveX插件11.0W上。5.2微信公众号配置为了将服务器与微信公众平台对接,需要同时对微信公众号平台开发者中也进行配置,同时,对服务器中系统中的配置文件进行修改,设置其微信连接的应用程序接口和钥匙。5-1微信公众号配置如下图所示:W:可-二可X巧21站化巧巧aW宝*3芭廣;S置S;居电好?rgg心"-::二G?巧巧《!巧.i;;二己其;离^至甲..兵写牵巧恥:軍巧:巧巧朽相瓦'■1w-"巧:h:nma-、写度巧—n//wwlwua;Uonvmwe!xmlKientcncSntpp.\.l/ek^awe'了-if.度1己4*ii520CC巧15:巧ae8ei7bldc5kCff2-;;?-?r'^‘:c山A:ii1rKrWPn4TM\B4tti/ugjr>avgD〇^4AU3Ccv8vf\au9MouRH巧巧巧巧::?己--图51微信公众平台配置参数33 第5章系统实现在后台应用程序中也也需要进行配置,本系统将所有的配置信息存放在resources/srna—confi呂.properties文件中,并在pi层/pplicationContextcore.xml中进行引用,使Spring应用config中的相关配置参数。1.oerties.配置confi呂prp冉配置数据源=database,drivercom.面ysql.jdbc.Driver=hibernate.dialectorg.hibernate,dialect.MySQLDialect=database,urljdbc\:mysql\://localhost\:3306/ptmalIdb=database,usernameroot二database,assword123456p二database,ort3306p二database.serverNamevmards001.inysql.rds.aliyuncs.com巧配置微信APPID=weixinapidwx3521d2f9c7335af4_p_=weixinappsecret570ab5fe2134cd9c974191007d4e68bd__二weixinmchid1254370701__二weixinaidwx543e906d79c257ae_pp—=Weixinaecretlf48584d09e6882dc93e5d9eeb9d37d0_pp_s=4weixinmchid12454巧02__redrectur=-weixinilhttp://www.pintuanmall.com/ray/weixinjsclient/oauthResp__ose=weixintoken520cca815cb55ae48el47bldc56c0ee2_=weixinencodinAESK巧rNrWPh4TMawB4fo4t4AU3Cicw8vfvauu9MouRH_gg如gpa=htt-weixinhometh://www.intuanmallcomm阳index.html.__ppp/y/y/we二tuan-ixin—notifyurlhtt://www.inmall.com/my/weixinsclient/notify_ppjwex=-iinaurlhtt://www.intuanmall.com/m/_py_ppy-core2.xmleansean?在applicationContext中添加b下的b配置结点:<---->!加载数据库配置文件34 第5章系统实现—<context:propertyplaceholderW"二locationclassath:resources/co打fipg.roerties/>pp<---->!微信基础配置""""=二<beanidconfigclasscom.mirror,basicFunc.vo.Config〉""""二二<roertnameweixinApIdvalue¥weixinaid/>ppyp{_pp_}"*""<==propertynameweixinAppSecretvalue¥{weixin—app_secret}/>""""二二<proertynameredirectUrlvalue¥{weixinredirecturl}></roert>p—_ppy""""二=<roertnameweixinTokenvalue¥{weixintoken}></roerty〉ppy—pp^^二<propertyna阳eweixi打巨ncodi打呂AESKeyw*=value¥weixinencodinSKe}〉</property>{—gAEy""""==<roertynameweixinHomePathvalue¥weixinhomeath></roert〉pp{__p}ppy""""==<roerty打a阳eweixinMch王dvalue¥{weixin阳chid}〉</roert〉pp—_ppy""""==<property打a阳eweixinNotifyUrlvalue¥{weixin—notify—url}></property〉""""二=<propertynameweixinPayUrlvalue¥{weixinayurl}></roert>_p_ppy</bean>"5.3AngularJS指令AngularJS的指令动作分为7大模块(参见4.4),分别来用存放不同的业务动作。下面展示main的配置s;,主要描述了如何去加载项目j资源reuiriqe.confg({narJS//配置Agul的路径paths:{""""AlingularJS:..ibionicsAn山arJSAnularJS.mn////g/g,j""""-----AnlarJSuir1ilou:er:..libioncsAnuarJS山AnularJSuirou化r.ingu///j/g/gm,""""uerlqy:../ib/ueruer.minjqy/jqy,j""""app:../js/app,""""controllers:..scontrollers/j/,""""diretivesirecic:../sdtvesj/,""filtersWsfiltersj/,35 第5章系统实现""""services:"/s/services,j""""t:ouchslide:../lib/jquery/化uchslide,""""classie:..l化uerclassie//jqy/,""""sideba「Efects:liersidebarEfects../b/jquy/,""""bootstrap:../js/bo如巧rap,"""r----lbfllfll.mnScroi:..inininitescro/ngininitescroing//g,"""".Jaz.muerazload:..libueruerloadinjqyly//jqy/jqyyh5.4商品管理5-2后台商品登录成功之后,商品列表如图所巧。—.二>L_‘、.5--11左.MM9S?■,MWatCTVlun。。?巧a防‘'’燃ili幽边i^:MMiMmmmsstramucSt巧m??MCB?w^-wifc二sAxa有巧HUh王>?化m?:?-:M'r:Ml;?&aa有王?k?■asi.4-';3;W■:li£lS台巧押■;±*t?化?巧j^王?—化3r2■lWKiW:!>tir■,:aB上斬;a巧好iSetsuiiM*。上>??^*。’3Jfe;£0wi.r:;'..:)<n94BGB伊主*:i?>IT'-,t^{T仿‘:[t'-.知i額WWW巧..?h-.MM!2上?t:?■?'m月:,W(W:x?wnf?im0B3:'■n’七:‘t22换时6DM)Ci*e?打■a>却?gj?^悼‘j::B的师i±m6w:?如曲?-:;AKS凸阳'B?讀江;巧f王,fe??;h虹c‘;*.r三r2cB?口?T王1c?S:fc:^SIi?}?>化巧电押1?上"*a--iv-;:巧BJW口181]上》itU?换1^‘—.^乙:日f(A?gna口上w■:忙?*-.:记M。,面±??a?.分:。媒ca*4rtH-,:1?A*田a,上,kir?Ihi-;,、K'wV.;;A*sa:巧*??t?■-K.?-*巧--1巧:巧巧》M:5*图5-2商品列表商品的列表文件WebRoot/server/htrol/goodsList.html主要UI呈现,真页面对应的行为(数WebRoot/server/js/goodsList.s据查询,AngularJS、分页显示、数据绑定)存放在j中利用来控制其行为。一odLi.htmltl空sst的主体为个abe,在呈现时,通过AnularJS,go,初始为g的数据绑定机制动态加载数据列表:<!D0CTYPE><html>--一>。头部:存放样式^以及页面属性说明36 第5章系化实现<body>'""^"=二《scripttypetext/javascriptsrcserver/js/goodsList.jsX/script〉WWWw'"^==-=><dividccclasseasyuilayoutfittrueW''^""^'""====〈divregionn〇rtlTsplitfalsestyleheight:50px:borderfalse>""""<ds=-=>ivclastoolbarb呂styleheight:none;""<tab=w一iftvert—lestyleidth:100%textal:leicalalig打:middle>:gn::《化><td>"^""'二=《buttontypebuttonclassbtnblue’’=onclickGoodsList.addO>新增</button>;状态:""""==〈selectclasssanlidsearchstate>p_ww=<optio打V过lue〉所有</〇pti〇n>ww=<oio打valuei>上架</option>pt"w=〈optionvalue2>下架</〇ption></select>""""""==:。叩山;class巧an2typetextplaceholder名称,描述""=idsearchVal/〉Ww^^=二〈butto打typebutto打cl过ssbt打blue’’=onclickGoodsList.reload。></button>;搜索《/td></tr></table></div></div>""""==<divregioncenterstylepadding:5px:>w"=<tableid〇rderIable></table></div></div>《/body〉</html>37 第5章系統实现一在页面部分定义的UI呈现中,仅有个id为orderTable的空table由scrit,其数据p中引用的goodList.js来加载,goodList的加载事件如下:/*表格定义*/=varheader[[{’’field:orderBy,"排序号"title:,width:30,’’align:right,editor:{'’type:text,options:{}}},/*类似定义其他7列*//*下面定义的是操作列的三个事件*/{""field:id,""title:操作,width:200,’’align:left,formatterfildex:uncto打(varowin,,){二varbuttons[]:"’’’二-=butto打s.push(<spanclassiconfile></span>〈ahrefjavascript:void(0)’"=onclickGoodsList.showDetailWi打dow(+index’’"+=51火16扣扣:14目}^>编辑</过〉;),,=vars上架;=varSt泣te1:==ifrow.state1{()’’=s下架:=state2;38 第5章系统实现}w’’’’bu=-=tto打S.push(<spanclassiconfile〉</spanXahrefjavascript:void(0):’"二0打clickGoodsList.updateState(’’+state++row.id,'’"""+=+stlefont:14>+〈/a>ypx;s)"’’’buttonsu<sl=—le〉</s=,psh(pancassiconfipa打><ahrefjavascript:void(0)’=onclickGoodsList.delr+V过1’’’"+=stlefont:14><>)y阳;删除/a:*"returnbuttons.join( &nbsp: &nbsp:);}}]]:/*商品数据绑定*/=varGoodsList{""slidlmgOne:,"'slidlmgDetail:,-!index:,//初始化init:function(){//曰期控件初始化’’-.¥(.dateicker)datepicker()p{}://表格觀始化""¥torderTable.dataid()gr({’’url:product/getProductList.do,border:false,singleSelect:true,pagination:true,fi幸t:ruet,/queryParams:{},本/fitColurans:true,39 第5章系统实现fro之enColumns:true,pageList:25304050[,,,],""loadMsg:正在加载数据,请稍后。。。,columns:header,onDbIClickR曰w:function(rowindexrowData),{GoodsList.updateSort(rowindex):}}):})}:**/页面加载时,调用页面初始化,完成数据绑定/¥(function0{=editrownull;GoodsList.init0:}):5.5订单管理"-管理员进入后台后,选择,可进行订单维护。订单维护的主界面如图53所示中"-通快递,生成的打印单如图54Lodo并打印单所示,利用。该打印过程调用了p控件""其图形打印特性,算准位置,将相关的数据画到图片上。若要查看巧单明细或是跟""-踪物流信息,详情,55可点击,可查看到当前订单的明细W及物流信息如图所示。?----'.-;?t--rvr*:fcw;wn目5.Ctc.;:;iv.;v.rn-fu.■s.狂巴2;黑2S。K&fte?*。|>?fua*M<§aewww?r>itiieqw,讯仍值俯。i巧。m,巧n巧《s。,巧《化《3;。rw巧巧。>-;'*扣i:。!"巧36点:二一。JSi。!6:2;;Itfg1*B)?iKHI.?巧tf.--。0--*?況巧;wsS;WS9KV20ie0Wjtaa?*;策O:fe?〇佛Slr’'-■>地伍《g佛玄<似:巧w巧w巧:换1賊2:;?1巧似:】>s9*-<;ws:H?掛巧w巧X)2山口〇<:;wiw孤ec>:A:田ft)!〇>?抓巧?■*?;:^iB'?‘?,一?.<向^s佈w'化IK巧IK巧scaif巧!换;4:;5:¥.:r);:化(&】:s打tI玄p.??"-.,3-liSJW巧;ctifinjciajHSiK81i:拟;化;:3:?rj*俯six*?-*U巧田巧..《2ne02!?3?巧:;!S6W27¥S.:巧9.?如《.¥扣似;】:s说度巧??怖I>皆HS交M?扭‘ ̄*〇'2CJ402142W巧:巧柏1C的");巧mawsr。:"一W化<3wS讯画?脚巧《?....--Kt飢38巧4巧5?*巧2巧口:U.A)*:!:201W5W:S报i?N?*nw交?,特??*'?<>?■?;?1?".":251?i;r3e;S*巧*?#5,IS5:2K25I_巧*>巧"W03SfMSBETt??0?S,B*?dB*?201K’2?4,;>《<1巧巧班;巧端:*^巧》6£护拉."?,>?:站!6:中;。2化促ET?<婚》(脚巧?一-'h??-‘s:5u3〇r巧■柳sn巧机苗^>3化;'饰畑**'2i4;;巧,:—:如;s*i町巧??巧’.《'2J!?J3M2SJ!友;?》MtfST:B*:31巧》2化。?化Wi"S麻?>*柳.,:.*#。畑巧》!?*’?0?巧:於*?*:;。6?】?:?1;Sr_.—>。2CW&1;SAT1W玄*1?-/?J’.-《《.--!巧:2巧巧-巧1W2,,*!;":>0?。1供8:?.JU、?证《0*朱你sa.'?乃;*1S?知-;cu5Wtar定:托《;scs?*wsflt口巧巧S证#?CSirt?*伽s?i?',KU巧4巧?-42?6巧接2树7拉<巧K一3:巧?防:3fWHWf???*邮巧■.V!;巧w王*】14H"-‘*K.?、’?拍i-**.V、?-?:..:?2Ui22:??巧:巧4技iljSK:;的(舟Ki3:20!M5::WW?l??*??无■/?去、鸿rl王S0巧二扭*-二JCW?"■J.5〇-巧:麻》0?-':;B王*■;?185;2?K;£25;3*师S*?*"^--.i--.;';.机四1巧巧史;化啤5?*王化:%:扔!《Mly:,:201MM:5tie瞄《=(?a??〇?sh-■*h?-?m.#35:巧巧化100K;曲)£:;巧…图5-3订单列表40 第5章系统实现""'"■*'心;'心r^—r'.—.-…,II占、*——■一、,以、….;—_&圓glllHl:llilillllM甚解巧化裔城巧辟聲^东崔畏鹏…竿■逝m.藥j^剛?.....懸轉:^:P四卿赖.Agr......轉帮蜡雜誦.微?1瓶觸....mm共戦沪然世资易逝岁繁文渡晦超i|il‘^f巧护洗惟投..熙3!;e,—斟W織,lM'@邮..:齡删6邮:柳 ̄ ̄讀跳1.#邸咖'.j]千猶巧脚们挪。巧C诚神巧懲:>品;:画□#〇坦i門品二二.--习叫ME!―*;賴蔡S^TI黑::..:奋]胜懸?n-Aa^——(口;j.‘*.一-發./觀地卓冷門L;;::n。嘴,.掉笠扁船i巧这巧前撕,w純_—1.!——?.t__—r,择^fill^l4,微诚7了料解万1922沿511化巧宵11M慾.:瓦:溫谎11'-.S..图5-4物流单打印。-■.'-'i、"?'=-??、I亡’〇,《',--w:V!?:巧巧民?姑.子^:广、片川,。^;:T;5.隨装占解。巧wi**'20I?3!M4M17mw-,sijSSffiK7*.ngir;teWIifJSt:RiilflJilVlas訓。編…抓W巧153-。馴膠‘;^;苗品?史巧巧w车.;々】化二:戊S陆巧ms巧画脚7_>e:>?占-*IH嘟巧>OtiO:>M:;f;扩:)l;£派巧U^!;??着?;>)防扣巧,巧広、《":1々抓巧**_*—,化八"7,aua*巧3i*",iaoteiMWi正化扣>;iuf八一iim:.世?-<^-.<i〇uMwwrsBt巧己?t.'iiwc3i;ru?a?牛斯啤S_顧心巧4;!3?1"piWlfWE******I****二JCW::'"成-A师巧A"IM&:、l■*,*JQKS*B俯*??Il?>.’器尽^啤持表:?lc?>SV:1MJ14V.Jn.i*=.<■**c;巧'4":;巧t比。了化扣化M巧成北度仿s:亩巧俩3KC苗巧孤"M。与I明巧这,??+KWX3Wf'nvSPWIHHillH論:嫩脱《跑押M,<*?,3;换成90:材脚!*.*f:*8:二2WJS6;tCS?挪5t;::XJ-'.riuOiVi阳n广从M;W1:三化巧* ̄‘?::.:;:::S::?X細*肺:ww併M*:化过iRMMi汾編《aHUi《靡wf化一:。化》r3扣4一*.,化玄你?|?-'2〇j?3-i'isa9M》.巧JyB?aMK?CT—?巧ste:工i(:-=;'二樹巧;逆一泌换>?批scwsn;;_*一i!巧切w巧'机促^1?.*;.:;巧坦1?29|1如0;ir氏化£*JT44诗w?4.:,巧2〇■2nec:.2化:weit:乂术伯::&化;:;鮮j似巧ewt?。::巧巧:巧;斬"?+巧5£;—’.’'>";报f扣巧姊微共.:巧IHH;:HHHHHnHHHHHBHBBBaBHHHBHBHHHHHBHHHi5-图5订单明细41 第5章系统实现5.6微信用户商品采购-,可W进入当前的拼团商城56所示。用户点某对于关注了本微信号的用户。如图-,57所示个商品,则跳转到商品的明细查看界面同时可W支付如图。支付成功之后的。内容,可W转发到朋友圈誇逵至畜色中路8目号層直M东志鹏1377365086&'八.與,:槪?--425g5藍装30元全国包化出□韩国黄巧...),.:1,、站30.00/件巧:麵件.心*425g5黄桃醒头:化00总护30块适.00.二'..r—..1--———..',...:‘?-..T?V?.J..、.?.-1立请泣擇支村方式-■,巧:女;45-0C一芭2??按信支忖1人#哲-石是宮动退寂.巧见下支巧开昆共遊巧.、數因方巧臣玩;£40.00SiBimH■=丄.丄丄AH麵玩s蜜看洋權谊巧A巧尹团進巧巧玄运敦人孩1气A1j4〇识驾吉-.?或护至转肾更片陆酶頂R-图5-6商品明细图57商品支付微信支付先要用户申请开通其微信支付接口,,支付时先预支付生成其支付签字然一后由用户确认次后再真实的完成支付,其核必业务代码如下。publicstaticMap<String,Object)wxPay(Map<Strin呂,0bject>param,Configconfig)(二Map〈Strin呂,Object〉return民esultnewHashMap〈String,Object)():二UnifiedorderDtounifiedOrdernewUnifiedorderDtoO:42 第5章系统实现=Map<String,String〉signMapnewHashMap<Strin呂,String>()://公aid,mchid,noncestr,body,orderNo众服号pp__unifiedOrder.setAppid(co打fi呂.getWeixinAppId0);""sinMa.utaidconfi.etWeixinAIdO)gpp(pp,呂gpp:总金额totalfee//_""=BigDecimalbdnewBiDecimalaram.etrice.toStrin()g(pg(p)呂):二Doublepricebd.doubleValueO本100:=LongtempPriceMath.round(price):unifiedOrder.setTotal_fee(tempPrice.toStringO):""signMap.put(total_fee,tempPrice.toStrin呂());//终端IP,通知地址,交易类型,用户标识openld""tunifiedOrder.setOe打id(aram.et(oenid).oStrin)ppgpgO:""^^sinMa.utoenidaram.etoenld.toStrn呂pp(p,pg(p)ig())://签名unifiedOrder.setSign(WXSignUtil.sign(signMap,config)):tiriMa二p<Strin呂,String)resultWXPayUtil.unifiedorderMap(unifiedOrder):""""if(result.get(result_code).equals(SUCCESS)""""&&result.et(returncode).euals(SUCCESS)){g_q//返回成功json字符串se}el{"WreturnResult,put(flag,true):}catch(Excetione){}p"log.info广支付出错啦:,e);}returnreturnResult:}43 第5章系统实现5.7Memcached祀置一M+为了加进步优化系统性能,本系统利用emcache来提高系统响应性能。Sp^ngemcached>M可!^1完成的集成,相关配置过程如下;s-inmemcachedxml1?创建配置p:rg.""""<?xm=二 ̄lversionl.0encodingUTF8?><beans>""""二=<beanidmemcachedPoolclasscom.mirror.MemCached.MyPool""factory-阳ethod二etnstancegI""t-thod=taini扭einiilize""destroy-阳ethod二shutDown〉-ar><co打structorg《value>mMemPool〈/value〉y</co打structor-ar>gww二<propertynameservers><list><value>¥memcache.server</value>{}〈/list)</propert>y<—!类似配置参数:initConn;最大连接数,缺省为30;阳inConn;最小连接数值10,缺省为;maxConn:最大连接数值,缺省为50,根据并发量可调整;maimSleep;主线程睡眠时间,单位为毫秒,缺省设置为3000:nagle:是否启用nagle算法,socketTO3000;连接超巧时间,单位为毫秒,缺省为;—></bean>44 第5章系统实现""""==<beanidmemcachedClientcIasscom.mirror.MemCached.MyMemlient><cons-tructorarg><value>myMemPool</value></constructor-ar〉呂〈/bean〉</beans>-common2.applicationContext,xml酷置文件,添加如下配置;<bean"=classorg.springframework.beans,factory,config.PropertyPlaceholderConfigurerOw^二<property打ameiocatio打5><list><value>classpath:rayMemCached.properties</value>《/list〉</property></bean>3.Web.xml文件中配置新建的文件<context—aram>p<aram-打ame〉co打textConfLocaton〈aram_name>pigi/p-th—_<paramvalue>classpa:/sprin呂/spring阻emcached.xml〈/paramvalue>ontext-aram></cp5.MemCached.ropertiesmy配置文件,如第2步中的文件名称对应:p=me过che.serverlocal\:12001=memcache.initConn30二memcache.面inConn10二memcache.maxConn50二memcache.maintSIeep3000二讯emcache.naglefalse45 第5章系统实现=memcache.socketT030005.8本章小结本章在第四章系统架构设计基础上,tU核也功能为例,叙述了微信拼团商城的设计。实现W及运行效果实现的过程突出了分层思想的体现,代码的规范化,yx及微信编程技术的应用。为了达到更好的性能,也引入了log4j实现日志记录,memcached进行分布式内在管理。本系统通过严格的单元测试、集成测试、用户体验测试H个阶段,运行平稳,目前己在正式投入使用,并且已有关注用户30多万,每天生成的订单达1000条。46 第6章总结与展望第6章总结与展望6.1总结本微信拼团商城的功能灵活,操作模式新颖,能极大的吸引微信用户进行拼团商品采购。同时结合先进的开发技术,,界面运行流畅功能扩展方便。系统的分析设计严格按照软件工程规范标准,数据设计符合国家电子商务数据安全规范。本课题主要完成了如下工作:对微信拼团商城进行业务分析,分别调研各类用户,提炼最佳商业模式,结合微信一。公众平台,研发出套完整的商业系统,并投入使用参考各优秀的国内外技术解决方案,在实现高可扩展性、高灵活性的同时,考虑其响应时间和用户操作体验,采用AngularJS技术操作前台UI呈现,更好实现用户事件交互。同时,结合MVC思想、抽象工厂模式和Memcached缓存技术,使网站的维护灵活,运行速度快捷。对于网站系统中很重要的信息安全性问题,在利用硬件防火墙过滤的同时,制定了严格的访问控制机制,可W减少恶意的DDOS访问攻击。6.2展望由于商业模式的不断变革,本微信拼团商城新增的部分业务功能还有待完善研究,比如:拉人入团、购买赠送、并单等功能还未找到完美的解决方案。系统的稳定性上也一一还存在定缺陷,系统在运行10天左右服务器资源会出现枯竭现象。主要还要进步研究的方面有;1.图形化订单打印模版设计。订单模版的打印目前是根据各快递公司不同的单子,依次计算其每个数据项的位置然后打印的。该位置计算过程相当麻烦,容易产生偏差,要是能做成图形化位置拖放就更完美了。2.查询优化。目前数据库的查询优化是结合索引来完成,当用户数据达到40万时,每次分页显示47 第6章总结与展望的查询要5砂左右,后期可W考虑分布式数据存储模式来提高数据并发量。3.页面分页加载。50:,现在进入商城时,缺省加载务最新的商品信息。后期可改为异步加载模式先加载3屏数据,然后当巧幕移到最下面时自动加载20条,依次类推。异步加载可W大大加快页面的打开速度,提供更好的用户体验。48 参考文献参考文献[1]孔秀丽.基于微信公众平台的大学生移动商城的构建[J].科技创业月刊,-2015(3):巧26.2S化oMoJ[]倪懿.模式下基于微信么众平台构建图书馆移动服务系统的巧究[].情报20-科学,16(1):1213.[3].杨晨.巧析基于微信的新型营销模式[J]现代工业经济和信息化,20-14(16):4142[4]黄冰,熊昌星.基于徵信公众平台开发的校园微信助手[J].信息通信,—2015(化):1314.M2011-[5]朱义.Eclise实用教程[].北京:电子工业出版社:89126.p,AC的精品课程网站权限设计J-[6]肖群.20l6:6..基于RB[]智能计算机与应用,a)4[7]何光旭.基于jQue巧框架的医院HIS系统页面前端特效设计[J].电子设计工程20154:21.,()VC1-[到离昂.M设计模式研究[J].电脑知识与技术2062:3233.,()r-[9]Deades.ComputerbasedCreativityEnhancedConceptualDesignModelforNon-routsnofMechanastemsneseournaofMechanineDeigiclSy[J],ChiJlicalEn-ineerin2014:89.gg,化)〔10]许娜.Networktopologyoptimizationofsupplychaininformationsystems[几Journaut-lofBeijingInstiteofTechnology,2015(7):2829.-[11]刘宇宏.设计模式在软件项目中的应用[J].计算机软件,20巧巧):4345.[12]吴云芳.基于B/S结构的高校毕业设计选题系统的设计与实现[J].大学教育20161:42.,()141-[13]李文.基于SSH架构的在线考试系统的巧究[J].武汉大学学报,20(2):5354.4[14]张大亮.网络攻击技术研究[J].武汉大学学报20巧:38.,()ML的流程建模与软件测试20-[巧]陆远:23.U[扣.武汉大学.1511.WJ-[16]刘华利.Javaeb中数据库巧问技术的研究[].计算机王程20153:4647.,()0-7MVC模式的WEB应用研究J.20巧(1):1213[1]李容.基于[]计算机应用与软件,.49 参考文肤-[1引.20:3.顾小升.软件体系结构[扣南京大学,1527119RUP的轻量级软件过程实践巧1-[]化腾飞.:203:2022.,基于]北京北京交通大学,020-[2]谢琪林上阅卷系统设计与实现比].四川:电子科技大学:112..网,111[21]颜兆林.系统安全性分析技术研究比].长沙:中国人民解放军国防科学技术大-学:226.,20011[22]杨瑞龙,朱征宇.引入软件设计模式的面向对象程序设计教学方法[J].软件学-报201510:2627.,()[23]陈端芝.基于JSF+Sdng+Hibernate的工程质量管理系统设计与实现[J].西安交p通大学学报20-150:3335.,(1)[24]马静.基于TAD的电信定单处理子系统的设计巧].石家庄:河北科技大学,2011:-1215.[25]胡家镜.旅游移动电子商务网站内容交付性比较[J].计算机工程与设200-计:.,15(1)4749261-1[]张大新.B2C电子商务网站设计研究巧].上海:华东理工大学,203:134.21-1[門黄绪华.MM].北京:清华大学出版社20巧:2224.巧化入口与提高[,th巧引林满佳.OJ.,唐化Au授权流程的安全建模研究[]广州大学学-报20153:14化.,()th-[29]张天琪.OAu协议安全性研究[J].信息网络安全201334445..(),[30]徐礼金.基于J2随框架的微信拼团商城分析与设计[硕壬学位论文].广州:华南理工大学-,2011,2028.3NJ11-[口高静.JS0数据传输效率研究[L20632325.,第期,[32]冯晨超.基于AngularJS的物品和用户查询模块的设计与实现[硕去学位论文].-南京大学,2014:3728.3JS一[引董英茹.简谈Angular在下代Web开发中的应用[J].软件工-程:.,2015(5)293034-1[]相晨萌.基于巧ee多层架构的档案管理信息系统的开发[J].20113567.,第期,135-[]刘博.在线预约挂号系统设计与实现[J].中国科学院大学2014:3739.We-[36]黄有福.JspebStoragAPI会话机制探索[JL2013,第39期,45.50 参考文献-巧7]李晓玲.电子商城系统的设计与实现巧].成都:电子科技大学20362.,1,11[3引李洁.:.南京机电公司电子商城系统的设计与实现[扣成都电子科技大201342-47学.,,[39]JonathanHobson.CentOS6LinuxServerCookbook[M].Packet—Publishing,2016:60125.51 致谢致谢感谢我的导师张家晨、陈伟老师,在百忙之中结合了我工作的情况,,为我认真选题分析论文中存在的问题,反反复复仔细地修改论文。他们严谨的作风,深厚的造诣,深一,谨向导师致深地打动了我,我定铭记在也。在论文完成之际tu最崇高的敬意和由衷的感谢!衷也感谢吉林大学的专家教授了我丰富的专业知识。是你们教育了我为人处事的原一则和解决问题的方法!同时也感谢与我起学习的同学们,是你们让我感受到学习知识的快乐!感谢我的领导和同事,,是你们给了我学习深造的机会,给予了我莫大的支持和关也使我有更多的时间在教学、科研上有所突破。感谢我的家人这H年来为我默默的奉献,是你们为我提供了生活上的帮助,使我有更多的精力投入到研究中去,从而让我的科研水平好技术水平得到了提升。感谢论文审稿专家和答辩专家付出了辛苦的劳动,为论文改进提出了宝贵的意见。!感谢那些默默关也支持我的人,祝你们健康幸福52

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭