版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录一、绪论 2(一)研究背景 2(二)研究意义 3(三)国内外研究现状 4(四)研究方法 4二、相关开发技术介绍 5(一)后端相关技术介绍 5(二)前端相关技术 7(三)相关数据库 9(四)数据传输与管理 10三、需求分析 10(一)系统业务需求分析 10(二)功能需求分析 11(三)非功能性需求分析 13(四)可行性分析 14四、系统总体设计 15(一)系统架构设计 15(二)系统总体设计 15(三)数据库设计 16五、系统功能设计 25六、系统实现 26(一)开发环境介绍 26(二)开发工程目录介绍 26(三)系统功能模块实现 28七、系统测试 47(一)测试目的 47(二)测试方法 48(三)测试用例 48八、总结与展望 49参考文献 50致谢 51第基于springboot+vue的中国重卡营销大数据系统设计与实现摘要:本毕业设计实现了一款基于springBoot+vue的中国重卡营销大数据平台,旨在为企业提供一个数据分析平台便于了解市场需求的变化,及时调整产品策略和市场定位,提前预测市场走向,能够满足企业对营销政策的优化及提高企业的市场竞争力。在系统设计的过程中进行了详细的需求分析和设计,包括用户权限设计、模型设计、数仓设计、系统架构图等。在系统的实现中,根据设计,本系统采用前后端分离的建构,后端采用springBoot三层架构模式进行对项目进行管理[5][6][7],前端采用vue框架,并使用了ElementUI、css、JS、jQuery、Ajax等前端技术,采用hive数据库储存、清洗数据,MySql数据库存储用户数据及统计数据,实现了用户角色权限管理、数据可视化分析、数据导入导出等功能。此外,在登录时使用图形验证码,通过整合kaptcha方式实现,提高了系统的安全性。关键词:SpringBoot;vue;ElementUI;用户角色权限管理;数据可视化分析;图形验证码。Abstract:ThisgraduationprojecthasimplementedaChineseheavy-dutytruckmarketingbigdataplatformbasedonSpringBoot+Vue,aimingtoprovideenterpriseswithadataanalysisplatformtounderstandchangesinmarketdemand,adjustproductstrategiesandmarketpositioninginatimelymanner,predictmarkettrendsinadvance,andmeettheoptimizationofmarketingpoliciesandimprovemarketcompetitiveness.Detailedrequirementanalysisanddesignwereconductedduringthesystemdesignprocess,includinguserpermissiondesign,modeldesign,datawarehousedesign,systemarchitecturediagram,etc.Intheimplementationofthesystem,accordingtothedesign,thesystemadoptsafront-endandback-endseparationconstruction,andtheback-endadoptstheSpringBootthree-layerarchitecturemodetomanagetheproject.Thefront-endadoptstheVueframeworkandusesfront-endtechnologiessuchasElementUI,CSS,JS,jQuery,Ajax,etc.TheHivedatabaseisusedtostoreandcleandata,andtheMySqldatabaseisusedtostoreuserdataandstatisticaldata,achievingfunctionssuchasuserrolepermissionmanagement,datavisualizationanalysis,dataimportandexport,etc.Inaddition,theuseofgraphicalverificationcodesduringloginisachievedthroughtheintegrationofKaptcha,whichimprovesthesecurityofthesystem.Keywords:SpringBoot;Vue;ElementUI;Userrolepermissionmanagement;Datavisualizationanalysis;Graphicverificationcode.一、绪论(一)研究背景在国内,中国重卡行业逐渐认识到大数据在营销领域的巨大潜力,已经有一些国内企业和研究机构积极探索和实施重卡营销大数据系统的设计与实现。首先,从中国重卡行业的发展情况来看,中国重卡行业是指生产和销售载重量在3吨及以上的商用车辆,包括货车、牵引车、专用车等。中国重卡行业在过去几十年里取得了长足的发展,成为全球最大的重卡市场之一。随着国家经济的快速增长和物流需求的不断增加,中国重卡行业迎来了巨大的市场机遇。其次,从大数据在中国企业中的应用来看,近年来,中国企业对大数据的应用越来越广泛。大数据技术能够帮助企业从庞大的数据中挖掘出有价值的信息和洞察,提高决策的科学性和准确性。在中国重卡行业中,企业也开始意识到大数据的重要性,并积极探索如何应用大数据技术提升营销效果和竞争力另外,从国内重卡企业的营销挑战出发,中国重卡企业面临着许多营销挑战。首先,市场需求和消费者偏好不断变化,企业需要及时了解市场动态并作出相应调整。其次,重卡产品本身具有较高的定制性和复杂性,企业需要根据不同的客户需求进行产品设计和定价。此外,竞争激烈、渠道多样化等因素也增加了企业的营销难度。最后,从重卡营销大数据系统的研究方向出发,在国内研究中,重卡营销大数据系统的设计与实现主要关注以下几个方面:数据收集与整合、数据存储与管理、数据分析与挖掘、数据可视化与报告等。研究者通过采集和整合重卡行业相关数据,利用数据分析技术挖掘市场趋势和用户特征,并将分析结果以可视化的方式呈现给决策者和营销人员,以帮助企业做出更准确的决策和制定营销策略。总而言之,中国重卡营销大数据系统的设计与实现是一个具有重要研究价值和实践意义的课题,在国内研究领域中受到广泛关注。这一课题的研究成果将为中国重卡企业提供有效的决策支持,促进行业的发展和创新。(二)研究意义中国重卡行业一直以来都是国家交通运输和物流领域的支柱力量,随着社会经济的不断发展,重卡市场逐渐呈现出巨大的潜力和活力。为了更好地适应市场需求、提升市场竞争力,设计与实现一套中国重卡营销大数据系统平台显得尤为重要。首先,体现在市场竞争的激烈性,中国重卡市场竞争激烈,各大品牌不仅需要满足基本性能、质量等需求,还需要更具市场敏感度,及时调整产品策略、开发新产品,以获取更多市场份额。大数据系统能够全面收集、整理和分析市场信息、用户反馈等数据,为企业提供深入的市场洞察,帮助企业更好地制定战略。其次,重卡产业链的复杂性也需要大数据系统的支持。重卡制造牵涉到供应商、经销商、售后服务等多个环节,这些环节涉及到的数据庞大而复杂。通过大数据系统,企业可以实现对产业链上下游的全面监控和管理,提高整个产业链的协同效率,降低运营成本。因此,中国重卡行业迫切需要一个高效、智能的营销大数据系统,以更好地应对市场挑战、提升产业链效率,从而在激烈的市场竞争中取得更大的优势。设计与实现中国重卡营销大数据系统平台将为行业的可持续发展提供有力的支撑。(三)国内外研究现状目前,在国内,重卡制造企业积极探索利用大数据分析技术进行市场营销和销售管理的方法和策略。因此,各大重卡企业都在不同程度上建立了自己的营销大数据平台,例如,一汽重卡公司建立了名为“智慧重卡”的大数据平台,中国重汽集团推出了“重汽云”平台,上汽大通汽车建立了“大通客户大数据平台”,这些企业将大数据分析应用于市场调研、用户画像、精准营销、渠道管理等方面,以提升市场竞争力。在国外,重卡行业的营销大数据分析研究也得到了广泛关注。一些发达国家的重卡制造企业也积极利用营销大数据平台来支持市场营销和销售管理,例如,戴姆勒卡车公司拥有名为“Mercedes-Benz
Uptime”的大数据平台,沃尔沃集团推出了名为“Volvo
Connect”的大数据平台,斯堪尼亚公司推出了名为“Fleet
Management”的大数据平台,并将其应用于实际营销活动中。总体来说,无论是国内还是国外,对重卡行业营销大数据分析的研究都处于不断深入和发展的阶段,各个重卡制造商企业搭建营销大数据平台都是为了帮助自身更加有效地了解市场和客户,提高营销效率,降低成本,提升竞争力。(四)研究方法本研究采用设计科研法和实验研究法相结合的方法,以构建基于SpringBoot+Vue的中国重卡营销大数据平台平台为目的,以为中国重卡企业的营销策略,生产方向等为出发点,综合采用文献资料法、案例研究法和实验研究法进行数据收集和分析。首先,通过文献资料法收集和分析相关文献、标准和法规,了解中国重卡企业的发展、现状及存在的问题,并对设计所需的技术和理论进行深入研究和探讨,为后续实验研究提供理论支持。其次,通过案例研究法,深入了解其他大数据分析平台的成功经验和失误,分析它们的优缺点,吸取经验,避免不足,为构建新平台提供借鉴和参考。最后,采用实验研究法,设计并实现基于SpringBoot+Vue的中国重卡营销大数据平台,将其与现有平台进行比较和验证,检验新平台的优越性和可行性,为进一步推广和应用提供支持和保障。通过以上研究方法的综合应用,本研究旨在构建一个更加适合各个企业的实际需求,以提高平台的可用性、可靠性和用户体验,为企业提供一个数据分析平台便于了解市场需求的变化,及时调整产品策略和市场定位,提前预测市场走向二、相关开发技术介绍(一)后端相关技术介绍1.Java语言Java是一种通用编程语言,由SunMicrosystems(现在是Oracle)于1995年推出。它被设计用于开发可移植、高性能的应用程序。Java具有面向对象的特性,使得代码易于维护和扩展。与其他编程语言相比,Java具有平台无关性,它可以在不同的操作系统上运行,只需在目标系统上安装Java虚拟机(JVM)。Java还具有丰富的类库,提供了许多预先编写好的代码模块,可以加快开发速度。Java被广泛应用于Web应用程序、企业级应用程序、移动应用程序等领域。它的强大功能和广泛支持使得Java成为一种受欢迎的编程语言,吸引了全球众多开发者的使用和学习。2.SpringBoot框架SpringBoot是一个开源的Java框架,它基于Spring框架,旨在简化和加速Java应用程序的开发过程。SpringBoot通过提供一系列约定优于配置的方式,使得开发者可以更快速地搭建起一个独立运行的、生产级别的Spring应用程序。SpringBoot具有许多特性和优势。首先,它提供了自动化的配置,通过默认值和约定来减少开发者需要手动配置的工作量,大大提高了开发效率。其次,SpringBoot支持内嵌式的容器,如Tomcat、Jetty等,开发者无需额外配置Servlet容器,即可将应用程序打包成一个可执行的JAR文件。此外,Spring
Boot还提供了强大的管理端点和健康检查功能,方便监控和管理应用程序的状态除此之外,SpringBoot支持各种数据访问技术,如JPA、Hibernate等,使得与数据库的集成变得更加简单。同时,它还支持与各种消息队列、缓存、安全框架等进行集成,为开发者提供了丰富的选择。由于其简单易用、高效便捷的特点,SpringBoot被广泛应用于构建各种类型的Java应用程序,包括Web应用、RESTful服务、批处理应用、微服务架构等。SpringBoot的出现极大地简化了Java应用程序的开发流程,降低了学习曲线,使得开发者能够更专注于业务逻辑的实现,从而快速开发出高质量的应用程序[6][7][8][9]。3.Mybatis_plus简介MyBatis-Plus是基于MyBatis的增强工具,在传统的MyBatis框架基础上,提供了许多便捷的开发功能和特性。它简化了数据访问层的开发流程,提高了开发效率,并且减少了大量重复的代码编写。MyBatis-Plus提供了诸如代码生成器、通用的CRUD操作、分页插件、条件构造器、乐观锁插件等丰富的功能,使得开发者可以更加便捷地进行数据库操作。此外,MyBatis-Plus还提供了性能优化、多租户支持、逻辑删除、动态表名等实用的功能,满足了各种复杂业务场景下的需求。由于其丰富的功能和简化的操作,MyBatis-Plus被广泛应用于各类Java项目中,特别是在基于MyBatis的数据访问层开发中,为开发者提供了强大的支持和便利。(二)前端相关技术1.Element
UIElementUI是一套基于Vue.js的开源UI组件库,用于构建Web界面。它提供了丰富的可复用组件,如按钮、表单、弹窗、导航栏等,以及一套灵活的布局系统,使得开发者可以快速搭建出美观、易用的用户界面。Element
UI的设计风格简洁、现代,具有良好的响应式布局和可定制性。Element
UI不仅提供了基础组件,还包括了许多高级组件和功能,如日期选择器、下拉菜单、分页器、轮播图等,满足了各种复杂界面需求。同时,它提供了丰富的主题定制选项,使得开发者可以根据项目需求自定义样式,并支持多语言国际化。Element
UI的文档清晰易懂,提供了详细的使用示例和API文档,方便开发者学习和参考。它还具有活跃的社区支持和更新频率,持续提供新的组件和功能,使得开发者能够跟上最新的前端开发潮流。由于其易用性、扩展性和美观性,Element
UI成为了Vue.js生态系统中最受欢迎的UI组件库之一。它被广泛应用于各种Web应用程序和管理系统的开发中,为开发者提供了高效、一致的用户界面解决方案[9][10]。2.HTML等常用技术HTML是一种标记语言,用于创建和组织网页内容。通过使用HTML标签和属性,开发者可以定义文本、图像、链接、表格、表单等元素的结构和外观,实现页面的呈现和交互效果。HTML是Web开发的基础,与CSS(Cascading
Style
Sheets)和JavaScript一起构成了Web前端开发的基本技术栈;HTML由一系列标签组成,每个标签代表不同的元素或内容类型,如<p>表示段落、<img>表示图像、<a>表示链接等。标签可以嵌套组合,形成复杂的页面结构。此外,HTML5作为最新版本的HTML标准,引入了许多新特性和API,如多媒体支持、Canvas绘图、地理位置服务等,增强了Web应用的功能和性能。通过HTML,开发者可以将内容结构化呈现在浏览器中,实现丰富多样的网页设计和交互效果,为用户提供优秀的浏览体验。CSS是一种样式表语言,用于描述网页内容的外观和布局。通过CSS,开发者可以控制网页元素的样式,如颜色、字体、大小、间距、边框等,实现页面的美化和定制化。CSS与HTML结合使用,为网页提供了丰富的视觉效果和用户体验;CSS通过选择器(Selector)和属性(Property)来定义样式规则,将样式应用到特定的HTML元素上。开发者可以使用内联样式、嵌入样式表或外部样式表的方式来引入和管理CSS样式,实现样式的重用和维护;随着CSS3的推出,引入了许多新特性和功能,如阴影效果、渐变色、动画、响应式设计等,大大丰富了样式表的能力和表现形式。CSS的灵活性和强大功能使得开发者能够创建各种漂亮、交互丰富的网页,并为不同设备和屏幕尺寸提供适配性的界面设计。JavaScript是一种用于创建动态网页和应用程序的编程语言。它可以为网页添加交互性和动态效果,例如表单验证、动画、弹出窗口等。JavaScript通过操作DOM(文档对象模型)来修改HTML元素的内容和属性,从而实现网页的交互效果。jQuery是一个高效而简洁的JavaScript库,它的设计目标是简化HTML文档的遍历、事件处理、动画实现以及AJAX操作,使得开发者可以更轻松地构建交互式的网页应用。通过使用jQuery,开发者可以更高效地操作DOM元素、处理事件响应、实现动态效果和与服务器进行数据交互。jQuery提供了丰富的方法和函数,能够跨浏览器兼容,帮助开发者快速开发交互性强、用户体验优秀的Web页面。Ajax是一种利用JavaScript和XML技术在不重新加载整个页面的情况下,异步地向服务器请求数据并更新部分页面内容的技术。通过Ajax,网页可以实现动态加载内容、实时更新数据,提升用户体验和页面响应速度。Ajax的核心是XMLHttpRequest对象,通过发送HTTP请求和处理服务器响应,实现与服务器端的数据交互。今天,Ajax已经成为前端开发中常用的技术之一,广泛应用于Web应用程序的开发中。VUE框架Vue.js是一款流行的开源JavaScript前端框架,用于构建交互性强、响应式的Web应用。Vue具有简洁易学、灵活性高和性能优越等特点,广泛应用于单页面应用(SPA)和复杂的Web应用开发中[6]。Vue采用了MVVM(Model-View-ViewModel)架构模式,通过数据驱动视图的方式实现页面内容的动态更新。Vue提供了诸多功能强大且易用的特性,如指令、组件化、响应式数据绑定、计算属性、事件处理、过渡效果等,帮助开发者轻松构建现代化的Web界面[7]。Vue还有丰富的生态系统,如Vue
Router用于管理路由、Vuex用于状态管理、Vue
CLI用于快速搭建项目等,为开发者提供全方位的支持。同时,Vue社区庞大活跃,提供了大量插件、工具和教程,使得学习和使用Vue变得更加便捷和高效。总的来说,Vue框架以其灵活性、性能和生态优势,成为许多开发者喜爱的前端框架之一[8]。(三)相关数据库1.MySQL数据库MySQL是一种流行的开源关系型数据库管理系统(RDBMS),由Oracle公司开发并维护。作为Web应用开发中最常用的数据库之一,MySQL具有稳定、可靠、高性能和成本低廉等特点。它支持多种操作系统,如Windows、Linux、MacOS等,以及多种编程语言接口,如PHP、Python、Java等,使得其广泛应用于各类网站和应用程序。MySQL使用标准的SQL语言进行数据管理和查询,支持事务处理、触发器、存储过程等高级特性。此外,MySQL还具备优秀的扩展性和定制性,能够应对大规模数据存储和处理需求。除了传统的关系型数据存储外,MySQL也支持文档存储、图形数据存储等多种数据类型,满足不同场景下的数据需求。总之,MySQL以其功能全面、稳定可靠的特点,受到广泛的欢迎,并被广泛应用于各种规模的Web开发项目中2.hive数据库Hive是基于Hadoop的数据仓库工具[4],用于对大规模数据集进行管理和分析。Hive提供类SQL查询语言HiveQL,使用户能够使用类似SQL的语法来查询和处理数据,同时将这些查询转换成MapReduce任务在Hadoop集群上执行[13]。Hive支持数据的存储、查询和分析,适用于处理结构化数据,并且能够与Hadoop生态系统中的其他工具如HDFS、Spark等无缝集成。通过Hive[3],用户可以轻松地利用Hadoop集群进行数据仓库和数据分析[2],实现大规模数据处理和计算。由于其易用性和灵活性,Hive被广泛应用于大数据领域,帮助用户更高效地管理和分析海量数据[1]。(四)数据传输与管理1.HTTP协议HTTP是一种用于传输超文本数据的应用层协议。它建立在TCP/IP协议之上,用于在客户端和服务器之间传递信息。HTTP采用请求-响应模型,客户端发送请求给服务器,服务器响应请求并返回相应的数据。HTTP通常使用标准端口80,也支持加密的HTTPS协议(端口443),用于安全通信。2.Session机制Session(会话)是指服务器与客户端之间建立的一种持续性的交互状态。在Web开发中,Session通常用于跟踪用户在网站上的活动和状态。当用户访问网站时,服务器为其分配一个唯一的Session
ID,并将该ID存储在客户端的Cookie中或通过URL重写等方式传递。通过Session
ID,服务器可以识别不同用户,存储用户信息,并保持用户登录状态。Session数据通常存储在服务器端,可包含用户认证信息、购物车内容等。一旦会话结束(如用户关闭浏览器),Session数据通常会被销毁。Session在Web开发中扮演着重要的角色,用于实现用户状态管理和个性化服务。三、需求分析(一)系统业务需求分析该平台主要面向各个重卡企业,他们有需求查看自身营销情况。因此,本系统提供简明易懂的界面和易于使用的功能,以方便用户使用。该平台需要提供以下功能:用户管理、角色管理、目录管理、零部件厂商信息、用户登录、excel批量导入导出,数据分析等。(二)功能需求分析1.后台管理员功能管理员在本系统拥有最高权限,保证系统正常运行。下面对后台管理的部分用例进行描述。表3-1系统用户创建用例描述描述项说明用例名称系统用户创建用例用例编号1.0用例描述用户创建,由管理员创建并授权参与者管理员优先级1状态进行中前置条件管理员登录系统后置条件用户列表中有该用户基本操作流程1.必须输入用户名2.必须输入密码,两次密码要相同,不满足条件会提示3.必须输入邮箱号码,邮箱必须带有@符号,@前后有内容4.必须输入手机号,不满足条件会提示5.必须选择角色6.必须选择状态可选操作流程暂无被泛化用例表无被扩展用例表*暂无修改历史记录*暂无表3-2系统角色用例描述描述项说明用例名称系统角色用例用例编号2.0用例描述各个角色具有不同的权限,查看不同的页面参与者管理员优先级1状态进行中前置条件管理员进入角色管理页面后置条件角色系统中有该角色基本操作流程1.必须输入角色名称2.选填备注3.必选授权备选操作流程暂无被泛化用例表无被扩展用例表*暂无修改历史记录*暂无表3-3菜单管理用例描述描述项说明用例名称菜单管理用例描述用例编号3.0用例描述菜单动态管理参与者管理员优先级1状态进行中前置条件管理员登录后置条件在该目录下,出现该菜单基本操作流程1.必填菜单名称2.必填上级菜单3.必填菜单路由备选操作流程暂无被泛化用例表无被扩展用例表*暂无修改历史记录*暂无问题*暂无2.企业用户功能可根据管理员为企业创建的账号进行登录,对本企业营销数据进行分析观察,明确未来的生产计划,分析方面共四个:北斗数据分析,订单数据分析,库存数据分析,词云分析,并可查看零部件商家基本信息,查看各个商家优惠政策。以下对用户主要用例进行描述表3-4登录用例描述描述项说明用例名称登录用例用例编号4.0用例描述用户登录系统参与者普通用户优先级1状态进行中前置条件管理员创建了用户后置条件进入系统平台基本操作流程1.输入账号密码2.输入验证码备选操作流程暂无被泛化用例表无被扩展用例表*暂无修改历史记录*暂无问题*暂无表3-5数据分析用例描述描述项说明用例名称数据分析用例用例编号5.0用例描述数据分析:北斗数据分析,从车型、车系、燃料排放、动力等多个方面统计,可以进行进行维度的筛选词云统计,为2023年一年的车辆网站所搜索的关键词统计,可以进行进行维度的筛选订单数据分析,该企业订单转换率的情况分析,可以进行进行维度的筛选库存数据分析,该企业库存积压情况分析,可以进行进行维度的筛选零部件商家,基本信息展示,及导出导入参与者普通用户优先级1状态进行中前置条件用户已登录后置条件无基本操作流程查看所有数据分析情况查看零部件商家信息备选操作流程无被泛化用例表无被扩展用例表*暂无修改历史记录*暂无问题*暂无(三)非功能性需求分析1.可用性需求(1)系统应具有易于使用和导航的用户界面,用户可以快速进行操作。(2)系统应具有快速响应时间,以便用户可以更快地获得所需的信息或完成所需的操作。(3)系统应具有充分的兼容性,能够适应各种不同操作系统和设备。2.可维护性需求(1)系统应具备模块化设计和代码结构清晰的特点,便于程序员维护和扩展系统功能。(2)系统应具备良好的注释和文档说明,以便程序员更好地理解代码并进行维护。(3)系统应具备自动化测试工具,以便程序员能够快速检测和修复程序漏洞或问题。(四)可行性分析技术可行性:SpringBoot框架在企业级应用中广泛应用,具有稳定、高效、易用等优点,可以快速搭建高效、稳定的后端服务,Vue框架是目前最流行的前端框架之一,拥有丰富的组件库和开发文档,以及良好的可维护性和灵活性,可以快速构建出美观、易用的用户界面在,中国重卡市场中,通过建立一套高效的大数据分析平台,可以更好地把握市场趋势、进行精准营销,进而提高企业的竞争力。因此,该系统在实际应用中具有广泛的需求和应用前景,同时Hadoop作为大数据处理框架,为系统提供了强大的数据存储和分析能力。经济可行性:中国重卡市场庞大且竞争激烈,企业需要更好地把握市场趋势、进行精准营销,以提高销售和市场份额。因此,建立一套高效的大数据系统平台来支持重卡营销决策具有很大的市场需求。通过使用开源的SpringBoot和Vue框架,可以降低开发和维护成本。这两个框架都拥有成熟的社区支持和丰富的资源,可以加快开发进度,并提高开发效率。此外,大数据技术的发展也使得数据存储和处理成本降低,增加了系统的成本效益。随着中国重卡市场的不断发展和大数据技术的成熟应用,该系统平台可以不断扩展和升级,满足企业不断变化的需求。此外,该系统平台还可以为企业提供增值服务,如数据分析报告、市场趋势预测等,从而为企业带来更多的商业机会和收益来源。Hadoop是开源的大数据处理框架,无需额外的商业授权费用而本地服务器搭建。这使得系统在技术水平提升的同时,仍能保持经济上的合理性。操作可行性:SpringBoot和Vue框架都具有简单易用的特点,开发人员可以快速上手并快速构建出功能强大的系统。而且这两个框架都有成熟的社区支持和丰富的文档资源,开发人员可以通过查阅文档解决遇到的问题。此外,通过采用模块化和组件化的开发方式,可以使代码结构清晰、易于维护,Vue框架提供了丰富的UI组件库,可以轻松构建出美观、交互友好的用户界面。用户可以直观地使用各种功能和查询数据,提高操作体验和效率,SpringBoot框架支持集成各种数据库和数据处理工具,可以轻松实现数据的存储、查询和分析。而大数据技术的发展也为系统提供了更多的数据处理和分析选项,如Hadoop、Spark等,可以进行更复杂的数据处理和挖掘,SpringBoot框架提供了一套完善的安全机制,可以对系统进行身份验证和授权管理,保障数据的安全性。而且SpringBoot和Vue框架都具备良好的稳定性和可靠性,可以保证系统的正常运行和响应性能。四、系统总体设计(一)系统架构设计系统采用SpringBoot三层结构来组织项目:控制层(Controller)、服务层(Service)和持久层(Repository)。控制层负责接收和响应HTTP请求,调用服务层处理业务逻辑,并返回结果给客户端;服务层包含应用的核心业务逻辑,负责处理具体的业务需求;持久层负责与数据库进行交互,包括数据的读取、存储和更新操作。SpringBoot通过自动配置和约定大于配置的原则,简化了项目的搭建和开发流程,使得开发者能够更快速地构建健壮、可扩展的应用程序。图4-1MVC三层结构(二)系统总体设计中国重卡营销大数据平台总体分为系统管理、数据分析两个板块。这两个板块根据用户角色权限不同,进入系统所看见的目录有所不同,但是访问的数据库是一样的。每一个模块的功能都是根据先前完成的需求分析,并查阅相关资料后整理制作的。(三)数据库设计1.数据需求分析平台用户与管理员:在sys_user中记录用户各种信息,包括账号,密码等,通过字段user_id在sys_user_role表中找到对应角色id,通过role_id在sys_role角色表中找到对应角色,其值为role_name。菜单管理:在sys_menu中记录各个菜单的信息,如菜单id,父级id,名称等等,通过sys_role_menu找到角色与菜单的关联关系,从而实现权限管理。商家信息:各个零部件商家的基本信息,如:商家名称、联系方式等。通用数据分析:各个企业出售的车辆在北斗系统中激活的数量统计及各大购车应用大众用户搜索的关键词统计。私有数据:分为订单与库存,做各个企业的营销数据,私密数据的统计。2.数据库概念设计用户分为管理员和普通用户,区别如图4-2所示。图4-2总体ER图下面是各实体的具体介绍。(1)用户角色菜单实体图4-3用户角色菜单实体图(2)车辆信息实体图4-4车辆信息实体图(3)订单信息实体图4-5订单信息实体图(4)实销信息实体图4-6实销信息实体图3.数据库设计在上节E-R图的基础上,建立本系统所涉及到的信息表及统计表。本系统的数据库表采用hive进行数据分析,MySQL8.0储存统计数据,创建名为store_work、utf-8编码的数据库。主要的信息表如表4-1所示。表4-1主要信息表名称表名说明sys_user用户信息表sys_user_role用户角色关联表sys_role角色信息表sys_role_menu角色菜单联系表sys_menu菜单信息表dwd_dms_tm_vehicle_detailed车辆信息明细表dwd_dms_tv_bu_order_detailed订单明细表dwd_dms_tv_bu_contract_entered_detailed合同订单明细表dwd_dms_tv_bu_sell_back_detailed实销明细表dwd_plough_sell_manual_sells北斗明细表goodskind词云统计表ads_qy_detail厂商企业信息表ads_order_conversion_rate订单转换率表ads_inventory_resource库存资源表ads_beidou_power北斗数据动力表ads_beidou_market北斗数据营销区表ads_beidou_discharge_type北斗数据燃料排放表ads_beidou_car北斗数据车辆表主要信息表详细结构如下:用户信息表sys_user结构如表4-2所示。表4-2用户信息表字段名说明字段类型长度是否必填user_id用户idint11否(设为自增长)username用户名varchar64是password密码varchar64是saltvarchar11是email邮箱varchar64是mobile手机号varchar64是status状态int11是create_user_id创建人idint11是create_time创建时间datetime是用户角色关联表sys_user_role结构如表4-3所示。表4-3用户角色关联表字段名说明字段类型长度是否必填id主键idint11是user_id用户idint11是role_id角色idInt11是角色信息表sys_role结构如表4-4所示。表4-4角色信息表字段名说明字段类型长度是否必填role_id角色idint11是role_name角色名称varchar64是remark备注varchar64是create_user_id创建人idint11是create_time创建时间datetime是角色菜单联系表sys_role_menu结构如表4-5所示。表4-5角色菜单联系表字段名说明字段类型长度是否必填id主键idint11是role_id角色idInt11是menu_id菜单idint11是菜单信息表sys_menu结构如表4-6所示。表4-6菜单信息表字段名说明字段类型长度是否必填menu_id角色idint11是parent_id父菜单idint11是name菜单名称varchar64是url菜单urlvarchar600否perms授权varchar600否type类型Int11是icon菜单图标varchar50否order_num排序Int11是车辆信息明细表dwd_dms_tm_vehicle_detailed结构如表4-7所示。表4-7车辆信息明细表字段名说明字段类型长度是否必填update_time更新日期string是engine_model发动机类型string是gear_box_model变速箱类型string是series车系string是subdiv_market细分市场string是VINVINstring是vehicle_classs车辆类别string是DEV_MODEL_CODE设计型号string是PUB_MODEL_CODE公告型号string是DLR_CONTRACT_SMNO关联订单(合同号)string是ERP_MODEL_CODE车型编码string是instock_time原始入库日期string是instock_day入库天数string是instock_age库龄string是discharge_type排放标准string是fuel_type燃料类型string是vehicle_type车型string是CONFIG_DESC车辆配置string是marketing_area营销区string是marketing_city营销地区string是distributor经销商string是VEHICLE_STATUS车辆状态string是DLR_CONTRACT_DATE合同关联日期string是DLR_CONTRACT_DAY合同关联日期天数string是VEHICLE_ATTR车辆属性string是serial流水号string是order_type订单类型string是order_status订单状态string是order_time订单日期string是CURR_STORE_ID当前仓库string是REFIT_TYPE委改类型string是pdt_contract_smno预投号string是acc_instock_date到货时间string是订单明细表dwd_dms_tv_bu_order_detailed结构如表4-8所示。表4-8订单明细表字段名说明字段类型长度是否必填update_time更新日期string是contract_num合同小号string是pub_model_code公告车型代码string是dev_model_code设计车型代码string是ORDER_ID订单IDstring是series车系string是subdiv_market细分市场string是vehicle_type车型string是discharge_type排放标准string是fuel_type燃料类型string是CONFIG_DESC车辆配置string是marketing_area营销区string是distributor经销商string是ORDER_STATUS订单状态string是ORDER_STATUS_NAME订单状态描述string是order_type订单类型string是submit_date订单提报时间string是ORDER_QTY车数量string是合同订单明细表dwd_dms_tv_bu_contract_entered_detailed结构如表4-9所示。表4-9合同订单明细表字段名说明字段类型长度是否必填update_time更新日期string是CONTRACT_ID合同idstring是VEHICLE_QTY车数量string是CREATE_DATE合同录入日期string是marketing_area营销区string是series车系string是vehicle_type车型string是discharge_type排放标准string是fuel_type燃料类型string是CONTRACT_SMNO合同小号string是CONFIG_DESC车辆配置string是ORDER_STATUS_NAME订单状态描述string是order_type订单类型string是pub_model_code公告车型代码string是dev_model_code设计车型代码string是distributor经销商string是engine_model发动机string是实销明细表dwd_dms_tv_bu_sell_back_detailed结构如表4-10所示。表4-10实销明细表字段名说明字段类型长度是否必填update_time更新日期string是engine_model发动机类型string是VINVINstring是series车系string是subdiv_market细分市场string是vehicle_type车型string是discharge_type排放标准string是fuel_type燃料类型string是CONFIG_DESC车辆配置string是marketing_area营销区string是distributor经销商string是create_date操作日期string是INVOICE_CREATE_TIME上传发票时间string是STATUS车辆状态string是CONTRACT_SMNO合同小号string是engine_model发动机类型string是北斗明细表dwd_plough_sell_manual_sells结构如表4-11所示。表4-11北斗明细表字段名说明字段类型长度是否必填dt日期string是brand企业string是car_type车辆类型string是discharge_type排放标准string是fuel_type燃料种类string是power_type马力段string是driver_type驱动类型string是strategy_area营销战区string是agency营销区string是province省string是city市string是area区/县string是engine_model发动机型号string是fdjqy发动机企业string是glzml功率转马力string是gl功率string是ml马力string是xfsc细分市场string是clmc车辆名称string是scdy生产单元string是jtqy集团企业string是qy2企业2string是power_type2马力段2string是num 数量Int是词云统计表goodskind结构如表4-12所示。表4-12词云统计表字段名说明字段类型长度是否必填Category名称Varchar100是num数量int11是厂商企业信息表ads_qy_detail结构如表4-13所示。表4-13厂商企业信息表字段名说明字段类型长度是否必填id主键idint11是qy企业名称varchar64是lbj_type零部件类型varchar64是yhzc优惠政策varchar255否qyxy企业信誉varchar64否qydd企业地点varchar64否qylxr企业联系人varchar64是lxfs企业联系人方式varchar64是number号码/编码varchar64是订单转换率表ads_order_conversion_rate结构如表4-14所示。表4-14订单转换率表字段名说明字段类型长度是否必填date_str时间varchar64是vehicle_type车型varchar64否market营销区varchar64否distributor经销商varchar64否orders订单数Int11否out_stock出库数Int11否actual_sales实销数Int11否库存资源表ads_inventory_resource结构如表4-15所示。表4-15库存资源表字段名说明字段类型长度是否必填date_str时间varchar64是market_war_zone营销战区varchar64否marketing_area营销区varchar64否distributor经销商varchar64否vehicle_model车型varchar64否emission_type排放类型varchar64否fuel_type燃料类型varchar64否engine_brand发动机品牌varchar64否qty总库存Int11否expired_qty超期库存Int11否overstock_qty积压库存Int11否qty_1短期库存Lin11否北斗数据动力表ads_beidou_pawer结构如表4-16所示。表4-16北斗数据动力表字段名说明字段类型长度是否必填dt时间varchar64是enterprise企业名varchar64是driver_type驱动类型varchar64是power_type马力段varchar64是gl功率varchar64是num数量Int11否北斗数据营销区表ads_beidou_maket结构如表4-17所示。表4-17北斗数据营销区表字段名说明字段类型长度是否必填dt时间varchar64是enterprise企业varchar64是market_war_zone营销战区varchar64是market营销区varchar64是num数量Int11否北斗数据燃料排放表ads_beidou_discharge_type结构如表4-18所示。表4-18北斗数据燃料排放表字段名说明字段类型长度是否必填dt时间varchar64是enterprise企业varchar64是discharge_type排放类型varchar64是fuel_type燃料类型varchar64是num数量Int11否北斗数据车辆表ads_beidou_car结构如表4-19所示。表4-19北斗数据车辆表字段名说明字段类型长度是否必填dt时间varchar64是enterprise企业varchar64是vehicle_type车型varchar64是xfsc细分市场varchar64是clmc车辆名称varchar64是num数量Int11否五、系统功能设计1.用户模块用户模块包括用户的登录、数据导出、数据查看等功能。用户在进去系统时,根据自身角色权限,所查看自身权限的页面路由板块的数据统计分析及数据导出。2.管理员模块包括管理员的登录、用户管理、角色管理、菜单管理及数据导入等功能。进入系统后,可以对用户进行创建、角色分配以及菜单的动态控制等。3.数据分析模块(1)零部件厂商模块:包括厂商基本信息的导入、导出、查看、编辑和删除等功能。(3)通用数据分析模块:包括北斗数据车辆类型分析,北斗数据燃料排放类型分析,北斗数据动力类型分析、北斗数据营销区数据分析及词云统计分析等(4)私有数据分析板块:分为两个分析角度:库存呆滞情况分析、订单转换率分析。六、系统实现(一)开发环境介绍操作系统:Windows10处理器:AMDRyzen74800HwithRadeonGraphics2.90GHz,内存:16G开发工具:idae2021数据库:MySQL8.0数据连接工具:DataGrip系统运行环境:jdk1.8开发框架:SpringBoot,vue.js,ElementUI(二)开发工程目录介绍对于系统的结构采用了springboot三层架构,该模式采用分层的结构,每一层都有其特定的职责和功能[4]。项目工程目录如图5-1所示。图5-1项目目录目录中在application-dev.yml配置文件中配置了连接数据库所需要的驱动参数。说明如下:配置MySQL数据库驱动:driver-class-name:com.mysql.cj.jdbc.Driver配置要连接的数据库:url:jdbc:mysql://localhost:3306/store_work?allowPublicKeyRetrieval=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC配置数据库连接名:username:root配置数据库连接密码:password:xjy1228(三)系统功能模块实现1.登录模块实现用户登录是系统最基本的功能模块。首先输入正确的用户名,密码,图形验证码。下面对图形验证码实现做具体说明。本系统通过整合kaptcha方式实现验证码生成与验证,可以提高应用程序的安全性和用户体验,防止恶意攻击和自动化登录等问题。图5-2登录页面(1)在项目的pom.xml文件中添加kaptcha库的依赖图5-3注入依赖(2)在页面中使用kaptcha生成的验证码图片图5-4生成验证码(3)在方法内部,首先设置了响应头信息,Cache-Control为"no-store,no-cache",这样可以确保浏览器不会缓存该验证码图片。然后设置响应内容类型为image/jpeg,告诉浏览器返回的是JPEG格式的图片。接着调用sysCaptchaService.getCaptcha(uuid)方法来获取验证码图片,其中传入了一个uuid参数,用于生成特定的验证码。得到验证码图片后,通过ImageIO.write(image,"jpg",out)将图片写入到response的输出流中,最后通过IOUtils.closeQuietly(out)关闭输出流,完成向浏览器输出验证码图片的过程。图5-5生成验证码接口(4)使用@PostMapping("/sys/login")注解来映射HTTPPOST请求到/sys/login路径。首先调用sysCaptchaService.validate(form.getUuid(),form.getCaptcha())方法,验证用户输入的验证码是否正确。如果验证码不正确,则返回包含错误信息的R.error("验证码不正确")响应。接着通过用户名form.getUsername()查询数据库获取对应的用户信息SysUserEntityuser。然后判断用户是否存在以及用户输入的密码是否与数据库中存储的密码匹配,若不匹配则返回错误信息。接着检查用户账号状态,如果账号已被锁定(user.getStatus()==0),则返回错误信息提示账号已被锁定。最后,如果以上验证都通过,调用sysUserTokenService.createToken(user.getUserId())生成用户的token,并保存到数据库中。最终返回一个包含token信息的R对象作为登录成功的响应。图5-6登录校验接口图5-7登录前端代码图5-8登录成功后跳转页面2.权限管理实现权限管理顾名思义就是对用户账号角色的管理,是本系统平台的核心功能之一。(1)用户角色菜单管理 用户、角色、菜单管理页面,具有新增、修改、查询、删除等功能图5-9权限管理-用户管理页面获取用户列表,@RequiresPermissions("sys:user:list")表示用户需要具有"sys:user:list"这个权限才能访问list接口,在用get请求,接收一个map<string,object>类型的参数并将get请求中的参数映射到方法的参数上,随后判断当前用户的userid是否为超级管理员,最后进行分页操作,然后前端使用Promise的then方法,当HTTP请求成功返回时执行回调函数,获取返回的数据对象图5-10usrcontroller控制层部分代码图5-11前端部分代码新增修改用户,前端提交一个post请求,根据表单中是否存在id属性来确定是保存新数据还是更新已有数据。后端获取到前端的请求,创建一个方法,并从请求体中获取的JSON数据将被转换为SysUserEntity对象,并且赋值给user参数,再调用了一个校验方法,用于验证user对象的字段是否符合AddGroup分组的校验规则,调用了一个service方法,将user对象保存到数据库中图5-12用户新增图5-13关键代码图5-14前端代码删除用户,前端提交一个post请求,并根据有无id判断删除方式。后端获取到前端的请求,创建一个方法,并限定具有"sys:user:delete"权限的用户才能调用该方法,方法的参数@RequestBodyLong[]userIds指定了要从请求体中获取的JSON数据将被转换为Long类型的数组,并且赋值给userIds参数,实现了一个批量删除的功能,调用了一个service方法,删除数据库中的用户信息图5-15用户删除图5-16删除用户代码、图5-17前端代码(2)菜单路由管理。菜单路由管理在权限管控中起到了重要作用,就是对菜单栏的动态管控图5-18权限管理-菜单管理页面当点击登录时,进入系统会调用两个url,sys/user/info用来获取用户信息,sys/menu/nav用来获取菜单信息,用于权限控制。图5-19权限管理-菜单管理调用接口前端将请求用户信息的方法封装在js里,登录时直接发起get请求的接口路径为'/sys/user/info',用于获取当前用户信息图5-20权限管理-菜单管理前端代码前端发起请求后,后端获取这个get请求定义一个info方法,返回当前登录的用户信息图5-21权限管理-菜单管理后端代码前端设定一个全局前置守卫,每次路由切换前都会执行其中的逻辑,先判断是否已经添加了动态菜单路由,或者当前路由类型为全局路由,如果是,则直接进入下一个路由,否则执行后续逻辑,通过http方法发送路径为'/sys/menu/nav'的请求获取菜单列表数据,如果请求成功且返回的数据状态码为0,则将菜单列表数据添加到路由中,设置标志位isAddDynamicMenuRoutes为true,并将菜单列表和权限列表保存到sessionStorage中,最后调用next({...to,replace:true})完成路由切换,如果请求失败,则打印错误信息并跳转至登录页。图5-22权限管理-菜单管理部分前端代码前端发起请求后,后端获取这个get请求定义一个名为nav的方法,不接收任何参数,首先调用sysMenuService的getUserMenuList方法,该方法根据当前用户的身份获取用户所拥有的菜单列表。其中getUserId()方法用于获取当前用户的用户ID,再调用调用shiroService的getUserPermissions方法,该方法根据当前用户的身份获取用户所拥有的权限列表。同样使用getUserId()方法获取当前用户的用户ID,使用put方法将获取到的菜单列表和权限列表放入响应中返回给前端,实现菜单路由根据用户角色权限动态变化图5-23权限管理-菜单管理后端代码3.零部件厂商信息板块实现(1)基本功能实现@RequiresPermissions("generator:adsqydetail:list")表示用户需要具有"generator:adsqydetail:list"这个权限才能访问list接口,在用get请求,接收一个map<string,object>类型的参数并将get请求中的参数映射到方法的参数上,最后进行分页操作,然后前端使用Promise的then方法,当HTTP请求成功返回时执行回调函数,获取返回的数据对象。图5-24零部件厂商信息页面图5-25后端部分代码图5-26前端部分代码(2)导入导出功能实现在文件导入时,后端接受一个MultipartFile类型的参数file,该参数用于接收上传的Excel文件。调用adsQyDetailService的readExcel方法,传入上传的Excel文件作为参数;前端定义了一个属性importExcelUrl,用于存储Excel导入解析接口的地址。通过this.http.adornUrl方法拼接了请求的URL,并在URL中添加了token参数作为身份验证信息,构建了一个完整的上传文件的目标地址。在文档导出时,后端首先定义一个方法export。它接收一个类型为Map<String,Object>的params参数,以及一个HttpServletResponse类型的response参数,方法声明中的throwsException表示该方法可能会抛出异常,接着调用adsQyDetailService的list方法,获取了AdsQyDetailEntity实体类的列表数据,最后调用ExcelUtils工具类的exportExcelToTarget方法,将从数据库中获取的AdsQyDetailEntity列表数据导出为Excel文件;前端使用Vue的$http方法发起一个get类型的HTTP请求,请求的URL为'/generator/adsqydetail/export',通过this.http.adornUrl方法对URL进行处理,随后指定响应类型为二进制流,因为要下载的是一个Excel文件,需要以二进制流的形式接收,然后通过window.URL.c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 草地贪夜蛾统防统治防治指引
- VR内容制作协议(2026年虚拟版)
- VR内容开发合同协议(教育机构2026年)
- 猎顿综合征的护理要点解读
- 肝栓塞患者的社会支持系统
- 2026年老年人居室家具配置与适老化改造指南
- 2026年幼儿园传统道德故事教育的实践路径
- 2026年节能减排技术改造项目申请
- 2026年赛事证件制作与通行权限管理
- 2026年应急演练观摩与交流计划
- T-GXAS 395-2022 蒜头果栽培技术规程
- 企业并购的机遇与挑战分析
- 18《文言文二则 铁杵成针》 公开课一等奖创新教学设计
- EPC项目设计管理组织架构
- 索道架设及运输施工方案
- 工程勘察设计收费标准(2002年修订本)完整版
- 《胶体的制备与性质实验》【教学PPT课件 高中化学优质课】
- 2021年上海见证员考试试题-
- 外墙装饰装修吊篮专项施工方案
- 《新能源汽车底盘技术》任务1-1-2 减速器总成的更换
- 云南省医师护士注册体格检查表
评论
0/150
提交评论