🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。
作者完整代码目录供你选择:
⬇️文章末尾可以获取联系方式,需要源码或者演示视频可以联系⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目展示
摘 要
在当今信息爆炸的大时代,由于信息管理系统能够更有效便捷的完成信息的管理,越来越多的人及机构都已经引入和发展以信息管理系统为基础的信息化管理模式,随之信息管理技术也在不断的发展和成熟。鉴于此,为了适应社会的快速发展,无论什么行业的组织或管理部门都有必要积极改革内部管理方式,以配合引入信息化管理模式,来提高处理事务的效率,促进自身的管理优化和效率的提升。本课题商品智能推荐系统的设计与实现就是通过该信息管理网站来辅助本行业,完成信息化管理模式的引入,来提升服务行业信息管理的效率。因此系统的设计要着重考虑系统的安全性,可操作性,功能全面性。
本商品智能推荐系统开发的目的在于规范购买商品服务,提高效率。以便满足各类型用户的需求,增加的安全性,多样性更加适应现代社会的发展。
除此以外,本商品智能推荐系统是严格根据软件工程的开发方式进行开发。利用MySQL 数据库作为数据存储支撑,使用JAVA编程语言,基于springboot框架。主要功能是实现各项相关信息的编辑,查询以及用户的添加。功能模块包括:注册,登陆,主界面,商家、商品信息、论坛、公告信息等模块。其中的数据库能够实现增、删、改、查等功能。
关键词:商品智能推荐系统;springboot框架;MySQL 数据库;
1 绪 论
1.1 研究背景
显而易见,在互联网时代,计算机给人们的生活方式带了前所未有的变革,如今各类电子设备,智能产品正在改变人们传统的生活、工作及娱乐方式[1]。相对于人们过去的脑计算,手动记录的方式,现如今花费同样时间能够处理的问题早已不再是一个数量级了。那在当今社会,人们需要慢慢从很多复杂劳累繁重重复的体力劳动中解放出来,人们对信息资源的需求就变的越来越大,对获取信息的准确度,安全性以及效率的要求也随之加大。因此,基于计算机应用的信息管理系统便随之出现[2]。有了信息管理系统,人们能够快速获取,收集和处理数据。管理信息系统(MIS)可以完美地集成计算机和网络技术,满足用户对信息的需求[3]。作为一种智能管理工具,MIS使数据信息的处理更加省时省力,准确并更切合用户的要求。此外,由于繁杂的数据处理由计算机应用系统完成,用户就可以在需要时,时时获得数据信息的分析统计的结果,以辅助做出管理决策来实现更高效有益的管理工作实现。
记得在过去,当时信息技术还没有得到引入和普及,人们对信息的处理主要是是基于纸质材料的记录和信息的存储。因为纸质档案的储存需要大量的人力物力,这就导致了管理成本的居高不下[4]。另外,关于信息的处理方面,由于数据的收集和分析技术不够成熟,导致数据和信息的重复使用率很低。也就直接导致了信息管理工作的效率非常地低下,那么对于现如今信息爆发的大数据时代,对于越来越大信息需求量的社会来说,在低效率的信息管理模式下,以往的管理模式已经毫无疑问地不能够符合现代社会对于信息索取的要求了。因此,我们设计和开发一款应用管理程序系统来满足对于现代管理部门或机构的高效管理是非常有必要的[5]。
1.2 课题意义
激烈的市场竞争是这个时代的标志,适者生存,不适者淘汰,优胜劣汰是基本法则。循序渐进,任何事物随着时间的推移都朝着好的方面在发展,各行各业的管理部门要想在本行业领域中脱颖而出,就必须保持足够的优势,提高市场竞争力[6]。对于现代管理部门来说,信息资源是非常重要的,有效的利用及管理好这些资源信息可以帮助管理部门更好的发展。信息管理系统是新型的管理模式,相对于传统的以人工为主的管理模式而言,它更加的高效化,可以满足各类用户的使用需求,用户可以节省大量的时间而从去做更有意义的事情[7]。信息管理系统对于信息的收集和处理也是非常便捷的,管理者可以实时查询所需要的信息,从而更加准确及快速的做出决策,提高管理工作效率[8]。
对于本行业来说,传统的管理模式面临着许多问题,比如收集数据信息资料需要耗费大量的人力资源,无形增加管理部门的运营成本,而且对于数据信息分析方面,容易出现主观判断的错误,对于信息资源的存放安全性较差,而且对于信息的利用率较低,造成了大量的资源浪费,得不偿失[9]。而使用本信息管理系统,可以在很大程度上改善和避免这些问题,比如,系统可以大量保存及收集各类资源信息,对于信息的查找通过系统也是非常快速和便捷的,系统可以根据事先设定的规则程序对数据进行科学的分析,结果相对来说比较准确,出现错误的可能性极低,使用本商品智能推荐系统也可以节省不必要的人力资源,减少管理部门的运营成本,总的来说,设计及开发本商品智能推荐系统对于现代化的管理体系来说是有这一定意义的[10]。
社会在变,工作方式在变,习惯也在变,科学技术越来越成熟,人们对于技术产物的要求也越来越多,对于数据信息的需求量增加,对大量数据信息的管理也越来越重要,为了满足需求,就需要有针对性的结合实际设计及开发出适合的系统[11]。在开发本商品智能推荐系统前,对于使用者的需求做了详细的分析,本行业的市场情况及发展背景也做了了解,科学的介入使得人们的工作效率得到了很大的提高。在当今社会里,计算机应用已经渗透到人们的日常生活及工作中,人们使用信息管理系统可以更好的完成工作,这种更加高效,更加科学的工作方式越来越受到人们的青睐,和以往的工作相比,利用信息管理系统收集和处理信息的速度越来越快,人们可以节省大量的时间和精力去创造更多的价值[12]。也基于此,市场上也已涌现出形形色色的应用管理系统,但这些应用系统功能过于简单,并不能各行各业各种各样的需求,根据各行各业多样的信息需求,我们必须根据其实际需要设计相应的功能,以设计开发出最适合用户的信息管理系统,这也是本系统开发的目的所在。
2 开发技术论述
2.1 Spring boot框架
Spring Boot的开发团队来自美国的Pivotal公司,是2013年研发的免费、轻量级、开源的系统框架。它集合、默认了许多框架的使用方法,是基于原有的框架的功能的又一次进化,所以从这个角度看,它就又是一个旧的框架。
Spring boot有以下几个特点:低嵌入式设计,代码污染性低;不是只局限于Spring,开发者可以随意的选择Spring框架的任意几个部分;使程序的测试变得更加简单与方便;没有独立的Web服务器需要,所以不再需要启动Tomcat,Glass Fish。
2.2 Vue框架
Vue.js是一套构建用户界面的渐进式框架,是一个基于MVVM模式的 JavaScript库。Vue.js采用了自底向上的增量式开发的设计。Vue.js 的显著特性有:轻量级的框架、双向数据绑定、指令、插件化。
2.3 Tomcat服务器
Tomcat服务器是一个开源的Web应用服务器,稳定而先进,非常受开发人员的欢迎,是主流的Web应用服务器之一。因为它占用较少的系统资源,具有良好的可扩展性,支持负载平衡和邮件服务,以及开发应用程序系统的其他常见功能。
Tomcat属于轻量级应用服务器,主要应用于小规模系统和低并发性要求的软件应用。同时,新版本的servlet和JAVA规范总是可以在Tomcat服务器中完美呈现,因此,它已经成为开发和调试JAVA程序的最佳选择。
Tomcat服务器可以处理HTML页面。但是,由于Tomcat服务器不如Apache能够优秀地处理静态HTML,因此它们经常一起配合使用。一旦完成了精确的配置,Apache就为HTML页面提供服务。于是Tomcat可以顺利地执行JAVA和servlet。
2.4 MySQL数据库
数据库使用MySQL。MySQL是一个开源关系数据库管理系统,同时是LAMP开源Web应用软件的关键组成部分。世界上许多著名的Web软件系统的数据库都是由MySQL关系数据库设计的。MySQL也同样适用于需要高质量和大规模的网站,如谷歌、Facebook、Twitter、YouTube等。
MySQL数据库的特性有很多。先,MySQL使用C和C++编写并使用了多种编译器进行测试以保证源代码的可移植性。MySQL数据库支持跨平台的特性使得它能够支持多种主流操作系统,并且它为多种编程语言提供API。它支持多线程,充分利用CPU资源。优化后的SQL查询算法可以有效提高查询速度。它可以在客户端—服务器的网络环境中用作单独的应用程序,也可以作为库嵌入到其他软件中,以提供多语言支持。不仅如此,常用编码可以用作数据表名和数据列名,由于它支持存储引擎的特性,它提供TCP/IP、JDBC等数据库连接通道,提供用于管理、检查和优化数据库操作的管理工具,可以处理拥有大量记录的大型数据库。
虽说MySQL数据库有如此强大的适用性,但与此同时与其他的大型数据库例如Oracle、MySQL相比,MySQL数据库也有它的不足之处,如规模小、功能有限,但是这些缺点对它如此适用的特性并没有任何影响。开发人员能够从 MySQL 源代码中生成和手动安装 MySQL,通常情况下,如果没有特别要求,可以从一个二进制包中安装。虽然有的情况下为了安全和优化设置,我们需要进行进一步的配置,开发者依然可以利用分组管理系统下载并安装 MySQL,其过程十分轻松而便捷。总而言之,MySQL数据库为大部分的个人用户和中小企业提供了足够多的功能,并且MySQL作为一款开源软件,大大降低
了开发成本。
3 需求分析
3.1 系统的可行性分析
(1) 经济可行性
本商品智能推荐系统作为本人的毕业设计作品,所有的开发工具均是使用的免费版本,硬件设备使用的个人笔记本电脑,这些费用以及所需要使用的资源都在自己的承受范围之内,除了精力和时间成本的投入,几乎没有其他的费用支出,因此属于较低成本的开发。并且,本商品智能推荐系统实现的功能可以帮助提高工作效率,本系统如果开发成功被成功投入使用的话,系统预计带来的经济效益是无穷的——重复使用性可以节约大量人力物力财力。因此,本商品智能推荐系统在经济方面是能够做到经济可行。
(2) 技术可行性
本商品智能推荐系统是基于springboot框架,前台VUE框架,使用MySQL数据库作为数据存储支撑,JAVA作为编程语言的,本系统所采用的开发技术,都是现行的比较流行的软件开发工具,经过市场的检验,此开发工具技术也比较成熟,对于技术使用方面,本专业的课程中也做了详细的介绍,使用和操作不成问题。因此,开发本商品智能推荐系统在技术方面是能够做到技术可行[13]。
(3) 社会可行性
本系统所采用的软件开发工具以及网站的内容都是通过正规路径获取。开发过程严格遵守各类规章制度,并且整个系统是由本人设计及开发的。因此,本系统在社会方面是能够做到社会可行。
(4) 操作可行性
随着国家的迅猛发展,国际地位的提高,国际间人才交流的频繁。以及九年义务教育的普及,人们的知识水平普遍得到了提高。现如今,对于电脑操作可以说是非常简单的一件事,而本商品智能推荐系统设计的界面非常友好,简单明了,对于用户来说基本操作不成问题,只需要对特定的功能模块进行简单的介绍使用就可以上手了。
3.2 功能需求分析
根据系统需求分析,本商品智能推荐系统的功能要求包括:
(1) 用户登录注册
本系统提供用户的登录和注册功能,用户可以使用网站首页的登录注册界面进行在线登录注册,并且注册登录后方可使用系统的各种功能[14]。不通过登录注册只能浏览网站。
(2) 商家登录注册
本系统提供商家的登录和注册功能,商家可以使用网站首页的登录注册界面进行在线登录注册,并且注册登录后方可使用系统的各种功能。不通过登录注册只能浏览网站。
(3) 管理员管理
管理人员可以通过首页的后台管理选项,进入登录后台管理,就可以管理用户和商家的相关信息。包括对商品种类、商品信息、论坛和系统、订单等的管理。可以删除、添加、修改信息。
(1) 管理员用例图如下所示:

