(附源码)springboot万花筒 毕业设计 345600
Abstract
The rapid development of scientific and technological progress has caused great changes in people's daily life. The rapid development of electronic information technology has popularized and applied the application level of electronic information technology in various fields. The advent of the information age has become an irresistible fashion trend, and the history of human development is entering a new era. In practical application, according to the working rules and development steps of application software, Java technology is used to build kaleidoscope management system.
This design mainly realizes the kaleidoscope management system with the advantages of humanization, high efficiency and convenience, and completes the functional modules such as user management, site management, content management, mall management, order management and so on. The system communicates with the server through the browser to realize data interaction and change. Through scientific management and convenient service, the system improves work efficiency and reduces errors and omissions in data storage. Kaleidoscope management system uses Java language and springboot technology based on MVVM mode for development. In terms of data, Microsoft MySQL relational database is mainly used as data storage medium, and the system development is completed with foreground HTML + CSS technology.
Keywords : Kaleidoscope; Based on B / S mode; Mysql database
目录
摘要
Abstract
第1章 绪论
1.1课题背景
1.2目的和意义
1.3本文结构
第2章 工具及技术介绍
2.1 Java技术
2.2 MVVM模式
2.3 MySQL数据库
2.4B/S结构
2.5 springboot框架
2.6 Vue.js 主要功能 4
第3章 系统分析 5
3.1业务流程分析 5
3.2可行性分析
3.2.1经济可行性
3.2.2技术可行性 6
3.2.3操作可行性
3.3需求分析 7
3.4数据流程分析 8
第4章 系统设计 10
4.1结构设计 10
4.2数据库设计
4.2.1数据库物理设计
4.2.2数据库概念设计
4.2.3数据库逻辑设计
第5章 系统实现
5.1首页设计与实现
5.2前台功能设计与实现
5.2.1用户模块设计与实现
5.2.2交流中心模块设计与实现 23
5.2.3我的订单模块的设计与实现 24
5.3后台功能设计与实现
5.3.1用户管理设计与实现
5.3.2订单列表管理设计与实现
5.3.3商城列表管理设计与实现
第6章 系统测试 31
6.1测试方法 31
6.2测试目的 31
6.3测试用例
6.3.1注册测试 31
6.3.2订单测试 32
6.3.3商品管理测试 32
结论 34
致谢 35
参考文献 36
1.1课题背景
随着国内产业环境和消费市场的成熟,万花筒销售尤其是以商品为代表的网络销售将在今年实现更大发展。
网络新型的消费方式给人们生活带来了巨大的改变,更重要的是大大改变了传统的消费行为习惯,无论是否想在网上购买东西,上网查询各种商品的相关信息,已经成为人们生活不可缺少的一部分。
1.2目的和意义
本题目拟实现整个购买模块,实现游客浏览商品,查看商品信息的功能,实现登录用户的购买功能,完成继续购买、结账和清空清单等功能。
1.3本文结构
2.1java技术
JAVA语言是目前软件市场上应用最广泛的语言开发程序。可以在多种平台上运用的,兼容性比较强,适应市面上大多数操作系统,不会出现乱码的现像,其扩展性和维护性都更好,具有分析问题和解决问题的能力,是面向过程的程序设计方便我们编写的代码更强壮。
JAVA相对其它语言来说,比较简单,编译起来更方便一些,安全可靠性高。不完全统计,现在全世界大约有2000多万人在使用它,JAVA既可以镶嵌使用又可以独力的使用。JAVA大致可以分成两个部分,一种部分是JAVA负责的编译,另一种是JAVA负责的运行。JAVA和C++语言很相像,但JAVA在编程时是一种以对象为导向的方式来进行编译的,使得编出来的软件可以单机使用,也可以在互联网上使用,检查出错更为方便。JAVA分布式、体系结构中立的特点也使得其存储更快,编议更简单。面向对象包括四个特点,一是封装,就是说在定义类的时候可以实现一定的功能和属性。二是抽象,属于类的一种,可以把一个具有共同属性的类封装在一个抽象里,便于简单编议。三是继承,顾名思义就是带有前者的特性。还有一个就是多态的特点,可以多种一起运用,表现了它可扩展性好。
2.2 MVVM模式
MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。
2.3 MySQL数据库
2.4 B/S结构
B/S(Browser/Server)比前身架构更为省事的架构。它借助Web server完成数据的传递交流。只需要下载浏览器作为客户端,那么工作就达到“瘦身”效果, 不需要考虑不停装软件的问题[9]。
2.5 Springboo框架
2.6 Vue.js 主要功能
Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。
第3章 系统分析
3.1业务流程分析
系统业务流程分析:
根据系统的功能需求,再分析该系统的业务流程,用户登录系统购买商品,先将商品加入至购买记录,然后对购买记录做调整,接着生成订单,订单生成后,在线支付金额,管理员管理商品,管理用户的订单。
系统前台业务流图如下图所示。
正在上传…重新上传取消
图3-1系统前台业务流图
系统后台业务流图如下图所示。
正在上传…重新上传取消
图3-1系统后台业务流图
3.2可行性分析
3.2.1经济可行性
在项目上使用的工具大部分都是是当下流行开源免费的,所以在开发前期,开发时用于项目的经费将会大大降低,不会让开发该软件在项目启动期受到经费的影响,所以经济上还是可行的。尽量用最少的花费去满足用户的需求。省下经费用于人工费,以及设备费用。将在无纸化,高效率的道路上越走越远。
3.2.2技术可行性
本系统主要采用了Java开发语言,编程语言包括HTML+CSS、Javascript,技术可行性分析的目的是确认使用现有的技术能否实现系统以及对开发效率和完成情况的评估。技术的可行性是指在当今所拥有的技术条件之下,计算机软件和硬件的发展能否够满足发展的要求。由于本系统开发基于Java语言,在一般的计算机上就能够满足开发本系统所需要的软硬件条件;因为它占用的内存本来就相对较少,所以用MySQL数据库对软件的开发以及设计在理论上没有问题的原因是:它占用的内存实在是太少了。系采用以上技术可以有效的保证系统成功及高效地开发。
综上从技术可行性上来讲,使用这些技术完全可以实现这个系统的开发。
3.2.3操作可行性
万花筒是基于B/S模式,同时所有的信息都是以网页的形式展示,系统中的信息都可以在后台操作数据库达到数据更新的效果。用户只需要会计算机的基本操作或者会上网就可以使用本系统,系统管理员只需要懂得数据的添加、删除、修改,即可操作管理后台。系统布局较简单,功能操作不复杂,完全符合现代市场需求。因此本系统可以进行开发。
3.3需求分析
通过现实万花筒系统的调查,如淘宝网、当当网、京东等知名电子商务系统,以及从企业的实际角度出发,要求本系统具有以下功能。
- 统一友好的操作界面,保证系统的易用性,方便用户的操作;
- 具备商品信息的展示功能,方便浏览者对商品信息进行浏览与比较;
- 规范的商品分类,方便浏览者分类查找商品;
- 完善的购买功能与用户结账功能;
- 设置系统主要商品模块,使浏览者能够及时了解系统的各项动态变化;
- 订单信息查询功能、商品信息查询功能;
- 全面的后台管理功能,以方便管理员对系统信息进行更新与管理。
9.系统前台功能模块分为:
商品模块:展示系统的所有最新商品;
推荐商品模块:展示系统的所有推荐商品;
商品分类模块:通过商品分类更快找到所需的商品;
商品索引模块:输入关键词,如商品名称、商品ID、商品类别来索引商品。
购买模块:跟淘宝、京东等大型电子商务网站一样,确认购买的商品后,提交用户订单,然后确认收货地址和收货人、联系电话等,方可付款。
用户订单索引模块:对用户的已有的订单进行查看和索引。
商城资讯模块:输入关键词,如商品名称、商品ID、商品类别来索引商品。
用户注册模块:浏览者可以通过注册成为用户;
用户登录模块:用户可以登录后购买想要的商品;
用户资料修改:用户可以修改自己的信息。
10.系统后台功能模块分为:
商品信息管理模块:管理各商品信息,对商品的信息进行维护,可以增加商品,修改,删除商品信息;
系统用户维护模块:包括注册用户维护和系统管理员用户维护,普通管理员能对注册用户维护,不能对系统管理员用户维护,只有超级管理员才有维护管理员的权限。
订单维护模块;对用户的交易订单进行维护,是否有刷单等不合理订单,删除不合理的订单等操作。
商城资讯管理模块:可以管理分类信息,增加和删除商城资讯信息。
交流中心管理模块:对客户发起的意见反馈进行审核和处理,回复用户解决方案。
3.4数据流程分析
第4章 系统设计
4.1结构设计
系统分为前台和后台,前台为注册用户,后台由管理员使用,但也可以用来登录普通用户,前台功能模块和后台功能模块可以细分为各种功能模块。
用户注册模块:要求新用户可以在系统前台注册,注册信息可以保存在数据库中,后台管理员审核注册的用户,防止一些违规注册,注册后即可登录系统前台。
订单模块:要求购买商品的用户可以电话购买,也可以注册登录后在线购买,在线购买则需用户填写购买信息,并提交订单将信息展示在后台。
用户购买模块:跟淘宝、京东等大型电子商务网站一样,将商品放入用户购买记录,从而管理用户购买记录里的商品。
订单上交模块:跟淘宝、京东等大型电子商务网站一样,确认购买记录的商品后,提交用户订单,然后确认收货地址和收货人、联系电话等,方可付款。
付款模块:用户提交订单后,确认收货地址和收货人、联系电话等信息后,方可进入付款界面,付款。
用户管理模块:要求用户信息可以展示在后台中,用户管理分管理员和普通用户两部分,管理员可以修改管理员的名字和密码,用户管理可以显示用户注册的信息、修改用户个人资料和删除用户的操作。
订单管理模块:要求用户在线购买产生的订单信息可以展示在后台,卖家可以对订单信息进行标记审核,表示已接单,并分配物流配送,如果该订单过期或者迟迟没付款,也可以删除该订单的信息。
商品管理模块:要求商品信息可以展示在后台中,卖家可以对商品进行修改操作,修改后的商品替代原有的,并可以展示在前台中。
商城资讯管理模块:要求商城资讯信息可以在展示后台中,展示分二部分信息,分别购物需知和促销公告。可以进行增加、修改、删除、查看操作,然后更新到系统前台。
4.2数据库设计
对于电子商务系统而言,为了支持更大流量的数据访问需求,桌面数据库管理系统的使用不能满足需求,安全也得不到充分的保护。因此,需要采用商业常用的企业级数据库MySQL数据库。
4.2.1数据库物理设计
从用户的注册、登录等功能来分析需要建立用户信息表,其中包含的数据项会有用户名、密码、电话、邮箱、QQ、微信、录入时间等。
从商品的类别和商品的信息等功能来分析需要建立商品类别表和商品信息表,其中包含的数据项会有商品类别名、商品类别录入时间、商品名称、库存数量、销售价格、商品录入时间等。
系统包含用户提交的订单,所以需要订单的相关数据,如订单号,订单提交时间,订单金额等。
用户提交订单后,管理员审核订单后,这个过程需要一系列关于订单的状态数据。
系统应该要存在多个管理员管理系统,所以系统需要管理员相关的数据,如管理员账号、密码等。
4.2.2数据库概念设计
经过数据库的物理设计后,得到如下几个概念模型,它们的ER图如下所示。
正在上传…重新上传取消
表4-2系统ER图
4.2.3数据库逻辑设计
根据本系统的实际情况,本系统的数据库命名为db,db数据库中共分为如下几张数据表。
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
user_registration_id |
int |
11 |
是 |
是 |
用户注册ID |
full_name |
varchar |
64 |
否 |
否 |
姓名 |
gender |
varchar |
64 |
否 |
否 |
性别 |
date_of_birth |
varchar |
64 |
否 |
否 |
出生日期 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
recommend |
int |
11 |
是 |
否 |
智能推荐 |
user_id |
int |
11 |
是 |
否 |
用户ID |
create_time |
datetime |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
address_id |
int |
11 |
是 |
是 |
收货地址 |
name |
varchar |
32 |
否 |
否 |
姓名 |
phone |
varchar |
13 |
否 |
否 |
手机 |
postcode |
varchar |
8 |
否 |
否 |
邮编 |
address |
varchar |
255 |
是 |
否 |
地址 |
user_id |
mediumint |
8 |
是 |
否 |
用户ID |
create_time |
timestamp |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
default |
tinyint |
1 |
是 |
否 |
默认判断 |
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
shopping_mall_id |
int |
11 |
是 |
是 |
商城ID |
remarks |
varchar |
64 |
否 |
否 |
备注 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
recommend |
int |
11 |
是 |
否 |
智能推荐 |
cart_title |
varchar |
125 |
否 |
否 |
标题 |
cart_img |
text |
0 |
否 |
否 |
封面图 |
cart_description |
varchar |
255 |
否 |
否 |
描述 |
cart_price_ago |
double |
8 |
是 |
否 |
原价 |
cart_price |
double |
8 |
是 |
否 |
卖价 |
cart_inventory |
int |
11 |
是 |
否 |
商品库存 |
cart_type |
varchar |
64 |
是 |
否 |
商品分类 |
cart_content |
longtext |
0 |
否 |
否 |
正文 |
cart_img_1 |
text |
0 |
否 |
否 |
主图1 |
cart_img_2 |
text |
0 |
否 |
否 |
主图2 |
cart_img_3 |
text |
0 |
否 |
否 |
主图3 |
cart_img_4 |
text |
0 |
否 |
否 |
主图4 |
cart_img_5 |
text |
0 |
否 |
否 |
主图5 |
create_time |
datetime |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
comment_id |
int |
11 |
是 |
是 |
评论ID |
user_id |
int |
11 |
是 |
否 |
评论人ID |
reply_to_id |
int |
11 |
是 |
否 |
回复评论ID |
content |
longtext |
0 |
否 |
否 |
内容 |
nickname |
varchar |
255 |
否 |
否 |
昵称 |
avatar |
varchar |
255 |
否 |
否 |
头像地址 |
create_time |
timestamp |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
source_id |
int |
10 |
是 |
否 |
来源ID |
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
slides_id |
int |
10 |
是 |
是 |
轮播图ID |
title |
varchar |
64 |
否 |
否 |
标题 |
content |
varchar |
255 |
否 |
否 |
内容 |
url |
varchar |
255 |
否 |
否 |
链接 |
img |
varchar |
255 |
否 |
否 |
轮播图 |
hits |
int |
10 |
是 |
否 |
点击量 |
create_time |
timestamp |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
cart_id |
int |
11 |
是 |
是 |
购物车ID |
title |
varchar |
64 |
否 |
否 |
标题 |
img |
varchar |
255 |
是 |
否 |
图片 |
user_id |
int |
10 |
是 |
否 |
用户ID |
create_time |
timestamp |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
state |
int |
1 |
是 |
否 |
状态 |
price |
double |
8 |
是 |
否 |
单价 |
price_ago |
double |
8 |
是 |
否 |
原价 |
price_count |
double |
10 |
是 |
否 |
总价 |
num |
int |
8 |
是 |
否 |
数量 |
goods_id |
mediumint |
8 |
是 |
否 |
商品id |
type |
varchar |
64 |
是 |
否 |
商品分类 |
description |
varchar |
255 |
否 |
否 |
描述 |
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
order_id |
int |
11 |
是 |
是 |
订单ID |
order_number |
varchar |
64 |
否 |
否 |
订单号 |
goods_id |
mediumint |
8 |
是 |
否 |
商品id |
title |
varchar |
32 |
否 |
否 |
商品标题 |
img |
varchar |
255 |
否 |
否 |
商品图片 |
price |
double |
10 |
是 |
否 |
价格 |
price_ago |
double |
10 |
是 |
否 |
原价 |
num |
int |
8 |
是 |
否 |
数量 |
price_count |
double |
8 |
是 |
否 |
总价 |
norms |
varchar |
255 |
否 |
否 |
规格 |
type |
varchar |
64 |
是 |
否 |
商品分类 |
contact_name |
varchar |
32 |
否 |
否 |
联系人姓名 |
contact_email |
varchar |
125 |
否 |
否 |
联系人邮箱 |
contact_phone |
varchar |
11 |
否 |
否 |
联系人手机 |
contact_address |
varchar |
255 |
否 |
否 |
收件地址 |
postal_code |
varchar |
9 |
否 |
否 |
邮政编码 |
user_id |
int |
10 |
是 |
否 |
买家ID |
merchant_id |
mediumint |
8 |
是 |
否 |
商家ID |
create_time |
timestamp |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
description |
varchar |
255 |
否 |
否 |
描述 |
state |
varchar |
16 |
是 |
否 |
订单状态 |
第5章 系统实现
5.1首页设计与实现
系统的主界面设计结构上使用左右结构,上部的主要功能菜单区,主要显示系统的主要功能,上部导航栏有购物需知,用户注册,交流中心,公告栏,商城资讯、我的等。
5.2前台功能设计与实现
5.2.1用户模块设计与实现
作为万花筒,必须保证用户的正确性、购物安全、有效管理用户信息,用户管理是电子商务系统的重要组成部分。它主要包括用户注册、登录和验证、用户注册数据修改和用户退出等功能。
用户首先进入系统前台,点击用户注册链接,进入用户注册页面,用户填满表单,即可点击提交,完成注册,之后用户可以使用账号登录系统前台。
public Map<String, Object> signUp(@RequestBody User user) {
Map<String, String> query = new HashMap<>();
query.put("username",user.getUsername());
List list = service.select(query, new HashMap<>()).getResultList();
user.setPassword(service.encryption(user.getPassword()));
* 用户ID:[0,8388607]用户获取其他与用户相关的数据
@GeneratedValue(strategy = GenerationType.IDENTITY)
* 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)
* 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时
* 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
用户进入系统前台首页后,即可看到左上角有登录表单,用户输入用户名、密码、验证码,经过数据库验证,即可登录。如果验证失败,将通过js提示账号或密码错误。
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.select(map, new HashMap<>()).getResultList();
else if(email != null && "".equals(email) == false){
resultList = service.select(map, new HashMap<>()).getResultList();
else if(phone != null && "".equals(phone) == false){
resultList = service.select(map, new HashMap<>()).getResultList();
return error(30000, "账号或密码不能为空");
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();
UserGroup userGroup = (UserGroup) groupList.get(0);
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
return error(30000,"该用户审核未通过");
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
return error(30000, "账号或密码不正确");
5.2.2交流中心模块设计与实现
登录用户在交流中心页面点击进入用户中心,可看到封面图、标题、分类、标签正文等
5.2.3我的订单模块的设计与实现
用户在添加到我的订单记录后选择并购买商品,在订单记录中删除不满意的商品的同时,还可以更改数量,或清空购买记录的所有商品,用户确认订单后,可以提交订单,填写收货地址、收货人和联系方式。
5.3后台功能设计与实现
5.3.1用户管理设计与实现
5.3.2订单列表管理设计与实现
普通用户在系统前台购买商品后,提交订单,后台将生成用户提交的订单,管理员需要处理订单,审核订单,删除、修改订单等操作。
@RequestMapping(value = "/del")
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
public void delete(Map<String,String> query,Map<String,String> config){
sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));
log.info("[{}] - 删除操作:{}",table,sql);
Query query1 = runCountSql(sql.toString());
5.3.3商城列表管理设计与实现
除了商城的基本信息管理功能外,为了方便管理员浏览商品列表的商品库存,在添加的商品模块中添加商品图片上传的功能。
用户在商品添加页面中输入添加商品的基本信息,点击提交进入上传图片页面。在上传图片位置添加文件并单击提交按钮,在提交成功后,弹出提示信息。查看用户的商品信息,视图上的鼠标可以查看图片。
用户在系统后台点击添加商品,跳转至shangpin_add.jsp页面,填写好表单参数,提交至shangpin_add_list.jsp页面,然后又shangpin_add_list.jsp操作数据库,完成商品的添加。首先管理员点击进入普通商品列表shangpinxinxi_list.jsp,可以选择删除、或者修改,如果管理员点击删除,则将通过js提示管理员是否删除onClick="return confirm('真的要删除?')",如果删除后将请求sh.jsp进行数据库数据删除,如果管理员选择修改商品信息,将跳转至shangpinxinxi_updt2.jsp,然后管理员修改后,页面请求shangpinxinxi_updt2_list.jsp来操作数据库完成商品信息的修改。
商城列表管理界面如下图所示。
正在上传…重新上传取消
图5-10商城列表管理界面
商城列表添加界面如下所示。
正在上传…重新上传取消
图5-11商城列表添加界面
商城列表添加界面代码如下。
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
public Map<String,Object> readBody(BufferedReader reader){
BufferedReader br = null;
StringBuilder sb = new StringBuilder("");
try{
br = reader;
String str;
while ((str = br.readLine()) != null){
sb.append(str);
}
br.close();
String json = sb.toString();
return JSONObject.parseObject(json, Map.class);
}catch (IOException e){
e.printStackTrace();
}finally{
if (null != br){
try{
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null;
}
public void insert(Map<String,Object> body){
StringBuffer sql = new StringBuffer("INSERT INTO ");
sql.append("`").append(table).append("`").append(" (");
for (Map.Entry<String,Object> entry:body.entrySet()){
sql.append("`"+humpToLine(entry.getKey())+"`").append(",");
}
sql.deleteCharAt(sql.length()-1);
sql.append(") VALUES (");
for (Map.Entry<String,Object> entry:body.entrySet()){
Object value = entry.getValue();
if (value instanceof String){
sql.append("'").append(entry.getValue()).append("'").append(",");
}else {
sql.append(entry.getValue()).append(",");
}
}
sql.deleteCharAt(sql.length() - 1);
sql.append(")");
log.info("[{}] - 插入操作:{}",table,sql);
Query query = runCountSql(sql.toString());
query.executeUpdate();
}
第6章 系统测试
6.1测试方法
根据系统测试目的并结合面向对象的测试方法,给出如下系统测试方案:
1、尽可能早的、并且不断地进行系统测试。因为错误发现的越早,修正它所付出的代价以及费用就会越小。
2、设计本测试用例时,应该给出测试的预期结果。一个合理的测试用例由两部分组成:主要有测试用的输入数据和该输入数据所期望的系统运行结果。
3、在设计本测试用例时,不仅需要有合法的输入测试用例,还应该要有非法的输入测试用例。因为,因为在系统的实际使用过程中,通常由于各种原因,用户往往会使用一些非法的输入测试用例来进行测试。测试用例为了测试系统的正确性和完整性,本节将对系统中重点模块的测试进行介绍。
6.2测试目的
该系统能够完成商品选购,加入商品管理,商品类别管理,订单管理,用户管理等功能,做到所开发的系统操作简单,符合系统开放性要求,该系统能够在开放的硬件体系结构中运行,并且能与其他系统顺利连接。
6.3测试用例
6.3.1注册测试
用例编号 |
用例名称 |
测试功能 |
输入 |
操作过程 |
预期输出 |
测试结果 |
B1 |
用户注册模块测试 |
正确输入用户信息,完成用户的注册。 |
用户的基本信息 |
用户在系统的注册页面根据提示填写相应的信息,然后点击“注册”按钮。 |
提示成功并跳转到登陆界面。 |
正确 |
B2 |
用户注册模块测试 |
用户注册失败的情况 |
用户不填写用户名 |
用户在系统的注册页面根据提示填写除了用户名以外相应的信息,然后点击“注册”按钮。 |
注册失败,提示“*用户名不符合要求”。 |
正确 |
B3 |
用户注册模块测试 |
用户注册失败的情况 |
用户两次输入密码不一致 |
用户在系统的注册页面根据提示填写相应的信息,填写密码时两次输入的密码不一致,然后点击“注册”按钮。 |
注册失败,提示“*两次输入密码不一致”。 |
正确 |
6.3.2订单测试
用例编号 |
用例名称 |
测试功能 |
输入 |
操作过程 |
预期输出 |
测试结果 |
A1 |
订单功能测试 |
商品加入订单成功场景。 |
点击商品,填写数量加入订单 |
在系统的商品信息页选择商品点击“加入订单”按钮。 |
界面提示“有一件商品加入订单!” |
正确 |
6.3.3商品管理测试
例如,用户想删除编号为2的商品,则点击删除按钮,系统提示是否删除,点击是,则将删除该商品,页面自动更新,同时查看数据库,发现该商品对应的数据也删除了,证实该功能正常。
该系统中的查询功能是通过点击链接来实现的。 对商品管理代码进行测试,当用户的密码输入到后台时,可以通过点击商品管理直接看到商品信息。 点击查看商品图片查看商品是否已上传图片,系统未出现错误,查询成功。
结论
在万花筒的设计过程中,由于对Java并不熟悉,系统的开发也属于边学习边应用的过程,因此对Java的理解不免出现偏差和错误,程序中肯定存在许多需要改正的地方。另外,由于毕业设计的时间比较紧张,而且自己技术有限,系统不免有些简陋,这也是今后系统需要改进和完善的地方。
万花筒采用Java+Html+Css+JavaSrcript,Java语言成熟、强大、易理解易使用,通过使用这个架构,降低了开发的难度。本系统实现了基于Java框架的万花筒,将销售流程转化成电脑操作流程,具体实现了对销售订单和客户的管理、系统用户管理、商品和商品类型管理,并提供查询统计功能来对订单和商品的相关数据进行统计分析,让商家能更清晰的掌握运营情况,帮助商家进行销售管理,简化商家工作流程,提高工作效率和盈利。
目前完成的万花筒,还有许多有待改进的地方。一个是功能上的改进,用户理应可以修改自己的相关信息,故应增设个人中心功能;另外,系统如果能提供更多查询统计功能就会使得系统更加丰富和多样化,比如客户购买力排行功能、业务员销售能力排行功能等。第二个是技术上的改进,由于对MVC架构不太熟悉,权限管理这部分,本系统采用一个springboot页面来规定好导航栏,即跳转的页面,这相对比较不灵活,如果将URL路径记录到数据库并实现增删查改会比较好;另外就是对EasyUI的使用还不够熟练,视觉效果和界面观感有待提升,希望日后能对这个系统有所改进。
致谢
此次毕业设计的课题开发中,遇到了很多分析和技术上的问题,通过网上查找资料和请求同学帮忙,顺利解决许多问题。
首先,我要感谢学校,是它给了我四年良好的生活环境和学习的平台。我要感谢我的指导老师。在这次毕业课题设计和论文的撰写中,指导老师都给了我真诚的帮助和细心的指导。我要感谢我的专业老师,是他们在专业知识上帮我解除了疑惑,让我学到更多。我还要感谢的同学和朋友,是他们陪伴我走过四年的学习生活。
时间随流水般走过,大学四年时光就是这样在不经意之间就走到了尽头。有太多的不舍,但却不会有太多的遗憾。四年时间见证了很多,也让你们见证了我的成长。感谢在大学里有你们的陪伴,感谢在成长的路上有你们的支持和鼓励,谢谢你们,让我的生活变得更加精彩!
参考文献
[1]艾元平,仝相达. 智能影像灯多态万花筒成像方法及设备[P]. 广东省:CN113888554A,2022-01-04.
[2]吉钰霖, 2 视觉篇 《容貌焦虑》万花筒视觉可视化. 李杰 主编,中国高等院校设计作品精选年鉴,中国商业出版社,2021,240,年鉴.
[3]刘卓澜. Z世代下的北京商场万花筒[N]. 北京商报,2021-10-27(005).
[4]Shaye David A.. Editorial: A kaleidoscope of ideas: old and new[J]. Current Opinion in Otolaryngology & Head & Neck Surgery,2021,29(4):
[5]Ayyildiz Pınar,Yilmaz Adem. ‘Moving the Kaleidoscope’ to see the effect of creative personality traits on creative thinking dispositions of preservice teachers: The mediating effect of creative learning environments and teachers’ creativity fostering behavior[J]. Thinking Skills and Creativity,2021,41:
[6]吴启琳.“商业文化的万花筒”:张海英著《走向大众的“计然之术”——明清时期的商书研究》简介[J].地方文化研究,2021,9(02):113.
[7]刀刀.折射瑰丽的文明万花筒——突尼斯[J].现代商业银行,2020(18):103-106.
[8]陈琪莎.《万花筒吊坠(千花琉璃+18k金)》[J].当代文坛,2020(04):202.
[9]刘鑫. 丰富多彩的万花筒—约翰·科瑞里亚诺两部管弦乐作品的技法分析[D].中央音乐学院,2019.
[10]Ouyang Peichang,Wang Xinchang,Zhao Yongman. Beautiful Math, Part 6: Visualizing 4D Regular Polytopes Using the Kaleidoscope Principle.[J]. IEEE computer graphics and applications,2019,37(5):
[11]袁欢,金莹. 万花筒式的香港记忆新书写[N]. 文学报,2018-08-31(005).
[12]陶欣. 万花筒成像原理在视觉设计中的应用研究[D].山东工艺美术学院,2018.
[13] 瞧瞧文化的万花筒[N]. 检察日报,2018-01-25(007).
[14]郑文丰. 网络热词:时代万花筒里的黑洞[N]. 贵阳日报,2018-05-22(012).
[15] A Mathematical Kaleidoscope[M].Elsevier Ltd:1995-01-01.
- [16]Maximilian Mackeprang,Johann Strama,Gerold Schneider,Philipp Kuhnz,Jesse Josua Benjamin,Claudia Müller-Birn. Kaleidoscope[P]. User Interface Software and Technology Adjunct Proceedings,2018.
免费领取本源代码,请关注点赞+私聊
(附源码)springboot万花筒 毕业设计 345600相关推荐
- [附源码]PHP计算机毕业设计小区水电管理系统(程序+LW)
[附源码]PHP计算机毕业设计小区水电管理系统(程序+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程.欢迎交流 项目运行 环境配置: PHP+ Vscode + Mysql5. ...
- 【附源码】计算机毕业设计JAVA智友少儿编程学习平台
[附源码]计算机毕业设计JAVA智友少儿编程学习平台 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...
- (附源码)计算机毕业设计SSM加油站管理信息系统
(附源码)计算机毕业设计SSM加油站管理信息系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Inte ...
- (附源码)计算机毕业设计SSM流浪动物救助系统
(附源码)计算机毕业设计SSM流浪动物救助系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Intel ...
- 【附源码】计算机毕业设计JAVA中国历史网站
[附源码]计算机毕业设计JAVA中国历史网站 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Intell ...
- (附源码)计算机毕业设计SSM家具商城系统
(附源码)计算机毕业设计SSM家具商城系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Intelli ...
- (附源码)计算机毕业设计SSM建筑工程管理系统
(附源码)计算机毕业设计SSM建筑工程管理系统 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Intel ...
- (附源码)计算机毕业设计SSM基于的楼盘销售系统的设计与实现
(附源码)计算机毕业设计SSM基于的楼盘销售系统的设计与实现 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclisp ...
- 【附源码】计算机毕业设计Python安卓基于安卓的校园跑腿代购476ww(源码+程序+LW+调试部署)
[附源码]计算机毕业设计Python安卓基于安卓的校园跑腿代购476ww(源码+程序+LW+调试部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Python ...
- (附源码)计算机毕业设计SSM基于大数据的汽车流量监控
(附源码)计算机毕业设计SSM基于大数据的汽车流量监控 项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(I ...
最新文章
- Google 确认 Chrome 存在严重漏洞,向 20 亿用户发出警告:你们需立即更新浏览器...
- linux下更新硬盘FW,Intel SSD硬盘 FW 更新方法
- QT设置坐标轴XY轴显示范围方法
- php版本最低要求:5.4_Zabbix 5.0.0beta1版本初体验
- 《机器学习实战》笔记(01):机器学习基础
- 数字类 default 0和 default 0_全方位的数字规划工具Visual Components 4.0 数字化工厂仿真软件...
- 【个人笔记】OpenCV4 C++ 快速入门 04课
- Python 利用GDAL对图像进行几何校正
- 银河麒麟高级服务器操作系统 V10 版本安装教程
- 磁盘碎片对计算机系统的影响,磁盘碎片整理第9遍了|Win7磁盘碎片整理的方法
- iOS 日本日历、佛教日历取date的问题及公历转换,时间戳获取不准确
- 湘潭大学c语言大作业难过吗,C语言程序设计参考答案(湘大出版社)
- 微信公众号unionid问题
- android分屏模式_Android分屏显示总结
- 瑞幸咖啡砸10亿教育市场,会成为下一个“小黄车”吗?
- Springboot集成datax方案小记
- ARM之S5pv210的USB刷机
- 豆瓣影评爬虫:cutecharts数据可视化看看大家对八佰的评价如何
- SAP-FICO CO凭证的相关知识点
- 道高一尺魔高一丈:iOS破解应用下载中心AppTrackr VS. 苹果
热门文章
- PyTorch入门: Kaggle 泰坦尼克幸存者预测
- 计算机无法在安全模式下完成安装,我的电脑中了一种病毒,在安全模式下、微系统模式下都无法把它格式化,甚至重分区再低格后重装系统都不行啊...
- 数据备份及恢复需求分析
- 2022年高处安装、维护、拆除培训试题模拟考试平台操作
- WITH GRANT OPTION的作用
- 1.python真的是万恶之源么?(初识python)
- 用HBuilder X编辑器打开的网页出现中文乱码
- 前员工推出新搜索引擎Cuil挑战Google
- c++最佳情侣身高差(来测一测)
- 常见积分和导数的推导