基于协同过滤算法的银行理财产品推荐系统是一种利用客户历史交易数据和评分记录,通过用户间的相似度分析或产品间的关联性分析来预测用户可能感兴趣的理财产品,并为其进行个性化推荐的智能系统。系统通过聚合和分析来自大量用户的交易行为与偏好评价,能够生成个性化的推荐列表,从而帮助用户在繁多的理财产品中快速定位到符合其风险偏好和投资目标的产品。该系统也为银行提供了一种优化客户服务、增强用户体验和提升产品销售效率的有效工具。基于协同过滤算法的银行理财产品推荐系统是金融科技领域内推动个性化服务革新的重要实践之一,对银行业务发展和顾客满意度提升具有积极影响。
通过本系统能够将用户的信息管理工作规范化、简单化,从而提高管理工作的效率。本论文主要包括用户管理、产品分类管理、理财产品管理、产品购买管理、产品合同管理、理财报告管理、留言反馈、理财交流、系统管理、我的信息等功能;在windows10的系统环境下,采用的编程语言为java和springboot框架,将mysql作为后台数据库来实现银行理财产品推荐管理流程中的各种需求。
关键词:产品推荐;java;mysql数据库;
Abstract
The bank financial product recommendation system based on collaborative filtering algorithm is an intelligent system that makes use of customer historical transaction data and scoring records, and predicts the financial products that users may be interested in through the similarity analysis among users or the correlation analysis among products, and makes personalized recommendation for them. By aggregating and analyzing the trading behavior and preference evaluation from a large number of users, the system can generate a personalized recommendation list, so as to help users quickly locate the products that meet their risk preferences and investment objectives among various financial products. The system also provides banks with an effective tool to optimize customer service, enhance user experience and improve product sales efficiency. The bank financial product recommendation system based on collaborative filtering algorithm is one of the important practices in the field of financial technology to promote personalized service innovation, and has a positive impact on the development of banking business and the improvement of customer satisfaction.
Through this system, the user's information management can be standardized and simplified, so as to improve the efficiency of management. This paper mainly includes user management, product classification management, financial product management, product purchase management, product contract management, financial report management, message feedback, financial communication, system management, my information and other functions; In the system environment of windows10, the programming language is java and springboot framework, and mysql is used as the background database to achieve various requirements in the management process of bank financial product recommendation.
Key words: Product recommendation; java; mysql database;
目 录
1.1研究背景与意义
当今社会,随着经济的不断发展和人民生活水平的提高,个人理财服务需求急剧增长。银行业务的多样化使得理财产品层出不穷,客户往往难以从众多产品中挑选出最适合自己的方案。如何精准匹配客户需求与理财产品,成为银行业务发展的关键挑战之一。另一方面,大数据技术和机器学习方法在金融领域的广泛应用提供了新的解决方案。协同过滤作为一种成熟的推荐系统算法,以其较高的推荐质量和易于实现的特点,被广泛应用于电商平台、社交网络等多个领域。研究并开发基于协同过滤算法的银行理财产品推荐系统,有助于银行更好地理解客户需求,提供个性化服务,这不仅能够提升客户满意度和忠诚度,还能进一步提高银行产品的销售效率和市场竞争力。
研究并开发基于协同过滤算法的银行理财产品推荐系统对于银行业务和客户理财行为具有深远的影响。该系统能够为银行提供一种有效的工具来增强客户关系管理,通过精准推荐满足用户个性化需求,从而提高服务效率和客户满意度。对客户而言,面对日益丰富的理财产品,一个可靠的推荐系统能够帮助他们做出更明智的投资决策,降低选择成本,提升投资回报。推荐系统还能为银行挖掘潜在的销售机会,通过交叉销售和增值销售进一步提高业绩。该系统也有助于银行更好地进行风险管理,通过对客户投资偏好的分析,可以预防和减少不当的产品匹配和投资风险。引入协同过滤算法的推荐系统也是银行数字化转型的一部分,它不仅体现了金融科技的最新应用,还为未来的创新发展奠定了技术基础。研究这一系统不仅能促进银行业务发展和提升竞争力,还能为客户提供更为全面和便捷的理财服务,实现双赢。
1.2国内外研究现状
在国外,金融科技的迅猛发展推动了银行理财服务向智能化、个性化方向转型。国际上许多先进银行已经采用了基于协同过滤算法的推荐系统,这些系统通过精细化的客户数据分析,实现了高度定制化的产品推荐,大大提高了客户服务质量和交叉销售能力,增强了客户粘性和满意度。在学术界对于推荐系统的研究也持续深入,不断有新的模型和算法被提出以应对冷启动问题、数据稀疏性问题和提升推荐精度等挑战。
在国内,随着经济的发展和居民财富管理意识的增强,对个性化理财服务的需求日益强烈。国内多家银行开始尝试引入协同过滤等算法构建理财产品推荐系统,以提升服务效率和市场竞争力。尽管与一些国际领先水平相比还存在差距,如在用户数据的丰富程度、算法的成熟度以及系统的稳定性等方面,但国内银行业在理财产品推荐领域的探索和应用正逐步加强,并已取得了初步成果,标志着我国智能理财服务时代的来临。
1.3全文组织结构
本文共分为七章,文章结构及各章内容简介如下:
第1章介绍及探讨论文研究的背景和意义,以及基于协同过滤算法的银行理财产品推荐国内外的研究现状。最后,给出本文的整体组织结构。
第2章主要介绍基于协同过滤算法的银行理财产品推荐的可行性分析,以及业务流程和功能性需求分析。
第3章主要介绍基于协同过滤算法的银行理财产品推荐的模块设计,以及开发环境的介绍。
第4章主要介绍基于协同过滤算法的银行理财产品推荐数据库分析,以及数据库的概念模型设计、逻辑模型设计和数据库表结构设计。
第5章主要介绍基于协同过滤算法的银行理财产品推荐功能模块的实现包括截图,以及主要的控制类和数据类。
第6章主要介绍基于协同过滤算法的银行理财产品推荐的测试原则、测试过程以及测试结果。
第7章主要介绍基于协同过滤算法的银行理财产品推荐的总结和展望。
第2章 技术介绍
在这一章中,主要是罗列出实现系统将采用的技术框架并对其做简单介绍。本论文中的基于协同过滤算法的银行理财产品推荐使用当下主流的JAVA开发。系统前端的业务逻辑以及数据展示使用JAVA Web框架技术来实现,系统的底层数据库选用了关系型数据库MySQL。
2.1JAVA语言介绍
Java是一种广泛使用的编程语言,以其简单易学而受到许多初学者的欢迎。它采用了C++的语法风格,同时剔除了一些复杂的概念,如指针和运算符的重载,使得学习曲线较为平缓。作为一种静态面向对象编程语言,Java充分体现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。主要包含以下几大特点:
(1)简单易学:Java语言的语法简洁明了,易于理解和学习。它摒弃了C++中复杂的指针操作和内存管理,使得程序员可以更加专注于解决问题而不是处理底层细节。
(2)跨系统性:Java语言具有“一次编写,到处运行”的特性,即编写的Java程序可以在任何支持Java虚拟机(JVM)的设备上运行,无需针对特定系统进行重新编译。
(3)面向对象:Java是一种纯粹的面向对象编程语言,它支持封装、继承和多态等面向对象的基本特性。这使得Java程序具有良好的可维护性和可扩展性。
(4)强大的生态系统:Java拥有丰富的类库和框架,如Spring、Hibernate、MyBatis等,这些工具可以帮助开发者快速构建高质量的应用程序。此外,Java还拥有活跃的开源社区,为开发者提供了丰富的资源和支持。
(5)安全性:Java语言在设计时就充分考虑了安全性问题,它提供了严格的访问控制机制和异常处理机制,可以有效防止恶意代码对系统造成破坏。同时,Java还支持数字签名和安全套接字层(SSL)等安全技术,确保数据在传输过程中的安全性。
(6)多线程支持:Java语言内置了对多线程的支持,开发者可以轻松地创建和管理多个线程,实现并发编程。这有助于提高程序的执行效率和响应速度。
2.2springboot框架
Spring Boot是一个基于Java的开源框架,它旨在简化Spring应用程序的创建、配置和部署过程。Spring Boot的设计目标是让开发者能够快速构建可独立运行的生产级应用程序,保持了Spring框架的强大功能和灵活性。Spring Boot的主要特点包括自动配置、嵌入式Web服务器、独立运行、生产准备、生态丰富和约定优于配置。这些特点使得Spring Boot成为了Java开发领域最受欢迎的框架之一。在Spring Boot中,自动配置是其最引人注目的特性之一。通过分析项目中的依赖关系,Spring Boot可以自动为应用程序配置所需的组件,如数据库连接、安全认证等。这使得开发者可以专注于业务逻辑的开发,而不需要花费大量时间在项目的配置上。Spring Boot还内置了Tomcat、Jetty等Web服务器,无需额外安装和配置,只需一个命令就可以启动一个完整的Web应用程序。这使得开发者可以轻松地将应用程序部署到生产环境,或者与团队成员共享代码。Spring Boot还提供了许多生产级别的特性,如健康检查、指标监控、外部化配置等,使得应用程序更容易部署和管理。可以轻松地将这些技术引入到项目中。Spring Boot是一个非常强大的Java开发框架,它简化了Spring应用程序的开发和部署过程,使得开发者可以更加专注于业务逻辑的开发。无论是初学者还是经验丰富的开发者,都可以通过使用Spring Boot来快速构建高质量的Web应用程序[1]。
2.3vue前端框架
Vue.js是一款用于构建用户界面的渐进式JavaScript框架。与其他大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合[2]。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用提供驱动。
在前端技术飞速发展的今天,Vue.js已经成为了最受欢迎的前端框架之一。它简单易学、灵活高效、性能优良等特点吸引了众多开发者的关注和使用。
2.4MySQL数据库简介
MySQL是一个开源的关系型数据库管理系统,它使用结构化查询语言(SQL)作为访问和管理数据的主要方式。MySQL最初由瑞典MySQL AB公司开发,后来被甲骨文公司收购。MySQL广泛应用于各种规模的应用程序,包括Web应用、用户级应用和嵌入式系统等。MySQL具有高性能、稳定性强、易于使用和灵活的特点。它支持多种操作系统,如Windows、Linux和Mac OS等。MySQL提供了丰富的功能,如事务处理、存储过程、触发器、视图等,以满足不同应用场景的需求。MySQL还具有良好的扩展性,可以通过插件或自定义开发来增强其功能。MySQL是一个功能强大、性能优越的数据库管理系统,适用于各种规模的应用程序。通过学习和掌握MySQL,开发者可以更好地构建和维护高质量的数据库应用[3]。
2.5Tomcat简介
Tomcat是一个开源的Java Web服务器和Servlet容器,它提供了一种简单的方式来部署、管理和运行Web应用程序。Tomcat由Apache软件基金会开发和维护,广泛应用于各种规模的用户级应用中。Tomcat的主要特点包括:
(1)高性能:Tomcat采用多线程处理请求,能够同时处理多个客户端连接,提高了Web应用程序的性能。
(2)稳定性:Tomcat具有高可靠性和稳定性,能够在各种环境下稳定运行。
(3)可扩展性:Tomcat支持插件和自定义开发,可以根据需求进行扩展和定制。
(4)安全性:Tomcat提供了多种安全机制,如身份验证、授权和加密等,保护Web应用程序的安全。
(5)跨系统:Tomcat支持多种操作系统,如Windows、Linux和Mac OS等,方便用户在不同系统上部署和管理Web应用程序。
Tomcat是一个功能强大、性能优越的Java Web服务器和Servlet容器,适用于各种规模的用户级应用。通过学习和掌握Tomcat,开发者可以更好地构建和维护高质量的Web应用程序[4]。
2.6B/S架构
B/S架构:B/S架构(Browser/Server,浏览器/服务器)是一种网络应用程序架构模式,它将客户端与服务器端进行了分离。在这种架构中,用户通过浏览器访问服务器上的应用程序,而服务器负责处理用户的请求并返回相应的数据。这种架构使得客户端无需安装专门的软件,只需一个浏览器即可访问应用程序,降低了系统的维护成本和升级难度。
B/S架构的优点包括:
(1)跨系统性:B/S架构具有良好的跨系统性,因为应用程序运行在服务器端,用户通过浏览器访问。这意味着无论用户使用何种操作系统、设备或浏览器,只要能够支持浏览器访问,就可以使用该应用程序。这大大简化了应用程序的部署和维护工作,提高了系统的可用性。
(2)简化部署和维护:由于B/S架构将应用程序部署在服务器端,用户只需通过浏览器访问,因此部署和维护工作相对简单。当需要对应用程序进行升级或维护时,只需在服务器端进行操作,而不会影响到客户端。B/S架构还支持分布式部署,可以将应用程序部署在不同的服务器上,提高系统的可用性和负载能力。
(3)高度可扩展:B/S架构具有良好的可扩展性,可以根据业务需求轻松地增加或减少服务器资源。当系统负载增加时,可以增加服务器数量来分担负载;当系统负载降低时,可以减少服务器数量以节省资源。B/S架构还支持水平扩展和垂直扩展,可以根据实际需求灵活调整系统性能。
(4)安全性简化开发:B/S架构将安全性问题集中在服务器端进行处理,客户端只需关注与服务器的通信。这使得开发人员可以专注于业务逻辑的开发,而不需要过多关注安全问题。B/S架构还可以利用成熟的安全技术和标准(如SSL/TLS加密、身份验证等)来保护数据的安全传输和存储,降低开发过程中的安全风险。
2.7协同过滤算法
协同过滤算法(Collaborative Filtering)是比较经典常用的推荐算法,它是一种完全依赖用户和物品之间行为关系的推荐算法。我们从它的名字“协同过滤”中,也可以窥探到它背后的原理,就是“协同大家的反馈、评价和意见,一起对海量的信息进行过滤,从中筛选出用户可能感兴趣的信息”。
第3章 系统需求分析
3.1系统可行性分析
1.技术可行性
本系统设计采用Java语言和Spring Boot框架,使用到大学中熟练掌握的HTML和CSS技术。数据库则使用简单易操作的MySQL作为后台数据库,使用Mybitis技术完成前台与后端数据库的连接。服务器端则采用Oracle提供的开源服务器Tomcat。因为大学课程中有关以上的软件使用和开发语言课程都学习完毕,再应用文献中的相关研究,个人有能力完成本系统的开发。故在技术上是可行的。
2.经济可行性
系统采用的是java技术来实现相应的功能的开发,综合就是一个比较基础的系统开发设计,所以所用到的有开源的开发环境所构成。而且可以利用现有的设备,不用进行另外的硬件设备购买。
用户通过使用基于协同过滤算法的银行理财产品推荐,很大程度减小了人员成本,极大提高了管理的效率。目前得由人员管理的方式存在很多不足,首先是人工成本大,并且工作效率比较低,然后是存在着很多现金流失的问题。在结合银行理财产品推荐的特点,还有一些记录和统计,银行理财产品推荐管理杜绝了以上的问题,提高了银行理财产品推荐管理的安全性。
经济可行性是主要计算项目的开发成本,还有项目成功后可能带来的有效收益。很多的项目只有开发成本能控制在用户有可能接受的范围内的情况下,这样的项目才会被批准开发。然而本次系统的开发在上述所有的问题的情况下,是可以完成相关的系统设计。
3.操作可行性
本系统开发综合考虑了用户体验、活动工作流程及用户计算机操作水平等方面,尽可能提供更具人性化以及更直观简单的界面来满足用户的需求,并且提供详细的用户操作手册,遇到问题可进行相关操作的查询[5]。
3.2系统用例分析
在设计系统的过程中,用例图是系统设计过程中必不可少的模型,用例图可以更为细致的,结合系统中人员的有关分配,能够从细节上描绘出系统中有关功能所完成的具体事件,确切的反映出某个操作以及它们相互之间的内部联系。
其中参与者就是和系统能够发生交互的外在实体,一般可以指系统的某个用户。一个用例图就能对应出系统中的一个功能过程,系统中完整的功能都是由许多不同的用例图所组成的。
系统用例图如下所示:
(1)管理员可以对用户管理、产品分类管理、理财产品管理、产品购买管理、产品合同管理、理财报告管理、留言反馈、理财交流、系统管理、我的信息等进行基本的信息管理。其用例分析如图3-1所示。
图3-1管理员用例图
(2) 用户功能包括系统首页、理财产品、理财交流、理财资讯、留言反馈等;在个人中心中可以对个人中心、产品购买、产品合同、理财报告、我的发布、我的收藏等进行操作,用户用例分析如图3-2所示。
图3-2用户用例图
3.3系统流程分析
流程图就是用它已经特定的图形符号以及相应的线条,用来展现出系统在执行中的整个的过程。由于这种图形能够很方便的描绘系统的一系列流程,所以它的所有的图形符号是比较关键的,基本都是一个图形符号就能表示某个过程的一个单独的步骤。流程图不只是提供出比较完整、全面的执行过程,而且在整个团队的协作设计过程中,还可以发现其中有可能存在的缺陷以及不足,便于在后续的过程中能够及时的纠正和完善系统。
通过流程图可以对系统的需求和相关过程进行分析,能够详细的细分到每个部分的设计。对于设计者来说在开发过程中能够使用流程图作为基础,可以快速提高自身的逻辑思想,并且还能在后续的操作中能够有章可循,在系统的设计中最重要的就是程序的设计,然后才是程序的具体编写,流程图便是在设计过程中重要的工具,以下就是部分流程图设计。
登录模块有许多规则,这些规则是用来限制用户权限的,没有登录账号的用户除了浏览文章之外不可以对平台进行操作,用户进入系统前要进行登录,登录成功后方可对相关权限的操作。登录流程如下所示。
图3-3登录流程
注册流程如图3-4所示:
图3-4注册流程
系统操作流程如图3-5所示:
图3-5 系统操作流程图
4.1系统功能设计
根据前期调研和分析,本系统分为管理员和用户两大模块。管理员具有对用户信息的增加、更改、查询、删除等功能。系统模块功能结构图如图4-1所示:
图4-1 系统模块功能结构图
4.2系统数据库分析
在系统设计之初,首先要以客户需求、客户的业务领域和客户的工作情况为出发点来设计系统,要充分了到以上三点,在满足客户一切需求的基础上进行系统设计,继而实现数据库的设计。
经过分析和总结,首先定义客户群体;接下来明确客户群体要用该系统做什么工作。
在明确了客户群体以及工作内容后,本系统可以设计系统数据库,按照传统数据库设计方式,分为三步走:概念模型→逻辑模型→物理模型。
系统需要建立的主要数据表。
系统主要包括的功能:用户管理、产品分类管理、理财产品管理、产品购买管理、产品合同管理、理财报告管理、留言反馈、理财交流、系统管理、我的信息等。
4.3数据库概念模型设计
概念模型是通过E-R图来实现的,根据以上数据表和功能可以知道系统有哪些实体,实体之间的关系是怎样的。
数据库的概念模型即系统的E-R实体—关系模型。根据对具体的功能需求进行分析,从而得到E-R实体-关系模型,本系统将“收藏、用户、理财报告、留言反馈、理财资讯、关于我们”等作为实体,它们的局部E-R图,如图4-2所示:
图4-2局部E-R图
4.4数据库表的设计
在系统开发中,数据库的功能是用于存储和处理数据,设计数据库模型时必须考虑模型功能的长期稳定性,尽量做到“以不变应万变”,即当用户的需求发生改变时,即使数据库设计总框架不更改,也可以适应用户的功能需求。
根据调研,分析系统需求,设计若干数据表用于存储系统的基本信息。本系统数据表如下表所示。
表4-1:理财资讯分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
typename | varchar | 200 | 分类名称 |
表4-2:关于我们
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
subtitle | varchar | 200 | 副标题 | ||
content | longtext | 4294967295 | 内容 | ||
picture1 | longtext | 4294967295 | 图片1 | ||
picture2 | longtext | 4294967295 | 图片2 | ||
picture3 | longtext | 4294967295 | 图片3 |
表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 | ||
userid | bigint | 留言人id | |||
username | varchar | 200 | 用户名 | ||
avatarurl | longtext | 4294967295 | 头像 | ||
content | longtext | 4294967295 | 留言内容 | ||
cpicture | longtext | 4294967295 | 留言图片 | ||
reply | longtext | 4294967295 | 回复内容 | ||
rpicture | longtext | 4294967295 | 回复图片 |
表4-5:理财产品
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
chanpindaima | varchar | 200 | 产品代码 | ||
chanpinmingcheng | varchar | 200 | 产品名称 | ||
chanpinfenlei | varchar | 200 | 产品分类 | ||
fengmiantupian | longtext | 4294967295 | 封面图片 | ||
chanpinjiage | double | 产品价格 | |||
fengxiandengji | varchar | 200 | 风险等级 | ||
nianshouyi | varchar | 200 | 年收益 | ||
faxingjigou | varchar | 200 | 发行机构 | ||
fashoushijian | datetime | 发售时间 | |||
chanpinjieshao | longtext | 4294967295 | 产品介绍 | ||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 | ||
storeupnum | int | 收藏数 | 0 |
表4-6:理财报告
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
zhuti | varchar | 200 | 主题 | ||
fengmian | longtext | 4294967295 | 封面 | ||
shouyi | double | 收益 | |||
kuisun | double | 亏损 | |||
baogaoshijian | date | 报告时间 | |||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
yonghuxingming | varchar | 200 | 用户姓名 | ||
baogaoneirong | longtext | 4294967295 | 报告内容 |
表4-7:理财交流
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
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-8:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 | ||
url | varchar | 500 | url |
表4-9:产品合同
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
hetongbianhao | varchar | 200 | 合同编号 | ||
chanpindaima | varchar | 200 | 产品代码 | ||
chanpinmingcheng | varchar | 200 | 产品名称 | ||
chanpinfenlei | varchar | 200 | 产品分类 | ||
fengmiantupian | longtext | 4294967295 | 封面图片 | ||
hetongfujian | longtext | 4294967295 | 合同附件 | ||
shengxiaoriqi | date | 生效日期 | |||
youxiaoqizhi | date | 有效期至 | |||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
yonghuxingming | varchar | 200 | 用户姓名 | ||
lianxifangshi | varchar | 200 | 联系方式 | ||
xiangxi | longtext | 4294967295 | 详细 |
表4-10:用户
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
mima | varchar | 200 | 密码 | ||
yonghuxingming | varchar | 200 | 用户姓名 | ||
xingbie | varchar | 200 | 性别 | ||
lianxifangshi | varchar | 200 | 联系方式 | ||
touxiang | longtext | 4294967295 | 头像 | ||
fengxiandengji | varchar | 200 | 风险等级 |
表4-11:产品购买
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
goumaibianhao | varchar | 200 | 购买编号 | ||
chanpindaima | varchar | 200 | 产品代码 | ||
chanpinmingcheng | varchar | 200 | 产品名称 | ||
chanpinfenlei | varchar | 200 | 产品分类 | ||
fengmiantupian | longtext | 4294967295 | 封面图片 | ||
chanpinjiage | double | 产品价格 | |||
shuliang | int | 数量 | |||
zongjiage | double | 总价格 | |||
goumaishijian | datetime | 购买时间 | |||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
yonghuxingming | varchar | 200 | 用户姓名 | ||
lianxifangshi | varchar | 200 | 联系方式 | ||
beizhu | longtext | 4294967295 | 备注 | ||
ispay | varchar | 200 | 是否支付 | 未支付 |
表4-12:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
image | varchar | 200 | 头像 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表4-13:系统简介
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
subtitle | varchar | 200 | 副标题 | ||
content | longtext | 4294967295 | 内容 | ||
picture1 | longtext | 4294967295 | 图片1 | ||
picture2 | longtext | 4294967295 | 图片2 | ||
picture3 | longtext | 4294967295 | 图片3 |
表4-14:产品分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
chanpinfenlei | varchar | 200 | 产品分类 | ||
image | longtext | 4294967295 | 图片 |
表4-15:收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
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 | |
inteltype | varchar | 200 | 推荐类型 | ||
remark | varchar | 200 | 备注 |
表4-16: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-17:地址
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
address | varchar | 200 | 地址 | ||
name | varchar | 200 | 收货人 | ||
phone | varchar | 200 | 电话 | ||
isdefault | varchar | 200 | 是否默认地址[是/否] |
在上一章中,已经本论文中的基于协同过滤算法的银行理财产品推荐进行了全面的设计。接下来第五章对本基于协同过滤算法的银行理财产品推荐的实现过程进行说明,包括对该基于协同过滤算法的银行理财产品推荐所需的开发环境、运行环境的说明以及对上一章中提到的各种内容的实现。
5.1前台功能实现
当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到系统的导航条,通过导航条导航进入各功能展示页面进行操作。系统首页界面如图5-1所示:
图5-1 系统首页界面
在注册流程中,用户在Vue前端填写必要信息(如用户名、密码等)并提交。前端将这些信息通过HTTP请求发送到Java后端。后端处理这些信息,检查用户名是否唯一,并将新用户数据存入MySQL数据库。完成后,后端向前端发送注册成功的确认,前端随后通知用户完成注册。这个过程实现了新用户的数据收集、验证和存储。系统注册页面如图5-2所示:
图5-2系统注册页面
理财产品:在理财产品页面的输入栏中输入产品代码和产品名称进行查询,可以查看到理财产品详细信息;并根据需要进行收藏操作;理财产品页面如图5-3所示:
图5-3理财产品详细页面
理财资讯:在理财资讯页面的输入栏中输入标题进行查询,可以查看到理财资讯详细信息,并根据需要进行收藏和点赞操作;理财资讯页面如图5-4所示:
图5-4理财资讯细页面
个人中心:在个人中心页面可以对个人中心、产品购买、产品合同、理财报告、我的发布、我的收藏进行详细操作;如图5-5所示:
图5-5个人中心界面
5.2管理员模块实现
在登录流程中,用户首先在Vue前端界面输入用户名和密码。这些信息通过HTTP请求发送到Java后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端会返回给前端,允许用户访问系统。这个过程涵盖了从用户输入到系统验证和响应的全过程。如图5-6所示。
图5-6 管理员登录界面
管理员进入主页面,主要功能包括对用户管理、产品分类管理、理财产品管理、产品购买管理、产品合同管理、理财报告管理、留言反馈、理财交流、系统管理、我的信息等进行操作。管理员主页面如图5-7所示:
图5-7管理员主界面
用户管理功能在视图层(view层)进行交互,比如点击“查询、添加或删除”按钮或填写用户管理信息表单。这些用户信息表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除用户管理信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便用户管理功能可以看到最新的信息或相应的操作反馈。如图5-8所示:
图5-8用户管理界面
理财分类管理功能在视图层(view层)进行交互,比如点击“查询、添加或删除”按钮或填写理财分类管理信息表单。这些理财分类管理信息表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除理财分类管理信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便理财分类管理功能可以看到最新的信息或相应的操作反馈。如图5-9所示:
图5-9理财分类管理界面
理财产品管理功能在视图层(view层)进行交互,比如点击“查询、添加或删除”按钮或填写理财产品管理信息表单。这些理财产品管理信息表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除理财产品管理信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便理财产品管理功能可以看到最新的信息或相应的操作反馈。如图5-10所示:
图5-10理财产品管理界面
理财报告管理功能在视图层(view层)进行交互,比如点击“查询或删除”按钮或填写理财报告管理信息表单。这些理财报告管理信息表单动作被视图层捕获并作为请求发送给相应的控制器层(controller层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查看、修改或删除理财报告管理信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便理财报告管理功能可以看到最新的信息或相应的操作反馈。如图5-11所示:
图5-11理财报告管理界面
5.3本章小结
在本章中对系统的开发和应用环境进行说明,这些内容为下一章测试时的环境搭建提供依据。本章还通过文字说明和截图的方式对系统应用的界面做了简要介绍。
6.1测试目的
软件测试就是要用更高的效率寻找出软件中存在的各种错误和缺陷。软件测试对于不同的操作者,存在着不同的意义。软件开发者则希望通过软件测试来表明该软件产品能够满足用户需求且不存在错误和缺陷,以此来使用户购买和使用该软件。
6.2测试过程
6.2.1功能测试
功能测试指的是系统能否按照设计的要求完成相应的功能。第一,测试系统的菜单中是否拥有用户所应该具有的功能菜单,而且是否能够相应的连接到正确的页面。第二,对功能界面的操作正确性进行相关测试。功能测试要进行集中的测试,即对系统进行功能的连接测试,例如登录测试、页面操作测试等一些相关的其他测试。本次计划使用黑盒测试法对基于协同过滤算法的银行理财产品推荐进行系统功能测试。系统各功能测试如下表所示。
1.系统登录功能测试
表6-1 系统登录注册功能测试
测试内容 | 测试操作 | 系统响应 | 测试结果 |
管理员登录 | 输入正确的账号密码后,点击登录 | 登录成功,显示后台界面 | 管理员登录通过测试 |
用户注册 | 用户输入相关合法信息后提交注册 | 注册成功,跳转到用户登录页面 | 用户注册功能通过测试 |
用户登录 | 输入账号和注册密码,点击登录 | 登录成功,显示首页 | 用户登录通过测试 |
2.管理员管理功能测试
表6-2 管理员管理功能测试
测试内容 | 测试操作 | 系统响应 | 测试结果 |
管理用户 | 查询修改用户信息 | 系统成功查询出信息并修改成功 | 系统通过用户管理功能测试 |
管理产品分类信息 | 添加产品分类信息 | 系统成功添加产品分类信息,并删除 | 系统通过产品分类信息管理功能测试 |
6.2.2可用性测试
可用性测试则是针对系统的可操作性、可理解性、可应用性等方面内容进行检测。具体测试方面如表6-3所示。
表6-3系统可用性测试
测试项 | 测试人员的评价 |
窗口移动、大小改变、关闭等操作是否正常 | 是 |
操作模块是否友好 | 是 |
模块、提示内容等文字描述是否正确 | 是 |
模块布局是否协调、合理 | 是 |
模块的状态是否正确(对选中项能否发生对应切换) | 是 |
鼠标、键盘操作是否支持 | 是 |
所需数据项是否正确显示 | 是 |
操作流程是否合理 | 是 |
是否提供帮助信息 | 是 |
6.3测试结果
系统测试结果表明,本文设计开发的基于协同过滤算法的银行理财产品推荐在系统功能上已经达到了设计的整体要求。本系统在进行相关操作时界面能够及时的响应,而且在响应和处理的速度上系统性能均处在正常范围内,但在大量数据的处理和操作上有时会出现一定程度的延迟,不过不影响正常操作和使用。
7.1总结
随着时代的发展,人们对于快捷高效的追求愈演愈烈,而传统电话联系的形式显然不再适用快节奏的今天,用户迫切希望出现一个合适的管理系统来帮助管理自己的信息,本文系统性的论述了基于协同过滤算法的银行理财产品推荐的研究与设计的过程,其主要的内容如下所示:
1.系统性的分析了基于协同过滤算法的银行理财产品推荐的研究背景和国内外的研究现状,简单性的介绍了该系统的研究意义;
2.简单介绍了实现的相关技术,包括:MySQL,JAVA等技术;
3.从系统的功能性和非功能性方面上面进行了需求的分析,并且对系统的框架进行了阐述;
4.论文较详细的设计了系统的管理员和用户两大模块的各个功能的介绍,主要包含的功能有:用户管理、产品分类管理、理财产品管理、产品购买管理、产品合同管理、理财报告管理、留言反馈、理财交流、系统管理、我的信息等,最后对各个模块的界面进行详细的介绍。
7.2展望
本文描述的基于协同过滤算法的银行理财产品推荐,能够满足用户对于高效便捷的需求,可以成为用户的好助手,因此具备非常可观的发展空间。
由于第一进行较全面的系统开发,且期间还有面临考研复试、毕业实习等等因素耽误时间,在本身能力就不够的情况下,系统的基本功能虽然能够正常运行,但是仍然需要进一步更改和优化:
1.发送短信提醒的功能,由于接口和权限的问题,本阶段并没有实现,希望在以后经验积累的情况下,能够完成;
2.系统的安全性改善,保证系统用户的信息的安全;
3.系统的界面设计方面还需要加强。
参考文献
[1]黄丽萍.基于 Java 的 Web 软件程序框架分层设计探讨[J]. 信息记录材料,2022,23(07):74-76.
[2]吴锋珍.基于主从同步的MySQL负载均衡设计与部署[J].湖南邮电职业技术学院学报,2022,21(02):40-43.
[3]周志明. 深入理解 Java 虚拟机: JVM 高级特性与最佳实践[M]. 北京: 机械工业出版社, 2020: 214-233.
[4]郭晶晶,刘学博.基于Java的参数设置管理系统的设计与应用[J].山西电子技术,2023,(04):54-56+60.
[5]王慧.“Java程序设计”混合式教学创新模式探究[J].数字通信世界,2023,(06):179-181.
[6]单树倩,任佳勋.基于SpringBoot和Vue框架的数据库原理系统设计与实现[J].电脑知识与技术.2021,17(30).
[7]邱小群,邓丽艳,陈海潮.基于B/S的信息管理系统设计和实现[J].信息与电脑(理论版),2022,34(20):146-148.
[8]郑戟明,董云朝,柳青.MySQL数据库数据导入导出方法的探讨[J].电脑知识与技术,2022,18(22):24-25.
[9]焦宇,李民,王欢,余开朝.基于MySQL性能调优的推荐系统优化设计[J].软件导刊,2022,21(09):108-112.
[10] Oliver Linton. Editorial for the special issue on financial engineering and risk management for JoE[J]. Journal of Econometrics, 2018, 19(4):22-22.
[11] Ignacio Nuez, Javier Osorio. Calculation of tourist sector electricity consumption and its cost in subsidised insular electrical systems: The case of the Canary Islands, Spain[J]. Energy Policy, 2019, 132(11):40-40.
致 谢
饱含艰辛与美好的几个月马上就要过去了,基于协同过滤算法的银行理财产品推荐的基本功能已经实现。这个系统是我毕业之际最后的成果,也是我大学学习的总结。四年前那个懵懂的孩子早已变得更加的成熟和完善,所以在即将离开校园之际,我想郑重的对所有曾经帮助我找到正确人生道路的人表示最真诚的感谢!
四年寒窗,所收获的不仅仅是渊博的知识,更重要的是在阅读、实践中所培养的思维模式、表达方式和开阔视野。很荣幸这四年来有如此多的良师益友陪伴我成长,无论在学习中、生活上,都给予了我无私的帮助和热心的照顾,让我在一个温馨的校园中度过了四年的大学时光。感恩之情溢于言表,谨以最真诚的话语致以最真挚的感谢。
首先,感谢所有兢兢业业的老师们,本次论文从选题到完成,每一步都是在老师的悉心指导下完成的,倾注了老师超多的心血。在写论文的过程中,遇到了很多的问题,在老师的耐心指导下,问题都得以解决。所以在此,对老师道一声:老师,感谢您!
其次,感谢我的父母对我不求丝毫回报的付出,他们培养和指导我,让我成长为一个越来越努力的人。养育之恩,无以回报!
第三,“立鸿鹄志,做奋斗者”,感谢我的同学们,大家相伴了四年,大家的情谊早已深入骨血,愿大家都能奋斗出一个美好的前途,大家的友谊地久天长。
“人生的道路虽然漫长,但紧要处常常只有几步,特别是当人年轻的时候”这是柳青的一句话,就用这句话作为这篇论文的一个结尾,也是给大学四年画上一个圆满的句号。