图3-1管理员用例图
(2) 用户用例图如下所示:

图3-2用户用例图
(3) 商家用例图如下所示:

图3-3商家用例图
3.3 项目设计目标
本系统采用Mysql数据库和java语言,SpringBoot框架进行开发而成,极大程度上的保证了系统的稳定性。
3.3.1 关于系统的基本要求
(1) 功能要求:管理人员可以管理自己的个人中心、对商品信息、论坛、公告信息等进行管理。
(2) 性能:可以准确无误的在不同的操作系统中登录到用户或者管理员的相应界面进行轻松的操作。
(3) 环境要求:支持不同的操纵系统和不同的平台,可用于Windows系列、Vista系统等多种操作系统。
3.3.2 开发目标
本商品智能推荐系统的主要开发目标如下:
(1) 减少后台管理人员的工作量,对用户的信息进行系统的管理;
(2) 必须要方便快捷的查看搜索信息并管理信息;
(3) 用户是具有多样性的,所以界面要设置的简单明了,操作更要方便快捷。
4 系统设计
4.1 系统功能模块设计
经过分析本系统的实际需求,系统主要分为三个模块,用户、商家以及管理员,具体的功能模块如图4-1所示:

图4-1 功能模块设计图
4.2 系统功能流程设计
系统在登录流程设计时,既要对功能进行周到的考虑,而且,还要是设计的流程简洁实用。在登录模块流程设计时候,用户在正确的输入用户名和password组合后,才可以通过系统的审核,登录到系统,操作本权限内的更多系统提供的功能。否则,系统将拒绝用户的登录请求。并给出相应的操作提示,如下图4-2示:

