![基于SSM的電商的平臺開發(fā)_第1頁](http://file4.renrendoc.com/view/5bae6425acd7c709a733127cae179733/5bae6425acd7c709a733127cae1797331.gif)
![基于SSM的電商的平臺開發(fā)_第2頁](http://file4.renrendoc.com/view/5bae6425acd7c709a733127cae179733/5bae6425acd7c709a733127cae1797332.gif)
![基于SSM的電商的平臺開發(fā)_第3頁](http://file4.renrendoc.com/view/5bae6425acd7c709a733127cae179733/5bae6425acd7c709a733127cae1797333.gif)
![基于SSM的電商的平臺開發(fā)_第4頁](http://file4.renrendoc.com/view/5bae6425acd7c709a733127cae179733/5bae6425acd7c709a733127cae1797334.gif)
![基于SSM的電商的平臺開發(fā)_第5頁](http://file4.renrendoc.com/view/5bae6425acd7c709a733127cae179733/5bae6425acd7c709a733127cae1797335.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
.緒論1.1研究的背景和意義研究的背景基于ssm的電商的平臺開發(fā)課題思路來源于對當(dāng)今社會電子商務(wù)系統(tǒng)的變革,對于傳統(tǒng)的商務(wù)系統(tǒng)有著極大的不同點,同時又具有方便簡單高效率的優(yōu)點,為了更多的了解電子商務(wù)的模式,現(xiàn)在的電商平臺功能大部分完善,但是我們更多了解的還是有著什么功能并不知道怎么實現(xiàn)以及原理。于是乎我抱著強烈的好奇心打算自己去實現(xiàn)制作一個電子商務(wù)平臺,來深入的了解一下商務(wù)功能實現(xiàn)的原理。研究的目的基于ssm的電商的平臺開發(fā)的目的有兩個,目的一是:為了更好的了解當(dāng)前逐漸在經(jīng)濟沖擊下逐漸完善的電商平臺,更好的了解其實現(xiàn)、功能、以及原理,以及過程中遇到的問題,需要考慮到的特殊情況,了解到自己的不足以及需要修改的地方,增加自己考慮問題的全面性。目的二是:為了提高自身的技術(shù)水平以及在開發(fā)軟件工程中功能的完成,對整個程序設(shè)計的考慮會不會出現(xiàn)一些不該出現(xiàn)的漏洞,提高自己的開發(fā)能力的同時提高自己的眼界,為畢業(yè)后找好工作高薪資打到基礎(chǔ)。研究的意義基于ssm的電商的平臺開發(fā)的研究意義是想更好的了解商務(wù)平臺的同時,開發(fā)出一款功能完善、安全穩(wěn)定,提供給買家和賣家良好的交易體驗,同時提高自己的開發(fā)水平,增強自己的技術(shù)與眼界。1.2電商平臺的國內(nèi)外研究進展1.2.1電商平臺的國內(nèi)研究進展國內(nèi)從2003年開始電子商務(wù)保持了高速增長的趨勢。自2005年以來,我國電子商務(wù)市場交易額穩(wěn)定增長,2007年我國電子商務(wù)市場規(guī)模突破17000億元,在2007年到2010年三年中,是我國電子商務(wù)投資規(guī)模持續(xù)增長和爆發(fā)的時期,我國電子商務(wù)投資市場迎來新一輪的發(fā)展高潮。在2007年國家“十一五”電子商務(wù)發(fā)展規(guī)范頒布標志著政府推動電子商務(wù)的總體布局已經(jīng)形成;另一方面電子商務(wù)在企業(yè)的應(yīng)用成效以及對經(jīng)濟、社會發(fā)展的推動作用日益明顯。2007年我國B2B電子商務(wù)交易額約為12500億元,比2006年增長25.5%。目前B2B市場的集中度較高,在綜合類網(wǎng)站中,阿里巴巴占了幾乎7成份額,2007年我國C2C交易額約為410.4億元,同比增長90%;C2C是目前我國網(wǎng)購的主要形勢,但是普及率較低,不到網(wǎng)絡(luò)購物總數(shù)3成。目前電子商務(wù)網(wǎng)絡(luò)消費已經(jīng)成為消費的主流傾向,消費已經(jīng)從青年開始像中老年擴展,網(wǎng)絡(luò)消費已經(jīng)成為人民必不可少的地方。占據(jù)了國內(nèi)很大一部分的消費額。1.2.2電商平臺的國外研究進展國外十分重視這種以互聯(lián)網(wǎng)為依托進行商品和服務(wù)交易的新經(jīng)濟活動。美國是世界最早發(fā)展電子商務(wù)的國家,同時也是電子商務(wù)發(fā)展最為成熟的國家,一直引領(lǐng)全球電子商務(wù)的發(fā)展,是全球電子商務(wù)成熟發(fā)達地區(qū)。歐盟電子商務(wù)的發(fā)展起步較美國晚,但發(fā)展速度較快,成為全球電子商務(wù)較為領(lǐng)先的地區(qū)。亞洲作為電子商務(wù)的新秀,市場潛力較大,但是近年的發(fā)展速度和所占份額并不理想,是全球電子商務(wù)的持續(xù)發(fā)展地區(qū)。
全球B2B電子商務(wù)交易一直占據(jù)主導(dǎo)地位,2002年至今,呈現(xiàn)持續(xù)高速增長態(tài)勢,2007年全球B2B交易額達到8.3萬億美元,到2010年B2B交易額將達到20萬億美元。在2016年電子商務(wù)市場規(guī)模已經(jīng)超過了25萬億元。隨著當(dāng)前智能手機的不斷普及到現(xiàn)在為止規(guī)模正在不斷擴大,交易額也在不斷上升。1.3主要工作本畢業(yè)設(shè)計是電商系統(tǒng)的前臺開發(fā)于實現(xiàn),結(jié)合課上學(xué)習(xí)到的知識,課下自學(xué)的一些知識。收集當(dāng)前電商系統(tǒng)的資料進行分析,分析當(dāng)前社會上的電商系統(tǒng)的優(yōu)點以及缺點來進行實現(xiàn),功能模塊主要分為有:首頁、購物車、登錄、以及商品頁面。本軟件的實現(xiàn),主要實現(xiàn)了首頁的動態(tài)化、購物車、商品界面、以及登錄時的安全通過加密來完成。本軟件使用Java語言編寫采用了Gradle來集成SSM框架,頁面采用了bootstrap框架便于適用于各屏幕的適配問題,數(shù)據(jù)庫采用當(dāng)前三大數(shù)據(jù)庫之一的Mysql,在編寫功能時數(shù)據(jù)庫個表之間采用當(dāng)前使用比較多的內(nèi)連接而不是使用外鍵。開發(fā)軟件采用eclipse進行軟件的開發(fā),頁面設(shè)計使用vscode設(shè)計,設(shè)計之后放入eclipse里面改成freemaker框架,從而實現(xiàn)設(shè)計軟件時的全部功能。1.4論文的結(jié)構(gòu)第一章緒論,主要描述了對我研究的這個課題的一些理解和課題由來,以及對該論文課題實現(xiàn)功能的一些思路以及看法,如何解決問題。第二章相關(guān)知識,主要描述我使用的框架、編程語言、使用的數(shù)據(jù)庫等相關(guān)知識并進行總結(jié),以及可能需要用到的知識以及可能需要的范圍舉出來。第三章系統(tǒng)分析,主要描述了對課題進行的需求分析以及文檔撰寫。第四章系統(tǒng)設(shè)計,主要描述了框架的設(shè)計,功能的設(shè)計以及數(shù)據(jù)庫設(shè)計,畫出與之對應(yīng)的程序圖并進行分析與設(shè)計。第五章系統(tǒng)的實現(xiàn),主要描述了硬件的配置以及需要的軟件版本需要的包等。第六章總結(jié)與展望,主要描述了在課題結(jié)束我的一系列的歸納心得以及后面產(chǎn)生的對程序進行優(yōu)化的思路,以及一些其他的想法等。
2.相關(guān)知識2.1領(lǐng)域知識2.1.1Java1.8環(huán)境本次畢業(yè)設(shè)計課題實現(xiàn)的過程中,選用的開發(fā)環(huán)境是Java1.8的環(huán)境。選用Java開發(fā)環(huán)境為什么呢?主要有一下幾點原因:(一)Java對比c語言有著一個特別的優(yōu)勢那就是垃圾回收機制,對于記性差,馬虎的人來說,不需要手動釋放,它會在閑暇時自動回收無用的變量。同時它有著跨平臺的優(yōu)點。(二)Java是世界上受歡迎排行榜上前三的重要人物,優(yōu)點自然多多,同時因為受歡迎的程度高,畢業(yè)之后出去找工作也更加容易更加簡單,自然工資也就容易高些,同時還可以拿出去當(dāng)自己完成的項目表示自己有項目開發(fā)經(jīng)驗一舉兩得。(三)現(xiàn)在已經(jīng)有了Javajdk1.9版本了但是很多軟件并沒有更新軟件適應(yīng)于1.9版本可能會導(dǎo)致無法識別jdk甚至出一些別的問題,同時1.9版本新出的難免會不夠穩(wěn)定,綜上我選擇了穩(wěn)定同時大部分軟件都適應(yīng)的1.8版本的jdk。2.1.2Gradle (一)Gradle是一個項目自動化開源工具,它拋棄了基于xml的各種繁瑣配置,同時Gradle以面向Java應(yīng)用為主,它支持局部構(gòu)建,同時有著單元測試方法,簡單方便。(二)使用于各種結(jié)構(gòu)的工程可以輕松遷移。(三)免費開源。2.1.2SpringBoot框架SpringBoot是當(dāng)前十分流行的框架之一,它設(shè)計目的是簡化初始搭建和開發(fā)過程,之需要按照它規(guī)定的方式開發(fā)就可以無需配置,同時它默認配置了多個框架,支持多個框架的使用,使用簡單對比ssm的眾多配置相比SpringBoot配置少僅僅數(shù)行就可以完成配置。2.1.3FreeMarker模板Freemaker模板是基于模板和動態(tài)數(shù)據(jù)并用來輸出文本的通用工具,它具有如下有點:(一)FreeMarker是完全免費的(二)性能好,對比jsp和velocity,F(xiàn)reemaker是性能是最好的(三)實現(xiàn)嚴格的mvc分離(四)內(nèi)置大量的常用功能如時間格式化(五)宏定義時十分方便(六)靜態(tài)化模板增加訪問效率不卡頓,提高用戶體驗2.1.4SpringMVC當(dāng)前的大部分框架都是采用SpringMVC的思想,前臺發(fā)送請求到后臺,先到控制器,控制器調(diào)用業(yè)務(wù)層處理數(shù)據(jù)邏輯,邏輯層在向持久層發(fā)送請求,持久層進行操作數(shù)據(jù)庫,在將請求結(jié)果返回給業(yè)務(wù)層,業(yè)務(wù)層將數(shù)據(jù)返回給控制器,控制器將數(shù)據(jù)返回給前臺,再有前臺進行頁面數(shù)據(jù)渲染。2.1.5SSMSSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis兩個開源框架整合而成。是當(dāng)前比較普遍也常見的簡單的web項目的框架。Spring作為整個框架的配置中心,進行著里面bean元素的管理以及創(chuàng)建,SpringMVC是一種層次結(jié)構(gòu)的設(shè)計,將用戶的操作分層,mapper層為數(shù)據(jù)庫的操作層也就是持久層,service層為邏輯層,controller層為操作層。mybatis是對jdbc的封裝,它讓數(shù)據(jù)庫底層操作變的透明。mybatis的操作都是圍繞一個sqlSessionFactory實例展開的。mybatis通過配置文件關(guān)聯(lián)到各實體類的Mapper文件,Mapper文件中配置了每個類對數(shù)據(jù)庫所需進行的sql語句映射。在每次與數(shù)據(jù)庫交互時,通過sqlSessionFactory拿到一個sqlSession,再執(zhí)行sql命令。頁面發(fā)送請求給控制器,控制器調(diào)用業(yè)務(wù)層處理邏輯,邏輯層向持久層發(fā)送請求,持久層與數(shù)據(jù)庫交互,后將結(jié)果返回給業(yè)務(wù)層,業(yè)務(wù)層將處理邏輯發(fā)送給控制器,控制器再調(diào)用視圖展現(xiàn)數(shù)據(jù)。圖4-1MVC架構(gòu)設(shè)計模式工作原理圖2.2平臺工具2.2.1eclispe代碼編輯器eclipse擁有著編寫、查錯、編譯、幫助等功能,這對Java來說可是非常非常實用的功能,同時帶有著擴展性好這一優(yōu)點,需要什么插件直接安裝,同時免費開放,占用內(nèi)存有小,缺點的話就是純Java編寫的導(dǎo)致打開時很慢。2.2.2Navicat圖形化用戶界面Navicat是專門為MySQLl量身定做的為MySQL提供了數(shù)據(jù)庫管理等功能,為開發(fā)的程序員提供簡潔的界面降低開發(fā)成本,操作簡單,為開發(fā)者開發(fā)帶來更好的體驗感以及開發(fā)效率。2.3MySQL數(shù)據(jù)庫該課題的實現(xiàn)我選擇了MySQL,選擇MySQL的原因:(一)因為我對MySQL比較熟悉用的時間和次數(shù)相較其它數(shù)據(jù)庫用的次數(shù)多時間更長。同時MySQL對于一般的個人使用和小型企業(yè)來說,已經(jīng)足夠用了;(二)MySQL是開源的軟件,可以大幅度降低開發(fā)的成本;(三)MySQL支持各種的操作系統(tǒng);(四)MySQL支持多線程可以更好的利用CPU的資源;(五)MySQL可以優(yōu)化算法,有效提高查詢效率;(六)MySQL在5.7版本中新增了支持原生的JSON;(七)MySQL數(shù)據(jù)庫體積小,使用簡單,安裝方便;綜上所述,我選擇了MySQL作為我課題實現(xiàn)的數(shù)據(jù)庫;2.4可行性分析系統(tǒng)可行性分析,主要從技術(shù)可行性、時間可行性、費用可行性、社會因素可行性四個方面對系統(tǒng)中在設(shè)計與實現(xiàn)的過程中可能會遇到的問題、面臨的挑戰(zhàn),做一次系統(tǒng)的分析,最后得出結(jié)論,該系統(tǒng)是否可行。下面就從這四個角度詳細進行分析。2.4.1技術(shù)可行性本次課題研究實現(xiàn)的系統(tǒng)在技術(shù)層面上主要是用到:Java語言開發(fā)技術(shù)、Mysql數(shù)據(jù)庫技術(shù),SSM框架以及gradle集成。在原理和編程實現(xiàn)上都遵循Java原本的編程思路,我自己對java有些進行,自己進行了一些學(xué)習(xí)以及研究,同時也自己完成了一些簡單Java開發(fā)項目,所以在Java這個方面,我需要多進行一些實踐,以及進行一些知識面的擴展。Mysql數(shù)據(jù)庫在大學(xué)課程中,就已經(jīng)對此部分的內(nèi)容有詳細的教學(xué),我在幾個簡單的java項目中也是運用的Mysql數(shù)據(jù)庫所以對此數(shù)據(jù)庫還是比較熟悉的,只是需要在實際的項目中加以運用,難度不會很大,同時Mysql是三大數(shù)據(jù)庫之一網(wǎng)上的資源也比較多,所以數(shù)據(jù)庫這一塊應(yīng)該沒什么問題可以自己尋找資料解決,SSM框架在上課時老師已經(jīng)很仔細的講過,而且在期末考試時也曾出過不一樣的題目來進行考試,我的幾個簡單項目也大多運用了SSM框架。經(jīng)過上述的分析,該基于SSM的電商系統(tǒng)的前臺開發(fā)在技術(shù)可行性上是沒問題的是可行的。2.4.2時間可行性本次課題的開題時間是十二月份,也就是說整體的課題研究工作從十二月份就已經(jīng)開始,經(jīng)過前期的一些電商系統(tǒng)的調(diào)研工作,以及導(dǎo)師一起研究題目以及確定題目的可行性,就可以真正的開始動手寫系統(tǒng)的一些功能和進行一些相關(guān)文檔的撰寫工作。到答辯和論文上交初稿的時間大概有三個月的時間。在這一段時間中,我覺得我應(yīng)該有能力來完成相關(guān)代碼的編碼工作和文檔撰寫工作,同時應(yīng)該還會留有一定的時間進行bug修復(fù)以及系統(tǒng)的優(yōu)化與完善。因此經(jīng)過以上分析,SSM的電商系統(tǒng)的前臺開發(fā)在時間可行性上是可行的。2.4.3費用可行性本次課題研究實現(xiàn)過程中,前期的電商系統(tǒng)的調(diào)研工作和有關(guān)材料收集整理工作,均是本人去互聯(lián)網(wǎng)收集、書籍上查找,未花費任何的經(jīng)費。在實現(xiàn)階段,主要用到的設(shè)備,就是本人的筆記本電腦,下載的開發(fā)軟件,以及數(shù)據(jù)庫等均為官方免費版,不存在產(chǎn)生任何費用的問題。因此經(jīng)過這些分析,SSM的電商系統(tǒng)的前臺開發(fā)在費用可行性上是可行的。2.4.4社會因素可行性本次課題的核心主題和創(chuàng)意想法均來自于本人,未抄襲任何期刊書籍,不存在有任何違反道德和法律的問題。在實現(xiàn)系統(tǒng)的過程中,所使用的軟件均為正版、免費的由官方渠道提供下載。因此經(jīng)過這些分析,SSM的電商系統(tǒng)的前臺開發(fā)在社會因素可行性上是可行的。3.系統(tǒng)分析3.1需求分析需求分析是在開始一個系統(tǒng)實現(xiàn)的最初始階段,通過對系統(tǒng)的功能模塊的一個劃分,從每個功能模塊的詳細需求出發(fā),分析每個功能模塊的使用用戶的功能需求。在功能流程上,分析功能業(yè)務(wù)的流程是否合理,功能業(yè)務(wù)模塊的劃分是否合理,尋找證據(jù)求證。除了要主要在功能需求上多做考量,在系統(tǒng)的可行性上也要做出考慮??梢詮南到y(tǒng)的技術(shù)可行性、時間可行性、費用可行性、社會因素可行性等上多方面進行考量,最終做綜合分析,判斷是否可行。3.1.1系統(tǒng)流程分析電商系統(tǒng)整體流程分析用戶點擊功能按鈕時請求后臺,后臺應(yīng)先進行邏輯判斷,若有參數(shù)判斷數(shù)據(jù)是否正確,不正確給出異常提示,正確給出正確響應(yīng),功能結(jié)束。具體流程圖如圖3-1所示: 圖3-1電商系統(tǒng)整體流程圖3.1.2角色用例分析用戶用例圖如圖3-5所示:用戶用例圖3-5管理員用例圖如圖3-6所示: 管理員用戶圖3-64.系統(tǒng)設(shè)計4.1系統(tǒng)架構(gòu)電商平臺的功能主要有用戶,訂單,以及商品3個模塊,為了可以更好更方便的調(diào)整頁面以及菜單我將主頁以及菜單也改成了動態(tài)獲取,通過改變數(shù)據(jù)庫就可以改變相應(yīng)的圖片標題等內(nèi)容提高用戶體驗。功能結(jié)構(gòu)圖如圖4-1所示:功能結(jié)構(gòu)圖4-14.2功能設(shè)計4.2.1頁面布局設(shè)計在設(shè)計的過程中要求操作不能繁瑣要簡單化,對頁面要求簡潔美觀,同時淺顯易懂,降低用戶時間,提高用戶體驗感。4.2.2基礎(chǔ)用戶登錄模塊設(shè)計登錄模塊是電商系統(tǒng)的一個基礎(chǔ)模塊,我的設(shè)計是:用戶可以不登錄享受到系統(tǒng)里面所提供的其他功能,但是不登錄的話更換電腦進行登錄時就會出現(xiàn)購物車中的東西消失了,所以進行推薦登錄。登錄的設(shè)計,將以最簡單的方式實現(xiàn),用戶需要輸入用戶名和密碼,然后點擊登錄按鈕后,進行加密后傳給后臺,后臺解密驗證用戶名和密碼,判斷是否正確,正確的話跳到商城主頁。4.2.3購物車添加物品設(shè)計購物車模塊為電商系統(tǒng)的重點所在,在用戶點擊了添加進購物車的時候進行判斷是否是登錄過了,登錄過會將其用戶id以及物品id傳入后臺,后臺將其存入數(shù)據(jù)庫中。4.2.4點擊購物車模塊設(shè)計判斷是否是進行了登錄,登錄過后根據(jù)用戶id從數(shù)據(jù)庫購物車表中查找出用戶購物車中的物品并計算其價格進行計算后返回前端進行頁面的渲染。4.3數(shù)據(jù)庫設(shè)計4.3.1概念數(shù)據(jù)模型設(shè)計數(shù)據(jù)庫的設(shè)計主要是根據(jù)一些可能發(fā)生需要的功能以及一些用到的功能來設(shè)計,通過設(shè)計每個表詳細的字段和索引、sql語句等來實現(xiàn)數(shù)據(jù)庫設(shè)計的。E-R圖如圖4-3、4-4、4-5、4-6、4-7所示:圖4-3用戶E-R圖 圖4-4商品E-R圖 圖4-5訂單E-R圖 圖4-6購物車E-R圖圖4-7數(shù)據(jù)庫關(guān)系整體E-R圖4.3.2物理數(shù)據(jù)模型設(shè)計用戶表的設(shè)計,主鍵為用戶ID、唯一索引也是用戶ID,用戶的相關(guān)信息通過主鍵用戶ID進行關(guān)聯(lián)用戶信息以及查找相關(guān)用戶。表名:users,具體設(shè)計如下:用戶表的表結(jié)構(gòu):字段名數(shù)據(jù)類型字段含義idint(10)NOTNULL用戶IDusernamevarchar(112)NOTNULL用戶名passwordvarchar(32)NOTNULL用戶密碼emailvarchar(100)用戶郵箱addressvarchar(100)用戶地址sexvarchar(4)性別ageint(3)年齡paypwdvarchar(32)支付密碼birthdaydatetime生日iphoneint(11)手機號pay_pointsint(10)支付方式last_ipvarchar(15)最后一次登錄iphead_picvarchar(100)頭像typeInt(4)是否有驗證導(dǎo)航欄表的設(shè)計,主鍵是ID,唯一索引也是ID,通過導(dǎo)航欄ID以及父類ID關(guān)聯(lián)對應(yīng)的子類ID,通過圖片路徑更換對應(yīng)頁面的圖片以及相應(yīng)的價格等。表名:system_module,具體設(shè)計如下:字段名數(shù)據(jù)類型字段含義idint(12)NOTNULL導(dǎo)航欄idnamevarchar(255)分類名稱titlevarchar(255)分類標題priceInt(120)價格srcvarchar(255)圖片路徑typevarchar(255)分類類型imghrefvarchar(255)圖片鏈接地址imgdescribevarchar(255)商品圖片描述parent_idint(12)父id對應(yīng)子idlevelint(1)分類等級商品表的設(shè)計,主鍵是ID,唯一索引也是ID,通過商品ID查找商品的具體相關(guān)信息,如價格商品名稱等內(nèi)容,表名:goods,設(shè)計具體如下:字段名數(shù)據(jù)類型字段含義goods_idint(12)NOTNULL商品表idcat_namevarchar(120)分類名稱extend_cat_idint(11)擴展分類idgoods_snvarchar(60)商品編號goods_namevarchar(120)商品名稱click_countint(10)點擊數(shù)brand_idint(10)品牌idstore_countint(5)庫存數(shù)量comment_countint(5)商品評論數(shù)market_priceint(10)市場價cost_priceint(10)商品成本價keywordsvarchar(255)商品關(guān)鍵詞goods_remarkvarchar(255)商品簡單描述goods_contentvarchar(255)商品詳細描述original_imgvarchar(255)商品上傳原始圖virtual_refundint(1)是否允許過期退款1是,0否is_on_saleint(1)是否上架is_free_shippingint(1)是否包郵0否1是on_timedatetime上架時間update_timedatetime最后更新時間prom_typeint(1)0默認1搶購2團購3優(yōu)惠促銷4預(yù)售5虛擬6拼團sales_sumint(11)商品銷量訂單表的設(shè)計,主鍵是order_id,唯一索引也是order_id,通過用戶ID關(guān)聯(lián)用戶對應(yīng)的用戶,通過商品ID關(guān)聯(lián)對應(yīng)的商品詳細信息。表名:order,設(shè)計具體如下:字段名數(shù)據(jù)類型字段含義order_idint(12)NOTNULL訂單idorder_snvarchar(20)訂單編號user_idint(10)用戶idorder_statusint(1)訂單狀態(tài)shipping_statusint(1)發(fā)貨狀態(tài)pay_statusint(1)支付狀態(tài)consigneevarchar(60)收貨人countryint(11)國家addressvarchar(255)地址zipcodevarchar(60)郵政編碼mobilevarchar(60)手機emailvarchar(60)郵件shipping_codevarchar(32)物流codeshipping_namevarchar(120)物流名稱pay_codevarchar(32)支付codepay_namevarchar(120)支付方式名稱invoice_titlevarchar(256)發(fā)票抬頭goods_priceint(10)商品總價shipping_priceint(10)郵費user_moneyint(10)使用余額coupon_priceint(10)優(yōu)惠券抵扣integralint(10)使用積分integral_moneyint(10)使用積分抵多少錢order_amountint(10)應(yīng)付款金額total_amountint(10)訂單總價add_timedatetime下單時間shipping_timedatetime最后新發(fā)貨時間購物車表的設(shè)計,主鍵是ID,唯一索引也是收支記錄ID,通過用戶ID關(guān)聯(lián)用戶相關(guān)信息,通過商品ID關(guān)聯(lián)商品相關(guān)信息。表名:cart,設(shè)計具體如下:字段名數(shù)據(jù)類型字段含義idint(12)NOTNULL購物車iduser_idint(8)用戶idgoods_idint(8)商品idgoods_snvarchar(60)商品貨號goods_namevarchar(120)商品名稱market_pricedecimal(10)市場價goods_pricedecimal(10)本店價格imgdescribevarchar(255)商品圖片描述member_goods_pricedecimal(10)會員折扣價goods_numsmallint(5)購買數(shù)量spec_keyvarchar(64)商品規(guī)格spec_key_namevarchar(64)商品規(guī)格組合名稱bar_codevarchar(64)商品條形碼selectedtinyint(1)購物車選中狀態(tài)add_timeint(11)加入購物車的時間prom_typetinyint(1)0普通訂單,1限時搶購,2團購,3促銷優(yōu)惠prom_idint(11)活動idskuvarchar(128)skusrcvarchar(255)商品圖片路徑4.4功能流程設(shè)計(一)用戶登錄功能流程分析登錄模塊是電商系統(tǒng)實現(xiàn)的基礎(chǔ)模塊,用戶登錄到了系統(tǒng)中,就能享受到系統(tǒng)里面所提供的其他功能。登錄模塊在電商系統(tǒng)中是比較基礎(chǔ)的模塊我們將以最簡單的方式實現(xiàn),用戶需要輸入用戶名和密碼,然后點擊登錄按鈕后,前端頁面上負責(zé)將其賬號密碼通過AES加密加密之后傳給后臺,后臺將其解密后驗證用戶名和密碼,判斷是否正確,正確的話跳轉(zhuǎn)到商城主頁。如果判斷不正確,登錄窗口給予相應(yīng)的提示,并要求用戶重新輸入,重新進行登錄操作。具體的登錄模塊的流程圖如圖4-4-1所示:圖3-1用戶登錄功能流程圖(二)購物車功能流程分析購物車模塊為電商系統(tǒng)的一個重要模塊,為重中之重,我們首先理清購物車模塊的邏輯。首先點擊加入購物車時,將物品id,用戶id傳入給后臺,進行數(shù)據(jù)校驗通過后后臺將其加入購物車的表中,否則重新進行添加,通過用戶id與用戶表進行聯(lián)系。其次點擊購物車按鈕時,后臺通過用戶id查找出用戶購物車中物品數(shù)目,并計算其中價格返回前端,前端進行數(shù)據(jù)渲染,點擊結(jié)算按鈕時,跳到支付頁面進行支付具體的購物車模塊的流程圖如圖3-2,3-3所示:圖3-2購物車添加商品功能流程圖 圖3-3購物車查詢商品功能流程圖5系統(tǒng)的實現(xiàn)5.1軟硬件環(huán)境情況5.1.1軟件環(huán)境本次課題實現(xiàn)運用的軟件主要有:(1)Eclipse代碼編輯器采用的是Eclipse-keeper版本,軟件為官方免費版本,界面簡潔、操作簡單、易上手,是軟件工程師最好用得代碼編輯器之一。(2)Mysql數(shù)據(jù)庫服務(wù)器采用的是Mysql5.5版本的數(shù)據(jù)庫服務(wù)器,軟件可以從Mysql官方網(wǎng)站上直接下載,根據(jù)自己電腦的操作系統(tǒng)進行選擇就行。Mysql是關(guān)系型的數(shù)據(jù)庫,保存數(shù)據(jù)可靠,執(zhí)行命令方便快捷,擁有強大的事物控制系統(tǒng),保證每個數(shù)據(jù)操作環(huán)節(jié)上的數(shù)據(jù)完整性。(3)PhotoShop圖片編輯器采用的PhotoShop3.0版本,PhotoShop有收費版本和不收費版本,我選用了不收費的版本,因為它功能強大,我只是用于軟件圖片素材的簡單編輯,所以采用免費版本即可。(4)Visio流程圖制作軟件Visio,提供了多種多樣的模型和標注,供軟件開發(fā)工程師進行各種模型設(shè)計,十分方便好用。(5)WPS文檔編輯器WPS應(yīng)該大家都很熟悉,是一款免費的辦公軟件,用于word的文檔編輯和排版。5.1.2硬件環(huán)境本次畢業(yè)設(shè)計的系統(tǒng)實現(xiàn)完全在我個人的筆記本電腦上工作。在代碼實現(xiàn)、模型設(shè)計、文檔撰寫期間,電腦未出任何的卡頓問題,以下給出我開發(fā)過程中的筆記本電腦配置。CPU:FX-7500內(nèi)存:8G顯卡:集成顯卡硬盤:500G機械硬盤以及后續(xù)的程序運行也將在此電腦上進行,經(jīng)過測試和調(diào)試,一切均正常,說明目前本人筆記本電腦的硬件環(huán)境完全符合系統(tǒng)的運行需求。5.2軟件系統(tǒng)核心功能展示5.2.1基礎(chǔ)登錄模塊基礎(chǔ)登錄模塊,通過用戶在界面上,輸入用戶名和密碼,點擊登錄按鈕,觸發(fā)該按鈕的監(jiān)聽器,監(jiān)聽器響應(yīng)事件被后臺邏輯處理器發(fā)現(xiàn),進行邏輯處理。邏輯處理的過程是這樣的:解密后拿用戶名去數(shù)據(jù)庫進行搜索,得到查詢結(jié)果,判斷結(jié)果是否為空,為空則說明用戶名密碼錯誤,但會給界面控件錯誤信息,要求用戶重新輸入,進行重置操作,要求重新登錄。判斷結(jié)果若不為空,則說明用戶名和密碼正確,返回響應(yīng)信息后跳轉(zhuǎn)頁面。登錄頁面如圖5-2-1所示:圖5-2-1登錄頁面publicStringqueryList(Useresuseres,Modelmodel)throwsNoSuchAlgorithmException,NoSuchPaddingException, InvalidKeyException,IllegalBlockSizeException,BadPaddingException{ List<Useres>useresList=null; UseresExampleexample=newUseresExample(); UseresExample.Criteriacriteria=example.createCriteria(); //解密 Stringpassword="12345678"; AESaes=newAES(); byte[]decryptFrom=null; byte[]decryptResult=null; StringencryptResultStr=null; if(useres.getId()!=null){ criteria.andIdEqualTo(useres.getId()); } useresList=useresService.selectByExample(example); for(inti=0;i<useresList.size();i++){ StringpassWord=useresList.get(i).getPassword(); encryptResultStr=passWord; decryptFrom=aes.parseHexStr2Byte(encryptResultStr); decryptResult=aes.decrypt(decryptFrom,password); useresList.get(i).setPassword(newString(decryptResult)); } model.addAttribute("useresList",useresList); return"users/list"; }5.2.2主頁設(shè)計模塊主頁的設(shè)計同樣是一個重點問題,一個電商系統(tǒng)不可能頁面為靜態(tài)頁面,畢竟需要隨時的更換物品,所以將數(shù)據(jù)從數(shù)據(jù)庫進行查詢;查詢到的數(shù)據(jù)進行返回給前端頁面進行數(shù)據(jù)的渲染,這樣修改時可以通過后臺頁面修改之后數(shù)據(jù)庫會發(fā)生改變,同時前端頁面也就會發(fā)生變化了。主頁如圖5-2-2所示:圖5-2-2主頁publicclassXiaoMiController{ @Autowired privateImgServiceimgService; @Autowired privateGoodsCategoryServicegoodsCategoryService; @Autowired privateImgPcServiceImgPcService; @RequestMapping("/cate") publicStringgetcate(Modelmodel){ List<Imgpc>imgpcs=ImgPcService.queryImgPcByParentID((Integer)0); model.addAttribute("imgpcs",imgpcs); //橫向?qū)Ш綑? List<ImgPcVo>ImgPclist=ImgPcService.findimgPcVo((Integer)0); model.addAttribute("ImgPclist",ImgPclist); //垂直導(dǎo)航欄 List<ImgPcVo>ImgPclist1=ImgPcService.findimgPcVo((Integer)110); model.addAttribute("ImgPclist1",ImgPclist1); //輪播圖 ImgpcExamplesildeExample=newImgpcExample(); ImgpcExample.Criteriacriteriasilde=sildeExample.createCriteria(); criteriasilde.andNameEqualTo("輪播圖"); criteriasilde.andTypeEqualTo("輪播"); List<Imgpc>silderimg=ImgPcService.selectByExample(sildeExample); model.addAttribute("silderimg",silderimg); //小米logo ImgpclogoImg=ImgPcService.selectByPrimaryKey(70); model.addAttribute("logoImg",logoImg); //頂部廣告圖 ImgpctopAdImg=ImgPcService.selectByPrimaryKey(56); model.addAttribute("topAdImg",topAdImg); List<GoodsCategory>cate=goodsCategoryService.selectNameBymobileName("頂部導(dǎo)航欄分類"); model.addAttribute("cate",cate); List<GoodsCategory>topcate=goodsCategoryService.selectNameBymobileName("頂部導(dǎo)航條分類"); model.addAttribute("topcate",topcate); return"youyou/xiaomiNav"; } @RequestMapping("/index") publicStringindex(Modelmodel,Imgpcimgpc){ ImgpcExampleimgExample=null; imgExample=newImgpcExample(); ImgpcExample.Criteriacritria=imgExample.createCriteria(); if(imgpc.getName()!=null){ critria.andLevelEqualTo(2); critria.andNameLike("%"+imgpc.getName()+"%"); }else{ critria.andLevelEqualTo(2); } /**ImgpcExampleimgExample=newImgpcExample(); ImgpcExample.Criteriacritria=imgExample.createCriteria(); critria.andLevelEqualTo(2); List<Imgpc>imgpclist=ImgPcService.selectByExample(imgExample); model.addAttribute("imgpclist",imgpclist); **/ List<Imgpc>imgpclist=ImgPcService.selectByExample(imgExample); model.addAttribute("imgpclist",imgpclist); return"imgpc/list"; } @RequestMapping("/delete") publicStringdelete(Integerid){ ImgPcService.deleteByPrimaryKey(id); return"redirect:index"; } }5.2.3購物車模塊購物車模塊的邏輯。首先點擊加入購物車時,將物品id,用戶id傳入給后臺,進行數(shù)據(jù)校驗通過后后臺將其加入購物車的表中,否則重新進行添加,通過用戶id與用戶表進行聯(lián)系。其次點擊購物車按鈕時,后臺通過用戶id查找出用戶購物車中物品數(shù)目,并計算其中價格返回前端,前端進行數(shù)據(jù)渲染。購物車如圖5-2-3所示:圖5-2-3購物車publicclassCartController{ @Autowired privateCartServicecartService; @RequestMapping("/index")publicStringqueryList(Modelmodel){ List<CartVo>cart=cartService.selectfromCartAndPromOrder(); model.addAttribute("carts",cart); return"cart/list";} @RequestMapping("/toedit") publicStringtoedit(Modelmodel,Cartcart){ cart=newCart(); model.addAttribute("carts",cart); return"/cart/edit"; } @RequestMapping("/edit") publicStringedit(Cartcart){ cartService.insert(cart); return"redirect:index"; } @RequestMapping("/delete") publicStringdelete(Integerid){ cartService.deleteByPrimaryKey(id); return"redirect:index"; } }6系統(tǒng)測試6.1測試目標系統(tǒng)測試的目的是看是否完成了預(yù)計的計劃目標,成果展示是否有問題,對個個功能模塊進行系統(tǒng)化的測試,同時對頁面布局進行多個瀏覽器以及多屏幕測試看是否適配。6.2功能測試測試方法采用了黑盒測試以及功能測試,對系統(tǒng)的各功能進行分別測試,黑盒測試比較簡單,需要測試人員掌握基礎(chǔ)操作即可。先測試登錄功能,在登錄時前臺會將密碼通過AES進行加密,加密之后將密碼傳給后臺,后臺對其進行解密,解密之后對比密碼是否一致,一致返回頁面并進行跳轉(zhuǎn)到主頁,進行頁面渲染,測試時需要測試的東西1、后臺進行打斷點測試密碼是否加密,2、測試密碼是否解密成功3、頁面跳轉(zhuǎn)是否成功,4、密碼輸入錯誤賬號輸入錯誤情況,5、是否會提示必填字段。6.2.1黑盒測試用例登錄測試用例如圖6-2-1所示:輸入賬號輸入密碼是否加密提示是否跳轉(zhuǎn)adminadmin是賬號或密碼錯誤否tigertiger是賬號或密碼錯誤否admintiger是賬號或密碼錯誤否tigeradmin是登錄成功是admin否賬號必填否tiger否密碼必填否 表6-2-1登錄測試結(jié)果表用戶測試用例如圖6-2-2所示:是否輸入用戶信息輸入用戶名輸入密碼提示數(shù)據(jù)庫是否有數(shù)據(jù)是tigeradmin用戶名重復(fù)否是admin密碼不能為空否是adminadmin添加成功是否adminadmin用戶必填信息不能為空否 表6-2-2用戶測試結(jié)果表購物車測試用例如圖6-2-3所示:選定商品輸入數(shù)量確定添加提示數(shù)據(jù)庫是否有數(shù)據(jù)是0是請輸入商品數(shù)量否是1否否是1是添加成功是否1是沒有添加商品否 表6-2-3購物車測試結(jié)果表6.3性能測試本次電商系統(tǒng)黑盒測試是通過模擬用戶操作,管理員操作對該電商系統(tǒng)進行測試,看性能、適配、功能等是否可以滿足客戶要求。性能:通過使用筆記本電腦、臺式電腦以及各配置不同的電腦進行訪問,訪問流暢沒有卡頓。說明性能過關(guān)沒有什么問題不會出現(xiàn)卡頓等情況。適配:使用了qq瀏覽器、谷歌瀏覽器、火狐瀏覽器、IE瀏覽器、360瀏覽器等市面上常用瀏覽器進行瀏覽,頁面均有適配,說明符合瀏覽器適配條件,不會出現(xiàn)不同瀏覽器看到的頁面不同或頁面崩潰的情況。使用不同分辨率電腦進行訪問查看頁面會不會出現(xiàn)崩潰字體不清楚,圖片失真等情況。頁面大小會根據(jù)不同分辨率大小的電腦進行自適應(yīng),圖片也均清晰沒有出現(xiàn)失真的情況。說明適配過關(guān)不會出現(xiàn)瀏覽器訪問以及不同分辨率電腦訪問時頁面崩潰等情況。功能:用戶具有基礎(chǔ)的登錄,注冊、購物車等功能,管理員具有進入后臺更換主頁圖片、輪播圖、搶購商品、搶購時間、更換商品介紹、商品價格等功能。功能符合市面上電商系統(tǒng)的功能,功能滿足用戶以及管理員的使用。網(wǎng)絡(luò)相應(yīng)速度:測試了在各局域網(wǎng)內(nèi)網(wǎng)絡(luò)相應(yīng)速度,以及通過花生殼代理進行內(nèi)網(wǎng)穿透,來進行外網(wǎng)訪問,測試結(jié)果影響速度很快符合要求,不會出現(xiàn)卡頓等情況,用戶體驗良好。壓力測試:用戶多人訪問時會不會出現(xiàn)系統(tǒng)崩潰或數(shù)據(jù)錯亂等情況,同時5人使用外網(wǎng)訪問使用正常不會卡頓以及數(shù)據(jù)庫數(shù)據(jù)以及返回相應(yīng)正常,當(dāng)8人通過外網(wǎng)訪問時系統(tǒng)出現(xiàn)卡頓現(xiàn)象數(shù)據(jù)庫數(shù)據(jù)返回結(jié)果正常,測試結(jié)果這應(yīng)該是正常的筆記本電腦進行內(nèi)網(wǎng)穿透配置問題多人訪問時會出現(xiàn)卡頓,數(shù)據(jù)沒有出現(xiàn)問題證明系統(tǒng)沒有問題,壓力測試通過。支持并發(fā)節(jié)點數(shù):經(jīng)過模擬的環(huán)境測試該系統(tǒng)網(wǎng)站,發(fā)現(xiàn)其并發(fā)節(jié)點達到30個時,但是網(wǎng)絡(luò)運營的速度起伏會較大,延遲時間在9秒左右,也是符合客戶的需求。多人訪問時可以通過負載進行系統(tǒng)的負載均衡,效率大幅度提升,線上使用時可以進行負載,達到高并發(fā)穩(wěn)定網(wǎng)絡(luò)訪問速度,降低延遲時間??偨Y(jié)與展望長達三五個多月的畢業(yè)設(shè)計課題的研究和開發(fā),我完成了基于SSM的電商的平臺開發(fā)以及各功能的測試讓我學(xué)到了很多東西也遇到了很多的問題,我們開發(fā)的時候不能只考慮得到成品就可以了,還需要考慮到用戶的體驗,如何提高訪問效率,如何給后臺減輕壓力,還需要考慮到電腦分辨率以及不同瀏覽器的適配,前后端交互時又要考慮到數(shù)據(jù)會不會泄露,會不會泄露用戶的相關(guān)信息,如何做到保密等問題。在遇到問題時我會去請教身邊的老師、同學(xué)去圖書館查閱資料,網(wǎng)上找相關(guān)例題解決方案,將遇到的問題一個一個解決。我將大學(xué)以來學(xué)到的理論知識等全部結(jié)合運用于此次開發(fā)中,將其融會貫通,此次開發(fā)提高了開發(fā)技術(shù)上的技術(shù)提升,也提高了有撰寫標準開發(fā)文檔的能力提升,同時也學(xué)會了遇到困難和難題的時候,堅定信念,慢慢磨練出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年呂梁貨運資格證在哪里練題
- 2025年新余b2從業(yè)資格證模擬考試題目
- 土地賠償協(xié)議書
- 2025年浙江道路運輸從業(yè)資格證考試模擬試題
- 污泥干化運輸服務(wù)協(xié)議
- 二零二五年度辦事處人工智能圖像識別技術(shù)研發(fā)與應(yīng)用協(xié)議
- 北師大版九年級數(shù)學(xué)上冊概率的進一步認識《用樹狀圖或表格求概率》公開課教學(xué)課件
- 建筑工程施工勞務(wù)協(xié)議
- 車庫抵押借款合同
- 戶外廣告場地租賃合同
- 臨床診療指南-耳鼻咽喉頭頸外科分冊
- 全套電子課件:極限配合與技術(shù)測量(第五版)
- 2021年4月自考00808商法試題及答案含解析
- 高考概率大題必練20題(理科)-含答案
- 2024年最新全國交管12123駕駛證學(xué)法減分(學(xué)法免分)考試題庫附答案
- 拼音練習(xí)字帖(打印版)
- 拖拉機駕駛員培訓(xùn)(課件)
- 寫字樓招租推廣方案
- 安踏單店貨品管理資料課件
- 藥店信息處理與保密技巧
- 蒙曼品最美唐詩:全三冊
評論
0/150
提交評論