《基于SpringBoot的天天吃货购物系统的设计与实现.pdf》由会员分享,可在线阅读,更多相关《基于SpringBoot的天天吃货购物系统的设计与实现.pdf(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 -i-目目录录第第 1 1 章章 绪论绪论.1 11.1 背景.11.2 系统开发设计细想.11.3 开发意义.1第第 2 2 章章 需求分析需求分析.3 32.1 可行性分析.32.1.1 技术可行性分析.32.1.2 运行可行性分析.42.1.3 经济可行性分析.42.1.4 法律可行性.42.2 系统结构体系分析.42.3 功能需求分析.5第第 3 3 章章 系统概要设计系统概要设计.6 63.1 概要设计原则.63.2 系统整体结构.63.3 系统功能设计.73.4 数据库设计.73.4.1 数据库分析.73.4.2 数据库 E-R 图.83.4.3 数据库表结构.10第第 4 4
2、章章 系统详细设计系统详细设计.13134.1 主要功能流程.134.2 购物流程.144.3 注册功能流程.154.4 商品搜索流程.16 4.5 用户登录流程.164.6 购物车流程.17第五章第五章 主要功能模块实现主要功能模块实现.18185.1 首页功能.185.3 用户登录功能.215.5 商品搜索功能.235.6 购物车功能.245.7 结算付款功能.265.8 订单查询功能.27第六章第六章 系统测试系统测试.29296.1 测试目标.296.2 测试方法.296.3 测试的具体方法.-ii-29 总总 结结 .3333 参考文献参考文献.3434致致谢谢.3535 第第 1
3、章章-1-绪论绪论1.11.1 背景背景随着科技的进步、电子产品的普及,手机已是人们生活中不可分割的伴侣,近年来,网络支付不断扩大,功能逐渐完善,使得电商平台出现了井喷式的产生和爆炸式的发展。在选择购物一般是不愿自己一人移步出去,他们宁愿购物,尤其是一些白领。另外有很多的大学生在寝室里,不愿下寝室去购物,所以他们其中有很多的人喜欢网上购物。这时候他们必须有一个平台来提供他们一些信息,网上购物平台就可以方便地为他们提供详细的查询。网上购物平台开发是为了更好地适应市场需求,缓解实体店的地域限制,为消费者节省时间和精力、并实现更便捷的交易方式。通过网上购物系统使用户可以足不出户就能在网上进行浏览商品
4、介绍、商品购买,使管理人员快速管理用户、订单,使得购物变得更方便。1 1.2.2 系统开发设计细想系统开发设计细想该系统是基于 B/S(浏览器/服务器)模式实现,采用 SpringBoot 集成开发框架开发设计。使用 HTML 语言中的技术和 Mysql 数据库开发,主要实现对网上购物平台的的使用、需求、以及用户注册、登录等。该平台主要包括,用户管理,购物车,订单查询,订单支付等几个大的功能模块1.1.3 3 开发意义开发意义通过本次系统开发设计,可以更熟悉掌握 HTML5 的基础知识,会用 Java 连接数据库,本次系统开发设计的难点是连接 Mysql 数据库及学会用 Idea 开发 web
5、 项目工程的基本方法。另外,通过写毕业设计,掌握学术文章写作的基本格式,-2-获得技术和理论上的提升。达到的目的主要有:(1)掌握在 Idea 集成开发环境中开发 SpringBoot 工程的基本用法。2)熟悉 HTML5、CSS、JavaScript、Vue 等(语言。3)掌握 Java(中连接数据库的基本步骤。4)(提高综合技能。第第 2 章章 需求需求-3-分析分析 需求分析的任务是通过详细调查现实世界要处理的对象,充分了解系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变。网上购物系统无论是在应用的深度还是整个目标系统之间的相容性
6、和完整性,以利于今后整个系统的建立。在具体的设计实现上我们围绕着两个方面的需求展开,即用户和管理员。2 2.1 1 可行性可行性分析分析 随着经济的快速发展,电子商务越来越受到人们的关注。购物类网站,已如雨后春笋盘的出现在各大城市。当代大学生与白领工作人士作为社会中的重要群体,他们对商品的要求都在不断的提高,饮食在他们生活中起着重要作用。因此,面向大学生与都市白领人士的网上购物系统的设计有着良好的现实意义。可行性研究阶段的主要任务是在系统初步调查的基础上,对新系统是否能够实现和值得实现等问题做出判断,避免在花费了大量的人力和物力之后才发现系统不能实现或新系统投入使用后没有任何的实际意义而引起的
7、浪费,对新系统可行性的分析,要求用最小的代价在尽量短的时间内确定系统是否可行。2.2.1.11.1 技术可行性分析技术可行性分析网上购物系统的开发是一项复杂的工程系统。为了保证系统开发成功,必须采用工程化的系统开发方法,并研究出一些符合工程化标准的开发方法。这些方法皆在指导开发者进行工程化的系统开发,从而加快系统开发的速度,保证质量以及降低开发成本。工程化的系统开发方法确实在开发实践中取得了一定的效果。此后端开发使用 JAVA 作为开发语言,前端采用 CSS、JavaScript、Vue 技术,Google Chrome 作为浏览器。2.2.1 1.2.2-4-运行可行性分析运行可行性分析 随
8、着计算机知识的普及和推广,越来越多的人掌握了计算机的基本使用方法和技能。随着 Internet 的发展,用户对于网络、Windows 等环境下的软件使用比较熟悉,对于新鲜事物,用户表现出极大的兴趣和热情。2.2.1 1.3.3 经济可行性分析经济可行性分析 网上购物系统给人们带来了方便,成为一种全新的商务模式。就本系统而言。随着电脑的普及,为学生在网络上进行购物提供有利的条件。而一个网上购物系统可以为学生提供软件条件,这样方便学生可以足不出户的购买商品了。2.2.1 1.4.4 法律可行性法律可行性 该平台是作为毕业设计与商业无关,也是自主开发设计,不会构成侵权,在法律上是可行的。因此,不出门
9、就可以在家购物的新时尚已经到来,商家可以从中获得利润,两全其美。构建一个网上购物系统在经济上是完全可行的。2.22.2 系统结构体系分析系统结构体系分析B/S 体系结构,即 Browser/Server(浏览器/服务器)结构。在这种体系结构下,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S 结构简化了用户端的工作,用户机上只需要配置少量的用户软件。服务器将担负更多的工作,将数据库的访问和应用程序的执行将在服务器上完成。浏览器发出请求,而其余如数据请求、加工、结果返回以及动态网页生成等工作全部由 Web Server 完成。用户
10、界面完全通过 WWW 浏览器实现,一部分事物逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓三层结构。这种三层体系结构如图 2-1 所示。图 2-1 B/S-5-三层架构示意图 这种结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。综上所述,我们可以得出这样的结论:采用统一的 B/S 体系结构开发的产品是最好的选择,本系统也是选择 B/S 结构。2.32.3 功能需求分析功能需求分析本系统基于 SpringBoot 框架实现,主要实现网上浏览商品、购买商品、产生订单等功能的系统。对于本系统的不同使用者,其功能与业务逻辑是不尽相同的。首页部分主要是用户进行商品的浏览,以及购买
11、等。需要实现浏览商品信息,用户信息注册、用户信息修改、购买商品、购物车等模块。需要完成的主要任务如下:当用户进入网上购物系统时,应该在主页面的商品栏中分类显示甜点分类、熟食分类、素食分类等,以供用户更好地选择所需商品。当用户选择购买某个商品时,应该能够将对应的商品信息记录到购物车中,如:价格、数量记录到对应的购物车中,此时用户可以选择其他商品或是查看自己的购物车,最后,在购物车中填写相应的地址信息,提交订单后,自动清除以生成订单的购物车中的信息。第第 3 章章 系统概要系统概要-6-设计设计 3.3.1 1 概要概要设计原则设计原则 无论哪个系统都要有自己的设计原则。本系统也一样,主要设计原则
12、有:(1)开放性、可扩充性、可靠性原则。开放系统是生产各种计算机产品普遍遵循的原则,遵循这种标准的产品斗符合一些公共的、可以相互操作的标准,能够融洽的在一起工作。开发系统使得各种类型的网络和系统互连简单、标准统一,容易扩展升级。从而适应广大用户需求的多变性和产品的更新换代。2()良好的用户操作界面 用户操作界面美观、方便、实用,使用户能在较短的时间内掌握其使用方法。同时在实现系统的时候,尽量让系统操作简单易懂,这对于一个系统来说是非常重要的。3()实用性原则 任何系统的设计都要考虑其实用性,系统开发的目的是为了实现业务处理自动化、规范化,提高工作效率,减轻工作人员的劳动强度,减少开支。该系统能
13、完成电子商品展示、用户和管理员管理的基本信息,具有良好的实用性。4)针对性:该系统设计是网上购物(系统的定向开发设计,所以具有专业突 出和很强的针对性。5()工作平台设计原则能适应不同的操作平台,不同的网络。3.23.2 系统整体结构系统整体结构作为互联网战略的延伸,网上购物的热潮一度兴起,但是一直以来,很多企业网站都局限在信息发布等一些基本的功能,而越来越深入的实践表明,这些仅 仅代表了企业网站的一个起点功能。随着企业网络环境的发展成熟,企业门户网站可以帮助企业把现有的业务系统整合起来,集中优势资源为客户提供个性化服务,并为企业创建一个良好的收入渠道。网上购物在线网站致力于提供产品展示及订购
14、为核心的网上购物服务宣传自己商店的产品并将自己的产品展现给客户,让客户通过网站便能对自由的选择地购买产品。虚拟购物模块图如图 3-1-7-所示:图 3-1 系统整体结构图3.33.3 系统功能设计系统功能设计根据需求分析与系统功能设计原则,结合实际情况本系统功能设计分为如下:系统首页:在首页可以看见本系统的主要功能和信息。用户注册:可以注册用户的基本信息,如用户名、密码。用户登录:为了方便用户的管理和购买,我们必须要登录之后才可以进行消费。商品详细:用户可以浏览商品的详细信息,并将想要的商品提交到购物车页面。商品搜索:用户可以在商品分类等或者搜索框按照商品名称来搜索需要的商品。购物车:成功登录
15、的用户可以进入购物车页面,对已经添加到购物车的商品进行修改或删除,也可以到首页继续购物。3.4 3.4 数据库设计数据库设计3.4.1 3.4.1 数据库分析数据库分析在建数据库之前,我们必须对系统所用到的数据进行大致的分类和具体的结构设计,既要做到清晰明了,又要能适应系统各项功能的调用,而不至于产生结 构上的逻辑混乱,保证关键数据在意外情况下不会被破坏,可以说数据库是系统-8-的重中之重。数据库设计要遵循一些规则,一个好的数据库满足一些严格的约束和要求。尽量分离各实体对应的表,一个实体对应一个表,搞清楚该实体有那些属性,对应有些什么字段,以及各实体之间有何种联系。实体、属性与联系是进行概念设
16、计时要考虑的三个元素,也是一个好的数据库设计的核心。用户和管理员的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构以及数据处理流程,组成一份详细的数据字典,为具体设计铺垫。3.4.2 3.4.2 数据库数据库 E E-R R 图图 E-R 图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。构成 E-R 图的基本要素是实体型、属性和联系,其表示方法为,实体型:用巨型表示,椭圆框内写明实体名;属性:用矩形表示,并用无向边将其与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线;联系:用
17、菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型。主要数据表 E-R 图:图 3-2 用户表 E-R 图 图 3-3 订单表 E-R 图图 3-4 商品表 E-R-9-图 图 3-5 商品规格表 E-R-10-图 3.4.3 3.4.3 数据库表结构数据库表结构 从实际出发,经过仔细地设计,得到各表的设计,主要数据库表如下:(1)用户表(Users):用户登录是需要用户名和密码,所以用户数据表中必须包含用户编号(Id)、用户名(Name)、密码(Pwd)等信息。Users 表 字段名 类型 长度 十进位 是否为空键备注 id varchar 64 0
18、 否主键用户编号 username varchar 32 0否用户名 password varchar 64 0否密码 nickname varchar 32 0否昵称 realname varchar 128 0否真实姓名 face int 1024 0否头像 mobile varchar 32 0否手机号 email varchar 32 0否邮箱地址 sex int 0否性别 birthday date 0否生日 created_time datetime 0否创建时间 updated_time datetime 0否更新时间 表 3-1 用户表 2)订单表(orders):订单表主要描
19、述订单信息。订单编号(id()、用户 名(userid)、收货人(receiver_name)、收货地址(receiver_address)、手机号(receiver_mobile)等。Orders 表 字段名 类型 长度 十进位 是 否 为空键备注 -11-Id varchar 64 0 否主键订单编号 user_id varchar 64 0否用户名 receiver_name varchar 32 0否收货人 receiver_mobile varchar 32 0否手机号 receiver_address varchar 128 0否收货地址 total_amount int 0否订单
20、总价格 real_pay_amount int 0否实际支付价格 post_amount int 0否邮费 pay_method int 0否支付方式 left_msg varchar 128 0否买家留言 is_comment int 0否是否评价 is_delete int 0否逻辑删除 created_time datetime 0否创建时间 updated_time datetime 0否更新时间 表 3-2 订单表 3)商品表(items):商品信息表主要描述商品信息,如:商品编号(id()、此编号系统自动生成;商品名(item_name)、分类外键(cat_id)等。items 表
21、 字段名称 类型 长度 十进位 是否为空键备注 Id varchar 4 0 否主键商品编号 item_name varchar 50 0否商品名 cat_id int0否id root_cat_id int0否id sell_counts int 0否累计销售 on_off_status int 0否状态 -12-content text 0否商品内容 表 3-3 商品表 4)商品规格表(items_spec):商品规格表主要描述的是的商品规格 id(id()、规格名称(name)、库存(stock)、折扣力度(discounts)等。items_spec 表 字段名 类型 长度 十进位 是
22、否为空键备注 Id varchar 64 0否主键id item_id varchar 640否id name varchar 32 0否规格名称 stock Int 0否库存 discounts decimal 4,2否折扣力度 price_dicount int否优惠价 price_normal int否原价 表 3-4 商品规格表 第第 4 章章-13-系统详细设计系统详细设计4.14.1 主要功能流程主要功能流程图 4-1 主要功能流程图用户根据该主要功能流程图完成网上购物的基本流程。4.4.2 2 购物购物-14-流程流程图 4-2 购物流程图用户在首页可以浏览商品,看到自己喜欢的商
23、品可以选择商品,然后购买商品,这时需要进行判断,如果是没有注册的用户,只能简单的浏览页面,需要注册后才能将自己喜欢的商品加入购物车。如果没有登录的用户,也只能简单的浏览页面,需要登录后才能将自己喜欢的商品加入购物车。已登录的用户则直接跳转到购物车页面,在结算,然后提交订单。4.4.3 3-15-注册功能流程注册功能流程图 4-3 注册功能流程图点击首页的用户注册选项后,会弹出一个注册信息页面,用户需要如实填写用户名、密码等各项基本信息,提交后,系统进行检测判断该用户名是否已经注册过,如果已经存在则弹出新页面,提示该用户已经注册过,如果没有则进行下一步的判断,用户输入的两次密码是否一致,然后依次
24、往后判断用户填写的各项信息是否符合要求,直到所有信息均正确无误,系统将该用户注册信息写入用户表即 users 并提示用户注册成功,用户登录后,就可以进行购物了。4.4.4 4 商品商品-16-搜索流程搜索流程 图 4-4 商品搜索流程图商品的搜索功能使用户更加方便的进行自己所需要的商品的查询,节省时间,提高效率。用户搜索时只要输入商品的关键字就能搜索到所有相关的商品。4.4.5 5 用户登录流程用户登录流程图 4-5 用户登录流程 用户登录,首先要有一个提供用户登录的表单。在本系统中,如果用户没有登录,只能简单的浏览页面,无法将自己喜欢的商品加入到购物车,结算以及订单提交等功能也不能使用,系统
25、则会提示用户登录。用户登录之前,需要先注册。电子商务网站需要很高的稳定性和安全性,因此用户名不允许使用恶意的代码作为用户名。同时对密码也要求保密,将密码加密后再存入数据库。另外,用户的真实姓名也是必不可少的,以及联系号码、地址等。4.4.6 6-17-购物车流程购物车流程 购物车具体的实现可采用这种形式:定义一个购物车的类(class)。(1)所有的商品页面,能够使用户自由选择自己所需要商品。2)(当用户在点击“加入购物车按钮时”,执行如下功能:检查用户的购物车类是否存在。如不存在,则建立,并注册 Session 变量;在有用户购物车类存在的情况下,检查该类中是否有该商品。如存在,则商品数量相
26、应加 1;如没有该商品,则将该商品添加到该类中。图 4-7 购物车流程图 第五章第五章 主要功能模块主要功能模块-18-实现实现 5.1 5.1 首页首页功能功能 在首页中显示了系统网站中大部分的信息,通过首页可以跳转到其他的页面,进行相关操作,把鼠标放到分类上会显示该分类的子分类。分类区包括甜点、饼干、熟食、素食等,点击分类下的子分类就会查询出该分类对应的商品,最右边的黑色边框上可以查看用户登录状态和头像点击头像跳转到个人中心。点击左上角的免费注册按钮就会跳转到用户注册页面,用户注册好之后相应的数据就会提交到数据库 Users 表中,点击登录按钮,则会跳转到登录页面。用户也可以直接点击首页页
27、面的活动窗口跳转到相应的活动进行商品购买。系统首页如下图所示:图 5-1 首页示意图主要代码如下:ApiOperation(value=轮播图,tags=查询轮播图)GetMapping(/carousel)public JSONResult hello()List list=carouselService.queryAll(YES_OR_NO.YES.type);return JSONResult.ok(list);ApiOperation(value=一级分类,tags=查询一级分类)GetMapping(/cats)public JSONResult queryCategory()Lis
28、t list=categoryService.queryCategory();return JSONResult.ok(list);ApiOperation(value=推荐商品查询,tags=各个分类下最新 6 个商品)GetMapping(/sixNewItems/rootCatId)public JSONResult ge-19-tSixNemItems(PathVariable Integer rootCatId)if(rootCatId=null)return JSONResult.errorMsg(错误);List list=categoryService.getSixNemIte
29、ms(rootCatId);return JSONResult.ok(list);5.2 5.2 用户注册用户注册功能功能 用户注册是为第一次登录本系统的用户所设计的。在用户成为本系统用户之前一定要注册才可以访问该系统的其他页面以及使用。(1)用户注册需要填写的信息包括:用户名,设置密码。2)(提交注册信息后,需要通过后台对注册信息进行验证,注册成功后,才可以访问该系统。系统注册页面如下图所示:图 5-2-20-用户注册页面示意图 主要代码如下:ApiOperation(value=用户注册,tags=用户注册)PostMapping(/register)public JSONResult r
30、egister(RequestBody Validated userBo userBo,BindingResult br,HttpServletRequest request,HttpServletResponse response)String username1=userBo.getUsername();String ps=userBo.getPassword();String cp=userBo.getConfirmPassword();boolean isExist=userService.queryUsernameIsExist(username1);if(isExist)retur
31、n JSONResult.errorMsg(用户名已存在!);List allErrors=br.getAllErrors();if(allErrors!=null|allErrors.size()0)FieldError username=br.getFieldError(username);FieldError password=br.getFieldError(password);FieldError confirmPassword=br.getFieldError(confirmPassword)Users users=userService.userRegister(userBo);
32、CookieCookieUtils.setCookie(request,response,user,JsonUtils.objectToJson(users),true);return JSONResult.ok();5.3 5.3 用户登录用户登录-21-功能功能 用户登录是为了成功注册本系统的客户所提供,可以使注册后的用户直接登录本系统进行浏览、购买商品、结算、提交订单等,避免用户重复注册。没有登录的用户则只能简单的浏览页面,目的是为了方便系统的维护等。(1)用户登录输入:用户名和密码。2)(当用户登录后由后台校验该用户的名称和密码是否正确,如果无误的 话用户可以通过检查直接进入网站的其它
33、页面进行浏览和购买。系统登录页面如下图所示:图 5-3 用户登录页面示意图 主要代码如下:ApiOperation(value=用户登陆,tags=用户登陆)PostMapping(/LogIn)public JSONResult logIn(userBo userBo,BindingResultbr,HttpServletRequest request,HttpServletResponse response)throws Exception String username=userBo.getUsername();String password=userBo.getPassword();L
34、ist allErrors=br.getAllErrors();if(allErrors!=null|allErrors.size()0)FieldError username1=br.getFieldError(username);FieldError password1=br.getFieldError(password);Users user=userService.Login(username,MD5Utils.getMD5Str(password);if(user=null)return JSONResult.errorMsg(用户名或密码错误!);CookieUtils.setCo
35、okie(request,response,user,JsonUtils.objectToJson(user),true);return JSONResult.ok(user);5.45.4 商品商品详细详细-22-模块模块 详细的介绍了商品的名称,商品所属的类别以及商品的价格等,能是用户很直观的了解商品,点击商品下方的“加入购物车”按钮就可以将自己喜欢的商品加入到购物车。系统商品浏览页面如下图所示:图 5-5 商品浏览页面示意图主要代码如下:ApiOperation(value=商品详情,tags=商品详情)GetMapping(/info/itemId)public JSONResult
36、getItemsDetails(PathVariable String itemId)if(itemId=null)return JSONResult.errorMsg(null);Items items=itemService.getItemsById(itemId);List itemsImgs=itemService.getItemsImgById(itemId);List itemsSpecs=itemService.getItemsSpecById(itemId);ItemsParam itemsParam=itemService.getItemsParam(itemId);Item
37、InfoVo itemInfoVo=new ItemInfoVo();itemInfoVo.setItems(items);itemInfoVo.setItemImgList(itemsImgs);itemInfoVo.setItemSpecList(itemsSpecs);itemInfoVo.setItemParam(itemsParam);return JSONResult.ok(itemInfoVo);5.55.5 商品商品搜索搜索-23-功能功能 用户可以根据商品名称对商品进行搜索,这样可以使用户更好的找到自己所需要的商品。系统商品搜索页面如下图所示:图 5-6 商品搜索页面示意图主
38、要代码如下:-24-=商品搜索相关,tags=ApiOperation(valueGetMapping(/搜索商品列表)arch)public JSONResult String searchItem(RequestParamsort,Rekeywords,questParam RequestParamInteger page,RequestParam StringInteger pageSize)=null)page=1;if if(pageSize=(pagenull)pageSize =FinalsClass.SEARH_PAGE_SIZE;PageGridResult=itemServ
39、ice.searhItems(keywords,s pageGridResultort,pageSize);page,returnJSONResult.ok(pageGridResult);5.65.6 购物车购物车功能功能 当用户登录成功后,如果找到了自己喜欢的商品,在点击商品下方的“加入购物车”按钮后,系统就会跳转出一个新的页面,提示用户商品成功添加到购物车。在购物车页面用户可以选择购买商品的数量,添加或减少同一商品的数量或者是删除自己不想要的商品,如果用户还需要继续购物,可以点击购物车右下方“继续购物”按钮,则回到系统首页继续购物,系统会自动将所有的信息写入到购物车表中,同时显示用户所购
40、买的商品列表,以及合计金额。用户选好自己所需要购买的商品后,点击购物车页面右下方的“结算”按钮,系统则会跳转到订单支付页面进行付账。系统购物车页面如下图所示:图 5-9-25-购物车页面示意图 主要代码如下:ApiOperation(value=添加商品到购物车,tags=添加商品到购物车)PostMapping(/add)public JSONResult add(RequestParam String userId,RequestBody ShopcartBO shopcartBO,HttpServletRequest request,HttpServletResponse respons
41、e)if(StringUtils.isBlank(userId)JSONResult.errorMsg();return JSONResult.ok();ApiOperation(value=购物车内删除商品,tags=购物车内删除商品)PostMapping(/del)public JSONResult del(RequestParam String userId,RequestParam String itemSpecId)if(StringUtils.isBlank(userId)|StringUtils.isBlank(itemSpecId)JSONResult.errorMsg();
42、return JSONResult.ok();5.5.7 7 结算结算付款付款-26-功能功能 用户在购物车选好所需要购买的商品后,点击“结算按钮”则会跳转到高页面,在本页面用户需要填写“收货地址”、“电话号码”、“订单留言”,点击“使用新地址”按钮就可以添加新的收货地址。完成相关操作后点击右下角的“提 交订单按钮”,就可以提交订单。系统结算付款页面如下图所示:图 5-10 结算付款页面示意图主要代码如下:ApiOperation(value=创建订单,tags=创建订单)PostMapping(/create)public JSONResult create(RequestBody Subm
43、itOrderBO submitOrderBO,HttpServletRequest request,HttpServletResponse response)if(submitOrderBO.getPayMethod()!=PayMethod.WEIXIN.TYPE&submitOrderBO.getPayMethod()!=PayMethod.AILPAY.TYPE)return JSONResult.errorMsg(请选择支付方式!);OrderVO orderVO=orderService.createOrder(submitOrderBO);CookieUtils.setCooki
44、e(request,response,FinalsClass.FOOD_SHOPCART,true);MerchantOrdersVO merchantOrdersVO=orderVO.getMerchantOrdersVO();HttpHeaders headers=new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON);headers.add(imoocUserId,imooc);headers.add(password,imooc);HttpEntity httpEntity=new HttpEntity(
45、merchantOrdersVO,headers);ResponseEntity entity=restTemplate.postForEntity(FinalsClass.paymentUrl,httpEntity,-27-JSONResult.class);JSONResult body=entity.getBody();if(body.getStatus()!=200)return JSONResult.errorMsg(支付中心订单创建失败,请联系管理员!);return JSONResult.ok(orderVO.getOrderId();5.5.8 8 订单查询订单查询功能功能订单
46、查询页面用户可以查看自己未完成支付的订单和已经成功提交的订单,订单的内容包括订单编号,下单时间,收件人,订单的总金额以及订单的状态。对于未付款的订单用户只需要点击操作下方的“付款按钮”则可以跳转到结账付款页面进行付款,点击“删除”按钮则可以删除订单,通过左上角的菜单栏按钮则可以跳转到系统的其他页面。系统订单查询页面如下图所示:图 5-12-28-订单查询页面示意图 主要代码如下:ApiOperation(value=查询订单)PostMapping(/query)public JSONResult updateUserInfo(RequestParam String userId,Reques
47、tParam Integer orderStatus,RequestParam Integer page,RequestParam Integer pageSize)if(page=null)page=1;PageGridResult result=userCenterService.queryMyOrder(userId,orderStatus,page,pageSize);return JSONResult.ok(result);第六章第六章-29-系统测试系统测试 6.16.1 测试目标测试目标 系统测试的目的决定了测试方法。软件测试是为了发现错误而执行程序的过程。一个好的测试用例是在于
48、它能发现至今为发现的错误。一个成功的测试是发现了至今为发现的错误的测试。测试并不仅仅是为了要找出错误,通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。详细而严谨的可靠性增长模型可以证明这一点。6.2 6.2 测试方法测试方法 软件测试是用来发现系统和用户需求不符合的过程。测试方法分为:白盒测试和黑盒测试等。本次系统测试主要选择黑盒测试,软件的黑盒测试意味这测试要在软件的接口处进行测试。这样的方法是把测
49、试对象看成一个黑盒子,测试人员完全不考虑 程序内部的逻辑结构和内部属性,只是根据程序的需求规格说明书,检查程序的功能是否符合它的功能说明,因此黑盒测试又叫功能测试。6.3 6.3 测试的具体方法测试的具体方法(一)系统首页测试 系统首页首页中显示了系统网站中大部分的信息,通过首页可以跳转到其他的页面,进行相关操作 首页测试用例:模块名称 测试数据 预计结果实际结果是否通过 注册按钮是否实首页测试用-30-例现 注册按钮无异常注册按钮无异常通过 登录按钮是否实现 登录按钮无异常登录按钮无异常通过 个人中心按钮是否实现 个人中心按钮无异常个人中心按钮无异常通过 商城首页按钮是否实现 商城首页按钮无
50、异常商城首页按钮无异常通过 购物车按钮是否实现 购物车按钮无异常购物车按钮无异常通过 页面跳转是否实现 页面跳转无异常页面跳转无异常通过 表 6-1 首页测试用例表(二)注册页面测试:用户进入注册页面,需要输入正确的账号、密码才能使用本系统。注册测试用例:模块名称 测试数据 预计结果实际结果是否通过 账号:tiantian密码:注册模块1234 账号或密码格式有误,注册失败账号或密码格式有误,注册失败通 过 账号:tiantian密码:1234567 注册成功注册成功通 过 账号:148122密码:QW12 密码格式不正确密码格式不正确通 过 账号:148122密码:1234567 注册成功注