图4-2 功能流程设计图
(1) 基础数据增加流程
给系统中的每个信息流添加数据是功能模块中最基础的,系统增加的流程一般采取先点击添加按钮进行开始操作,然后输入所需要添加的数据信息进行填充,填充完毕以后,系统自动判断数据是否合法,如果合法则添加成功,否则的话,则进行错误提示,重新进行操作,具体设计如下图4-3所示:

图4-3基础数据增加流程图
(2) 基础数据修改流程
给系统中的每个信息流修改数据是功能模块中最基础的,系统修改的流程一般采取先点击修改按钮进行开始操作,然后输入所需要修改的数据信息进行填充,填充完毕以后,系统自动判断数据是否合法,如果合法则添加成功,否则的话,则进行错误提示,重新进行操作。数据修改流程图如图4-4所示。

图4-4 基础数据修改流程图
(3) 基础数据删除流程
给系统中的每个信息流删除数据是功能模块中最基础的,系统删除的流程一般采取先点击删除按钮进行开始操作,然后输入所需要删除的数据信息进行删除。数据删除流程图如图4-5所示。

图4-5基础数据删除流程图
4.3 数据库设计
在进行数据库设计时,需要建立一个数据模型来使杂乱无章的用户需求变得井井有条。经常选用的就是E-R模型。E-R图反应了实体与实体之间的关系。
用户信息E-R图如图4-6所示。

