收藏关注不迷路
基于Springboot的商城系统
- 一、摘 要
- 二、目 录
- 三、绪论
-
- 1.1 研究背景
- 1.2 项目研究意义
- 1.3 国内外研究现状
- 1.4研究内容
- 四、关键技术
-
- 2.1IDEA
- 2.2spingboot框架
- 2.3Tomcat
- 2.4MySQL
- 2.5JavaEE介绍
- 2.6Maven
- 五、需求分析及可行性分析
-
- 3.1 主要目标
- 3.2需求分析
- 3.3可行性分析
- 六、系统设计
-
- 4.1总体设计
- 4.2 开发环境
- 4.3业务流程分析
- 4.4数据流程分析
- 七、数据库设计
-
- 5.1 数据库概念设计
- 5.2系统的总体E-R图
- 5.3数据库表设计
- 八、系统实现
-
- 6.1 前台
- 6.2 首页
- 6.3商品信息
- 6.4我的订单
- 6.5管理员
- 6.6管理员后台
- 6.7系统用户管理
- 6.8公告管理
- 6.9商品管理
- 6.10订单管理
- 6.12 在线聊天
- 九、系统测试
-
- 7.1测试概述
- 7.2系统测试用例
- 7.3 测试总结
- 十、总结
-
- 8.1总结
- 8.2展望
- 十一、参考文献
- 致谢
一、摘 要
摘 要:本基于Springboot的商城系统是针对目前人们实际生活的基本需求出发,对过去的Springboot的商城系统存在的不足问题实际的分析,所以开发一个符合现代化人们需要的购买方式来满足人们的购买需求。本springboot的商城与购买系统主要包括系统用户管理模块、购物车管理模块、商品管理、商品管理、登录模块、和注册模块等等多个模块。与以往人们购买的模式相对比,目前本系统就很好的方便了人们的需求,同时也节省了人们的购物时间和出门时间。
本Springboot的商城网站系统主要包括系统,具有两个角色,用户功能有首页,商城商品,商城公告,商城活动,在线客服,购物车,登陆注册,在线支付,个人中心包含,我的地址,购物车,以及我的订单,在线充值。管理员功能包含系统首页,个人中心,用户管理,商品类型管理,商城商品管理,商城公告管理,系统管理,包含在线客服,轮播图管理,商城活动,订单管理。
关键词:商城;spingboot框架;MYSQL数据库:java
Mall based on Springboot
Chu Jingjing, Major in ***********, College of ************
Abstract:This Springboot based shopping mall system is a practical analysis of the shortcomings of the previous Springboot shopping mall system based on the current basic needs of people’s actual lives, so as to develop a purchase method that meets the needs of modern people to meet their purchasing needs. The shopping mall and purchase system of this spring boot mainly includes multiple modules such as system user management module, shopping cart management module, commodity management, commodity management, login module, and registration module. Compared to previous purchasing models, the current system is very convenient for people’s needs, while also saving people’s shopping time and travel time.
The shopping mall website system of this Springboot mainly includes a system with two roles. The user functions include homepage, shopping mall products, shopping mall announcements, shopping mall activities, online customer service, shopping cart, login registration, online payment, personal center including, my address, shopping cart, and my order, and online recharge. The administrator function includes system homepage, personal center, user management, product type management, mall product management, mall announcement management, system management, including online customer service, rotation chart management, mall activities, and order management.
Keywords Mall; Springboot framework; MYSQL database: java
二、目 录
1 绪论 1
1.1 研究背景 1
1.2 项目研究意义 1
1.3 国内外研究现状 1
1.4研究内容 1
2 关键技术 2
2.1IDEA 2
2.2spingboot框架 2
2.3Tomcat 2
2.4MySQL 2
2.5JavaEE介绍 3
2.6Maven 4
3需求分析及可行性分析 4
3.1 主要目标 4
3.2需求分析 4
3.3可行性分析 5
3.3.1经济可行性 5
3.3.2技术可行性 5
3.3.3操作可行性 6
3.3.4系统其他需求 6
4 系统设计 6
4.1总体设计 6
4.1.1系统功能模块设计 6
4.1.2 系统使用和操作流程 6
4.2 开发环境 8
4.3业务流程分析 8
4.4数据流程分析 9
5 数据库设计 10
5.1 数据库概念设计 10
5.2系统的总体E-R图 11
5.3数据库表设计 13
6 系统实现 18
6.1 前台 18
6.2 首页 19
6.3商品信息 19
6.4我的订单 20
6.5管理员 25
6.6管理员后台 26
6.7系统用户管理 27
6.8公告管理 27
6.9商品管理 29
6.10订单管理 30
6.12 在线聊天 32
7 系统测试 32
7.1测试概述 32
7.2系统测试用例 33
7.3 测试总结 35
8总结 35
8.1总结 35
8.2展望 35
参考文献 36
致谢 37
三、绪论
1.1 研究背景
随着时代的发展和信息时代快速发展的今天,实体商店已经满足不了我们现代人的需求了,特别是现在已经是5G的时代了。足不出户的大多数人只能选择线上商城进行购物,而且品种样式有更多的选择,还可以跨地区选择商品,可以给自己带来更多的购物体验,如果收到商品不满意还可以做到快递上门取件进行退换商品,网上一键操作即可,主要是能为你我节省了出门而花费不必要的时间。
网上商城其实也给商家带来了更大的发展空间,可以24小时营业,只要商品品种齐全够多,那就有可能吸引都四面八方的客源,比实体店单个地区拥有更多的客源问题,网上开店比自己开的实体店更加有一套成熟的管理系统,只要熟悉该操作系统即可。
该系统目的是为了给消费者提供一个方便、齐全、周到的购物体验和舒适的环境进行购物,还能节省不必要出门的时间。
1.2 项目研究意义
在生活中,只要出街都能看到那些的实体店是空无一人,只要周末的时间才可能有一些客人,由此我想到了网上商城,如果进行网上开店,那么效果、人流会不会大大有所改善?然而完成网上商城并不是一件容易的事!
本系统研究的事Springboot的商城与的管理系统。有多远化的样品挑选,还以有个特定的功能,就是系统的在线聊天功能。本系统的意义也培养着我的构想能力和代码使用能力,同时能检验出我学到的知识到底能不能正常投其所用?所以其应用意义是很大的。
1.3 国内外研究现状
从现在的电商几大巨头来看,比如淘宝、京东、拼多多这个几大巨头看来是很有前景的,相信也是整个行业的先锋也占主导位置。虽然有些人还是不愿意选择相信网上购物,害怕买到假货次货还不能进行人工售后[1]。其实现在的网上购物的系统是越来越成熟了的,还是有平台第三方进行保障的。据调查,如今普通家庭几乎每一个人都有网上购物经历的,可想而知电商是差不多是普及到了整个社会了。网上购物具有良好的群众基础,这种方式也是慢慢被大家所接受所信任。
1.4研究内容
根据现代人们的需求去研究满足人们购物的系统,本系统是采用java语言开法技术来完成本Springboot的商城与商城系统,完成用户的注册、登录和是商品的购买,前端设计是完成符合大众化的前端页面系统,还有一个比较符合人们需求的功能那就是商品的功能,据调查有很多人家里有很多不合适使用的,想要争当的处理却没有合适的处理的方法,而本系统则是根据这样的需求来实现了一个的功能,用户可以根据系统上面的指示进行商品的。
四、关键技术
2.1IDEA
Idea是一种Java开发工具,是一种集成开发环境(IDE),由JetBrains公司开发。Idea提供了许多功能,如代码自动补全、即时代码分析、智能重构、内嵌版本控制等,可帮助开发人员更高效地编写Java程序。Idea还支持许多其他编程语言和技术的开发,如Python、Kotlin、JavaScript、Spring、Maven等。Idea具有可定制性强、易于使用、性能卓越、可扩展性和跨平台等优点,被广泛用于Java开发。
2.2spingboot框架
Spring Boot是由Pivotal团队开发的全新框架,旨在简化新Spring应用的初始搭建和开发过程。它采用特定的配置方式,避免开发人员定义样板化的配置。与传统的Spring项目相比,Spring Boot消除了大量的XML配置和复杂的bean依赖关系。它不是一个能够直接完成Spring的工作的框架,而是一个用于快速开发Spring应用的中间件,同时提供常用第三方库的默认配置,几乎可以实现0配置开发。Spring Boot的设计旨在尽快启动和运行,只需要最少的Spring配置。它采用“约定优于配置”的核心思想,本质上仍然基于Spring实现。相对于繁琐的Spring配置,Spring Boot提供了默认配置,使开发人员不必定义样板化的配置,从而致力于成为快速应用开发领域的领导者。
2.3Tomcat
该服务器国内一款中小型的轻量级应用服务器,广泛被应用于国内中小型互联网应用和网站同时被访问到的用户并不很多的互联网时代,是进行JSP程序的开发应用和网络优化维护的首选。可以配置,一旦用户配置好了一个Apahce服务器,就将可以直接用来响应用户访问HTML页面的请求。
2.4MySQL
MySQL数据库最新的版本具有之前所有版本的优点,这些功能更能帮助人们开在开发的时候使用。本软件有更好的集成,具有比较强的灵活性。
该数据库在商城系统中主要是用来进行信息的存储,并且建立各个功能的实体的连接性,无论是用户还是管理员都需要通过MySQL数据库进行调取信息。它涉及的内容范围可以涵盖从最简单的营销活动列表到来自艺术画廊或社交网络中的大量信息。MySQL数据库是一款非常经典易用的开源数据库,它具有功能强大、运行的速度很快、安全性比较高、成本低,最重要的原因是因为MySQL数据库本身是一个开源软件,目前MySQL数据库也正在被甲骨文公司收购。在很多的建站时候,很多人会选择MySQL数据库作为自己网站的数据持久化存储的工具。
MySQL数据库的关系实体之间一定要具有一定的连接性,这样在后期的查询过程中会比较快捷,能够快速的查出数据库中各个功能模块的基础的信息。,目前在目前市场中使用市场上的最广为主流所使用到的数据分类方式是指关系型数据库的数据库类型和非关系数据库,该数据库属于关系型表单数据库,不仅可以通过系统中的功能进行实体关系搭建,形成模型的形式,还能够通过设置和连接,形成信息的形式,在后台编码过程中通过与数据库建立连接,还可以将用户随时添加的信息写入数据库中[12]。关系型的数据库的意思就是将所有相关的数据都按照各种数据类型之间对应的相互关系而进行数据存储,比如要存储一个班级的信息,那么在关系型数据库中的存储不是将一个班级的信息直接存到一张表里面,而是分析这一个班级数据的关系,将这个班级的数据分为班级表,老师表,学生表等不同的表进行分别的存储,然后通过表关系,外键或者链接进行关联。这样就非常高效的管理了大量数据之间的关系。
随着时间的推移,在现阶段的Web开发中,非关系型数据库也非常的流行,非关系型数据库就是所有的数据不是有关系的,在很多时候,是利用Json对象进行数据的存储[13]。比如在关系型数据库要存储前文举到的存储一个班级信息时候,关系型数据库是对这个班级信息进行分析,然后按照不同的关系进行存储。而非关系型数据库则真的是按照之前想到的将一个班级的数据作为一个Json文件直接存储到非关系数据库中,当然非关系数据库在查找的时候,速度非常快。因为所有的数据都存放在一个文件中,不需要像MySQL那些关系型数据那样,很多时候对数据的查询需要从多个关系表中进行多表查询。特别是在目前,Json作为Web开发传输数据的第一等数据格式,用Json存储非常有利用前端进行数据的解析,因为Json数据本身就是JS的对象格式。而且现在网站开发非常轻量化,不需要关系型数据库那么多的关系,所以非关系型数据库如今也很常见[14]。但是MySQL数据库也都针对不同的编程语言进行优化,使用MySQL数据库作为网站的数据库也非常安全。
2.5JavaEE介绍
目前为止很多平台都在用Java技术,主要是因为该技术具有非常实用的功能,在各大企业中,起到着非常重要的作用,在本研究中同样也采用Java技术,这种技术不但灵活,而操作比较简单,最重要的是可以运用大数据算法进行深入的挖掘。JavaEE技术规范是指一组主要用于开发应用和测试和部署系统的面向企业应用程序接口设计的通用标准规范术语和标准集合,规范和术语集合(由Sun定义)主要描述了定义涵盖了服务、应用程序开发及编程环境的通用接口库(API)的结构模型和各种相关标准协议。这种技术一般主要应用于网站的操作,同时还可以基于数据库的基础上进行建站,因此使用Java技术手段进行物流管理系统的建立成为了时下的主流选择[9]。其次就是JAVA语言因其借助JVM虚拟机,对编写出来的JAVA代码对不同的平台进行不同的底层API调用,使得一套JAVA代码可以运行在任何的操作系统中,凭借着这一特性,和面向对象的思想,使得Java语言成为世界上最受欢迎的语言。
2.6Maven
Maven是一个开源的项目管理工具,它可以管理Java项目的构建、依赖和文档等。使用Maven可以方便地管理项目的生命周期,包括编译、测试、打包、部署等。Maven采用基于XML的配置方式,通过pom.xml文件来描述项目的各种信息,包括依赖、插件、构建方式等。Maven还提供了一些常用的插件,比如JUnit插件、Surefire插件、Jetty插件等,可以方便地集成到项目中。Maven还具有跨平台的特性,可以在Windows、Linux、Mac等操作系统上运行,并且可以与多种开发工具集成,比如Eclipse、IntelliJ IDEA等。同时,Maven还提供了一些社区和插件,可以扩展Maven的功能,比如Maven Central Repository、Maven Archetype等。总之,Maven是一个非常强大的工具,可以提高Java项目的开发效率和质量。
五、需求分析及可行性分析
3.1 主要目标
随着时代的发展和信息时代快速发展的今天,实体商店已经满足不了我们现代人的需求了,特别是现在已经是5G的时代了。足不出户的大多数人只能选择线上商城进行购物,而且品种样式有更多的选择,还可以跨地区选择商品,可以给自己带来更多的购物体验,如果收到商品不满意还可以做到快递上门取件进行退换商品,网上一键操作即可,主要是能为你我节省了出门而花费不必要的时间。所以主要目标是完成一个简约、方便、符合人们需求的一个购物以及的商城系统。
3.2需求分析
需求是软件产品的目标的细化,商城管理系统应用的软件开发过程是瀑布模型,即需求阶段-设计阶段-编码阶段-测试阶段-交付部署-验收。需求阶段作为第一个阶段,从调研开始,到需求设计都不应该只是从用户的视角出发,而是从整个电商行业的需求出发,考虑到各自的心理,充分沟通,最终达成一致。系统主要实现多端登录,主要实现管理员登录,以及用户登录,当用户购买商品后可以加入购物车,同时还可以进行添加订单。这样的操作使得用户,更加操作便捷。而管理员端,管理员可以对用户进行管理,还可以对进行管理,同时还可以管理整个系统的商品信息。如图3.1Springboot的商城与用例功能图所示。
图3.1springboot的商城与用例功能图
3.3可行性分析
本Springboot的商城与商城系统的设计是符合社会经济的可行性,以及能实现的技术可行性,主要是符合能满足购物与的可行性。
3.3.1经济可行性
因为开发本Springboot的商城与商城系统的开发工具都是可以直接使用,不需要再去购买软件,开发本系统的间接成本是人工时间,所以开发本系统的是符合经济可行性的要求。
3.3.2技术可行性
开发技术以及开发语言在网上几乎都是可以查阅得到,本Springboot的商城与商城系统是基于java语言来进行开发的,而java语言也几乎符合开发工具的使用,一般的电脑硬件设施都是能满足该java语言技术的开发,所以本系统的技术可行性是符合要求的。
3.3.3操作可行性
在现代的家庭中,几乎每一个家庭当中就会拥有一台电脑,而本系统主要是在电脑浏览器上面打开并且进行商品的购买。他的操作是符合所有人使用的,所有本Springboot的商城与商城系统是符合操作可行性的要求的。
3.3.4系统其他需求
需要定期进行库存货物盘点,清点内容主要有查看数量是否冗余或不足,商品是否合格,联系供应商进行需求更改。
六、系统设计
4.1总体设计
4.1.1系统功能模块设计
为方便商城管理员使用,更好地管理商品的库存以及操作本系统,因此系统分为前端和后台,商城平台管理员只需要在后端端进行操作。如图4.1 系统功能模块设计图所示,这个Springboot商城网站系统主要有两个角色:用户和管理员。用户可以浏览商城首页、商品、公告、活动,使用在线客服和购物车,进行登陆注册、在线支付和管理个人中心(包括地址、购物车和订单)以及在线充值。管理员可以查看系统首页和个人中心,管理用户、商品类型、商城商品、商城公告、系统(包括在线客服、轮播图、商城活动和订单)。
图4.1 系统功能模块设计图
4.1.2 系统使用和操作流程
前端页面:进入该系统的第一个页面为登录页面,在没有新账号密码的情况下登陆页面会跳出注册功能的页面,没有完成账号登录不能进入该系统。注册成功之后选择用户登录就可以进入个人页面,右上角为当前用户提供信息管理和退出账号功能。如果不选择注册登录否则不能实现购买功能,只能浏览商品功能,如果购买商品则直接选择商品进行购买,完成订单的支付即可,然后查看订单收货信息。
图4-2用户业务图
后端系统:管理人员可以使用会员管理功能进行对会员的删除,对商品进行增加和删除,也可以对前端页面的功能进行关闭和打开。若前台有客户支付了订单,则后台便可以在订单页面查看订单的详细信息。有客户回寄了的,管理人员便可以在后台的对应功能查看以及签收之后的步骤都要一步一步的上传到本系统供客户查看知道验收结束。
图4-3管理员业务图
4.2 开发环境
springboot的商城系统的前端和后端均使用IDEA作为开发编辑器,浏览器作为运行环境,模块功能完成时可以直接在其中以命令运行。操作系统为Windows10,数据库为MySQL。
4.3业务流程分析
总体业务流程:以用户的身份在登录页面输入账号和密码,经过数据库身份验证,验证成功后登录系统主页,可以使用系统,管理系统等功能操作,以管理员的身份在登录页面输入账号和密码,经过数据库身份验证,验证成功后登录系统主页,可以使用系统,管理系统等功能操作。
系统的业务流程如下图所示。
图4.3系统业务流程图
4.4数据流程分析
数据流图的简称为DFD,是通过使用图形的方法对系统所具备的逻辑功能进行阐述,描述系统数据的流向和逻辑变换。由于该方法能将难以阐述的问题进行表述,因此被开发者广泛应用,是当前应用范围较为广泛的结构化系统分析方法。
零层数据流程是流程中最抽象的一层,它包括了用户注册与登录管理、用户功能管理和检索维护管理等功能模块,在登录注册模块使用到的数据存储有用户账户信息文档、用户信息文档,用户功能管理模块需要的存储是用户动态信息文档、图片信息文档,检索维护是通过以上这些文档信息通过关键词进行搜索。
系统的0层数据流图如下图所示。
图4.4系统数据流图(0层)
1、层数据流图中,数据实体包括普通用户和管理员,普通用户数据流程包括功能订单,商品信息,新闻公告,在线聊天,个人信息等功能,1层数据流图如下图所示。
图4.5系统数据流图(1层)
2、层为管理员操作后台数据流图,管理员可以分别通过添加、修改和删除来对系统进行管理,如下图所示。
系统的2层数据流图如下图所示。
图4.6系统数据流图(2层)
七、数据库设计
5.1 数据库概念设计
数据库在整个系统中是非常重要的,他可以管理整个系统的数据以及可以接收用户的发来的请求以及反馈所需要的功能会去给用户体验,统总体E-R图如图5-1系统用户购买的E-R图。
图5-1用户E-R图
5.2系统的总体E-R图
用户购买商品需求流程,需要管理员进行管理,都是连贯的,当用户形成订单后,管理员在后端可以查看到,系统的总体E-R图如下。
图5-2系统的总体E-R图
5.3数据库表设计
建立最符合客户需求的数据库计划。
通过以上的分析可以得出,本系统主要是前端用户以及后台的管理人员,前端的只要功能是注册功能、登录功能、商品查看功能、商品的功能、新闻的查看功能、能对商品进行下单功能。而后台的管理人员可以回应前台的用户,可以对商品的上架,新闻的更新以及查看客户上传的商品的图片,而这些工能都是有着一一对应的关系。所以功能模块与对应表的关系如表5.1表所示
表名:users
功能:用户表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
username varchar 100 用户名
password varchar 100 密码
role varchar 100 角色 管理员
addtime timestamp 新增时间 CURRENT_TIMESTAMP
表名:cart
功能:购物车表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
tablename varchar 200 商品表名 shangchengshangpin
userid bigint 用户id
goodid bigint 商品id
goodname varchar 200 商品名称
picture longtext 4294967295 图片
buynumber int 购买数量
price float 单价
discountprice float 会员价
goodtype varchar 200 商品类型
表名:address
功能:地址
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
userid bigint 用户id
address varchar 200 地址
name varchar 200 收货人
phone varchar 200 电话
isdefault varchar 200 是否默认地址[是/否]
表名:storeup
功能:收藏表
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
userid bigint 用户id
refid bigint 商品id
tablename varchar 200 表名
name varchar 200 名称
picture longtext 4294967295 图片
type varchar 200 类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注) 1
inteltype varchar 200 推荐类型
remark varchar 200 备注
表名:orders
功能:订单
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
orderid varchar 200 订单编号
tablename varchar 200 商品表名 shangchengshangpin
userid bigint 用户id
goodid bigint 商品id
goodname varchar 200 商品名称
picture longtext 4294967295 商品图片
buynumber int 购买数量
price float 价格 0
discountprice float 折扣价格 0
total float 总价格 0
discounttotal float 折扣总价格 0
type int 支付类型 1
status varchar 200 状态
address varchar 200 地址
tel varchar 200 电话
consignee varchar 200 收货人
remark varchar 200 备注
logistics longtext 4294967295 物流
goodtype varchar 200 商品类型
表名:news
功能:商城活动
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
title varchar 200 标题
introduction longtext 4294967295 简介
picture longtext 4294967295 图片
content longtext 4294967295 内容
表名:yonghu
功能:用户
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
zhanghao varchar 200 账号
mima varchar 200 密码
nicheng varchar 200 昵称
xingbie varchar 200 性别
shouji varchar 200 手机
touxiang longtext 4294967295 头像
money float 余额 0
表名:chat
功能:在线客服
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
userid bigint 用户id
adminid bigint 管理员id
ask longtext 4294967295 提问
reply longtext 4294967295 回复
isreply int 是否回复
表名:shangpinleixing
功能:商品类型
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
shangpinleixing varchar 200 商品类型
表名:shangchengshangpin
功能:商城商品
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
shangpinbianhao varchar 200 商品编号
shangpinmingcheng varchar 200 商品名称
tupian longtext 4294967295 图片
shangpinleixing varchar 200 商品类型
pinpai varchar 200 品牌
chandi varchar 200 产地
shangpinxiangqing longtext 4294967295 商品详情
onelimittimes int 单限
alllimittimes int 库存
clicktime datetime 最近点击时间
price float 价格
表名:shangchenggonggao
功能:商城公告
字段名称 类型 长度 字段说明 主键 默认值
id bigint 主键 主键
addtime timestamp 创建时间 CURRENT_TIMESTAMP
biaoti varchar 200 标题
neirong longtext 4294967295 内容
tupian longtext 4294967295 图片
fabushijian date 发布时间
faburen varchar 200 发布人
八、系统实现
6.1 前台
登录功能:如果没有注册,首先要注册成功之后才能进行登录,如果是登录失败的则会跳出404页面,检查是否密码错误和账号错误。如图6.1用户注册首图所示。
图6-1用户注册
图6.2用户登录首页
6.2 首页
首页是商品列表的模式,分为很多个表单,把每一个商品都填进表单里面去,在没有登录的状态下在首页只能是浏览,不能实现购买功能。如图6.2首页所示。
图6.3首页
6.3商品信息
商品信息可以查看商品的基本信息,同时可以点击加入购物车。在没有登录的状态下在首页只能是浏览,不能实现购买功能。如图6.3商品信息图所示。
图6.4商品信息
商品信息核心代码
6.4我的订单
登录系统之后可以查询售后订单的类型和订单号,还有是否审核的按钮功能,同时可以查看详细的订单信息,如图6.4我的订单。
图6.5我的订单
下面是我的购物车功能,用户在我的购物车功能中可以进行查看和删除。
图6.6我的购物车
/**
-
购物车表
-
后端接口
-
@author
-
@email
-
@date 2023-03-03 11:15:29
*/
@RestController
@RequestMapping(“/cart”)
public class CartController {
@Autowired
private CartService cartService;/**
-
后端列表
*/
@RequestMapping(“/page”)
public R page(@RequestParam Map params,CartEntity cart,
HttpServletRequest request){
if(!request.getSession().getAttribute(“role”).toString().equals(“管理员”)) {
cart.setUserid((Long)request.getSession().getAttribute(“userId”));
}
EntityWrapper ew = new EntityWrapper();PageUtils page = cartService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, cart), params), params));
return R.ok().put(“data”, page);
}
/**
-
前端列表
*/
@IgnoreAuth
@RequestMapping(“/list”)
public R list(@RequestParam Map params,CartEntity cart,
HttpServletRequest request){
EntityWrapper ew = new EntityWrapper();PageUtils page = cartService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, cart), params), params));
return R.ok().put(“data”, page);
}
/**
- 列表
*/
@RequestMapping(“/lists”)
public R list( CartEntity cart){
EntityWrapper ew = new EntityWrapper();
ew.allEq(MPUtil.allEQMapPre( cart, “cart”));
return R.ok().put(“data”, cartService.selectListView(ew));
}
/**
- 查询
*/
@RequestMapping(“/query”)
public R query(CartEntity cart){
EntityWrapper ew = new EntityWrapper();
ew.allEq(MPUtil.allEQMapPre( cart, “cart”));
CartView cartView = cartService.selectView(ew);
return R.ok(“查询购物车表成功”).put(“data”, cartView);
}
/**
- 后端详情
*/
@RequestMapping(“/info/{id}”)
public R info(@PathVariable(“id”) Long id){
CartEntity cart = cartService.selectById(id);
return R.ok().put(“data”, cart);
}
/**
- 前端详情
*/
@IgnoreAuth
@RequestMapping(“/detail/{id}”)
public R detail(@PathVariable(“id”) Long id){
CartEntity cart = cartService.selectById(id);
return R.ok().put(“data”, cart);
}
-
下面是在线充值的页面,用户在前端个人中心中进行充值。
图6.7用户充值
用户在线客服的界面可以看到,能欧股进行发送,与管理员进行互动。
图6.8在线聊天
6.5管理员
管理员可以进行后台的登录,输入密码账号,验证码,如果密码账号错误则要求重新输入正确的账号密码,同时还有验证码也要输入正确才能进行登录系统。如图6.9管理员登录图所示。
图6.9管理员登录
6.6管理员后台
主要包含系统用户管理,商品管理,订单管理,个人中心,商城公告管理,后台管理功能如图6.8图所示。
图6.10后台管理功能
6.7系统用户管理
可以查询用户信息,同时可以进行编辑用户信息和删除用户。如图6.9系统用户管理所示。
图6.11用户管理
6.8公告管理
公告管理可以查看用户的点击、编辑新闻、删除新闻的功能,同时可以根据新闻的标题进行查询改条新闻。如图6.10新闻数据管理图所示。
图6.12公告管理
/**
-
商城公告
-
后端接口
-
@author
-
@email
-
@date 2023-03-03 11:15:29
*/
@RestController
@RequestMapping(“/shangchenggonggao”)
public class ShangchenggonggaoController {
@Autowired
private ShangchenggonggaoService shangchenggonggaoService;/**
-
后端列表
*/
@RequestMapping(“/page”)
public R page(@RequestParam Map params,ShangchenggonggaoEntity shangchenggonggao,
HttpServletRequest request){
EntityWrapper ew = new EntityWrapper();PageUtils page = shangchenggonggaoService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shangchenggonggao), params), params));
return R.ok().put(“data”, page);
}
/**
-
前端列表
*/
@IgnoreAuth
@RequestMapping(“/list”)
public R list(@RequestParam Map params,ShangchenggonggaoEntity shangchenggonggao,
HttpServletRequest request){
EntityWrapper ew = new EntityWrapper();PageUtils page = shangchenggonggaoService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shangchenggonggao), params), params));
return R.ok().put(“data”, page);
}
/**
- 列表
*/
@RequestMapping(“/lists”)
public R list( ShangchenggonggaoEntity shangchenggonggao){
EntityWrapper ew = new EntityWrapper();
ew.allEq(MPUtil.allEQMapPre( shangchenggonggao, “shangchenggonggao”));
return R.ok().put(“data”, shangchenggonggaoService.selectListView(ew));
}
-
6.9商品管理
可以跟据商品的基本信息来查询商品,对查询到的商品可以对其进行编辑、删除以及查看商品的信息。如图6.13商品管理图所示。
图6.13商品管理
6.10订单管理
订单管理输入输入订单号即可查询到改详细订单,如图6.13订单管理图所示。
图6.14订单管理
/**
-
订单
-
后端接口
-
@author
-
@email
-
@date 2023-03-03 11:15:29
*/
@RestController
@RequestMapping(“/orders”)
public class OrdersController {
@Autowired
private OrdersService ordersService;/**
-
后端列表
*/
@RequestMapping(“/page”)
public R page(@RequestParam Map params,OrdersEntity orders,
HttpServletRequest request){
if(!request.getSession().getAttribute(“role”).toString().equals(“管理员”)) {
orders.setUserid((Long)request.getSession().getAttribute(“userId”));
}
EntityWrapper ew = new EntityWrapper();PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));
return R.ok().put(“data”, page);
}
/**
-
前端列表
*/
@IgnoreAuth
@RequestMapping(“/list”)
public R list(@RequestParam Map params,OrdersEntity orders,
HttpServletRequest request){
EntityWrapper ew = new EntityWrapper();PageUtils page = ordersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, orders), params), params));
return R.ok().put(“data”, page);
}
-
图6.15订单管理
6.12 在线聊天
下面是管理员在线聊天管理,然后在后台回复的页面如图6.16在线聊天管理图所示。
图6.16在线聊天管理
九、系统测试
7.1测试概述
测试的目的是为了找到开发中没有发现的程序问题,同时通过测试来发现bug,然后根据此缺陷来完善该系统,为此来提高整个系统的用户体验以及系统的质量,为用户带来更好的购物体验。
(1)测试系统的质量,提高系统的可操作性以及用户的体验效果。
(2)测试系统的安全性,测试系统是否存在安全漏洞,测试支付功能是否完善,因为本系统存在着金额的流动性,所以要保证系统的安全性。
(3)给用户带来好的购物体验。
(4)测试可以查找自身的技术欠缺
(5)测试可以树立客户对本Springboot的商城与商城系统的信心。
(6)测试可以有依据让公司对此系统对市场的投放。
2.测试的方法
测试方法有白盒测试和黑盒测试,但是本Springboot的商城与商城系统主要是采用了黑色测试。
7.2系统测试用例
游客用户得先注册账号才能登录系统,用户输入符合规则的用户名后,填写2次一样的密码,点击注册按钮,系统提示“注册成功“。当用户2次密码不一致时,系统提示两次密码不一致。注册测试用例如表7.1注册测试用例表所示。
表7.1注册测试用例
测试模块 用户注册模块测试
测试目的 测试当注册信息输入不符合要求时,系统是否能进行相应处理并给出提示。
测试方法 黑盒测试
测试数据 1不输入用户名和密码,直接点击注册。
2输入未注册过的用户名。例如:abcd
3输入正确用户名,两次密码不一样。例如:用户名abcdefg、密码 000,确认密码111
预期结果 1 界面不跳转,弹出对话框,提示用户输入必填项。
2界面跳转,弹出对话框,提示用户注册成功。
3界面不跳转,弹出对话框,提示两次密码不一致。
实际结果 与预想一致。
结论 注册模块实现了基本的异常输入应对。
登录测试用例如下表7.2登录测试表所示。
表7.3登录测试用例
测试模块 用户登录模块测试
测试目的 测试当登陆信息输入不符合要求时,系统是否能进行相应处理并给出提示。
测试方法 黑盒测试
测试数据 1不输入用户名和密码,直接点击登陆。
2输入未注册过的用户名。例如:abcdefg
3输入正确用户名,错误密码。例如:用户名abcdefg、密码 000
4输入正确用户名,正确匹配密码。例如:用户名abcdefg、密码 111
预期结果 1 界面不跳转,弹出对话框,提示用户输入必填项。
2界面不跳转,弹出对话框,提示用户当前用户名尚未注册。
3界面不跳转,弹出对话框,提示用户密码错误。
4界面实现跳转,登陆功能正常进行。
实际结果 与预想一致。
结论 登陆模块实现了基本的异常输入应对。
功能用例如下表7.3功能测试表所示。
表7.3功能测试用例
测试模块 模块测试
测试目的 测试提交功能按钮之后返回来的结果
测试方法 黑盒测试
测试数据 1不输入任何内容,直接点击提交。
2输入品牌名称。例如:阿迪达斯
3输入正确的品牌名称和类型。
4输入错误的品牌名称、类型用。
预期结果 1 界面不跳转,弹出对话框,提示请输入品牌。
2界面不跳转,弹出对话框,提示用户请输入类型。
3界面跳转,添加成功。
4点击重置,重置成功。
实际结果 与预想一致。
结论 模块实现了基本的异常输入应对。
7.3 测试总结
本章节主要说明了测试的目的和意义,对本Springboot的商城与商城系统的登录功能进行了用例测试实际效果与预期预估一样。测试分为白盒测试和黑盒测试,本Springboot的商城与商城系统采用的是黑盒测试方法来测试。
十、总结
8.1总结
毕业设计是我整个大学学习的一次重要的总结,也是体现我们所学到的知识的运用,也是很能提现我的所学到的知识的一次考查,这一次的毕业设计使得我更加去了解java语言当中的重要技术了,也正是这一次的毕业设计让我知道建立一个项目是需要怎么样的技术,需要怎么样去组成一个项目,也让我知道整个项目包括有哪些重要的组成部分。
通过使用java语言进行编程这一次的毕业设计,让我更加了解java技术的原理和要点,学以致用,学用结合才是学习的真正目的,也是检验学习的最好方法。在此,我用我所学到的知识,通过这一次的毕业设计所学到的东西,在不久将来的工作中去运用他,也是这一次我的开发技术有了很大的提升,已经基本了解了一开发一个软件需要怎么样的能力。我希望在日后的工作中能慢慢去运用这些经验。
8.2展望
通过这一次的毕业设计,我认为自己的技术还不够过硬,希望再接下的时间里好好去完善自己的软件开发技术并且去学习每一个开发语言,也通过此次的锻炼我认为自己更合适在前端开发工程师这个岗位任职,争取在毕业两年之内做到前端开发工程师这个岗位,希望自己在以后的每一间公司任职的时候都能提现自己的开发技术的价值。
充分认识到自己的不知,让我在接来下的日子了更加努力去学习开发技术的知识,以达到有独立能力去完成一个项目。
十一、参考文献
[1]施京.向智慧商城转型,专业市场如何发力? 论纺织专业市场服务系 统建设与应用[J].纺织周刊,2019(24):40.
[2]林莉莎. 基于微信公众号商城系统的设计与实现[D].华南农业大 学,2018.
[3]陈迪. 基于TPO规则的智能化搭配系统研究[D].北京学 院,2018.
[4]徐晓东.基于Java Web下软件生产过程管理系统的设计与实现初探—— 以销售行业为例[J].通讯世界,2017(18):74-75.
[5]耿庆阳.基于Spring Boot与Vue的电子商城设计与实现[D].西安石油大学,2020.
[6]冯颖凌,廖子豪,严豪.基于Java的网上商城开发[J].电脑知识与技术,2016,12(24):57-59.[4]李天庆. 于SSM框架的电子商城项目的设计与实现[D].山东大学,2019.
[7]张欣.团购商城及个性化推荐系统的设计与实现[D].西安电子科技大学,2018.
[8]李洋.基于SSM的售卖农业产品商城设计与实现[J].山西农经,2018(10):117.
[9]殷齐.基于Hadoop的图书商城推荐系统的设计与实现[D].华中师范大学,2018.
[10]陈峰.基于SSM框架的B2C网上商城系统的设计与实现[D].湖南大学,2018.
[11]石冠洲.基于Vue的Web系统前端性能优化研究与应用[D].长安大学,2020.
[12]俞鸣城.网上商城系统的设计与实现[D].江西财经大学,2017.
[13]周承佳.AVA网上购物系统的设计与实现[D].吉林大学,2017.
[14]刘金昇.基于SSH的校园电子商城设计与实现[D].内蒙古大学,2017
[16]Zengyu Cai,Jingxiao Li,Jianwei zhang. Research on Performance Optimization of Web Application System based on JAVA EE[C]//.Proceedings of 2019 2nd International Symposium on Big Data and Applied Statistics(ISBDAS 2019)(VOL.2).,2019:34-42.
[17]Zhaozhou Chen, Hean Liu. Network Mall System Inb/S Mode[J]. International Journal of Intelligent Information and Management Science,2019,8(3).
[18]Fu Limei. Design and Implementation of Super Mall System Based on SOA Distributed Architecture[C]//.Proceedings of 2019 International Conference on Intelligent Transportation,Big Data & Smart City(ICITBS 2019).,2019:379-382.
[19]唐韶华.Java小程序的授权访问研究[J].计算机工程与应用,2000(12):9-10.
[20]黄韬 ,史铁林.Java小程序数据库访问方法和实例[J].电脑编程技巧与维护,1999(04):50-52.
致谢
很感谢学校给了我两年的提升时间,让我在这个阶段认识了一些很好的老师和很有趣的同学,在我的毕业设计即将完成之际,我要向那些给予我帮助的人表达最真诚的感谢,首先我要感觉我的毕业设计指导老师陈楠老师,从选题到开题报告再到最后的毕业设计完成,陈楠老师无时无刻都在帮助我解决我所遇到的困难,一直鼓励我,这次的毕业设计能完美的完成,离不来老师们的帮助。其次,我还要感谢我的同学们,在完成整个毕业设计和论文的过程中也是很耐心的为我提供了很好的解答,使得我的毕业设计和论文能够顺利完成,在这个过程中我不仅学到了技术上的知识点,也学会了以前没有接触过的东西,让我开阔了视野,提升了解决问题的能力!
最后,再次向指导老师、还有亲爱的同学们致以我最真诚的感谢!以上就是本人的毕业设计的全部内容,感谢论文评审老师的耐心聆听。