版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.绪论1.1研究的背景和意义研究的背景基于ssm的电商的平台开发课题思路来源于对当今社会电子商务系统的变革,对于传统的商务系统有着极大的不同点,同时又具有方便简单高效率的优点,为了更多的了解电子商务的模式,现在的电商平台功能大部分完善,但是我们更多了解的还是有着什么功能并不知道怎么实现以及原理。于是乎我抱着强烈的好奇心打算自己去实现制作一个电子商务平台,来深入的了解一下商务功能实现的原理。研究的目的基于ssm的电商的平台开发的目的有两个,目的一是:为了更好的了解当前逐渐在经济冲击下逐渐完善的电商平台,更好的了解其实现、功能、以及原理,以及过程中遇到的问题,需要考虑到的特殊情况,了解到自己的不足以及需要修改的地方,增加自己考虑问题的全面性。目的二是:为了提高自身的技术水平以及在开发软件工程中功能的完成,对整个程序设计的考虑会不会出现一些不该出现的漏洞,提高自己的开发能力的同时提高自己的眼界,为毕业后找好工作高薪资打到基础。研究的意义基于ssm的电商的平台开发的研究意义是想更好的了解商务平台的同时,开发出一款功能完善、安全稳定,提供给买家和卖家良好的交易体验,同时提高自己的开发水平,增强自己的技术与眼界。1.2电商平台的国内外研究进展1.2.1电商平台的国内研究进展国内从2003年开始电子商务保持了高速增长的趋势。自2005年以来,我国电子商务市场交易额稳定增长,2007年我国电子商务市场规模突破17000亿元,在2007年到2010年三年中,是我国电子商务投资规模持续增长和爆发的时期,我国电子商务投资市场迎来新一轮的发展高潮。在2007年国家“十一五”电子商务发展规范颁布标志着政府推动电子商务的总体布局已经形成;另一方面电子商务在企业的应用成效以及对经济、社会发展的推动作用日益明显。2007年我国B2B电子商务交易额约为12500亿元,比2006年增长25.5%。目前B2B市场的集中度较高,在综合类网站中,阿里巴巴占了几乎7成份额,2007年我国C2C交易额约为410.4亿元,同比增长90%;C2C是目前我国网购的主要形势,但是普及率较低,不到网络购物总数3成。目前电子商务网络消费已经成为消费的主流倾向,消费已经从青年开始像中老年扩展,网络消费已经成为人民必不可少的地方。占据了国内很大一部分的消费额。1.2.2电商平台的国外研究进展国外十分重视这种以互联网为依托进行商品和服务交易的新经济活动。美国是世界最早发展电子商务的国家,同时也是电子商务发展最为成熟的国家,一直引领全球电子商务的发展,是全球电子商务成熟发达地区。欧盟电子商务的发展起步较美国晚,但发展速度较快,成为全球电子商务较为领先的地区。亚洲作为电子商务的新秀,市场潜力较大,但是近年的发展速度和所占份额并不理想,是全球电子商务的持续发展地区。
全球B2B电子商务交易一直占据主导地位,2002年至今,呈现持续高速增长态势,2007年全球B2B交易额达到8.3万亿美元,到2010年B2B交易额将达到20万亿美元。在2016年电子商务市场规模已经超过了25万亿元。随着当前智能手机的不断普及到现在为止规模正在不断扩大,交易额也在不断上升。1.3主要工作本毕业设计是电商系统的前台开发于实现,结合课上学习到的知识,课下自学的一些知识。收集当前电商系统的资料进行分析,分析当前社会上的电商系统的优点以及缺点来进行实现,功能模块主要分为有:首页、购物车、登录、以及商品页面。本软件的实现,主要实现了首页的动态化、购物车、商品界面、以及登录时的安全通过加密来完成。本软件使用Java语言编写采用了Gradle来集成SSM框架,页面采用了bootstrap框架便于适用于各屏幕的适配问题,数据库采用当前三大数据库之一的Mysql,在编写功能时数据库个表之间采用当前使用比较多的内连接而不是使用外键。开发软件采用eclipse进行软件的开发,页面设计使用vscode设计,设计之后放入eclipse里面改成freemaker框架,从而实现设计软件时的全部功能。1.4论文的结构第一章绪论,主要描述了对我研究的这个课题的一些理解和课题由来,以及对该论文课题实现功能的一些思路以及看法,如何解决问题。第二章相关知识,主要描述我使用的框架、编程语言、使用的数据库等相关知识并进行总结,以及可能需要用到的知识以及可能需要的范围举出来。第三章系统分析,主要描述了对课题进行的需求分析以及文档撰写。第四章系统设计,主要描述了框架的设计,功能的设计以及数据库设计,画出与之对应的程序图并进行分析与设计。第五章系统的实现,主要描述了硬件的配置以及需要的软件版本需要的包等。第六章总结与展望,主要描述了在课题结束我的一系列的归纳心得以及后面产生的对程序进行优化的思路,以及一些其他的想法等。
2.相关知识2.1领域知识2.1.1Java1.8环境本次毕业设计课题实现的过程中,选用的开发环境是Java1.8的环境。选用Java开发环境为什么呢?主要有一下几点原因:(一)Java对比c语言有着一个特别的优势那就是垃圾回收机制,对于记性差,马虎的人来说,不需要手动释放,它会在闲暇时自动回收无用的变量。同时它有着跨平台的优点。(二)Java是世界上受欢迎排行榜上前三的重要人物,优点自然多多,同时因为受欢迎的程度高,毕业之后出去找工作也更加容易更加简单,自然工资也就容易高些,同时还可以拿出去当自己完成的项目表示自己有项目开发经验一举两得。(三)现在已经有了Javajdk1.9版本了但是很多软件并没有更新软件适应于1.9版本可能会导致无法识别jdk甚至出一些别的问题,同时1.9版本新出的难免会不够稳定,综上我选择了稳定同时大部分软件都适应的1.8版本的jdk。2.1.2Gradle (一)Gradle是一个项目自动化开源工具,它抛弃了基于xml的各种繁琐配置,同时Gradle以面向Java应用为主,它支持局部构建,同时有着单元测试方法,简单方便。(二)使用于各种结构的工程可以轻松迁移。(三)免费开源。2.1.2SpringBoot框架SpringBoot是当前十分流行的框架之一,它设计目的是简化初始搭建和开发过程,之需要按照它规定的方式开发就可以无需配置,同时它默认配置了多个框架,支持多个框架的使用,使用简单对比ssm的众多配置相比SpringBoot配置少仅仅数行就可以完成配置。2.1.3FreeMarker模板Freemaker模板是基于模板和动态数据并用来输出文本的通用工具,它具有如下有点:(一)FreeMarker是完全免费的(二)性能好,对比jsp和velocity,Freemaker是性能是最好的(三)实现严格的mvc分离(四)内置大量的常用功能如时间格式化(五)宏定义时十分方便(六)静态化模板增加访问效率不卡顿,提高用户体验2.1.4SpringMVC当前的大部分框架都是采用SpringMVC的思想,前台发送请求到后台,先到控制器,控制器调用业务层处理数据逻辑,逻辑层在向持久层发送请求,持久层进行操作数据库,在将请求结果返回给业务层,业务层将数据返回给控制器,控制器将数据返回给前台,再有前台进行页面数据渲染。2.1.5SSMSSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成。是当前比较普遍也常见的简单的web项目的框架。Spring作为整个框架的配置中心,进行着里面bean元素的管理以及创建,SpringMVC是一种层次结构的设计,将用户的操作分层,mapper层为数据库的操作层也就是持久层,service层为逻辑层,controller层为操作层。mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。图4-1MVC架构设计模式工作原理图2.2平台工具2.2.1eclispe代码编辑器eclipse拥有着编写、查错、编译、帮助等功能,这对Java来说可是非常非常实用的功能,同时带有着扩展性好这一优点,需要什么插件直接安装,同时免费开放,占用内存有小,缺点的话就是纯Java编写的导致打开时很慢。2.2.2Navicat图形化用户界面Navicat是专门为MySQLl量身定做的为MySQL提供了数据库管理等功能,为开发的程序员提供简洁的界面降低开发成本,操作简单,为开发者开发带来更好的体验感以及开发效率。2.3MySQL数据库该课题的实现我选择了MySQL,选择MySQL的原因:(一)因为我对MySQL比较熟悉用的时间和次数相较其它数据库用的次数多时间更长。同时MySQL对于一般的个人使用和小型企业来说,已经足够用了;(二)MySQL是开源的软件,可以大幅度降低开发的成本;(三)MySQL支持各种的操作系统;(四)MySQL支持多线程可以更好的利用CPU的资源;(五)MySQL可以优化算法,有效提高查询效率;(六)MySQL在5.7版本中新增了支持原生的JSON;(七)MySQL数据库体积小,使用简单,安装方便;综上所述,我选择了MySQL作为我课题实现的数据库;2.4可行性分析系统可行性分析,主要从技术可行性、时间可行性、费用可行性、社会因素可行性四个方面对系统中在设计与实现的过程中可能会遇到的问题、面临的挑战,做一次系统的分析,最后得出结论,该系统是否可行。下面就从这四个角度详细进行分析。2.4.1技术可行性本次课题研究实现的系统在技术层面上主要是用到:Java语言开发技术、Mysql数据库技术,SSM框架以及gradle集成。在原理和编程实现上都遵循Java原本的编程思路,我自己对java有些进行,自己进行了一些学习以及研究,同时也自己完成了一些简单Java开发项目,所以在Java这个方面,我需要多进行一些实践,以及进行一些知识面的扩展。Mysql数据库在大学课程中,就已经对此部分的内容有详细的教学,我在几个简单的java项目中也是运用的Mysql数据库所以对此数据库还是比较熟悉的,只是需要在实际的项目中加以运用,难度不会很大,同时Mysql是三大数据库之一网上的资源也比较多,所以数据库这一块应该没什么问题可以自己寻找资料解决,SSM框架在上课时老师已经很仔细的讲过,而且在期末考试时也曾出过不一样的题目来进行考试,我的几个简单项目也大多运用了SSM框架。经过上述的分析,该基于SSM的电商系统的前台开发在技术可行性上是没问题的是可行的。2.4.2时间可行性本次课题的开题时间是十二月份,也就是说整体的课题研究工作从十二月份就已经开始,经过前期的一些电商系统的调研工作,以及导师一起研究题目以及确定题目的可行性,就可以真正的开始动手写系统的一些功能和进行一些相关文档的撰写工作。到答辩和论文上交初稿的时间大概有三个月的时间。在这一段时间中,我觉得我应该有能力来完成相关代码的编码工作和文档撰写工作,同时应该还会留有一定的时间进行bug修复以及系统的优化与完善。因此经过以上分析,SSM的电商系统的前台开发在时间可行性上是可行的。2.4.3费用可行性本次课题研究实现过程中,前期的电商系统的调研工作和有关材料收集整理工作,均是本人去互联网收集、书籍上查找,未花费任何的经费。在实现阶段,主要用到的设备,就是本人的笔记本电脑,下载的开发软件,以及数据库等均为官方免费版,不存在产生任何费用的问题。因此经过这些分析,SSM的电商系统的前台开发在费用可行性上是可行的。2.4.4社会因素可行性本次课题的核心主题和创意想法均来自于本人,未抄袭任何期刊书籍,不存在有任何违反道德和法律的问题。在实现系统的过程中,所使用的软件均为正版、免费的由官方渠道提供下载。因此经过这些分析,SSM的电商系统的前台开发在社会因素可行性上是可行的。3.系统分析3.1需求分析需求分析是在开始一个系统实现的最初始阶段,通过对系统的功能模块的一个划分,从每个功能模块的详细需求出发,分析每个功能模块的使用用户的功能需求。在功能流程上,分析功能业务的流程是否合理,功能业务模块的划分是否合理,寻找证据求证。除了要主要在功能需求上多做考量,在系统的可行性上也要做出考虑。可以从系统的技术可行性、时间可行性、费用可行性、社会因素可行性等上多方面进行考量,最终做综合分析,判断是否可行。3.1.1系统流程分析电商系统整体流程分析用户点击功能按钮时请求后台,后台应先进行逻辑判断,若有参数判断数据是否正确,不正确给出异常提示,正确给出正确响应,功能结束。具体流程图如图3-1所示: 图3-1电商系统整体流程图3.1.2角色用例分析用户用例图如图3-5所示:用户用例图3-5管理员用例图如图3-6所示: 管理员用户图3-64.系统设计4.1系统架构电商平台的功能主要有用户,订单,以及商品3个模块,为了可以更好更方便的调整页面以及菜单我将主页以及菜单也改成了动态获取,通过改变数据库就可以改变相应的图片标题等内容提高用户体验。功能结构图如图4-1所示:功能结构图4-14.2功能设计4.2.1页面布局设计在设计的过程中要求操作不能繁琐要简单化,对页面要求简洁美观,同时浅显易懂,降低用户时间,提高用户体验感。4.2.2基础用户登录模块设计登录模块是电商系统的一个基础模块,我的设计是:用户可以不登录享受到系统里面所提供的其他功能,但是不登录的话更换电脑进行登录时就会出现购物车中的东西消失了,所以进行推荐登录。登录的设计,将以最简单的方式实现,用户需要输入用户名和密码,然后点击登录按钮后,进行加密后传给后台,后台解密验证用户名和密码,判断是否正确,正确的话跳到商城主页。4.2.3购物车添加物品设计购物车模块为电商系统的重点所在,在用户点击了添加进购物车的时候进行判断是否是登录过了,登录过会将其用户id以及物品id传入后台,后台将其存入数据库中。4.2.4点击购物车模块设计判断是否是进行了登录,登录过后根据用户id从数据库购物车表中查找出用户购物车中的物品并计算其价格进行计算后返回前端进行页面的渲染。4.3数据库设计4.3.1概念数据模型设计数据库的设计主要是根据一些可能发生需要的功能以及一些用到的功能来设计,通过设计每个表详细的字段和索引、sql语句等来实现数据库设计的。E-R图如图4-3、4-4、4-5、4-6、4-7所示:图4-3用户E-R图 图4-4商品E-R图 图4-5订单E-R图 图4-6购物车E-R图图4-7数据库关系整体E-R图4.3.2物理数据模型设计用户表的设计,主键为用户ID、唯一索引也是用户ID,用户的相关信息通过主键用户ID进行关联用户信息以及查找相关用户。表名:users,具体设计如下:用户表的表结构:字段名数据类型字段含义idint(10)NOTNULL用户IDusernamevarchar(112)NOTNULL用户名passwordvarchar(32)NOTNULL用户密码emailvarchar(100)用户邮箱addressvarchar(100)用户地址sexvarchar(4)性别ageint(3)年龄paypwdvarchar(32)支付密码birthdaydatetime生日iphoneint(11)手机号pay_pointsint(10)支付方式last_ipvarchar(15)最后一次登录iphead_picvarchar(100)头像typeInt(4)是否有验证导航栏表的设计,主键是ID,唯一索引也是ID,通过导航栏ID以及父类ID关联对应的子类ID,通过图片路径更换对应页面的图片以及相应的价格等。表名:system_module,具体设计如下:字段名数据类型字段含义idint(12)NOTNULL导航栏idnamevarchar(255)分类名称titlevarchar(255)分类标题priceInt(120)价格srcvarchar(255)图片路径typevarchar(255)分类类型imghrefvarchar(255)图片链接地址imgdescribevarchar(255)商品图片描述parent_idint(12)父id对应子idlevelint(1)分类等级商品表的设计,主键是ID,唯一索引也是ID,通过商品ID查找商品的具体相关信息,如价格商品名称等内容,表名:goods,设计具体如下:字段名数据类型字段含义goods_idint(12)NOTNULL商品表idcat_namevarchar(120)分类名称extend_cat_idint(11)扩展分类idgoods_snvarchar(60)商品编号goods_namevarchar(120)商品名称click_countint(10)点击数brand_idint(10)品牌idstore_countint(5)库存数量comment_countint(5)商品评论数market_priceint(10)市场价cost_priceint(10)商品成本价keywordsvarchar(255)商品关键词goods_remarkvarchar(255)商品简单描述goods_contentvarchar(255)商品详细描述original_imgvarchar(255)商品上传原始图virtual_refundint(1)是否允许过期退款1是,0否is_on_saleint(1)是否上架is_free_shippingint(1)是否包邮0否1是on_timedatetime上架时间update_timedatetime最后更新时间prom_typeint(1)0默认1抢购2团购3优惠促销4预售5虚拟6拼团sales_sumint(11)商品销量订单表的设计,主键是order_id,唯一索引也是order_id,通过用户ID关联用户对应的用户,通过商品ID关联对应的商品详细信息。表名:order,设计具体如下:字段名数据类型字段含义order_idint(12)NOTNULL订单idorder_snvarchar(20)订单编号user_idint(10)用户idorder_statusint(1)订单状态shipping_statusint(1)发货状态pay_statusint(1)支付状态consigneevarchar(60)收货人countryint(11)国家addressvarchar(255)地址zipcodevarchar(60)邮政编码mobilevarchar(60)手机emailvarchar(60)邮件shipping_codevarchar(32)物流codeshipping_namevarchar(120)物流名称pay_codevarchar(32)支付codepay_namevarchar(120)支付方式名称invoice_titlevarchar(256)发票抬头goods_priceint(10)商品总价shipping_priceint(10)邮费user_moneyint(10)使用余额coupon_priceint(10)优惠券抵扣integralint(10)使用积分integral_moneyint(10)使用积分抵多少钱order_amountint(10)应付款金额total_amountint(10)订单总价add_timedatetime下单时间shipping_timedatetime最后新发货时间购物车表的设计,主键是ID,唯一索引也是收支记录ID,通过用户ID关联用户相关信息,通过商品ID关联商品相关信息。表名:cart,设计具体如下:字段名数据类型字段含义idint(12)NOTNULL购物车iduser_idint(8)用户idgoods_idint(8)商品idgoods_snvarchar(60)商品货号goods_namevarchar(120)商品名称market_pricedecimal(10)市场价goods_pricedecimal(10)本店价格imgdescribevarchar(255)商品图片描述member_goods_pricedecimal(10)会员折扣价goods_numsmallint(5)购买数量spec_keyvarchar(64)商品规格spec_key_namevarchar(64)商品规格组合名称bar_codevarchar(64)商品条形码selectedtinyint(1)购物车选中状态add_timeint(11)加入购物车的时间prom_typetinyint(1)0普通订单,1限时抢购,2团购,3促销优惠prom_idint(11)活动idskuvarchar(128)skusrcvarchar(255)商品图片路径4.4功能流程设计(一)用户登录功能流程分析登录模块是电商系统实现的基础模块,用户登录到了系统中,就能享受到系统里面所提供的其他功能。登录模块在电商系统中是比较基础的模块我们将以最简单的方式实现,用户需要输入用户名和密码,然后点击登录按钮后,前端页面上负责将其账号密码通过AES加密加密之后传给后台,后台将其解密后验证用户名和密码,判断是否正确,正确的话跳转到商城主页。如果判断不正确,登录窗口给予相应的提示,并要求用户重新输入,重新进行登录操作。具体的登录模块的流程图如图4-4-1所示:图3-1用户登录功能流程图(二)购物车功能流程分析购物车模块为电商系统的一个重要模块,为重中之重,我们首先理清购物车模块的逻辑。首先点击加入购物车时,将物品id,用户id传入给后台,进行数据校验通过后后台将其加入购物车的表中,否则重新进行添加,通过用户id与用户表进行联系。其次点击购物车按钮时,后台通过用户id查找出用户购物车中物品数目,并计算其中价格返回前端,前端进行数据渲染,点击结算按钮时,跳到支付页面进行支付具体的购物车模块的流程图如图3-2,3-3所示:图3-2购物车添加商品功能流程图 图3-3购物车查询商品功能流程图5系统的实现5.1软硬件环境情况5.1.1软件环境本次课题实现运用的软件主要有:(1)Eclipse代码编辑器采用的是Eclipse-keeper版本,软件为官方免费版本,界面简洁、操作简单、易上手,是软件工程师最好用得代码编辑器之一。(2)Mysql数据库服务器采用的是Mysql5.5版本的数据库服务器,软件可以从Mysql官方网站上直接下载,根据自己电脑的操作系统进行选择就行。Mysql是关系型的数据库,保存数据可靠,执行命令方便快捷,拥有强大的事物控制系统,保证每个数据操作环节上的数据完整性。(3)PhotoShop图片编辑器采用的PhotoShop3.0版本,PhotoShop有收费版本和不收费版本,我选用了不收费的版本,因为它功能强大,我只是用于软件图片素材的简单编辑,所以采用免费版本即可。(4)Visio流程图制作软件Visio,提供了多种多样的模型和标注,供软件开发工程师进行各种模型设计,十分方便好用。(5)WPS文档编辑器WPS应该大家都很熟悉,是一款免费的办公软件,用于word的文档编辑和排版。5.1.2硬件环境本次毕业设计的系统实现完全在我个人的笔记本电脑上工作。在代码实现、模型设计、文档撰写期间,电脑未出任何的卡顿问题,以下给出我开发过程中的笔记本电脑配置。CPU:FX-7500内存:8G显卡:集成显卡硬盘:500G机械硬盘以及后续的程序运行也将在此电脑上进行,经过测试和调试,一切均正常,说明目前本人笔记本电脑的硬件环境完全符合系统的运行需求。5.2软件系统核心功能展示5.2.1基础登录模块基础登录模块,通过用户在界面上,输入用户名和密码,点击登录按钮,触发该按钮的监听器,监听器响应事件被后台逻辑处理器发现,进行逻辑处理。逻辑处理的过程是这样的:解密后拿用户名去数据库进行搜索,得到查询结果,判断结果是否为空,为空则说明用户名密码错误,但会给界面控件错误信息,要求用户重新输入,进行重置操作,要求重新登录。判断结果若不为空,则说明用户名和密码正确,返回响应信息后跳转页面。登录页面如图5-2-1所示:图5-2-1登录页面publicStringqueryList(Useresuseres,Modelmodel)throwsNoSuchAlgorithmException,NoSuchPaddingException, InvalidKeyException,IllegalBlockSizeException,BadPaddingException{ List<Useres>useresList=null; UseresExampleexample=newUseresExample(); UseresExample.Criteriacriteria=example.createCriteria(); //解密 Stringpassword="12345678"; AESaes=newAES(); byte[]decryptFrom=null; byte[]decryptResult=null; StringencryptResultStr=null; if(useres.getId()!=null){ criteria.andIdEqualTo(useres.getId()); } useresList=useresService.selectByExample(example); for(inti=0;i<useresList.size();i++){ StringpassWord=useresList.get(i).getPassword(); encryptResultStr=passWord; decryptFrom=aes.parseHexStr2Byte(encryptResultStr); decryptResult=aes.decrypt(decryptFrom,password); useresList.get(i).setPassword(newString(decryptResult)); } model.addAttribute("useresList",useresList); return"users/list"; }5.2.2主页设计模块主页的设计同样是一个重点问题,一个电商系统不可能页面为静态页面,毕竟需要随时的更换物品,所以将数据从数据库进行查询;查询到的数据进行返回给前端页面进行数据的渲染,这样修改时可以通过后台页面修改之后数据库会发生改变,同时前端页面也就会发生变化了。主页如图5-2-2所示:图5-2-2主页publicclassXiaoMiController{ @Autowired privateImgServiceimgService; @Autowired privateGoodsCategoryServicegoodsCategoryService; @Autowired privateImgPcServiceImgPcService; @RequestMapping("/cate") publicStringgetcate(Modelmodel){ List<Imgpc>imgpcs=ImgPcService.queryImgPcByParentID((Integer)0); model.addAttribute("imgpcs",imgpcs); //横向导航栏 List<ImgPcVo>ImgPclist=ImgPcService.findimgPcVo((Integer)0); model.addAttribute("ImgPclist",ImgPclist); //垂直导航栏 List<ImgPcVo>ImgPclist1=ImgPcService.findimgPcVo((Integer)110); model.addAttribute("ImgPclist1",ImgPclist1); //轮播图 ImgpcExamplesildeExample=newImgpcExample(); ImgpcExample.Criteriacriteriasilde=sildeExample.createCriteria(); criteriasilde.andNameEqualTo("轮播图"); criteriasilde.andTypeEqualTo("轮播"); List<Imgpc>silderimg=ImgPcService.selectByExample(sildeExample); model.addAttribute("silderimg",silderimg); //小米logo ImgpclogoImg=ImgPcService.selectByPrimaryKey(70); model.addAttribute("logoImg",logoImg); //顶部广告图 ImgpctopAdImg=ImgPcService.selectByPrimaryKey(56); model.addAttribute("topAdImg",topAdImg); List<GoodsCategory>cate=goodsCategoryService.selectNameBymobileName("顶部导航栏分类"); model.addAttribute("cate",cate); List<GoodsCategory>topcate=goodsCategoryService.selectNameBymobileName("顶部导航条分类"); model.addAttribute("topcate",topcate); return"youyou/xiaomiNav"; } @RequestMapping("/index") publicStringindex(Modelmodel,Imgpcimgpc){ ImgpcExampleimgExample=null; imgExample=newImgpcExample(); ImgpcExample.Criteriacritria=imgExample.createCriteria(); if(imgpc.getName()!=null){ critria.andLevelEqualTo(2); critria.andNameLike("%"+imgpc.getName()+"%"); }else{ critria.andLevelEqualTo(2); } /**ImgpcExampleimgExample=newImgpcExample(); ImgpcExample.Criteriacritria=imgExample.createCriteria(); critria.andLevelEqualTo(2); List<Imgpc>imgpclist=ImgPcService.selectByExample(imgExample); model.addAttribute("imgpclist",imgpclist); **/ List<Imgpc>imgpclist=ImgPcService.selectByExample(imgExample); model.addAttribute("imgpclist",imgpclist); return"imgpc/list"; } @RequestMapping("/delete") publicStringdelete(Integerid){ ImgPcService.deleteByPrimaryKey(id); return"redirect:index"; } }5.2.3购物车模块购物车模块的逻辑。首先点击加入购物车时,将物品id,用户id传入给后台,进行数据校验通过后后台将其加入购物车的表中,否则重新进行添加,通过用户id与用户表进行联系。其次点击购物车按钮时,后台通过用户id查找出用户购物车中物品数目,并计算其中价格返回前端,前端进行数据渲染。购物车如图5-2-3所示:图5-2-3购物车publicclassCartController{ @Autowired privateCartServicecartService; @RequestMapping("/index")publicStringqueryList(Modelmodel){ List<CartVo>cart=cartService.selectfromCartAndPromOrder(); model.addAttribute("carts",cart); return"cart/list";} @RequestMapping("/toedit") publicStringtoedit(Modelmodel,Cartcart){ cart=newCart(); model.addAttribute("carts",cart); return"/cart/edit"; } @RequestMapping("/edit") publicStringedit(Cartcart){ cartService.insert(cart); return"redirect:index"; } @RequestMapping("/delete") publicStringdelete(Integerid){ cartService.deleteByPrimaryKey(id); return"redirect:index"; } }6系统测试6.1测试目标系统测试的目的是看是否完成了预计的计划目标,成果展示是否有问题,对个个功能模块进行系统化的测试,同时对页面布局进行多个浏览器以及多屏幕测试看是否适配。6.2功能测试测试方法采用了黑盒测试以及功能测试,对系统的各功能进行分别测试,黑盒测试比较简单,需要测试人员掌握基础操作即可。先测试登录功能,在登录时前台会将密码通过AES进行加密,加密之后将密码传给后台,后台对其进行解密,解密之后对比密码是否一致,一致返回页面并进行跳转到主页,进行页面渲染,测试时需要测试的东西1、后台进行打断点测试密码是否加密,2、测试密码是否解密成功3、页面跳转是否成功,4、密码输入错误账号输入错误情况,5、是否会提示必填字段。6.2.1黑盒测试用例登录测试用例如图6-2-1所示:输入账号输入密码是否加密提示是否跳转adminadmin是账号或密码错误否tigertiger是账号或密码错误否admintiger是账号或密码错误否tigeradmin是登录成功是admin否账号必填否tiger否密码必填否 表6-2-1登录测试结果表用户测试用例如图6-2-2所示:是否输入用户信息输入用户名输入密码提示数据库是否有数据是tigeradmin用户名重复否是admin密码不能为空否是adminadmin添加成功是否adminadmin用户必填信息不能为空否 表6-2-2用户测试结果表购物车测试用例如图6-2-3所示:选定商品输入数量确定添加提示数据库是否有数据是0是请输入商品数量否是1否否是1是添加成功是否1是没有添加商品否 表6-2-3购物车测试结果表6.3性能测试本次电商系统黑盒测试是通过模拟用户操作,管理员操作对该电商系统进行测试,看性能、适配、功能等是否可以满足客户要求。性能:通过使用笔记本电脑、台式电脑以及各配置不同的电脑进行访问,访问流畅没有卡顿。说明性能过关没有什么问题不会出现卡顿等情况。适配:使用了qq浏览器、谷歌浏览器、火狐浏览器、IE浏览器、360浏览器等市面上常用浏览器进行浏览,页面均有适配,说明符合浏览器适配条件,不会出现不同浏览器看到的页面不同或页面崩溃的情况。使用不同分辨率电脑进行访问查看页面会不会出现崩溃字体不清楚,图片失真等情况。页面大小会根据不同分辨率大小的电脑进行自适应,图片也均清晰没有出现失真的情况。说明适配过关不会出现浏览器访问以及不同分辨率电脑访问时页面崩溃等情况。功能:用户具有基础的登录,注册、购物车等功能,管理员具有进入后台更换主页图片、轮播图、抢购商品、抢购时间、更换商品介绍、商品价格等功能。功能符合市面上电商系统的功能,功能满足用户以及管理员的使用。网络相应速度:测试了在各局域网内网络相应速度,以及通过花生壳代理进行内网穿透,来进行外网访问,测试结果影响速度很快符合要求,不会出现卡顿等情况,用户体验良好。压力测试:用户多人访问时会不会出现系统崩溃或数据错乱等情况,同时5人使用外网访问使用正常不会卡顿以及数据库数据以及返回相应正常,当8人通过外网访问时系统出现卡顿现象数据库数据返回结果正常,测试结果这应该是正常的笔记本电脑进行内网穿透配置问题多人访问时会出现卡顿,数据没有出现问题证明系统没有问题,压力测试通过。支持并发节点数:经过模拟的环境测试该系统网站,发现其并发节点达到30个时,但是网络运营的速度起伏会较大,延迟时间在9秒左右,也是符合客户的需求。多人访问时可以通过负载进行系统的负载均衡,效率大幅度提升,线上使用时可以进行负载,达到高并发稳定网络访问速度,降低延迟时间。总结与展望长达三五个多月的毕业设计课题的研究和开发,我完成了基于SSM的电商的平台开发以及各功能的测试让我学到了很多东西也遇到了很多的问题,我们开发的时候不能只考虑得到成品就可以了,还需要考虑到用户的体验,如何提高访问效率,如何给后台减轻压力,还需要考虑到电脑分辨率以及不同浏览器的适配,前后端交互时又要考虑到数据会不会泄露,会不会泄露用户的相关信息,如何做到保密等问题。在遇到问题时我会去请教身边的老师、同学去图书馆查阅资料,网上找相关例题解决方案,将遇到的问题一个一个解决。我将大学以来学到的理论知识等全部结合运用于此次开发中,将其融会贯通,此次开发提高了开发技术上的技术提升,也提高了有撰写标准开发文档的能力提升,同时也学会了遇到困难和难题的时候,坚定信念,慢慢磨练出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年寒假计划寒假计划书
- 培优扶困计划培优辅差计划
- 四年级数学培优辅差工作计划
- 2024社区宣传工作计划
- 有关普及普通话年度计划
- 2024年教师成长工作计划范文
- 施工培训课件,项目成本管理实施计划
- 2024年幼儿园大班班务计划书
- 财务重点工作计划
- 学校2024年双拥工作计划
- 杭州国际博览中心工程设计论文
- 土壤中重金属元素和重金属含量的粉末标准曲线xrf检测方法研究
- 脊柱四肢及肛门直肠检查
- 地理科学导论(上海师范大学-白润光)课件
- 我有一个想法三年级作文300字
- 骨科运用PDCA降低平均住院日品管圈成果汇报
- 交通运输布局对区域发展的影响-扬州的兴衰高一地理人教版(2019)必修第二册
- 公共英语(二)学习通课后章节答案期末考试题库2023年
- 医学微生物学知到章节答案智慧树2023年山东第一医科大学
- 印刷通用质量检验标准
- HL002A031从创业者的角度分析自己
评论
0/150
提交评论