图4-6用户信息E-R图
购物车E-R图如图4-7所示。

图4-7购物车E-R图
商家信息E-R图如图4-8所示。

图4-8商家信息E-R图
商品信息E-R图如图4-9所示。

图4-9商品信息E-R图
订单信息E-R图如图4-10所示。

图4-10订单信息E-R图
本商品智能推荐系统整体的E-R图如图4-11所示:

图4-11商品智能推荐系统的E-R图
4.4 数据库中的表格设置情况如下:
表4-1:订单
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
orderid |
varchar |
200 |
订单编号 |
|
|
|
tablename |
varchar |
200 |
商品表名 |
|
shangpinxinxi |
|
userid |
bigint |
|
用户id |
|
|
|
goodid |
bigint |
|
商品id |
|
|
|
goodname |
varchar |
200 |
商品名称 |
|
|
|
picture |
longtext |
4294967295 |
商品图片 |
|
|
|
buynumber |
int |
|
购买数量 |
|
|
|
price |
double |
|
价格 |
|
0 |
|
total |
double |
|
总价格 |
|
0 |
|
type |
int |
|
支付类型 |
|
1 |
|
status |
varchar |
200 |
状态 |
|
|
|
address |
varchar |
200 |
地址 |
|
|
|
tel |
varchar |
200 |
电话 |
|
|
|
consignee |
varchar |
200 |
收货人 |
|
|
|
logistics |
longtext |
4294967295 |
物流 |
|
|
|
remark |
varchar |
200 |
备注 |
|
|
|
shangjiahao |
varchar |
200 |
商户名称 |
|
|
|
sfsh |
varchar |
200 |
是否审核 |
|
|
|
shhf |
longtext |
4294967295 |
审核回复 |
|
|
|
role |
varchar |
200 |
用户角色 |
|
|
表4-2:公告信息分类
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
typename |
varchar |
200 |
分类名称 |
|
|
表4-3:公告信息
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
title |
varchar |
200 |
标题 |
|
|
|
introduction |
longtext |
4294967295 |
简介 |
|
|
|
typename |
varchar |
200 |
分类名称 |
|
|
|
name |
varchar |
200 |
发布人 |
|
|
|
headportrait |
longtext |
4294967295 |
头像 |
|
|
|
clicknum |
int |
|
点击次数 |
|
0 |
|
clicktime |
datetime |
|
最近点击时间 |
|
|
|
thumbsupnum |
int |
|
赞 |
|
0 |
|
crazilynum |
int |
|
踩 |
|
0 |
|
storeupnum |
int |
|
收藏数 |
|
0 |
|
picture |
longtext |
4294967295 |
图片 |
|
|
|
content |
longtext |
4294967295 |
内容 |
|
|
表4-4:论坛表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
title |
varchar |
200 |
帖子标题 |
|
|
|
content |
longtext |
4294967295 |
帖子内容 |
|
|
|
parentid |
bigint |
|
父节点id |
|
|
|
userid |
bigint |
|
用户id |
|
|
|
username |
varchar |
200 |
用户名 |
|
|
|
avatarurl |
longtext |
4294967295 |
头像 |
|
|
|
isdone |
varchar |
200 |
状态 |
|
|
|
istop |
int |
|
是否置顶 |
|
0 |
|
toptime |
datetime |
|
置顶时间 |
|
|
表4-5:商品信息评论表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
refid |
bigint |
|
关联表id |
|
|
|
userid |
bigint |
|
用户id |
|
|
|
avatarurl |
longtext |
4294967295 |
头像 |
|
|
|
nickname |
varchar |
200 |
用户名 |
|
|
|
content |
longtext |
4294967295 |
评论内容 |
|
|
|
reply |
longtext |
4294967295 |
回复内容 |
|
|
表4-6:配置文件
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
name |
varchar |
100 |
配置参数名称 |
|
|
|
value |
varchar |
100 |
配置参数值 |
|
|
|
url |
varchar |
500 |
url |
|
|
表4-7:用户
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
yonghuzhanghao |
varchar |
200 |
用户账号 |
|
|
|
mima |
varchar |
200 |
密码 |
|
|
|
yonghuxingming |
varchar |
200 |
用户姓名 |
|
|
|
xingbie |
varchar |
200 |
性别 |
|
|
|
nianling |
int |
|
年龄 |
|
|
|
touxiang |
longtext |
4294967295 |
头像 |
|
|
|
money |
double |
|
余额 |
|
0 |
表4-8:token表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
userid |
bigint |
|
用户id |
|
|
|
username |
varchar |
100 |
用户名 |
|
|
|
tablename |
varchar |
100 |
表名 |
|
|
|
role |
varchar |
100 |
角色 |
|
|
|
token |
varchar |
200 |
密码 |
|
|
|
addtime |
timestamp |
|
新增时间 |
|
CURRENT_TIMESTAMP |
|
expiratedtime |
timestamp |
|
过期时间 |
|
CURRENT_TIMESTAMP |
表4-9:在线客服
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
userid |
bigint |
|
用户id |
|
|
|
adminid |
bigint |
|
管理员id |
|
|
|
ask |
longtext |
4294967295 |
提问 |
|
|
|
reply |
longtext |
4294967295 |
回复 |
|
|
|
isreply |
int |
|
是否回复 |
|
|
表4-10:收藏表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
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 |
备注 |
|
|
表4-11:用户表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
username |
varchar |
100 |
用户名 |
|
|
|
password |
varchar |
100 |
密码 |
|
|
|
image |
varchar |
200 |
头像 |
|
|
|
role |
varchar |
100 |
角色 |
|
管理员 |
|
addtime |
timestamp |
|
新增时间 |
|
CURRENT_TIMESTAMP |
表4-12:购物车表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
tablename |
varchar |
200 |
商品表名 |
|
shangpinxinxi |
|
userid |
bigint |
|
用户id |
|
|
|
goodid |
bigint |
|
商品id |
|
|
|
goodname |
varchar |
200 |
商品名称 |
|
|
|
picture |
longtext |
4294967295 |
图片 |
|
|
|
buynumber |
int |
|
购买数量 |
|
|
|
price |
double |
|
单价 |
|
|
|
shangjiahao |
varchar |
200 |
商户名称 |
|
|
表4-13:商品种类
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
shangpinzhonglei |
varchar |
200 |
商品种类 |
|
|
|
image |
longtext |
4294967295 |
图片 |
|
|
表4-14:地址
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
userid |
bigint |
|
用户id |
|
|
|
address |
varchar |
200 |
地址 |
|
|
|
name |
varchar |
200 |
收货人 |
|
|
|
phone |
varchar |
200 |
电话 |
|
|
|
isdefault |
varchar |
200 |
是否默认地址[是/否] |
|
|
表4-15:商品信息
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
shangpinmingcheng |
varchar |
200 |
商品名称 |
|
|
|
shangpinzhonglei |
varchar |
200 |
商品种类 |
|
|
|
shangpintupian |
longtext |
4294967295 |
商品图片 |
|
|
|
shangpinxiangqing |
longtext |
4294967295 |
商品详情 |
|
|
|
shangjiahao |
varchar |
200 |
商家号 |
|
|
|
shangjiamingcheng |
varchar |
200 |
商家名称 |
|
|
|
lianxidianhua |
varchar |
200 |
联系电话 |
|
|
|
shangjiadizhi |
varchar |
200 |
商家地址 |
|
|
|
clicknum |
int |
|
点击次数 |
|
0 |
|
discussnum |
int |
|
评论数 |
|
0 |
|
price |
double |
|
价格 |
|
|
|
storeupnum |
int |
|
收藏数 |
|
0 |
表4-16:商家
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
shangjiahao |
varchar |
200 |
商家号 |
|
|
|
mima |
varchar |
200 |
密码 |
|
|
|
shangjiamingcheng |
varchar |
200 |
商家名称 |
|
|
|
shangjiadizhi |
varchar |
200 |
商家地址 |
|
|
|
lianxidianhua |
varchar |
200 |
联系电话 |
|
|
|
shangjiayouxiang |
varchar |
200 |
商家邮箱 |
|
|
|
yingyezhizhao |
longtext |
4294967295 |
营业执照 |
|
|
|
shangpuzhaopian |
longtext |
4294967295 |
商铺照片 |
|
|
|
shangjiajieshao |
longtext |
4294967295 |
商家介绍 |
|
|
|
money |
double |
|
余额 |
|
0 |
5 系统的功能实现
5.1 前台用户功能实现
对于任何网站,相应完成除了信息查看外,更多的操作,就必然要通过系统的身份审核,要通过相应的身份审核,就必然要进行注册,通过注册操作,可以获得合法的使用权限。在系统的注册页面,要根据系统的要求,如账号、密码等资料的填写及确认。另外,用户在注册时,系统处了进行必填项的非空检测外,还要对用户填入的信息进行数据库重复比对操作。如果,用户填入的用户名在数据库中已经存在,即已经被其他人注册,则系统会进行用户名重复的响应提示。在所有的登录注册都能够通过管理员审核后,表示用户是能够按照此账号名和密码对系统进行登录的。审核通过后首页会自动弹出注册成功的提示。以用户名为xxx,密码123456为例进行用户注册,如下图5-1所示:

