版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Vue和Nodejs的网上图书商城的设计与实现摘要互联网的飞速发展,人们的生活也发生了日新月异的变化,有很多生活习惯放到现在这个社会已经不适应了。人们阅读方式和购物方式就是一个很鲜明的例子,现在网上购物已经深入家家户户,老老少少,网上购物的兴起伴随的就是实体经济的崩盘,很多实体店都因为经营不善倒闭了。实体书店也是这样,你在地铁上,公交车,咖啡馆上能够看到很多手拿手机看电子书的人群,所以传统书店已经远远不能满足人们现在的需求,只能成为人们的精神和灵魂上的寄托。本论文就根据文献研究的方法来调查传统书店和网上书店近年来的销量,进而通过案例分析法来陈诉实体书店和网上书店的现状,得出实体书店和网上书店到底有什么差别。然后通过问卷调查的方式调查人们对于网上书店和实体书店的看法,分析出网上书店和实体书店它们各自的优缺点。然后,本论文对于人们购书方式进行了系统分析、设计了结合了线上线下联动的销售模式,并且对线下线下销售量进性了分析,最后总结出如何才能是实现更高的销售量,本论文提出了网上书店和实体书店结合才是最好的营销方式。本论文认为网上书店和实体书店销售方式,可以解决互联网迅速发展和人们生活方式的差异化的矛盾,合理的解决部分人群喜欢网上购书的方便和便捷,还有部分人群喜欢实体书店的氛围和体验,从而为人们营造一个良好的购书环境,拥有网上的便捷和实体的氛围的服务,进一步融入迅速发展的互联网。关键词:网上图书商城;实体书店;购物方式;互连网;销售方式目录1绪论 绪论1.1研究背景与意义1.1.1研究背景纵观古今,科技技术迅速发展,给人们的生活方式带来的许多便捷,人们的生活方式大大的发生了变化。科技已经完全贴入人们的生活,现代人的吃喝住行都离不开科技,科技大大促进了社会的进步,促进经济的发展,在现代社会中扮演了一个十分重要的角色。然而任何事务都有好坏两面,科技给我们的生活带来方便的同时,也给我们的生活稍稍带来的不适的地方。因为科技的发展,电商平台也迅速崛起,就像雨后的春笋一样,所以人们的消费方式也比以往有了很多不同。就因为如此,就产生了实体经济和电商经济的之间的矛盾,实体经济遇到了史无前有的难题。中国互联网的迅速发展和人们生活方式的差异之间的矛盾,如何让人们的生活方式有所提高又不影响市场经济,是现在亟待解决的问题。中国互联网的发展迅速,市场竞争也十分激烈,人们的生活方式也在竞争中发生了翻天地覆的变化,伴随着的是市场经济的变化,市场经济开始由实体经济转变为互连网经济,实体经济开始遇到前无所有的困难。人们阅读方式和购书的方式同样如此,实体书店也因此倒闭了许多。本论文就是为了能够解决传统书店和人们阅读方式的矛盾,设计一个网上图书商城,这样既可以更好的迎合广大群众,也可以给书店带来更好的利润。1.1.2研究意义在2022年互联网已经发展到前所未有的高峰,人们开始使用超快的5G互联网,在人工智能方面也迈开了巨大的一步,人们的生活方式真正的发生了翻天覆地的变化。从古时的飞鸽传书、烽火传信,到如今人们随手打开手机,打开电脑就能传递信息,由此可见互联网给我们的生活带来了很多便捷,也给很多传统行业带来了很多挑战和机遇。人们的阅读方式也开始从纸质化走向电子化,传统的书店已经不能满足人们的需求,只能成为人们精神上的寄托,因此设计一个网上图书商城也是为了能够解决传统书店和人们阅读方式的矛盾,这样既可以更好的迎合广大群众,也可以给书店带来更好的利润。本系统是在VisualStudioCode代码编译平台上编写的,前台运用HTML5+CSS+JS+Vue设计动态展示页面,后台运用Node服务端语言和PHP语言,使用MYSQL数据库,进行数据管理。网上图书商城主要分前台和后台,前台是根据数据调研和分析专为为用户设计得用户体验感比较好的图书呈现模块、购物车模块、用户登录、注册模块和订单模块。后台部分是专门为管理员使用的,主要包括商品管理模块,订单管理模块,用户管理模块等,能够给管理员对订单数据进行统计和分析,这样能够对于一些热销书和一些淡季书合理进行的安排。1.2国内外研究概况1.2.1国外研究现状国外的互联网相对而言发展的比我们早一点,不过近年来我们国家后来者居上也已经步入世界的顶端,但是国外还是有很多发展不错的网上书城。比如说在1991年世界上第一萌生网上的书店的美国联机公司建立的‘阅读美国’,和现如今全世界最大的网上书城亚马逊网上书店。据最新调查亚马逊网上书店现在已经掌握美国70%多网上书店的市场,注册的会员有2000多万,销售而也是高达60多亿,亚马逊的成功影响着全球许多网上书店。可以看出国外网上图书商店起步的十分的早,而且正在完善网上图书商城,并在全球产生巨大的影响,现在大大小小的网上书店在美国已经有了几十万家。除了美国之外,在其他西方国家,也发展了一些影响颇大的网上图书商城。比如在英国比较出名的书店有沃斯特通网上书店、S字母网上书店,现在在英国也占据一定的地位,它们一年的销售额也有5000万英镑。在德国的网上书店也有挺多,其中T-ONLINE网上书店每年的销售额在德国是最高的,每年购书的人也有100多万。1.2.2国内研究现状在我们国家近些年互联网发展十分迅速,国内市场一片繁华。互联网也迅速改变人们的生活方式,传统书店和网上图书商城的矛盾也是日益加大,网上图书商城凭借市场优势、价格优势、时间成本,面向更广大顾客群体一直呈现生长的势头,传统书店受到网上图书商城大大的冲击。因此传统书店也开始做出来很大的改变,传统书店也开始进军互联网,有的书店入驻淘宝、京东、拼多多等国内大型商城,也有很多大型的图书商城拥有自己的线下书店和网上书店。通过传统的实体销售和网上的销售,这些书店的营业额都有了很大的改善。根据最新调研发现,国内现在已经有很多传统书店因为经营不善倒闭了许多,也有传统书店和网上书店结合的书店正在蓬勃发展,当当网在2020年的整体销售比例相对于过去3年增长了9%,卓越网相对于过去3年的销售比例也近增了7.9%。由此可见,网上书店是必然趋势,传统书店也是不可获缺,因为它们面对的是不同的消费群体,它们给人们带来的感受也是互不相同的,它们在一起可以大大的提高销售额,与更多的消费群体进行互动、交流,所以传统书店和网上书店结合才是发展的丝绸之路!1.2.3研究现状评述针对目前现在市面上的网上图书商城已经是比较完善,在互联网上已经有大大小小很多互联网书店,在国外比较知名的书店有亚马逊网上购物商城,国内的网上图书商城也发展的比较繁华,像当当、China-pub网上书店也是比较广为人知。它们的功能也很完善,具有完善的图书销售部分,对于图书分类精细,用户可以很好找到自己喜欢的书籍,还有完备的用户管理部分,用户可以一键实现购书和售后功能,用户体验感非常好,深受广大读者和用户的喜欢。而且对于管理员的功能也是相当的完善。但是目前国内还是存在很多大大小小的书店采用传统的销售模式,没有跟上时代的步伐,由此可想而知,它们的销售十分惨淡,而且很多书店就因为这样经营不善选择关门了。所以像这些不大不小的传统书店,要想在大型书店的压迫和网上书店的挤压中夹缝中生存,就必须得改革,打开大门迎接新科技,开展网上书店,扩大自己的营销范围,降低自己成本,这才是真正的生存之道。主要体现:(1)付出成本降低,营销范围扩大网上书店的成本远远低于传统书店的成本,网上书店不需要付出大额的门店费用,不需要大量的人工维护费用,而且营销范围大量扩大,突破了地理的范围,跟上时代的步伐,可以和人们进行紧密的互动,大大的扩展了书店的流通量。(2)方便读者,扩大书店的影响虽然网上书店发展迅速且繁华,但是还是有很多用户习惯到传统的书店购书,喜欢传统书店的氛围,而且像这样部分的用户,一般都是老客户,购书量和购书频率都比较高,所以我们开展网上书店加传统书店结合,这样既可以留住老客户,还能扩展新客户,大大书店的影响,方便用户读者购书阅读。1.3本章小结本章绪论首先介绍了研究背景与意义,对研究背景展开了深入分析,分析为何开发一个网上图书商城以及开发一个网上图书商城会带来的好处,然后对国内外网上图书商城的销售数据进行分析,并总结出如何才能让图书销售量大大提高,最终设计一个最佳的开发方案。2相关技术介绍为了解决网上图书商城和线下实体书店之间的矛盾,为了让用户享受更好的服务,经过数据调查,提出基于Vue架构的网上图书商城的设计,代码编写采用了VisualStudioCode开发工具。数据库模型采用了MYSQL关系型统计数据库,确保系统数据的可靠性。使用Vue作为前端开发框架,保证简洁、美观的UI设计,后端采用Node.js服务端语言,处理数据访问和业务处理等任务。2.1Vue.js开发框架Vue是现如今比较流行的三大主流框架之一,它更多的在国内市场应用的比较多。Vue是一个轻量型‘渐进式’的框架,它的数据双向绑定、组件化开发、简单、便捷的API深受广大开发者的喜欢和热爱。它能使开发者更好,更快的实现页面交互,极大的提高了开发者的开发效率,也使读者更加容易理解,能够更快的上手。与其他框架相比,Vue.js具有以下优势。(1)简易性Vue是国内比较流行的框架,主要是它的简易性,拥有HTML、CSS、JS基础,然后自己看开发文档也很容易上手,而且国内开发者刘禹锡维护的,很易于国内开发者使用。(2)灵活性Vue渐进式框架,灵活方便,其核心库简单方便,数据与视图分离,方便维护,组件化开发能灵活运用。(3)性能性运用虚拟DOM使Vue得运行效率大大提高,加上Differ算法,大大节约程序的运行资源。2.2开发语言HTML5是HTML一代一代更新和完善,到现在已经是十分完善了,相对于以前已经有了从本质的改善。我们能够通过HTML5对前端代码能够设置基本DOM架构,可以更方便、更好的对前端页面进行呈现。而且HTML5总结了很多函数,可以了很多要用JavaScript才能实现的功能比如表单的邮箱验证,动画效果。而且现在HTML5在市场上已经完全普及了,开发者可以通过HTML5的动画属性、Canvas等多种属性开发炫酷的功能,大大的提高HTML5的利用率,大大的提高了用户的体验感。CSS是一个样式,它的作用是通过给HTML添加样式,对于给整个界面的字体、背景、颜色等进行装饰,可以让我们整个页面变得更加美观生动,也大大的吸引顾客的吸引力。到目前为止,CSS也进行了多代更新,目前已经CSS3,添加了许多新的特性,如盒子模型、阴影效果、平滑过渡、伪类选择器等,极大的方便程序员开发页面。2.3Node.js后端服务端语言Node.js是一个基于V8引擎的JavaScript运行时环境,它允许我们在浏览器之外运行JavaScript——通常是在Web服务器中,而且Node.js的单线程特性可以让我们尽快的释放事件循环,是实现微服务和实时应程序的理想选择。2.4方便的编码工具VisualStudioCodeVisualStudioCode是一个针对于编写现代Web和云应用的跨平台源代码编辑器,支持多系统环境如Mac、Windows。也支持多语言开发如Java、C语言、Php、Python、Go,而且内含许多插件,十分方便开发者编写代码。2.5数据库管理系统MYSQLMYSQL数据库是现在企业和开发者用的十分广泛的关系型数据库,说简单点,它就是数据库软件,常用来存储、检索、管理和处理数据。在现在企业运用比较广泛,因为MYSQL是开源使用的,一般都是免费,可以降低公司成本,而且在性能上或者是可靠性也非常强。MYSQL具有体积小,速度快,成本低,开发源码,易用等特点,但是也是因为如此,在功能方便可能优点欠缺,对于大量的数据可能稳定性较低,不过具有数据管理的系统的大部分功能,而且现在MYSQL在处理能力和稳定性方面不断提高。2.6本章小结本章主要介绍了开发网上图书商城所需的技术框架、开发语言、开发工具。根据我们的实际情况,我们的系统后台设计采用的是Node.js服务端语言和PHP进行开发,系统的前台设计选择了Vue框架进行开发,数据库选择了MYSQL,整体设计以轻便、简单为主。
3系统需求分析本章内容主要是总结用户对于网上图书商城的真实需求,同时站在用户的视角为系统设计提供需求基础,并且进行可行性分析然后根据这些需求对网上图书商城的功能以及性能做出详细的功能需求和概要设计。3.1功能需求分析本论文主要是为了设计一个能够给用户带来方便,又能给商家带来利润的一个网上图书销售平台。在这个平台当中用户能够随时随地的打开手机或电脑进入平台当中查找自己想要的书籍,并能进入详情查看书籍详细信息,然后选择购买。商家可以登录平台,进行商品销售。因此这个平台主要分为会员用户、供应商、系统管理员、以及游客这几个角色。他们的具体的权限如下。(1)游客:游客即是没有注册会员的用户,该类用户可以进入网上图书商城查找并查看图书,但是不能将商品加入购物车,或者购买商品,如需购买商品必须得注册会员才能购买商品。如图3.1所示。图3.1游客角色用例图(2)会员用户:通过平台注册的用户即可成为会员,会员拥有加入购物车、购买商品的权限,除此之外用户还具有以下权限:eq\o\ac(○,1)会员可以通过在平台注册的手机号或邮箱号和密码登录网上图书商城,用户忘记密码的话注册时用的手机号或邮箱号找回密码。eq\o\ac(○,2)会员可以进入我的信息,进行头像,用户名,性别修改,还可以进入我的收货地址,修改收货地址或者增加收货地址。eq\o\ac(○,3)会员用户在商城中的商品栏在浏览商品时,如果看到自己满意的商品可以加入购物车,之后如果用户想购买商品时,可进入购物车选择要购买的商品,修改要购买的商品数量,进行商品结算,然后填写收货信息,付款便可生成订单。当然如果用户在购物车感觉自己不需要的东西可以移除购物车。eq\o\ac(○,4)会员在购买商品后生成订单,可以进入我的订单查看自己的订单,如果提交订单但未付款可以进入待付款栏查看自己订单,并可以在规定时间内重新支付。支付成功后可以到待发货栏查看具体信息,商家发货后可以在待收货栏查看商品的物流信息。用户确认收货后,可以立即评价,未评价的话可以在待评价栏选择继续评价。用户觉得商品有问题可以到待收货栏选择售后服务,然后可以在退款和售后栏查看售后服务的处理情况。如图3.2所示。 图3.2会员角色用例图(3)管理员:管理员是图书商城中拥有最高的系统权限的角色,管理员的具体权限如下:eq\o\ac(○,1)管理员可以对整个图书商城的基本设计进行管理,其中包括对轮播图轮播的内容和图书商城推送的消息进行管理。
eq\o\ac(○,2)管理员可以对图书商城中所有的图书进行管理,并对其修改、删除等操作,还能添加新的图书并加以归类。eq\o\ac(○,3)管理员可以查看订单列表所有的订单记录,并且能够对订单列表的订单进行操作。比如说可以对于未发货的订单进行发货操作,对于未退款的订单进行退款处理。eq\o\ac(○,4)管理员可以选择发货的物流公司,并在发货时可以根据用户的需求来选择发货的快递公司。eq\o\ac(○,5)管理员可对会员进行管理,可以对会员注册时的信息浏览,但是不可以修改其信息,管理员还可以添加新的会员。eq\o\ac(○,6)管理员可对系统进行管理,其中包括对图书商城的所有数据进行初始化,并对系统的配置、用户权限、业务设置等一些相关参数进行设置。eq\o\ac(○,7)管理员可对图书商城系统公告进行发布并对已发布的系统公告进行修改、删除以及查询操作。eq\o\ac(○,8)管理员可对图书商城进行的活动进行管理。eq\o\ac(○,9)管理员可对图书商城的商家进行管理,可以控制商家的权限,并能进行添加删除等操作。如图3.3所示。图3.3管理员角色用例图3.2平台非功能需求本系统对客户的友好性有可以直观、方便、购买自己想要的图书,能够迅速得到图书的信息,一键购买,对于客户的信息具有严格的保密性。对管理员的友好性有:可以方便的、快捷的管理整个图书系统,同时对于图书的销售情况数据可视化,方便分析。结合客户友好性和管理员友好性,才最终确定整个系统的发展路线。结合实际情况,在商城开发的过程中主要由以下非功能性需求。(1)在可靠性方面上:要求系统出现的错误的频率大大降低,提前预备好项目可能出现问题的解决方案。在系统出现问题是可以及时解决或进行数据恢复,保证系统安全和数据安全。(2)在系统安全性方面上:在用户登录系统账号时,要保证系统的登录环境安全,防止别人对登录的账号进行劫持,并对登录的账号进行校验以及应该对用户的密码进行加密后存储到数据库,确保用户的信息能够得到保密。(3)在易用性方面上:本次网上图书商城的页面简洁、操作方便,简单易上手,适合任何人群操作,有利于用户体验高的提高。(4)在稳定性方面:本网上图书商城24小时正常运行,在用户高峰期也能够正常运行,响应速度可能有所减慢,但是执行稳定,同时项目不出现页面卡顿现象,还具备防抖和节流的功能,在点击一个页面时,不会多次响应。(5)在实用性方面:任何一个系统都必须具备实用性,对于系统的功能必须根据客户的真实需求,认真细化分析,对于用户用不到的功能不开发,不设计。同时系统也必须具备良好的维护性,在项目后期方便扩展,当项目出现bug也方便开发人员维护。3.3系统业务逻辑分析网上图书商城分为两个流程,分别为前台购物流程和后台订单信息管理流程。用户可以在商品呈现栏,查找书籍,查看图书详情,加入购物车,加入购物车需要用户有一定的权限,需要用户去注册账号,只有已经登录注册后的用户才能使用购物车的功能,没有注册的用户注册后才能使用购物车和购买商品。用户可以随意增删购物车里的商品,还可提交订单购买。后台管理员可以查看订单的信息,管理订单,对订单进行发货和退款处理,还可以对已经注册的用户信息进行浏览、添加、删除等操作,对图书商城销售的图书进行增添查改。系统业务数据流图如图3.4所示。图3.4系统业务数据流图3.4可行性分析可行性分析是验证一个项目是否能够正常实施,是一个项目开始十分重要的过程,本人在市场现有的网上图书商城的基础上,通过分析商城的整体功能架构,利用所掌握的开发技术和可承受的经济能力来预测系统能否在规定的时间内顺利开发完毕。经济可行性该项目是一个小型网上图书商城,功能需求比较基础,在开发过程中需用到一台笔记本即可,对硬件需求不高,只需要进行大量的编码工作。而且开发完成后可以接一些广告创造收益,所以说经济上是可行的。技术可行性该项目是一个基于Vue框架web项目,组件化开发,渐进式开发,简单易上手,并且已经验证了系统的可行性。后端使用Nodejs服务端语言和部分PHP语言,这些语言算是十分成熟了,平时遇到不会的难题,也都可以到网上找到,因此在技术上是可行的。法律可行性本系统是本人根据数据调研与分析,独立设计的适合任何人群的网上图书商城,没有任何伪造侵权的问题,因此法律上是可行的。3.5系统软硬件环境需求为满足用户的需求,对网上图书商城进行需求分析,在软件层次,本系统部署在Mac系统上,Phpstudy集成环境的服务器和MYSQL;在硬件层次,内存要求8G,硬盘500G,配置千兆以太网控制器。环境需求配置清单如表3.1所示。表3.1系统软硬件环境需求类别类型型号服务器软件环境操作系统MacServer数据库Phpstudy的MySQLWeb服务器Phpstudy的服务器服务器硬件环境内存8GDDR4内存硬盘500GB机械硬盘网卡千兆以太网控制器3.6本章小结本章主要进行需求分析和概要设计。根据自己采集的数据,对于现在网上图书商城和传统书店之间存在的问题提出新的需求,从而进行更加全面完善的分析。用拆分的方法对网上图书商城的需求拆分,详细的分析网上图书商城的功能性需求和非功能性需求。然后是对整个网上图书商城进行概要设计并设计用例图、业务流程图分析具体的应用功能,其中包括对网上图书商城的架构设计,模块设计和数据库设计。最后通过对软硬件应用需求综合分析,奠定了该系统的软硬件基础。4系统总体设计4.1系统架构设计本系统在需求分析,通过对于用户的真实需求以及商城的具体应用进行分析,决定基于Vue框架进行前端设计,采用B/S结构进行设计与研发,系统整体架构设计方案如图4.1所示。图4.1系统架构设计由图4.1可知网上图书商城的的设计理念分为商城前台和商城后台,其架构的可以细分为用户层、表示层、用户层、表示层、控制层、业务逻辑层、数据层,其中最主要对数据逻辑进行处理,各层的具体功能如下:(1)用户层:为网上图书商城所面向的用户角色。(2)表示层:该层主要是图书商城前台的基本界面构成,向用户展示正在销售的图书。(3)控制器层:该层主要是根据前台需要请求的数据,对其调用不同的接口,实现不同的需求。(4)业务逻辑层则:该层主要是对业务需求进行封装,让图书商城整体结构清晰明了。(5)数据层:该层代表的是业务逻辑产生的数据。4.2系统功能模块设计根据上一章的分析,此网上图书商城,分为前台部分和后台部分。前台部分主要是供用户使用,可以实现浏览书籍和购买书籍的过程,包括订单管理用户可以进行收货、退货、评论等功能,购物车管理用户可以进行添加图书、删除图书、生成订单等操作,个人中心管理用户可以进行个人基本信息修改、收货地址的增添查改。后台部分主要是管理员使用,可以实现图书管理、订单管理、用户管理等功能。网上图书商城的前台和后台的具体功能模块如下:(1)网上图书商城前台网上图书商城前台具体功能模块如图4.2所示。图4.2网上图书商城前台功能模块图(2)网上图书商城后台网上图书商城后台具体功能模块如图4.3所示。图4.3网上图书商城后台功能模块图4.3系统流程设计4.3.1登录流程登录模块是注册账号的会员进行的操作,登录网上图书商城就必须使用邮箱号和密码、验证码登录,若邮箱号不存在,则提示注册后才能登录,若密码不正确则提示“密码不正确”,一定要邮箱账号及对应邮箱密码的密码都正确方可登录成功网上图书商城,系统登录流程如下图4.4所示。图4.4系统登录流程图4.3.2购物车流程用户将商品添加到购物车,可以进入购物车对商品进行添加、删除、下单操作。用户可以选择购物车里的多个商品进行下单操作,然后跳转到订单页面,结算即可,流程如下图4.5所示。图4.5购物车流程图4.3.3订单流程用户可以直接在商品栏直接下单,也可以在购物车直接下单,并且下单成功后能够在订单中心看到自己的订单,具体流程如图4.6所示。图4.6订单流程图4.4数据库设计数据库的设计是整个项目中十分重要的过程,它影响项目最后运行的效率和效果,决定了项目的数据类型和大小,所以在数据库设计的过程必须得仔细,细心。4.4.1实体与属性设计(1)管理员帐号实体图:包括一个管理员账号、管理员账号密码,如下图4.7所示。图4.7管理员实体图(2)用户实体图:包括用户id、用户邮箱、用户性别、用户头像、用户创建时间等,如下图4.8所示。图4.8用户实体图(3)商品实体图:包括商品id、商品名称、商品描述、商品图片、商品库存、商品类型等,如下图4.9所示。图4.9商品实体图(4)订单实体图:包括订单编号、产品名称、订单编号、物流公司名称、总价、配送方式、支付方式等,如下表框图4.10所示。图4.10订单实体图(5)商家实体图:包括商家编号、用户编号、联系电话、身份证号、店铺状态、发货地址等,如下图4.11所示。图4.11商家实体图4.4.2总体E-R图设计网上图书商城中主要实体包括管理员、会员、商品、购物车、订单等5个基本实体,实体与其他实体直接之间存在多种合作联系,例如会员与购物车存在一对一的合作关系、会员与订单存在一对多的合作关系、商家与商品存在一对多的合作关系等。为了全面的描述实体与实体之间存在的联系,绘制了网上图书商城总体E-R模型如下图4.12所示。图4.12系统总体E-R图4.4.3数据库物理设计在线课程系统中它所主要涉及的表包括了管理员信息表、会员信息表、商家信息表、订单信息表、订单产品信息表、包裹信息表等6张数据表,采用MySQL数据库其主要的表结构及其属性的数据类型介绍如下。管理员信息表:主要记录管理员的所有数据,其主键id为主要字段有管理员账户,管理员密码,如表4.1所示。表4.1管理员表字段名数据类型字段说明长度备注IdAnameIntvarchar编号管理员账户1212Apasswordvarchar管理员密码12saltvarchar密码盐50nicknamevarchar昵称100avatarvarchar头像100createtimeint创建时间11用户信息表:主要记录所有用户的数据,其主键为id唯一标识编号,主要字段有邮箱、密码、密码盐、昵称、性别、头像、省市区等,如表4.2所示。表4.2用户信息表字段名数据类型字段说明长度备注idchar编号4PKemailvarchar邮箱100passwordvarchar密码100saltvarchar密码盐50nicknamevarchar昵称100avatarvarchar头像100sexenum性别provinceint省255cityint市255districtint区255createtimeint创建时间11商品信息表:主要记录商品的相关数据,其主键id唯一标识编号,字段有商品分类、商品名称、商品原价以及商品库存等,如表4.3所示。表4.3商品信息表字段名数据类型字段说明长度备注idchar编号4PKtypeidvarchar商品分类20Namevarchar商品名称20namevarchar商品名称12pricevarchar商品原价10stockvarchar商品库存100thumbstext商品图集0contenttext商品详细0flagenum商品状态续表4.3订单信息表:主要记录订单信息,其主键是id,字段内应有订单总价、y用户外键、收货地址外键、订单号、订单描述、配送外键、配送编号、订单状态等,具体信息如表4.4所示。续表4.3表4.4订单信息表字段名数据类型字段说明长度备注idchar编号12PKtotalvarchar订单总价20useridint用户外键18addridvarchar收货地址外键10codechar订单号2contentvarchar订单描述50expidvarchar配送外键50expcodevarchar配送编号50statusenum订单状态createtimeint下单时间0订单产品表:其主键为id,字段有订单外键、商品外键、商品数量、商品单价、商品总价等,如表4.5所示。表4.5订单产品信息表字段名数据类型字段说明长度备注idvarchar编号12PKpricevarchar商品单价12totalint商品总价11Namevarchar商品名称12商品分类信息表:主要记录商品分类的信息其主键为编号,字段有商品分类名称、排序权重、封面图片,如表4.6所示。表4.6商品分类信息表字段名数据类型字段说明长度备注idint编号11PKnamevarchar商品分类名称12weighint排序权重4covervarchar封面图片3useridint用户外键10收货地址表:记录学生选课情况,其主键为ID,外键为收货人、手机号、省市区地区码、用户外键,如表4.7所示。表4.7收货地址表字段名数据类型字段说明长度备注idintId11PKconsigneechar收货人4mobilechar手机号12provincevarchar省份地区码255cityvarchar城市地区码50districtvarchar区域地区码50addressvarchar详细地址255useridint用户外键104.5本章小结本章节主要是对网上图书商城的基本结构进行分析,确保后续工作能够顺利进行。首先通过架构设计介绍了系统所采用技术栈,然后通过功能模块设计对功能进行了严格的划分,通过流程图分析网上图书商城的基本业务逻辑,最后通过E-R图与数据表的实体进行设计。5系统实现5.1管理员模块功能实现5.1.1会员管理会员管理主要实现管理员对会员信息的增添查改等操作以及按照关键字进行查询操作,如图5.1、图5.2所示。图5.1会员管理界面图5.2会员修改界面关键代码如下:Publicfunctioneidt(){if($password!=$repass){$this->error('密码和确认密码不一致');$salts=randstr(10);$password=md5($password.$salts);if($result===FALSE){$this->error($this->AdminModel->getError());}else{$this->success('会员信息修改成功','admin/admintor/delect');Exit; }添加会员主要是输入会员账号(邮箱号)、会员名称、会员密码、会员性别、会员头像,如图5.2所示。图5.2添加会员界面关键代码如下:if($this->request->isPost()){$email=$this->request->post('email','');$password=$this->request->param('password','');$userinfo=$this->UserModel->where(['email'=>$email])->find();if(!$userinfo){$this->error('用户已存在,请你重新注册');$password=md5($password.$userinfo['salt']);if($password!=$userinfo['password']){$this->error('密码输入有误,请重新输入');exit;}5.1.2商品管理商品信息管理主要用于实现管理员对在售的商品以及商品类型进行管理,包括对商品信息以及商品类型进行增加、删除、修改以及按照关键字进行查询等操作,如图5.3所示。图5.3商品管理页面添加商品主要是输入商品名称、商品价格、商品库存、商品类型、商品图片,如图5.4所示。图5.4添加商品页面商品类型管理主要是商品类型的权重、商品类型的添加、删除、修改,如图5.5所示。图5.5商品类型页面添加商品类型主要是输入商品类型权重、商品类别名称、商品类型封面,如图5.6所示。图5.6商品类型页面关键代码如下:if($this->request->isPost()){$ids=$this->request->param('ids',0);$result=$this->TypeModel->destroy($ids);if($result===FALSE){$success['result']=false;$success['msg']=$this->TypeModel->getError();}else{$success['result']=true;$success['msg']='添加商品成功';returnjson($success);}5.1.3商家管理员管理商家管理员管理主要实现超级管理员对商家管理员权限的禁用、添加、修改以及删除,如图5.7所示。图5.7商家管理员管理页面添加商家管理员类型主要是超级管理员输入管理员账号、管理员昵称、管理员密码,如图5.8所示。图5.8添加商家管理员页面关键代码如下:if($this->request->isPost()){$email=$this->request->post('email','');$password=$this->request->param('password','');$userinfo=$this->UserModel->where(['email'=>$email])->find();if(!$userinfo){$this->error('该商家已存在,请你重新注册');exit;$password=md5($password.$userinfo['salt']);if($password!=$userinfo['password']){$this->error('密码输入有误,请重新输入');exit;}5.2商城模块实现5.2.1注册模块用户进入注册页面时,需要按照流程填写邮箱号、密码、验证码才能注册成功,如图5.9所示。图5.9注册界面用户注册会员时需要填写正确的邮箱才能注册成功,否则会提示“请输入正确的邮箱号”,如图5.10所示。图5.10注册格式错误界面关键代码如下:if($this->request->isPost()){$email=$this->request->param('email','');$password=$this->request->param('password','');$userinfo=$this->UserModel->where('email',$email)->find();if(!$userinfo){$this->error('请输入正确的邮箱地址');exit;}$password=md5($password.$userinfo['salt']);if($password!=$userinfo['password']){$this->error('密码输入有误,请重新输入');exit;}5.2.2注册登录模块管理用户注册成功即可跳转到登录页面,用户需要按照流程用户账号、密码、验证码,登录成功会跳转到商城首页,如图5.11、图5.12所示。图5.11登录界面图5.12登录成功界面关键代码如下:Publicfunctionlogin(){if($this->request->isPost()){$email=$this->request->param('email','');$password=$this->request->param('password','');$userinfo=$this->UserModel->where('email',$email)->find();if(!$userinfo){$this->error('用户不存在,请重新输入');if($password!=$userinfo['password']){$this->error('密码输入有误,请重新输入');exit;}$this->success('登录成功','/user/base/index',$data);exit;}会员登录时需要填写正确的邮箱才能注册成功,否则会提示“用户不存在,请去注册”,如图5.13所示。图5.13登录错误界面关键代码如下:Publicfunctioncheck(){if($this->request->isPost()){$id=$this->request->param('id','');$userinfo=$this->UserModel->find($id);If(!$userinfo){$this->error('用户不存在,请去注册');$this->success('登录成功','/user/base/index',$data);5.2.3购物车模块管理用户在商品栏浏览商品时,看到自己满意的商品时,加入购物车,用户点击购物车图标,可以直接跳转到购物车页面,然后选择自己想要的商品购买,如图5.14所示。图5.14加入购物车界面关键代码如下:PublicfunctionaddCart(){//先判断该产品是否有添加到购物车$cart=$this->CartModel->where(['userid'=>$userid,'proid'=>$proid])->find();$result=$this->CartModel->isUpdate()->save($data);if($result===FALSE){$this->error($this->CartModel->getError());exit;$this->success('添加购物车成功,是否跳转到购物车立即下单','/product/cart/index');}如果用户没有注册,则提示“用户不存在,无法加入购物车”,然后在判断商品是否有库存如图5.15所示。图5.15购物车界面关键代码如下:Publicfunctionadd() {if($this->request->isPost()$proid=$this->request->param('proid',0);$userid=$this->request->param('userid',0)$userinfo=$this->UserModel->find($userid);if(!$userinfo){$this->error('用户不存在,请重新输入');if(!$productinfo['stock']){$this->error('商品库存不足');用户在购物车页面,不喜欢商品可以直接删除,喜欢的商品可以直接购买,如图5.16、图5.17所示。图5.16删除购物车商品界面关键代码如下:Publicfunctiondel(){if(!$userinfo){$this->error('用户不存在,请重新输入');exit;}//当没有找到用户的情况下if(!$cart){$this->error('购物车数据不存在');$result=$this->CartModel->destroy($id);if($result===FALSE){$this->error($this->CartModel->getError());{$data=['id'=>$cart['proid'],'stock'=>$cart['nums']];$res=$this->ProductModel->isUpdate()->save($data);$this->success('删除购物车成功');}图5.17确认订单界面关键代码如下:Publicfunctionorder(){if(!$address){$this->error('收货地址不存在,请重新选择');exit;}//立即下单$ordernowinfo=$this->ProductModel->where(['id'=>$cartids])->find();//查询购物车的产品数据$cartlist=$this->CartModel->with('product')->where($where)->select();if(!$cartlist){$this->error('下单数据为空,请重新选择商品');exit;}$this->success('下单成功,等待商家发货','/user/order/index');exit;}5.3我的模块实现5.3.1订单列表用户点击“我的”,然后点击我的订单可以跳转我的订单页面。选课界面如图5.18所示。图5.18我的订单界面用户在我的订单页面,可以查看商品的具体评论,申请退款等功能,退款需要等商家同意退款才会将金额返回给用户如图5.19、图5.20所示。图5.19申请退款界面关键代码如下:PublicfunctionsubRefund(){if(!$userinfo){$this->error('用户不存在,请重新输入');$orderinfo=$this->OrderModel->find($id);if(!$orderinfo){$this->error('订单不存在,请去下单');$status=$this->OrderModel->where(['id'=>$id])->value('status');if($status=='-2'){$this->error('订单已提交申请,等待商家确认中');}$orderStatus=$this->OrderModel->isUpdate()->save($data);$this->success('退货申请提交成功',null,$price);图5.20商品评价界面关键代码如下:Publicfunctioncomment(){if(!$orderinfo){$this->error('订单不存在,请去下单');exit;}$status=$this->OrderModel->where(['id'=>$id])->value('status');if($status=="4"){$this->error('此订单已经评论成功');$orderStatus=$this->OrderModel->isUpdate()->save($datas);$this->success('评论成功',0,$data);exit;}图5.20确认收货界面图5.21订单详情界面关键代码如下:asyncorderData(){letdata={userid:this.LoginUser.id,status:this.active,};letresult=awaitthis.$api.OrderList(data);if(result.code=="1"){this.orderlist=result.data;}else{this.$notify({message:result.msg,duration:1000,});5.3.2个人中心用户在我的页面可以点击个人资料,可以到个人资料页面修改个人资料有头像、性别、密码、昵称、地区,如图5.23所示。图5.23个人中心界面关键代码如下:Publicfunctionprofile(){if(!$userinfo){$this->error('用户不存在,请重新输入');}if($password){$data['password']=md5($params['password'].$userinfo['salt']);}$coverUrl=upload('cover');if($coverUrl===FALSE){$this->error('修改失败');$data['cover']="uploads/".$coverUrl;}5.3.3我的收货地址在我的页面,点击我的收货地址,可以新增、修改、删除收货地址,如图5.24所示。 图5.24我的收货地址页面关键代码如下:Publicfunctionindex(){if($this->request->isPost())$userid=$this->request->param('userid','');$userinfo=$this->UserModel->find($userid);if(!$userinfo){$this->error('用户不存在');$result=$this->AddressModel->with(['provinces','citys','districts'])->where(['userid'=>$userid])->select();$this->success('返回收货地址成功',null,$result);}5.3.4消费记录用户在我的页面,点击消费记录可以查看用户个人的消费记录,如图5.25所示。图5.25消费记录界面关键代码如下:asyncorderData(){letdata={userid:this.LoginUser.id,}letresult=awaitthis.$api.OrderList(data)if(result.code=='1'){this.orderlist=result.data}else{this.$notify({message:result.msg,duration:1000,})5.6本章小结本章主要分前台用户、后台管理员两角色详细介绍了各个页面功能与操作,例如后台有订单管理界面、商品管理界面、会员管理界面,前台有用户登录界面、用户注册界面、购物车界面、订单管理界面、个人资料界面、收货地址界面等等。6系统测试6.1测试目的系统测试是整个系统开发的最后一个关卡,也是对整个系统进行一个检测。通过测试可以发现系统中存在的一些bug,然后对这些bug进行修复。在系统测试过程中我们通过各种手段来发现和找出软件的缺陷,我们常用黑盒、白盒的方法进行测试,主要以黑盒测试为主,最终修复这些bug。本次测试,主要是对网上图书商城系统的主要功能模块进行测试,其中主要对登陆注册模块、用户下单模块、购物车模块、订单管理模块进行相关测试。6.2测试环境(1)硬件环境:本系统进行测试的硬件环境主要统一了CPU型号、内存大小、硬盘大小,具体配置如表6.1所示。表6.1硬件配置说明序号描述版本1CPU型号Intel(R)Core(TM)i5-8400HCPU2CPU主频2.30Ghz3物理内存8Gb4物理硬盘500Gb机械硬盘6.3系统模块功能测试6.3.1注册模块测试注册模块测试主要用于测试用户在进行注册时,是否按照注册流程需填写手机号、验证码等信息,如果输入未注册的手机号,则能够成功注册,并提示注册成功。如果数的是已经注册过的手机号,则会提示该手机号已经被注册,对错误输入能否进行有效提示,其测试用例如表6.3所示。表6.3注册管理测试用例序号测试描述期望结果实际测试1输入未注册的手机号、密码、图片验证码注册成功,并提示注册成功符合2输入注册过的手机号、密码、验证码注册失败,并提示该手机号已被注册符合续表登录流程测试续表6.3登录模块测试主要目的是测试系统用户在登录系统时输入正确登录信息能否正常登录,在输入错误的信息的情况下,系统能否有效的提示出相应的错误信息,其具体测试用例如表6.4所示。表6.4登录模块测试用例序号测试描述期望结果实际测试1输入空账号,输入密码提示“请输入账号”符合2输入用户名,输入空密码提示“请输入密码”符合3输入错误用户名,输入正确密码,选择正确的角色提示“用户不存在”符合4输入正确用户名,输入错误密码信息,选择对应的角色提示“密码错误”符合5输入正确的用户名密码,选择错误角色提示“登录失败”符合6输入正确的用户名密码,选择对应角色登录成功符合6.3.3购物车模块测试用户在进行购物时,看到自己喜欢的物品可以先加入购物车,可以之后想购买在进入购物车购买并结算。其测试用例如表6.5所示。表6.5购物车模块测试用例序号测试描述期望结果实际测试1在商品栏,点击加入购物车商品能够正常加入购物车符合2在购物车点击“+”或“-”购物车的商品数量正常的加减符合3在购物车选择多个商品结算结算的金额和数量正确,并跳转到订单页面符合6.3.4用户下单模块测试用户下单模块测试主要目的是测试用户正常下单后,跳转到订单页面,在该页面用户填写订单信息,提交订单后生效,其具体用例如表6.6所示。表6.6用户下单测试用例序号测试描述期望结果实际测试1用户编写多个收货信息用户进入收货地址信息页面,选择自己要收货的地址,提交订单成功符合2用户编写的信息为空用户无法正常提交,并提示请填写收货信息符合续表订单管理模块测试续表6.6订单管理模块测试的是管理员可以根据状态查看订单,对订单进行处理,可查看订单详情、发货、退款,其具体测试用例如表6.7所示。表6.7订单管理测试用例序号测试描述期望结果实际测试1用户在商城正常下单,后台数据库有订单数据管理员进入订单管理模块时,页面显示有订单信息符合2用户在商城正常下单,后台数据库有订单数据管理员进入订单页面,管理员可以点击某个订单,可以跳转订单详细页面符合3用户在商城正常下单,后台数据库有订单数据管理员进入订单页面,点击未发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026春招:滴滴题库及答案
- 2026春招:厨师笔试题及答案
- 内科学总论尿毒症性心包炎诊疗课件
- 外科学总论全身麻醉诱导期气道保护要点课件
- 2025年齐齐哈尔辅警招聘考试题库附答案
- 2024年舒城县辅警招聘考试真题汇编及答案1套
- 2026年农村电商发展助力乡村振兴考点练习题及答案
- 2026年TCL-TAS-人才测评职业价值观评估训练题及答案
- 2026年认证认可条例核心考点练习题及答案
- 2026年商场保安员安全管理备考练习题及解析
- 2025年天津市直机关遴选公务员面试真题及解析
- 糖尿病周围神经病护理查房
- 雨课堂学堂在线学堂云《科学研究方法与论文写作(复大)》单元测试考核答案
- 地球小博士知识竞赛练习试题及答案
- 殡仪馆鲜花采购投标方案
- 中小学生意外伤害防范
- 动静脉瘘课件
- 新疆宗教事务条例课件
- 2025年工会主席述职报告模版(六)
- 2025四川成都轨道交通集团有限公司校招9人笔试历年备考题库附带答案详解试卷2套
- 药品生产培训课件
评论
0/150
提交评论