




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
目錄一、緒論 2(一)研究背景 2(二)研究意義 3(三)國內(nèi)外研究現(xiàn)狀 4(四)研究方法 4二、相關開發(fā)技術介紹 5(一)后端相關技術介紹 5(二)前端相關技術 7(三)相關數(shù)據(jù)庫 9(四)數(shù)據(jù)傳輸與管理 10三、需求分析 10(一)系統(tǒng)業(yè)務需求分析 10(二)功能需求分析 11(三)非功能性需求分析 13(四)可行性分析 14四、系統(tǒng)總體設計 15(一)系統(tǒng)架構設計 15(二)系統(tǒng)總體設計 15(三)數(shù)據(jù)庫設計 16五、系統(tǒng)功能設計 25六、系統(tǒng)實現(xiàn) 26(一)開發(fā)環(huán)境介紹 26(二)開發(fā)工程目錄介紹 26(三)系統(tǒng)功能模塊實現(xiàn) 28七、系統(tǒng)測試 47(一)測試目的 47(二)測試方法 48(三)測試用例 48八、總結與展望 49參考文獻 50致謝 51第基于springboot+vue的中國重卡營銷大數(shù)據(jù)系統(tǒng)設計與實現(xiàn)摘要:本畢業(yè)設計實現(xiàn)了一款基于springBoot+vue的中國重卡營銷大數(shù)據(jù)平臺,旨在為企業(yè)提供一個數(shù)據(jù)分析平臺便于了解市場需求的變化,及時調(diào)整產(chǎn)品策略和市場定位,提前預測市場走向,能夠滿足企業(yè)對營銷政策的優(yōu)化及提高企業(yè)的市場競爭力。在系統(tǒng)設計的過程中進行了詳細的需求分析和設計,包括用戶權限設計、模型設計、數(shù)倉設計、系統(tǒng)架構圖等。在系統(tǒng)的實現(xiàn)中,根據(jù)設計,本系統(tǒng)采用前后端分離的建構,后端采用springBoot三層架構模式進行對項目進行管理[5][6][7],前端采用vue框架,并使用了ElementUI、css、JS、jQuery、Ajax等前端技術,采用hive數(shù)據(jù)庫儲存、清洗數(shù)據(jù),MySql數(shù)據(jù)庫存儲用戶數(shù)據(jù)及統(tǒng)計數(shù)據(jù),實現(xiàn)了用戶角色權限管理、數(shù)據(jù)可視化分析、數(shù)據(jù)導入導出等功能。此外,在登錄時使用圖形驗證碼,通過整合kaptcha方式實現(xiàn),提高了系統(tǒng)的安全性。關鍵詞:SpringBoot;vue;ElementUI;用戶角色權限管理;數(shù)據(jù)可視化分析;圖形驗證碼。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.一、緒論(一)研究背景在國內(nèi),中國重卡行業(yè)逐漸認識到大數(shù)據(jù)在營銷領域的巨大潛力,已經(jīng)有一些國內(nèi)企業(yè)和研究機構積極探索和實施重卡營銷大數(shù)據(jù)系統(tǒng)的設計與實現(xiàn)。首先,從中國重卡行業(yè)的發(fā)展情況來看,中國重卡行業(yè)是指生產(chǎn)和銷售載重量在3噸及以上的商用車輛,包括貨車、牽引車、專用車等。中國重卡行業(yè)在過去幾十年里取得了長足的發(fā)展,成為全球最大的重卡市場之一。隨著國家經(jīng)濟的快速增長和物流需求的不斷增加,中國重卡行業(yè)迎來了巨大的市場機遇。其次,從大數(shù)據(jù)在中國企業(yè)中的應用來看,近年來,中國企業(yè)對大數(shù)據(jù)的應用越來越廣泛。大數(shù)據(jù)技術能夠幫助企業(yè)從龐大的數(shù)據(jù)中挖掘出有價值的信息和洞察,提高決策的科學性和準確性。在中國重卡行業(yè)中,企業(yè)也開始意識到大數(shù)據(jù)的重要性,并積極探索如何應用大數(shù)據(jù)技術提升營銷效果和競爭力另外,從國內(nèi)重卡企業(yè)的營銷挑戰(zhàn)出發(fā),中國重卡企業(yè)面臨著許多營銷挑戰(zhàn)。首先,市場需求和消費者偏好不斷變化,企業(yè)需要及時了解市場動態(tài)并作出相應調(diào)整。其次,重卡產(chǎn)品本身具有較高的定制性和復雜性,企業(yè)需要根據(jù)不同的客戶需求進行產(chǎn)品設計和定價。此外,競爭激烈、渠道多樣化等因素也增加了企業(yè)的營銷難度。最后,從重卡營銷大數(shù)據(jù)系統(tǒng)的研究方向出發(fā),在國內(nèi)研究中,重卡營銷大數(shù)據(jù)系統(tǒng)的設計與實現(xiàn)主要關注以下幾個方面:數(shù)據(jù)收集與整合、數(shù)據(jù)存儲與管理、數(shù)據(jù)分析與挖掘、數(shù)據(jù)可視化與報告等。研究者通過采集和整合重卡行業(yè)相關數(shù)據(jù),利用數(shù)據(jù)分析技術挖掘市場趨勢和用戶特征,并將分析結果以可視化的方式呈現(xiàn)給決策者和營銷人員,以幫助企業(yè)做出更準確的決策和制定營銷策略??偠灾袊乜I銷大數(shù)據(jù)系統(tǒng)的設計與實現(xiàn)是一個具有重要研究價值和實踐意義的課題,在國內(nèi)研究領域中受到廣泛關注。這一課題的研究成果將為中國重卡企業(yè)提供有效的決策支持,促進行業(yè)的發(fā)展和創(chuàng)新。(二)研究意義中國重卡行業(yè)一直以來都是國家交通運輸和物流領域的支柱力量,隨著社會經(jīng)濟的不斷發(fā)展,重卡市場逐漸呈現(xiàn)出巨大的潛力和活力。為了更好地適應市場需求、提升市場競爭力,設計與實現(xiàn)一套中國重卡營銷大數(shù)據(jù)系統(tǒng)平臺顯得尤為重要。首先,體現(xiàn)在市場競爭的激烈性,中國重卡市場競爭激烈,各大品牌不僅需要滿足基本性能、質(zhì)量等需求,還需要更具市場敏感度,及時調(diào)整產(chǎn)品策略、開發(fā)新產(chǎn)品,以獲取更多市場份額。大數(shù)據(jù)系統(tǒng)能夠全面收集、整理和分析市場信息、用戶反饋等數(shù)據(jù),為企業(yè)提供深入的市場洞察,幫助企業(yè)更好地制定戰(zhàn)略。其次,重卡產(chǎn)業(yè)鏈的復雜性也需要大數(shù)據(jù)系統(tǒng)的支持。重卡制造牽涉到供應商、經(jīng)銷商、售后服務等多個環(huán)節(jié),這些環(huán)節(jié)涉及到的數(shù)據(jù)龐大而復雜。通過大數(shù)據(jù)系統(tǒng),企業(yè)可以實現(xiàn)對產(chǎn)業(yè)鏈上下游的全面監(jiān)控和管理,提高整個產(chǎn)業(yè)鏈的協(xié)同效率,降低運營成本。因此,中國重卡行業(yè)迫切需要一個高效、智能的營銷大數(shù)據(jù)系統(tǒng),以更好地應對市場挑戰(zhàn)、提升產(chǎn)業(yè)鏈效率,從而在激烈的市場競爭中取得更大的優(yōu)勢。設計與實現(xiàn)中國重卡營銷大數(shù)據(jù)系統(tǒng)平臺將為行業(yè)的可持續(xù)發(fā)展提供有力的支撐。(三)國內(nèi)外研究現(xiàn)狀目前,在國內(nèi),重卡制造企業(yè)積極探索利用大數(shù)據(jù)分析技術進行市場營銷和銷售管理的方法和策略。因此,各大重卡企業(yè)都在不同程度上建立了自己的營銷大數(shù)據(jù)平臺,例如,一汽重卡公司建立了名為“智慧重卡”的大數(shù)據(jù)平臺,中國重汽集團推出了“重汽云”平臺,上汽大通汽車建立了“大通客戶大數(shù)據(jù)平臺”,這些企業(yè)將大數(shù)據(jù)分析應用于市場調(diào)研、用戶畫像、精準營銷、渠道管理等方面,以提升市場競爭力。在國外,重卡行業(yè)的營銷大數(shù)據(jù)分析研究也得到了廣泛關注。一些發(fā)達國家的重卡制造企業(yè)也積極利用營銷大數(shù)據(jù)平臺來支持市場營銷和銷售管理,例如,戴姆勒卡車公司擁有名為“Mercedes-Benz
Uptime”的大數(shù)據(jù)平臺,沃爾沃集團推出了名為“Volvo
Connect”的大數(shù)據(jù)平臺,斯堪尼亞公司推出了名為“Fleet
Management”的大數(shù)據(jù)平臺,并將其應用于實際營銷活動中??傮w來說,無論是國內(nèi)還是國外,對重卡行業(yè)營銷大數(shù)據(jù)分析的研究都處于不斷深入和發(fā)展的階段,各個重卡制造商企業(yè)搭建營銷大數(shù)據(jù)平臺都是為了幫助自身更加有效地了解市場和客戶,提高營銷效率,降低成本,提升競爭力。(四)研究方法本研究采用設計科研法和實驗研究法相結合的方法,以構建基于SpringBoot+Vue的中國重卡營銷大數(shù)據(jù)平臺平臺為目的,以為中國重卡企業(yè)的營銷策略,生產(chǎn)方向等為出發(fā)點,綜合采用文獻資料法、案例研究法和實驗研究法進行數(shù)據(jù)收集和分析。首先,通過文獻資料法收集和分析相關文獻、標準和法規(guī),了解中國重卡企業(yè)的發(fā)展、現(xiàn)狀及存在的問題,并對設計所需的技術和理論進行深入研究和探討,為后續(xù)實驗研究提供理論支持。其次,通過案例研究法,深入了解其他大數(shù)據(jù)分析平臺的成功經(jīng)驗和失誤,分析它們的優(yōu)缺點,吸取經(jīng)驗,避免不足,為構建新平臺提供借鑒和參考。最后,采用實驗研究法,設計并實現(xiàn)基于SpringBoot+Vue的中國重卡營銷大數(shù)據(jù)平臺,將其與現(xiàn)有平臺進行比較和驗證,檢驗新平臺的優(yōu)越性和可行性,為進一步推廣和應用提供支持和保障。通過以上研究方法的綜合應用,本研究旨在構建一個更加適合各個企業(yè)的實際需求,以提高平臺的可用性、可靠性和用戶體驗,為企業(yè)提供一個數(shù)據(jù)分析平臺便于了解市場需求的變化,及時調(diào)整產(chǎn)品策略和市場定位,提前預測市場走向二、相關開發(fā)技術介紹(一)后端相關技術介紹1.Java語言Java是一種通用編程語言,由SunMicrosystems(現(xiàn)在是Oracle)于1995年推出。它被設計用于開發(fā)可移植、高性能的應用程序。Java具有面向對象的特性,使得代碼易于維護和擴展。與其他編程語言相比,Java具有平臺無關性,它可以在不同的操作系統(tǒng)上運行,只需在目標系統(tǒng)上安裝Java虛擬機(JVM)。Java還具有豐富的類庫,提供了許多預先編寫好的代碼模塊,可以加快開發(fā)速度。Java被廣泛應用于Web應用程序、企業(yè)級應用程序、移動應用程序等領域。它的強大功能和廣泛支持使得Java成為一種受歡迎的編程語言,吸引了全球眾多開發(fā)者的使用和學習。2.SpringBoot框架SpringBoot是一個開源的Java框架,它基于Spring框架,旨在簡化和加速Java應用程序的開發(fā)過程。SpringBoot通過提供一系列約定優(yōu)于配置的方式,使得開發(fā)者可以更快速地搭建起一個獨立運行的、生產(chǎn)級別的Spring應用程序。SpringBoot具有許多特性和優(yōu)勢。首先,它提供了自動化的配置,通過默認值和約定來減少開發(fā)者需要手動配置的工作量,大大提高了開發(fā)效率。其次,SpringBoot支持內(nèi)嵌式的容器,如Tomcat、Jetty等,開發(fā)者無需額外配置Servlet容器,即可將應用程序打包成一個可執(zhí)行的JAR文件。此外,Spring
Boot還提供了強大的管理端點和健康檢查功能,方便監(jiān)控和管理應用程序的狀態(tài)除此之外,SpringBoot支持各種數(shù)據(jù)訪問技術,如JPA、Hibernate等,使得與數(shù)據(jù)庫的集成變得更加簡單。同時,它還支持與各種消息隊列、緩存、安全框架等進行集成,為開發(fā)者提供了豐富的選擇。由于其簡單易用、高效便捷的特點,SpringBoot被廣泛應用于構建各種類型的Java應用程序,包括Web應用、RESTful服務、批處理應用、微服務架構等。SpringBoot的出現(xiàn)極大地簡化了Java應用程序的開發(fā)流程,降低了學習曲線,使得開發(fā)者能夠更專注于業(yè)務邏輯的實現(xiàn),從而快速開發(fā)出高質(zhì)量的應用程序[6][7][8][9]。3.Mybatis_plus簡介MyBatis-Plus是基于MyBatis的增強工具,在傳統(tǒng)的MyBatis框架基礎上,提供了許多便捷的開發(fā)功能和特性。它簡化了數(shù)據(jù)訪問層的開發(fā)流程,提高了開發(fā)效率,并且減少了大量重復的代碼編寫。MyBatis-Plus提供了諸如代碼生成器、通用的CRUD操作、分頁插件、條件構造器、樂觀鎖插件等豐富的功能,使得開發(fā)者可以更加便捷地進行數(shù)據(jù)庫操作。此外,MyBatis-Plus還提供了性能優(yōu)化、多租戶支持、邏輯刪除、動態(tài)表名等實用的功能,滿足了各種復雜業(yè)務場景下的需求。由于其豐富的功能和簡化的操作,MyBatis-Plus被廣泛應用于各類Java項目中,特別是在基于MyBatis的數(shù)據(jù)訪問層開發(fā)中,為開發(fā)者提供了強大的支持和便利。(二)前端相關技術1.Element
UIElementUI是一套基于Vue.js的開源UI組件庫,用于構建Web界面。它提供了豐富的可復用組件,如按鈕、表單、彈窗、導航欄等,以及一套靈活的布局系統(tǒng),使得開發(fā)者可以快速搭建出美觀、易用的用戶界面。Element
UI的設計風格簡潔、現(xiàn)代,具有良好的響應式布局和可定制性。Element
UI不僅提供了基礎組件,還包括了許多高級組件和功能,如日期選擇器、下拉菜單、分頁器、輪播圖等,滿足了各種復雜界面需求。同時,它提供了豐富的主題定制選項,使得開發(fā)者可以根據(jù)項目需求自定義樣式,并支持多語言國際化。Element
UI的文檔清晰易懂,提供了詳細的使用示例和API文檔,方便開發(fā)者學習和參考。它還具有活躍的社區(qū)支持和更新頻率,持續(xù)提供新的組件和功能,使得開發(fā)者能夠跟上最新的前端開發(fā)潮流。由于其易用性、擴展性和美觀性,Element
UI成為了Vue.js生態(tài)系統(tǒng)中最受歡迎的UI組件庫之一。它被廣泛應用于各種Web應用程序和管理系統(tǒng)的開發(fā)中,為開發(fā)者提供了高效、一致的用戶界面解決方案[9][10]。2.HTML等常用技術HTML是一種標記語言,用于創(chuàng)建和組織網(wǎng)頁內(nèi)容。通過使用HTML標簽和屬性,開發(fā)者可以定義文本、圖像、鏈接、表格、表單等元素的結構和外觀,實現(xiàn)頁面的呈現(xiàn)和交互效果。HTML是Web開發(fā)的基礎,與CSS(Cascading
Style
Sheets)和JavaScript一起構成了Web前端開發(fā)的基本技術棧;HTML由一系列標簽組成,每個標簽代表不同的元素或內(nèi)容類型,如<p>表示段落、<img>表示圖像、<a>表示鏈接等。標簽可以嵌套組合,形成復雜的頁面結構。此外,HTML5作為最新版本的HTML標準,引入了許多新特性和API,如多媒體支持、Canvas繪圖、地理位置服務等,增強了Web應用的功能和性能。通過HTML,開發(fā)者可以將內(nèi)容結構化呈現(xiàn)在瀏覽器中,實現(xiàn)豐富多樣的網(wǎng)頁設計和交互效果,為用戶提供優(yōu)秀的瀏覽體驗。CSS是一種樣式表語言,用于描述網(wǎng)頁內(nèi)容的外觀和布局。通過CSS,開發(fā)者可以控制網(wǎng)頁元素的樣式,如顏色、字體、大小、間距、邊框等,實現(xiàn)頁面的美化和定制化。CSS與HTML結合使用,為網(wǎng)頁提供了豐富的視覺效果和用戶體驗;CSS通過選擇器(Selector)和屬性(Property)來定義樣式規(guī)則,將樣式應用到特定的HTML元素上。開發(fā)者可以使用內(nèi)聯(lián)樣式、嵌入樣式表或外部樣式表的方式來引入和管理CSS樣式,實現(xiàn)樣式的重用和維護;隨著CSS3的推出,引入了許多新特性和功能,如陰影效果、漸變色、動畫、響應式設計等,大大豐富了樣式表的能力和表現(xiàn)形式。CSS的靈活性和強大功能使得開發(fā)者能夠創(chuàng)建各種漂亮、交互豐富的網(wǎng)頁,并為不同設備和屏幕尺寸提供適配性的界面設計。JavaScript是一種用于創(chuàng)建動態(tài)網(wǎng)頁和應用程序的編程語言。它可以為網(wǎng)頁添加交互性和動態(tài)效果,例如表單驗證、動畫、彈出窗口等。JavaScript通過操作DOM(文檔對象模型)來修改HTML元素的內(nèi)容和屬性,從而實現(xiàn)網(wǎng)頁的交互效果。jQuery是一個高效而簡潔的JavaScript庫,它的設計目標是簡化HTML文檔的遍歷、事件處理、動畫實現(xiàn)以及AJAX操作,使得開發(fā)者可以更輕松地構建交互式的網(wǎng)頁應用。通過使用jQuery,開發(fā)者可以更高效地操作DOM元素、處理事件響應、實現(xiàn)動態(tài)效果和與服務器進行數(shù)據(jù)交互。jQuery提供了豐富的方法和函數(shù),能夠跨瀏覽器兼容,幫助開發(fā)者快速開發(fā)交互性強、用戶體驗優(yōu)秀的Web頁面。Ajax是一種利用JavaScript和XML技術在不重新加載整個頁面的情況下,異步地向服務器請求數(shù)據(jù)并更新部分頁面內(nèi)容的技術。通過Ajax,網(wǎng)頁可以實現(xiàn)動態(tài)加載內(nèi)容、實時更新數(shù)據(jù),提升用戶體驗和頁面響應速度。Ajax的核心是XMLHttpRequest對象,通過發(fā)送HTTP請求和處理服務器響應,實現(xiàn)與服務器端的數(shù)據(jù)交互。今天,Ajax已經(jīng)成為前端開發(fā)中常用的技術之一,廣泛應用于Web應用程序的開發(fā)中。VUE框架Vue.js是一款流行的開源JavaScript前端框架,用于構建交互性強、響應式的Web應用。Vue具有簡潔易學、靈活性高和性能優(yōu)越等特點,廣泛應用于單頁面應用(SPA)和復雜的Web應用開發(fā)中[6]。Vue采用了MVVM(Model-View-ViewModel)架構模式,通過數(shù)據(jù)驅動視圖的方式實現(xiàn)頁面內(nèi)容的動態(tài)更新。Vue提供了諸多功能強大且易用的特性,如指令、組件化、響應式數(shù)據(jù)綁定、計算屬性、事件處理、過渡效果等,幫助開發(fā)者輕松構建現(xiàn)代化的Web界面[7]。Vue還有豐富的生態(tài)系統(tǒng),如Vue
Router用于管理路由、Vuex用于狀態(tài)管理、Vue
CLI用于快速搭建項目等,為開發(fā)者提供全方位的支持。同時,Vue社區(qū)龐大活躍,提供了大量插件、工具和教程,使得學習和使用Vue變得更加便捷和高效??偟膩碚f,Vue框架以其靈活性、性能和生態(tài)優(yōu)勢,成為許多開發(fā)者喜愛的前端框架之一[8]。(三)相關數(shù)據(jù)庫1.MySQL數(shù)據(jù)庫MySQL是一種流行的開源關系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),由Oracle公司開發(fā)并維護。作為Web應用開發(fā)中最常用的數(shù)據(jù)庫之一,MySQL具有穩(wěn)定、可靠、高性能和成本低廉等特點。它支持多種操作系統(tǒng),如Windows、Linux、MacOS等,以及多種編程語言接口,如PHP、Python、Java等,使得其廣泛應用于各類網(wǎng)站和應用程序。MySQL使用標準的SQL語言進行數(shù)據(jù)管理和查詢,支持事務處理、觸發(fā)器、存儲過程等高級特性。此外,MySQL還具備優(yōu)秀的擴展性和定制性,能夠應對大規(guī)模數(shù)據(jù)存儲和處理需求。除了傳統(tǒng)的關系型數(shù)據(jù)存儲外,MySQL也支持文檔存儲、圖形數(shù)據(jù)存儲等多種數(shù)據(jù)類型,滿足不同場景下的數(shù)據(jù)需求??傊?,MySQL以其功能全面、穩(wěn)定可靠的特點,受到廣泛的歡迎,并被廣泛應用于各種規(guī)模的Web開發(fā)項目中2.hive數(shù)據(jù)庫Hive是基于Hadoop的數(shù)據(jù)倉庫工具[4],用于對大規(guī)模數(shù)據(jù)集進行管理和分析。Hive提供類SQL查詢語言HiveQL,使用戶能夠使用類似SQL的語法來查詢和處理數(shù)據(jù),同時將這些查詢轉換成MapReduce任務在Hadoop集群上執(zhí)行[13]。Hive支持數(shù)據(jù)的存儲、查詢和分析,適用于處理結構化數(shù)據(jù),并且能夠與Hadoop生態(tài)系統(tǒng)中的其他工具如HDFS、Spark等無縫集成。通過Hive[3],用戶可以輕松地利用Hadoop集群進行數(shù)據(jù)倉庫和數(shù)據(jù)分析[2],實現(xiàn)大規(guī)模數(shù)據(jù)處理和計算。由于其易用性和靈活性,Hive被廣泛應用于大數(shù)據(jù)領域,幫助用戶更高效地管理和分析海量數(shù)據(jù)[1]。(四)數(shù)據(jù)傳輸與管理1.HTTP協(xié)議HTTP是一種用于傳輸超文本數(shù)據(jù)的應用層協(xié)議。它建立在TCP/IP協(xié)議之上,用于在客戶端和服務器之間傳遞信息。HTTP采用請求-響應模型,客戶端發(fā)送請求給服務器,服務器響應請求并返回相應的數(shù)據(jù)。HTTP通常使用標準端口80,也支持加密的HTTPS協(xié)議(端口443),用于安全通信。2.Session機制Session(會話)是指服務器與客戶端之間建立的一種持續(xù)性的交互狀態(tài)。在Web開發(fā)中,Session通常用于跟蹤用戶在網(wǎng)站上的活動和狀態(tài)。當用戶訪問網(wǎng)站時,服務器為其分配一個唯一的Session
ID,并將該ID存儲在客戶端的Cookie中或通過URL重寫等方式傳遞。通過Session
ID,服務器可以識別不同用戶,存儲用戶信息,并保持用戶登錄狀態(tài)。Session數(shù)據(jù)通常存儲在服務器端,可包含用戶認證信息、購物車內(nèi)容等。一旦會話結束(如用戶關閉瀏覽器),Session數(shù)據(jù)通常會被銷毀。Session在Web開發(fā)中扮演著重要的角色,用于實現(xiàn)用戶狀態(tài)管理和個性化服務。三、需求分析(一)系統(tǒng)業(yè)務需求分析該平臺主要面向各個重卡企業(yè),他們有需求查看自身營銷情況。因此,本系統(tǒng)提供簡明易懂的界面和易于使用的功能,以方便用戶使用。該平臺需要提供以下功能:用戶管理、角色管理、目錄管理、零部件廠商信息、用戶登錄、excel批量導入導出,數(shù)據(jù)分析等。(二)功能需求分析1.后臺管理員功能管理員在本系統(tǒng)擁有最高權限,保證系統(tǒng)正常運行。下面對后臺管理的部分用例進行描述。表3-1系統(tǒng)用戶創(chuàng)建用例描述描述項說明用例名稱系統(tǒng)用戶創(chuàng)建用例用例編號1.0用例描述用戶創(chuàng)建,由管理員創(chuàng)建并授權參與者管理員優(yōu)先級1狀態(tài)進行中前置條件管理員登錄系統(tǒng)后置條件用戶列表中有該用戶基本操作流程1.必須輸入用戶名2.必須輸入密碼,兩次密碼要相同,不滿足條件會提示3.必須輸入郵箱號碼,郵箱必須帶有@符號,@前后有內(nèi)容4.必須輸入手機號,不滿足條件會提示5.必須選擇角色6.必須選擇狀態(tài)可選操作流程暫無被泛化用例表無被擴展用例表*暫無修改歷史記錄*暫無表3-2系統(tǒng)角色用例描述描述項說明用例名稱系統(tǒng)角色用例用例編號2.0用例描述各個角色具有不同的權限,查看不同的頁面參與者管理員優(yōu)先級1狀態(tài)進行中前置條件管理員進入角色管理頁面后置條件角色系統(tǒng)中有該角色基本操作流程1.必須輸入角色名稱2.選填備注3.必選授權備選操作流程暫無被泛化用例表無被擴展用例表*暫無修改歷史記錄*暫無表3-3菜單管理用例描述描述項說明用例名稱菜單管理用例描述用例編號3.0用例描述菜單動態(tài)管理參與者管理員優(yōu)先級1狀態(tài)進行中前置條件管理員登錄后置條件在該目錄下,出現(xiàn)該菜單基本操作流程1.必填菜單名稱2.必填上級菜單3.必填菜單路由備選操作流程暫無被泛化用例表無被擴展用例表*暫無修改歷史記錄*暫無問題*暫無2.企業(yè)用戶功能可根據(jù)管理員為企業(yè)創(chuàng)建的賬號進行登錄,對本企業(yè)營銷數(shù)據(jù)進行分析觀察,明確未來的生產(chǎn)計劃,分析方面共四個:北斗數(shù)據(jù)分析,訂單數(shù)據(jù)分析,庫存數(shù)據(jù)分析,詞云分析,并可查看零部件商家基本信息,查看各個商家優(yōu)惠政策。以下對用戶主要用例進行描述表3-4登錄用例描述描述項說明用例名稱登錄用例用例編號4.0用例描述用戶登錄系統(tǒng)參與者普通用戶優(yōu)先級1狀態(tài)進行中前置條件管理員創(chuàng)建了用戶后置條件進入系統(tǒng)平臺基本操作流程1.輸入賬號密碼2.輸入驗證碼備選操作流程暫無被泛化用例表無被擴展用例表*暫無修改歷史記錄*暫無問題*暫無表3-5數(shù)據(jù)分析用例描述描述項說明用例名稱數(shù)據(jù)分析用例用例編號5.0用例描述數(shù)據(jù)分析:北斗數(shù)據(jù)分析,從車型、車系、燃料排放、動力等多個方面統(tǒng)計,可以進行進行維度的篩選詞云統(tǒng)計,為2023年一年的車輛網(wǎng)站所搜索的關鍵詞統(tǒng)計,可以進行進行維度的篩選訂單數(shù)據(jù)分析,該企業(yè)訂單轉換率的情況分析,可以進行進行維度的篩選庫存數(shù)據(jù)分析,該企業(yè)庫存積壓情況分析,可以進行進行維度的篩選零部件商家,基本信息展示,及導出導入?yún)⑴c者普通用戶優(yōu)先級1狀態(tài)進行中前置條件用戶已登錄后置條件無基本操作流程查看所有數(shù)據(jù)分析情況查看零部件商家信息備選操作流程無被泛化用例表無被擴展用例表*暫無修改歷史記錄*暫無問題*暫無(三)非功能性需求分析1.可用性需求(1)系統(tǒng)應具有易于使用和導航的用戶界面,用戶可以快速進行操作。(2)系統(tǒng)應具有快速響應時間,以便用戶可以更快地獲得所需的信息或完成所需的操作。(3)系統(tǒng)應具有充分的兼容性,能夠適應各種不同操作系統(tǒng)和設備。2.可維護性需求(1)系統(tǒng)應具備模塊化設計和代碼結構清晰的特點,便于程序員維護和擴展系統(tǒng)功能。(2)系統(tǒng)應具備良好的注釋和文檔說明,以便程序員更好地理解代碼并進行維護。(3)系統(tǒng)應具備自動化測試工具,以便程序員能夠快速檢測和修復程序漏洞或問題。(四)可行性分析技術可行性:SpringBoot框架在企業(yè)級應用中廣泛應用,具有穩(wěn)定、高效、易用等優(yōu)點,可以快速搭建高效、穩(wěn)定的后端服務,Vue框架是目前最流行的前端框架之一,擁有豐富的組件庫和開發(fā)文檔,以及良好的可維護性和靈活性,可以快速構建出美觀、易用的用戶界面在,中國重卡市場中,通過建立一套高效的大數(shù)據(jù)分析平臺,可以更好地把握市場趨勢、進行精準營銷,進而提高企業(yè)的競爭力。因此,該系統(tǒng)在實際應用中具有廣泛的需求和應用前景,同時Hadoop作為大數(shù)據(jù)處理框架,為系統(tǒng)提供了強大的數(shù)據(jù)存儲和分析能力。經(jīng)濟可行性:中國重卡市場龐大且競爭激烈,企業(yè)需要更好地把握市場趨勢、進行精準營銷,以提高銷售和市場份額。因此,建立一套高效的大數(shù)據(jù)系統(tǒng)平臺來支持重卡營銷決策具有很大的市場需求。通過使用開源的SpringBoot和Vue框架,可以降低開發(fā)和維護成本。這兩個框架都擁有成熟的社區(qū)支持和豐富的資源,可以加快開發(fā)進度,并提高開發(fā)效率。此外,大數(shù)據(jù)技術的發(fā)展也使得數(shù)據(jù)存儲和處理成本降低,增加了系統(tǒng)的成本效益。隨著中國重卡市場的不斷發(fā)展和大數(shù)據(jù)技術的成熟應用,該系統(tǒng)平臺可以不斷擴展和升級,滿足企業(yè)不斷變化的需求。此外,該系統(tǒng)平臺還可以為企業(yè)提供增值服務,如數(shù)據(jù)分析報告、市場趨勢預測等,從而為企業(yè)帶來更多的商業(yè)機會和收益來源。Hadoop是開源的大數(shù)據(jù)處理框架,無需額外的商業(yè)授權費用而本地服務器搭建。這使得系統(tǒng)在技術水平提升的同時,仍能保持經(jīng)濟上的合理性。操作可行性:SpringBoot和Vue框架都具有簡單易用的特點,開發(fā)人員可以快速上手并快速構建出功能強大的系統(tǒng)。而且這兩個框架都有成熟的社區(qū)支持和豐富的文檔資源,開發(fā)人員可以通過查閱文檔解決遇到的問題。此外,通過采用模塊化和組件化的開發(fā)方式,可以使代碼結構清晰、易于維護,Vue框架提供了豐富的UI組件庫,可以輕松構建出美觀、交互友好的用戶界面。用戶可以直觀地使用各種功能和查詢數(shù)據(jù),提高操作體驗和效率,SpringBoot框架支持集成各種數(shù)據(jù)庫和數(shù)據(jù)處理工具,可以輕松實現(xiàn)數(shù)據(jù)的存儲、查詢和分析。而大數(shù)據(jù)技術的發(fā)展也為系統(tǒng)提供了更多的數(shù)據(jù)處理和分析選項,如Hadoop、Spark等,可以進行更復雜的數(shù)據(jù)處理和挖掘,SpringBoot框架提供了一套完善的安全機制,可以對系統(tǒng)進行身份驗證和授權管理,保障數(shù)據(jù)的安全性。而且SpringBoot和Vue框架都具備良好的穩(wěn)定性和可靠性,可以保證系統(tǒng)的正常運行和響應性能。四、系統(tǒng)總體設計(一)系統(tǒng)架構設計系統(tǒng)采用SpringBoot三層結構來組織項目:控制層(Controller)、服務層(Service)和持久層(Repository)??刂茖迂撠熃邮蘸晚憫狧TTP請求,調(diào)用服務層處理業(yè)務邏輯,并返回結果給客戶端;服務層包含應用的核心業(yè)務邏輯,負責處理具體的業(yè)務需求;持久層負責與數(shù)據(jù)庫進行交互,包括數(shù)據(jù)的讀取、存儲和更新操作。SpringBoot通過自動配置和約定大于配置的原則,簡化了項目的搭建和開發(fā)流程,使得開發(fā)者能夠更快速地構建健壯、可擴展的應用程序。圖4-1MVC三層結構(二)系統(tǒng)總體設計中國重卡營銷大數(shù)據(jù)平臺總體分為系統(tǒng)管理、數(shù)據(jù)分析兩個板塊。這兩個板塊根據(jù)用戶角色權限不同,進入系統(tǒng)所看見的目錄有所不同,但是訪問的數(shù)據(jù)庫是一樣的。每一個模塊的功能都是根據(jù)先前完成的需求分析,并查閱相關資料后整理制作的。(三)數(shù)據(jù)庫設計1.數(shù)據(jù)需求分析平臺用戶與管理員:在sys_user中記錄用戶各種信息,包括賬號,密碼等,通過字段user_id在sys_user_role表中找到對應角色id,通過role_id在sys_role角色表中找到對應角色,其值為role_name。菜單管理:在sys_menu中記錄各個菜單的信息,如菜單id,父級id,名稱等等,通過sys_role_menu找到角色與菜單的關聯(lián)關系,從而實現(xiàn)權限管理。商家信息:各個零部件商家的基本信息,如:商家名稱、聯(lián)系方式等。通用數(shù)據(jù)分析:各個企業(yè)出售的車輛在北斗系統(tǒng)中激活的數(shù)量統(tǒng)計及各大購車應用大眾用戶搜索的關鍵詞統(tǒng)計。私有數(shù)據(jù):分為訂單與庫存,做各個企業(yè)的營銷數(shù)據(jù),私密數(shù)據(jù)的統(tǒng)計。2.數(shù)據(jù)庫概念設計用戶分為管理員和普通用戶,區(qū)別如圖4-2所示。圖4-2總體ER圖下面是各實體的具體介紹。(1)用戶角色菜單實體圖4-3用戶角色菜單實體圖(2)車輛信息實體圖4-4車輛信息實體圖(3)訂單信息實體圖4-5訂單信息實體圖(4)實銷信息實體圖4-6實銷信息實體圖3.數(shù)據(jù)庫設計在上節(jié)E-R圖的基礎上,建立本系統(tǒng)所涉及到的信息表及統(tǒng)計表。本系統(tǒng)的數(shù)據(jù)庫表采用hive進行數(shù)據(jù)分析,MySQL8.0儲存統(tǒng)計數(shù)據(jù),創(chuàng)建名為store_work、utf-8編碼的數(shù)據(jù)庫。主要的信息表如表4-1所示。表4-1主要信息表名稱表名說明sys_user用戶信息表sys_user_role用戶角色關聯(lián)表sys_role角色信息表sys_role_menu角色菜單聯(lián)系表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詞云統(tǒng)計表ads_qy_detail廠商企業(yè)信息表ads_order_conversion_rate訂單轉換率表ads_inventory_resource庫存資源表ads_beidou_power北斗數(shù)據(jù)動力表ads_beidou_market北斗數(shù)據(jù)營銷區(qū)表ads_beidou_discharge_type北斗數(shù)據(jù)燃料排放表ads_beidou_car北斗數(shù)據(jù)車輛表主要信息表詳細結構如下:用戶信息表sys_user結構如表4-2所示。表4-2用戶信息表字段名說明字段類型長度是否必填user_id用戶idint11否(設為自增長)username用戶名varchar64是password密碼varchar64是saltvarchar11是email郵箱varchar64是mobile手機號varchar64是status狀態(tài)int11是create_user_id創(chuàng)建人idint11是create_time創(chuàng)建時間datetime是用戶角色關聯(lián)表sys_user_role結構如表4-3所示。表4-3用戶角色關聯(lián)表字段名說明字段類型長度是否必填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創(chuàng)建人idint11是create_time創(chuàng)建時間datetime是角色菜單聯(lián)系表sys_role_menu結構如表4-5所示。表4-5角色菜單聯(lián)系表字段名說明字段類型長度是否必填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發(fā)動機類型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關聯(lián)訂單(合同號)string是ERP_MODEL_CODE車型編碼string是instock_time原始入庫日期string是instock_day入庫天數(shù)string是instock_age庫齡string是discharge_type排放標準string是fuel_type燃料類型string是vehicle_type車型string是CONFIG_DESC車輛配置string是marketing_area營銷區(qū)string是marketing_city營銷地區(qū)string是distributor經(jīng)銷商string是VEHICLE_STATUS車輛狀態(tài)string是DLR_CONTRACT_DATE合同關聯(lián)日期string是DLR_CONTRACT_DAY合同關聯(lián)日期天數(shù)string是VEHICLE_ATTR車輛屬性string是serial流水號string是order_type訂單類型string是order_status訂單狀態(tài)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營銷區(qū)string是distributor經(jīng)銷商string是ORDER_STATUS訂單狀態(tài)string是ORDER_STATUS_NAME訂單狀態(tài)描述string是order_type訂單類型string是submit_date訂單提報時間string是ORDER_QTY車數(shù)量string是合同訂單明細表dwd_dms_tv_bu_contract_entered_detailed結構如表4-9所示。表4-9合同訂單明細表字段名說明字段類型長度是否必填update_time更新日期string是CONTRACT_ID合同idstring是VEHICLE_QTY車數(shù)量string是CREATE_DATE合同錄入日期string是marketing_area營銷區(qū)string是series車系string是vehicle_type車型string是discharge_type排放標準string是fuel_type燃料類型string是CONTRACT_SMNO合同小號string是CONFIG_DESC車輛配置string是ORDER_STATUS_NAME訂單狀態(tài)描述string是order_type訂單類型string是pub_model_code公告車型代碼string是dev_model_code設計車型代碼string是distributor經(jīng)銷商string是engine_model發(fā)動機string是實銷明細表dwd_dms_tv_bu_sell_back_detailed結構如表4-10所示。表4-10實銷明細表字段名說明字段類型長度是否必填update_time更新日期string是engine_model發(fā)動機類型string是VINVINstring是series車系string是subdiv_market細分市場string是vehicle_type車型string是discharge_type排放標準string是fuel_type燃料類型string是CONFIG_DESC車輛配置string是marketing_area營銷區(qū)string是distributor經(jīng)銷商string是create_date操作日期string是INVOICE_CREATE_TIME上傳發(fā)票時間string是STATUS車輛狀態(tài)string是CONTRACT_SMNO合同小號string是engine_model發(fā)動機類型string是北斗明細表dwd_plough_sell_manual_sells結構如表4-11所示。表4-11北斗明細表字段名說明字段類型長度是否必填dt日期string是brand企業(yè)string是car_type車輛類型string是discharge_type排放標準string是fuel_type燃料種類string是power_type馬力段string是driver_type驅動類型string是strategy_area營銷戰(zhàn)區(qū)string是agency營銷區(qū)string是province省string是city市string是area區(qū)/縣string是engine_model發(fā)動機型號string是fdjqy發(fā)動機企業(yè)string是glzml功率轉馬力string是gl功率string是ml馬力string是xfsc細分市場string是clmc車輛名稱string是scdy生產(chǎn)單元string是jtqy集團企業(yè)string是qy2企業(yè)2string是power_type2馬力段2string是num 數(shù)量Int是詞云統(tǒng)計表goodskind結構如表4-12所示。表4-12詞云統(tǒng)計表字段名說明字段類型長度是否必填Category名稱Varchar100是num數(shù)量int11是廠商企業(yè)信息表ads_qy_detail結構如表4-13所示。表4-13廠商企業(yè)信息表字段名說明字段類型長度是否必填id主鍵idint11是qy企業(yè)名稱varchar64是lbj_type零部件類型varchar64是yhzc優(yōu)惠政策varchar255否qyxy企業(yè)信譽varchar64否qydd企業(yè)地點varchar64否qylxr企業(yè)聯(lián)系人varchar64是lxfs企業(yè)聯(lián)系人方式varchar64是number號碼/編碼varchar64是訂單轉換率表ads_order_conversion_rate結構如表4-14所示。表4-14訂單轉換率表字段名說明字段類型長度是否必填date_str時間varchar64是vehicle_type車型varchar64否market營銷區(qū)varchar64否distributor經(jīng)銷商varchar64否orders訂單數(shù)Int11否out_stock出庫數(shù)Int11否actual_sales實銷數(shù)Int11否庫存資源表ads_inventory_resource結構如表4-15所示。表4-15庫存資源表字段名說明字段類型長度是否必填date_str時間varchar64是market_war_zone營銷戰(zhàn)區(qū)varchar64否marketing_area營銷區(qū)varchar64否distributor經(jīng)銷商varchar64否vehicle_model車型varchar64否emission_type排放類型varchar64否fuel_type燃料類型varchar64否engine_brand發(fā)動機品牌varchar64否qty總庫存Int11否expired_qty超期庫存Int11否overstock_qty積壓庫存Int11否qty_1短期庫存Lin11否北斗數(shù)據(jù)動力表ads_beidou_pawer結構如表4-16所示。表4-16北斗數(shù)據(jù)動力表字段名說明字段類型長度是否必填dt時間varchar64是enterprise企業(yè)名varchar64是driver_type驅動類型varchar64是power_type馬力段varchar64是gl功率varchar64是num數(shù)量Int11否北斗數(shù)據(jù)營銷區(qū)表ads_beidou_maket結構如表4-17所示。表4-17北斗數(shù)據(jù)營銷區(qū)表字段名說明字段類型長度是否必填dt時間varchar64是enterprise企業(yè)varchar64是market_war_zone營銷戰(zhàn)區(qū)varchar64是market營銷區(qū)varchar64是num數(shù)量Int11否北斗數(shù)據(jù)燃料排放表ads_beidou_discharge_type結構如表4-18所示。表4-18北斗數(shù)據(jù)燃料排放表字段名說明字段類型長度是否必填dt時間varchar64是enterprise企業(yè)varchar64是discharge_type排放類型varchar64是fuel_type燃料類型varchar64是num數(shù)量Int11否北斗數(shù)據(jù)車輛表ads_beidou_car結構如表4-19所示。表4-19北斗數(shù)據(jù)車輛表字段名說明字段類型長度是否必填dt時間varchar64是enterprise企業(yè)varchar64是vehicle_type車型varchar64是xfsc細分市場varchar64是clmc車輛名稱varchar64是num數(shù)量Int11否五、系統(tǒng)功能設計1.用戶模塊用戶模塊包括用戶的登錄、數(shù)據(jù)導出、數(shù)據(jù)查看等功能。用戶在進去系統(tǒng)時,根據(jù)自身角色權限,所查看自身權限的頁面路由板塊的數(shù)據(jù)統(tǒng)計分析及數(shù)據(jù)導出。2.管理員模塊包括管理員的登錄、用戶管理、角色管理、菜單管理及數(shù)據(jù)導入等功能。進入系統(tǒng)后,可以對用戶進行創(chuàng)建、角色分配以及菜單的動態(tài)控制等。3.數(shù)據(jù)分析模塊(1)零部件廠商模塊:包括廠商基本信息的導入、導出、查看、編輯和刪除等功能。(3)通用數(shù)據(jù)分析模塊:包括北斗數(shù)據(jù)車輛類型分析,北斗數(shù)據(jù)燃料排放類型分析,北斗數(shù)據(jù)動力類型分析、北斗數(shù)據(jù)營銷區(qū)數(shù)據(jù)分析及詞云統(tǒng)計分析等(4)私有數(shù)據(jù)分析板塊:分為兩個分析角度:庫存呆滯情況分析、訂單轉換率分析。六、系統(tǒng)實現(xiàn)(一)開發(fā)環(huán)境介紹操作系統(tǒng):Windows10處理器:AMDRyzen74800HwithRadeonGraphics2.90GHz,內(nèi)存:16G開發(fā)工具:idae2021數(shù)據(jù)庫:MySQL8.0數(shù)據(jù)連接工具:DataGrip系統(tǒng)運行環(huán)境:jdk1.8開發(fā)框架:SpringBoot,vue.js,ElementUI(二)開發(fā)工程目錄介紹對于系統(tǒng)的結構采用了springboot三層架構,該模式采用分層的結構,每一層都有其特定的職責和功能[4]。項目工程目錄如圖5-1所示。圖5-1項目目錄目錄中在application-dev.yml配置文件中配置了連接數(shù)據(jù)庫所需要的驅動參數(shù)。說明如下:配置MySQL數(shù)據(jù)庫驅動:driver-class-name:com.mysql.cj.jdbc.Driver配置要連接的數(shù)據(jù)庫:url:jdbc:mysql://localhost:3306/store_work?allowPublicKeyRetrieval=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC配置數(shù)據(jù)庫連接名:username:root配置數(shù)據(jù)庫連接密碼:password:xjy1228(三)系統(tǒng)功能模塊實現(xiàn)1.登錄模塊實現(xiàn)用戶登錄是系統(tǒng)最基本的功能模塊。首先輸入正確的用戶名,密碼,圖形驗證碼。下面對圖形驗證碼實現(xiàn)做具體說明。本系統(tǒng)通過整合kaptcha方式實現(xiàn)驗證碼生成與驗證,可以提高應用程序的安全性和用戶體驗,防止惡意攻擊和自動化登錄等問題。圖5-2登錄頁面(1)在項目的pom.xml文件中添加kaptcha庫的依賴圖5-3注入依賴(2)在頁面中使用kaptcha生成的驗證碼圖片圖5-4生成驗證碼(3)在方法內(nèi)部,首先設置了響應頭信息,Cache-Control為"no-store,no-cache",這樣可以確保瀏覽器不會緩存該驗證碼圖片。然后設置響應內(nèi)容類型為image/jpeg,告訴瀏覽器返回的是JPEG格式的圖片。接著調(diào)用sysCaptchaService.getCaptcha(uuid)方法來獲取驗證碼圖片,其中傳入了一個uuid參數(shù),用于生成特定的驗證碼。得到驗證碼圖片后,通過ImageIO.write(image,"jpg",out)將圖片寫入到response的輸出流中,最后通過IOUtils.closeQuietly(out)關閉輸出流,完成向瀏覽器輸出驗證碼圖片的過程。圖5-5生成驗證碼接口(4)使用@PostMapping("/sys/login")注解來映射HTTPPOST請求到/sys/login路徑。首先調(diào)用sysCaptchaService.validate(form.getUuid(),form.getCaptcha())方法,驗證用戶輸入的驗證碼是否正確。如果驗證碼不正確,則返回包含錯誤信息的R.error("驗證碼不正確")響應。接著通過用戶名form.getUsername()查詢數(shù)據(jù)庫獲取對應的用戶信息SysUserEntityuser。然后判斷用戶是否存在以及用戶輸入的密碼是否與數(shù)據(jù)庫中存儲的密碼匹配,若不匹配則返回錯誤信息。接著檢查用戶賬號狀態(tài),如果賬號已被鎖定(user.getStatus()==0),則返回錯誤信息提示賬號已被鎖定。最后,如果以上驗證都通過,調(diào)用sysUserTokenService.createToken(user.getUserId())生成用戶的token,并保存到數(shù)據(jù)庫中。最終返回一個包含token信息的R對象作為登錄成功的響應。圖5-6登錄校驗接口圖5-7登錄前端代碼圖5-8登錄成功后跳轉頁面2.權限管理實現(xiàn)權限管理顧名思義就是對用戶賬號角色的管理,是本系統(tǒng)平臺的核心功能之一。(1)用戶角色菜單管理 用戶、角色、菜單管理頁面,具有新增、修改、查詢、刪除等功能圖5-9權限管理-用戶管理頁面獲取用戶列表,@RequiresPermissions("sys:user:list")表示用戶需要具有"sys:user:list"這個權限才能訪問list接口,在用get請求,接收一個map<string,object>類型的參數(shù)并將get請求中的參數(shù)映射到方法的參數(shù)上,隨后判斷當前用戶的userid是否為超級管理員,最后進行分頁操作,然后前端使用Promise的then方法,當HTTP請求成功返回時執(zhí)行回調(diào)函數(shù),獲取返回的數(shù)據(jù)對象圖5-10usrcontroller控制層部分代碼圖5-11前端部分代碼新增修改用戶,前端提交一個post請求,根據(jù)表單中是否存在id屬性來確定是保存新數(shù)據(jù)還是更新已有數(shù)據(jù)。后端獲取到前端的請求,創(chuàng)建一個方法,并從請求體中獲取的JSON數(shù)據(jù)將被轉換為SysUserEntity對象,并且賦值給user參數(shù),再調(diào)用了一個校驗方法,用于驗證user對象的字段是否符合AddGroup分組的校驗規(guī)則,調(diào)用了一個service方法,將user對象保存到數(shù)據(jù)庫中圖5-12用戶新增圖5-13關鍵代碼圖5-14前端代碼刪除用戶,前端提交一個post請求,并根據(jù)有無id判斷刪除方式。后端獲取到前端的請求,創(chuàng)建一個方法,并限定具有"sys:user:delete"權限的用戶才能調(diào)用該方法,方法的參數(shù)@RequestBodyLong[]userIds指定了要從請求體中獲取的JSON數(shù)據(jù)將被轉換為Long類型的數(shù)組,并且賦值給userIds參數(shù),實現(xiàn)了一個批量刪除的功能,調(diào)用了一個service方法,刪除數(shù)據(jù)庫中的用戶信息圖5-15用戶刪除圖5-16刪除用戶代碼、圖5-17前端代碼(2)菜單路由管理。菜單路由管理在權限管控中起到了重要作用,就是對菜單欄的動態(tài)管控圖5-18權限管理-菜單管理頁面當點擊登錄時,進入系統(tǒng)會調(diào)用兩個url,sys/user/info用來獲取用戶信息,sys/menu/nav用來獲取菜單信息,用于權限控制。圖5-19權限管理-菜單管理調(diào)用接口前端將請求用戶信息的方法封裝在js里,登錄時直接發(fā)起get請求的接口路徑為'/sys/user/info',用于獲取當前用戶信息圖5-20權限管理-菜單管理前端代碼前端發(fā)起請求后,后端獲取這個get請求定義一個info方法,返回當前登錄的用戶信息圖5-21權限管理-菜單管理后端代碼前端設定一個全局前置守衛(wèi),每次路由切換前都會執(zhí)行其中的邏輯,先判斷是否已經(jīng)添加了動態(tài)菜單路由,或者當前路由類型為全局路由,如果是,則直接進入下一個路由,否則執(zhí)行后續(xù)邏輯,通過http方法發(fā)送路徑為'/sys/menu/nav'的請求獲取菜單列表數(shù)據(jù),如果請求成功且返回的數(shù)據(jù)狀態(tài)碼為0,則將菜單列表數(shù)據(jù)添加到路由中,設置標志位isAddDynamicMenuRoutes為true,并將菜單列表和權限列表保存到sessionStorage中,最后調(diào)用next({...to,replace:true})完成路由切換,如果請求失敗,則打印錯誤信息并跳轉至登錄頁。圖5-22權限管理-菜單管理部分前端代碼前端發(fā)起請求后,后端獲取這個get請求定義一個名為nav的方法,不接收任何參數(shù),首先調(diào)用sysMenuService的getUserMenuList方法,該方法根據(jù)當前用戶的身份獲取用戶所擁有的菜單列表。其中getUserId()方法用于獲取當前用戶的用戶ID,再調(diào)用調(diào)用shiroService的getUserPermissions方法,該方法根據(jù)當前用戶的身份獲取用戶所擁有的權限列表。同樣使用getUserId()方法獲取當前用戶的用戶ID,使用put方法將獲取到的菜單列表和權限列表放入響應中返回給前端,實現(xiàn)菜單路由根據(jù)用戶角色權限動態(tài)變化圖5-23權限管理-菜單管理后端代碼3.零部件廠商信息板塊實現(xiàn)(1)基本功能實現(xiàn)@RequiresPermissions("generator:adsqydetail:list")表示用戶需要具有"generator:adsqydetail:list"這個權限才能訪問list接口,在用get請求,接收一個map<string,object>類型的參數(shù)并將get請求中的參數(shù)映射到方法的參數(shù)上,最后進行分頁操作,然后前端使用Promise的then方法,當HTTP請求成功返回時執(zhí)行回調(diào)函數(shù),獲取返回的數(shù)據(jù)對象。圖5-24零部件廠商信息頁面圖5-25后端部分代碼圖5-26前端部分代碼(2)導入導出功能實現(xiàn)在文件導入時,后端接受一個MultipartFile類型的參數(shù)file,該參數(shù)用于接收上傳的Excel文件。調(diào)用adsQyDetailService的readExcel方法,傳入上傳的Excel文件作為參數(shù);前端定義了一個屬性importExcelUrl,用于存儲Excel導入解析接口的地址。通過this.http.adornUrl方法拼接了請求的URL,并在URL中添加了token參數(shù)作為身份驗證信息,構建了一個完整的上傳文件的目標地址。在文檔導出時,后端首先定義一個方法export。它接收一個類型為Map<String,Object>的params參數(shù),以及一個HttpServletResponse類型的response參數(shù),方法聲明中的throwsException表示該方法可能會拋出異常,接著調(diào)用adsQyDetailService的list方法,獲取了AdsQyDetailEntity實體類的列表數(shù)據(jù),最后調(diào)用ExcelUtils工具類的exportExcelToTarget方法,將從數(shù)據(jù)庫中獲取的AdsQyDetailEntity列表數(shù)據(jù)導出為Excel文件;前端使用Vue的$http方法發(fā)起一個get類型的HTTP請求,請求的URL為'/generator/adsqydetail/export',通過this.http.adornUrl方法對URL進行處理,隨后指定響應類型為二進制流,因為要下載的是一個Excel文件,需要以二進制流的形式接收,然后通過window.URL.c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年計算機及外部設備維修服務項目提案報告
- 2025年塞克硝唑藥物項目申請報告
- 考古發(fā)掘保護現(xiàn)代承諾函7篇
- 法律文書草擬與合同審核流程模板
- 2025年古董收藏品項目提案報告范文
- 主動擔責承諾書模板(6篇)
- 2025年護創(chuàng)敷料耗材項目立項申請報告
- 多行業(yè)共同認可的員工手冊編制規(guī)范
- 2025年威海市水產(chǎn)學校公開招聘教師(7人)模擬試卷附答案詳解(黃金題型)
- 2025-2026學年陜西省漢中市高三上學期第一次校際聯(lián)考英語試題(解析版)
- 消防宣傳安全常識課件
- 宅基無償轉贈協(xié)議書
- GB/T 1040.1-2025塑料拉伸性能的測定第1部分:總則
- 學校食堂食品安全風險管控清單
- DB54/T 0316-2024藏香生產(chǎn)技術規(guī)程
- 車間8s管理制度培訓
- 電力行業(yè)職業(yè)健康衛(wèi)生管理制度
- 新22J01 工程做法圖集
- 口腔診所醫(yī)患溝通與糾紛處理預案
- 奮斗青春勇?lián)鷼v史使命
- 《數(shù)據(jù)中心鉛酸蓄電池應用技術規(guī)程》
評論
0/150
提交評論