图5-1用户注册界面
在设计系统的登录流程时,通常会从实用和有效性来考虑,即所设计的流程简单实用还要能够有效的屏蔽非法的登入系统,保护系统数据的安全。用户需要登录本系统时,需要在登录框中对应的输入个人的用户账号和密码,点击登录时,系统会自动接收到的帐密组合,在相应的存储数据表中检索,若检索能够得到结果,则表示该账密组合合法,则允许登录,系统会自动跳转页面,若检索无结果,则表示系统中不存在此账密组合用户,则给出错误提示,并停留登录页面。如下图5-2所示:

图5-2用户登录界面
主界面主要分为首页、商家、商品信息、论坛、公告信息轮播区,其原理就是在发出相应的查询申请时,系统会调用已设定好的MySQL数据库命令在指定的数据表中进行数据的检索,并且将检索得到的结果存储为数据集的形式,这样可以方便多个数据准确的绑定到GridView控件上,来完成属性和内容的对应和显示。通常的情况,系统会以DataKeyNames属性来绑定对应行的主键。这样的操作方式,可以很大限度上避免以后在数据操作时,发生错误。例如在以后的数据修改、删除操作。都需要进行数据的准确定位,通过DataKeyNames就可以避免定位出错,进而避免错误的删除或修改的发生。如下图5-3所示:

图5-3 系统主界面
用户点击商品信息页面的搜索栏输入商品名称、商品种类,进行查询,然后可以查看商品等信息,如果有需要可以添加到购物车、立即购买、收藏或者评论等操作,如图5-4所示:

图5-4商品信息页面
用户点击商家页面的搜索栏输入商家号、商家名称,进行查询,然后可以查看商家等信息,还可以点击下载等操作,如图5-5所示:

图5-5商家页面
购物车:用户将想要购买的商品加入购物车,加入购物车后可以增减数量、删除、点击购买,可一键清除失效商品,如图5-6所示:

图5-6购物车页面
在个人中心页面可以更新个人详细信息,还可以对我的发布、我的订单、我的地址、我的收藏进行详细操作;如图5-7所示:

图5-7个人中心界面
5.2 后台管理员功能实现
后台管理员登录,在登录页面选择需要登录的角色,在正确输入用户名和密码后,点击登录操作;如图5-8所示。

图5-8后台管理员登录界面
管理员进入系统主页面,主要功能包括对用户、商家、商品种类、商品信息、论坛管理、系统管理、订单管理、个人资料等进行操作。管理员主页面如图5-9所示:

图5-9管理员主界面
管理员点击用户,在用户页面输入用户账号、用户姓名,可以查找,新增或移除用户信息,并根据需要对用户信息进行相对应的操作。如图5-10所示:

图5-10用户界面
管理员点击商家,在商家页面输入商家号、商家名称,可以查找,新增或移除商家信息,并根据需要对商家信息进行相对应的操作。如图5-11所示:

图5-11商家界面
管理员点击商品种类,在商品种类页面输入商品种类,可以查找,新增或移除商品种类,并根据需要对商品种类进行相对应的操作。如图5-12所示:

图5-12商品种类界面
管理员点击商品信息,在商品信息页面输入商品名称、商家名称、价格、最大价格,可以查找或移除商品信息,并根据需要对商品信息进行相对应的操作。如图5-13所示:

图5-13商品信息界面
管理员点击论坛管理,在论坛管理页面输入帖子标题,可以查找或移除论坛信息,并根据需要对论坛信息进行相对应的操作。如图5-14所示:

图5-14论坛管理界面
管理员点击系统管理,在系统管理页面中包括轮播图管理、公告信息、公告信息分类、在线客服模块,可以查找或新增、移除系统信息,并根据需要对系统信息进行相对应的操作。如图5-15所示:

图5-15系统管理界面
5.3 后台商家功能实现
后台商家注册、登录,在注册、登录页面正确输入用户名和密码等信息后,点击注册或者登录操作;如图5-16所示。


图5-16后台商家注册、商家登录界面
商家进入系统主页面,主要功能包括对商品信息、订单管理、个人资料等进行操作。商家主页面如图5-17所示:

图5-17商家主界面
商家点击商品信息,在商品信息页面输入商品名称、商家名称、价格、最大价格,可以查找,新增或移除商品信息,并根据需要对商品信息进行相对应的操作。如图5-18所示:

图5-18商品信息界面
6 系统测试
6.1 测试目的
为了知道本系统的设计是否符合设计的要求,就需要通过一定的方式进行检查。进行检查的目的不仅为了发现系统功能实现方面的不满足,而且还可以很大程度上发现系统可能存在的潜在bug或错误[15]。
6.2 测试方式
测试步骤也是非常重要的。对于本商品智能推荐系统的测试在设计时,大部分的测试采用的是采用黑盒方式对各个功能逐个检测。这样能够保证该商品智能推荐系统的所有功能模块都能够顺利完成相应的工作,确保系统完全符合用户的需求[16]。
6.3 主要用例测试
表6-1登录测试模块

通过一个测试用例,可以得出该功能模块可以正常使用。
6.4 系统的测试结论
在进行测试以后,根据测试的记录表格,我们可以清楚的看到,商品智能推荐系统的各项功能运行状况良好,符合设计的初衷,自此商品智能推荐系统的设计基本完成。
7 结 论
经过这段时间的努力,毕业设计作品完成了,整个设计开发过程没有预想的那样容易,但成品还算是比较满意。记得最开始选择本专业时,因为觉得比较酷,再加上这个专业比较热门,随流,慢慢接触这个专业时,才发现很多东西并不是像所表现出来的那一面,本专业所涉及的知识点是非常多的,而且需要不断学习新知识,需要有足够的耐心解决问题,知识点要彻底掌握,要耐得住寂寞,经受得住失败。而现在,对于我所要从事的专业,我是非常感兴趣的,我喜欢经历过万般历练后的成功带给我的喜悦和自豪,我喜欢通过自己的努力将设想变成现实,我喜欢因为我所设计及开发的系统真正的运用到实际中,我会一直保持这份初心,做的更好。
最开始建模时,需要对系统进行全面的分析,这就需要开发者对于开发工具及技术知识的掌握,前期,我翻阅了大量的书籍资料,通过对用户需求进行分析,最终运用的开发工具是Eclipse,数据库用的是MySQL,编程技术采用JAVA,本商品智能推荐系统的功能模块基本运行比较稳定,达到预期目标,可以满足使用需求。本次设计及开发系统对于我来说是一次非常好的实践的机会,将自己对于知识的理解通过系统呈现出来,在实践过程中可以知道自己还存在哪些不足,而且对于解决问题的能力也得到了提高。想要做好一件事真的不容易,想要做好一个系统也不是容易的事,在设计过程中,遇到了大大小小的阻碍, 所以,只有攻克这些阻碍,才能不断完善,才会不断进步。
通过这次的毕业设计,我明白了很多道理,我们不应该只局限在某一个方面,要多方面发展,做任何事都必须有足够的耐心和细心,永远都不要停止学习,不要满足于当前,不进步就是退步,目标一旦确认。了,就坚持不懈地走到头。在未来的人生道路上,我希望自己能够一直努力,保持初心,努力成为更好的自己。
8 参考文献
[1] 塞奎春、宋坤、李严.《MySQL数据库开发实例解析》.北京:机械工业出版社.2016.
[2] 余金山、林慧.《MySQL数据库开发实例入门与提高》.北京:电子工业出版社.2015.
[3] 魏洪斌、周鑫、刘志江. 《Dreamweaver MX 网页设计》. 北京:清华大学出版社,2014.
[4] 孙践知. 《网络程序设计案例教程—springboot+MySQL(JAVA实现)》. 北京:清华大学出版社,2019.
[5] 李世杰 .《Active Server Pages(ASP)3.0 网页设计手册》.北京:清华大学出版社,2015
[6] 百度.Ajax[EB/OL].http://baike.baidu.com
[7] Karli Watson .《JAVA 入门经典》[M] 康博 译.清华大学出版社,2014
[8] 张燕.《基于JAVA下数据库连接技术分析》[J].科学技术创新,2018
[9] 储久良.《Web前端开发技术实验与实践》[M].北京:清华大学出版社,2013,55-169
[10] 陈伟 .《 MySQL数据库应用与开发教程》 . 北京:清华大学出版社,2017
[11] 王洪兰.《JAVA与SQL数据库的连接与查询方法探索与实现》[J].信息系统工程,2018
[12] John Kauffman、Thiru Thangarathinam .《Beginning springboot 2.0 Databases Beta Preview 》[M].Wrox,2014.3.18
[13] Eung Jae Lee、Keun Ho Ryu.《Design of Vehicle Information Management System for Effective Retrieving of Vehicle Location》.[N].Lecture Notes in Computer Science.2015
[14] A.Russell Jones(美).《springboot从入门到精通》.北京:电子工业出版,2014.1
9 致 谢
随着毕业设计作品的完成,我的大学生活也即将结束,大学之所以称之为大学,和我们所经历过的小学、初中和高中是有区别的,大学学习没有那么多的限制,比较自由,我们可以选择的范围更加宽广。在大学中,我学到了很多,我所收获的除了专业知识,还有更重要的是综合处理事情的能力。
在这段大学的旅途中,我是幸运的,有幸遇到一群良师益友,非常感谢你们陪我走过这一段路,感恩导师,谢谢你们在我迷茫的时候给我指引方向,在前进道路上不断给我纠正错误,鞭策我不断前进;感恩同学,谢谢你们不厌其烦,这段时间没少叨扰,感谢你们的帮助,在我遇到困难时,帮我查阅收集资料,当我陷入误区时,指正我的错误,避免我钻牛角尖,是你们,给予了我前进的动力;感恩学校领导,谢谢对于我物资及生活上的支持;感恩父母,谢谢你们无条件的关爱;感恩我身边的一切。
最后,再次衷心地感谢帮助我的所有人,新的旅途即将开始,我会坚持初心,往后余生,心存感激,继续前进。
核心代码展示
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
项目推荐
【计算机毕业设计】各项技术选题汇总
【计算机毕业设计】基于Springboot的网上购物商城销售系统
【计算机毕业设计】开题报告模板2
【计算机毕业设计】任务书案例2
【网站项目】基于springboot的在线考试系统
【网站项目】基于springboot的4S店车辆管理系统
【软件设计】基于python的高校资产管理系统
【网站项目】python009基于推荐算法的电影推荐系统
【网站项目】基于Springcloud的分布式架构网上商城
⬇️文章末尾可以获取联系方式,需要源码,高清图片,演示视频可以联系(不开源)⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡






