版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
I基于SSM的樂(lè)享購(gòu)物商城的設(shè)計(jì)與實(shí)現(xiàn)摘要本系統(tǒng)實(shí)現(xiàn)一個(gè)B2C模式的樂(lè)享購(gòu)物商城,開(kāi)發(fā)的內(nèi)容是實(shí)現(xiàn)前臺(tái)消費(fèi)者購(gòu)買功能和后臺(tái)商家管理功能,優(yōu)化前后端信息交互,體現(xiàn)商城網(wǎng)站動(dòng)態(tài)性。從用戶需求分析入手,通過(guò)訪談了解用戶需要及其想法,進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)和軟件結(jié)構(gòu)設(shè)計(jì),然后詳細(xì)設(shè)計(jì)系統(tǒng)功能,建立一個(gè)便利的購(gòu)物商城。本商城包含功能有:用戶注冊(cè)登錄、商品檢索、購(gòu)物車添加、購(gòu)物車結(jié)算、訂單提交,訂單信息確認(rèn)與修改、編輯商品收藏、用戶信息編輯,管理員密碼修改,商城公告、商品圖片、分類、庫(kù)存、推薦以及評(píng)價(jià)的一系列管理,還有就是訂單處理與查詢以及商城用戶管理。本項(xiàng)目使用SSM框架構(gòu)建系統(tǒng),以MySQL為數(shù)據(jù)庫(kù),采用H-ui前端框架進(jìn)行頁(yè)面美化,使用Java、Html、Javascript、CSS作為開(kāi)發(fā)語(yǔ)言,運(yùn)用JSP技術(shù)動(dòng)態(tài)開(kāi)發(fā)頁(yè)面,在IntelliJIDEA編譯器進(jìn)行開(kāi)發(fā)。關(guān)鍵詞:購(gòu)物商城;B2C;SSM;MySQL;H-ui;CSS;JSP目錄TOC\o"1-2"\h\u20058中英文摘要 (I)315141緒論 (1)309591.1選題依據(jù) (1)98871.2研究?jī)?nèi)容 (1)198951.3進(jìn)度安排 (1)58651.4可行性分析 (2)212661.5開(kāi)發(fā)工具 (2)310142需求分析 (3)76252.1訪談 (4)114502.2數(shù)據(jù)流圖 (5)114142.3數(shù)據(jù)字典 (8)310143數(shù)據(jù)庫(kù)設(shè)計(jì) (9)308453.1概念設(shè)計(jì) (10)120553.2邏輯設(shè)計(jì) (12)5993.3物理設(shè)計(jì) (16)93744軟件結(jié)構(gòu)設(shè)計(jì) (19)97714.1設(shè)計(jì)原理 (19)294494.2細(xì)分模塊 (20)142834.3總體結(jié)構(gòu) (22)183435詳細(xì)設(shè)計(jì) (23)74545.1前臺(tái)模塊 (23)284845.1.1注冊(cè)登錄模塊 (23)284845.1.2購(gòu)買商品模塊 (24)284845.1.3個(gè)人中心模塊 (25)284845.2后臺(tái)模塊 (26)284845.2.1管理員中心模塊 (26)284845.2.2公告管理模塊 (26)284845.2.3商品管理模塊 (27)284845.2.4訂單管理模塊 (28)284845.2.5用戶管理模塊 (29)7205總結(jié) (30)6844參考文獻(xiàn) (31)1緒論1.1選題依據(jù)1.1.1項(xiàng)目背景網(wǎng)絡(luò)的高速發(fā)展使其與日常生活已緊密相連,網(wǎng)上購(gòu)物也應(yīng)運(yùn)而生。實(shí)體店購(gòu)買商品需要更多時(shí)間與精力,無(wú)法在短時(shí)間瀏覽大量不同類型的商品。相比實(shí)體商店,網(wǎng)絡(luò)商城的優(yōu)越性逐漸凸顯,以淘寶、京東為代表的購(gòu)物商城引領(lǐng)著新時(shí)代的網(wǎng)上購(gòu)物潮流,網(wǎng)上購(gòu)物能瀏覽各種各樣的商品,支付方式多樣化,使人們高效快捷地購(gòu)物,逐漸變成人們不可缺少的生活方式。B2C模式是電子商務(wù)的一種模式,表示企業(yè)和客戶之間的商務(wù)應(yīng)用[1]。B2C模式實(shí)現(xiàn)了網(wǎng)上商城的信息化管理,增加了商家獲取顧客的渠道,讓消費(fèi)者和商家的選擇更多,強(qiáng)化了二者之間的雙向選擇溝通,結(jié)合B2C模式構(gòu)建網(wǎng)上商城無(wú)疑是當(dāng)前大數(shù)據(jù)時(shí)代商城網(wǎng)站的最佳選擇。1.1.2項(xiàng)目意義網(wǎng)上購(gòu)物商城是以B/S結(jié)構(gòu)為基礎(chǔ),在B2C模式下運(yùn)行的購(gòu)物交易網(wǎng)站。B/S結(jié)構(gòu)下的商城網(wǎng)站有著分布式的特點(diǎn),使用便捷,可以隨時(shí)隨地進(jìn)行搜索或者瀏覽商品。同時(shí),用戶數(shù)據(jù)更新相對(duì)簡(jiǎn)易,只要更改或刷新網(wǎng)頁(yè)便能自動(dòng)更新數(shù)據(jù),也易于維護(hù)。B/S結(jié)構(gòu)共享性較強(qiáng),而且開(kāi)發(fā)難度小,比較容易實(shí)現(xiàn)系統(tǒng)維護(hù)和擴(kuò)展業(yè)務(wù)。B2C模式使得本項(xiàng)目能體現(xiàn)出客戶與商家之間的緊密關(guān)系,并更好的實(shí)現(xiàn)網(wǎng)上購(gòu)物商城交易的特點(diǎn)[2]。為了構(gòu)建一個(gè)簡(jiǎn)易好用的網(wǎng)上購(gòu)物商城。本項(xiàng)目建立起基于SSM框架的商城網(wǎng)站,前臺(tái)使用簡(jiǎn)潔明了的界面,使用戶能夠快速挑選并購(gòu)買商品。商城后臺(tái)分為商品管理和訂單管理等模塊,實(shí)現(xiàn)系統(tǒng)管理員對(duì)商城商品和用戶訂單的效率管理,整個(gè)商城操作簡(jiǎn)便,購(gòu)物快捷,讓用戶盡情享受購(gòu)物的樂(lè)趣。1.2研究?jī)?nèi)容研究?jī)?nèi)容描述:商城布局的設(shè)計(jì)、SSM框架的構(gòu)造、H-ui框架美化前端的過(guò)程;用戶注冊(cè)時(shí)用戶名可用性判斷、密碼的長(zhǎng)度判斷、手機(jī)號(hào)的正確判斷,用戶登錄時(shí)已登錄用戶名提示;商品的檢索、通過(guò)固定編碼分類排序商品、根據(jù)商品編碼順序推薦,商品按添加時(shí)間、價(jià)格、點(diǎn)擊量等屬性排序,商品價(jià)格篩選,個(gè)人中心查看或修改訂單、收藏以及個(gè)人信息;管理員的管理職能:管理商城公告,以及對(duì)商品信息的一系列管理操作,還有對(duì)訂單信息狀態(tài)進(jìn)行管理。目標(biāo):實(shí)現(xiàn)商品訂單信息數(shù)據(jù)化,促進(jìn)消費(fèi)者與商家信息雙向交互性;設(shè)立購(gòu)物流程,完善搜索商品功能,明確網(wǎng)頁(yè)分配,引導(dǎo)用戶進(jìn)行購(gòu)物,增強(qiáng)商城實(shí)用性;簡(jiǎn)化管理后臺(tái),有序分類功能,方便操作管理;充分運(yùn)用數(shù)據(jù)庫(kù),減少成本投入;美化前端頁(yè)面,提升用戶體驗(yàn);減少代碼冗余,優(yōu)化代碼,提升程序運(yùn)行速度。1.3進(jìn)度安排第一階段:2020.06.01-2020.07.31,確定開(kāi)發(fā)目標(biāo),了解要開(kāi)發(fā)的系統(tǒng)的整體架構(gòu),理清思路,并學(xué)習(xí)相關(guān)技術(shù);第二階段:2020.08.01-2020.08.31,對(duì)系統(tǒng)進(jìn)行需求分析,通過(guò)訪談或問(wèn)卷的方式擬出需求分析報(bào)告書,并初步畫出數(shù)據(jù)流圖;第三階段:2020.09.01-2020.09.15,查找和整理所需資料,撰寫項(xiàng)目的開(kāi)題報(bào)告,并論證項(xiàng)目可行性;第四階段:2020.09.16-2020.10.05,完成數(shù)據(jù)庫(kù)設(shè)計(jì),以及軟件結(jié)構(gòu)設(shè)計(jì);第五階段:2020.10.06-2020.12.09,完成各個(gè)模塊中的處理算法,及其編碼工作,并做相應(yīng)的單元測(cè)試,完成整個(gè)項(xiàng)目開(kāi)發(fā);第六階段:2020.12.10-2020.12.29,完善項(xiàng)目并撰寫畢業(yè)論文,并準(zhǔn)備論文答辯相關(guān)事宜。1.4可行性分析可行性分析指的是系統(tǒng)開(kāi)發(fā)之初,對(duì)系統(tǒng)的各方面條件進(jìn)行研究和分析,以及系統(tǒng)完成后的影響預(yù)測(cè),用最少的成本確定是否能夠解決問(wèn)題。1)技術(shù)可行性本網(wǎng)絡(luò)商城項(xiàng)目的開(kāi)發(fā)中,使用的JSP語(yǔ)言、Servlet技術(shù)、Tomcat服務(wù)器以及MySQL數(shù)據(jù)庫(kù)幾種技術(shù)和工具不僅免費(fèi),而且使用方便、快捷,減短了開(kāi)發(fā)所用的時(shí)間,減少了開(kāi)發(fā)的成本。并且使得開(kāi)發(fā)更安全,有利于后期系統(tǒng)的維護(hù)。同時(shí),基于網(wǎng)站開(kāi)發(fā)課程的學(xué)習(xí),學(xué)生已掌握開(kāi)發(fā)網(wǎng)站的基礎(chǔ)知識(shí)技術(shù),在經(jīng)驗(yàn)豐富的老師的指導(dǎo)下,能夠順利有序地完成網(wǎng)站設(shè)計(jì),本項(xiàng)目在技術(shù)方面完全可行。2)操作可行性本商城系統(tǒng)前臺(tái)界面簡(jiǎn)潔明了,操作簡(jiǎn)易方便。用戶可以通過(guò)商品分類以及商品篩選等功能快速找到自己需要的商品,同時(shí),商品推薦功能還能向用戶提供優(yōu)質(zhì)的商品推薦。用戶選擇好商品后,將商品加入購(gòu)物車,并在購(gòu)物車選擇想要下單的商品,能夠方便快捷的完成購(gòu)買。商城后臺(tái)管理平臺(tái)功能明確,管理員可以審查商品的各種信息并對(duì)其進(jìn)行管理操作,還能夠準(zhǔn)確確認(rèn)并處理用戶已購(gòu)買的商品訂單,并同時(shí)管理用戶的信息。本系統(tǒng)操作通俗易懂,能夠迅速的運(yùn)作各個(gè)功能,使用者不論是用戶還是管理員,都可以很快熟悉操作流程,在操作方面是完全可行的。3)經(jīng)濟(jì)可行性本系統(tǒng)的開(kāi)發(fā)軟件為IDEA,采用自己的PC設(shè)備進(jìn)行開(kāi)發(fā),開(kāi)發(fā)環(huán)境是完全免費(fèi)的。在需求分析的過(guò)程中,也是個(gè)人親力親為,收集相關(guān)資料以及技術(shù)知識(shí),成本幾乎為零,在經(jīng)濟(jì)層面完全可行。4)法律可行性本系統(tǒng)是一個(gè)模擬網(wǎng)上購(gòu)物商城進(jìn)行開(kāi)發(fā)的商城系統(tǒng),由于個(gè)人能力有限以及技術(shù)限制,網(wǎng)站的開(kāi)發(fā)尚未完善,還不能夠投入商業(yè)使用中。所以并不會(huì)產(chǎn)生實(shí)際性的交易,更不會(huì)產(chǎn)生商品交易過(guò)程中的一系列法律問(wèn)題,是完全合法的網(wǎng)站項(xiàng)目,在法律方面也可行。1.5開(kāi)發(fā)工具本系統(tǒng)采用Web+Apache-Tomcat8.0+MySQL5.6+JDK1.6的開(kāi)發(fā)環(huán)境。系統(tǒng)運(yùn)行環(huán)境則需要IntelCorei5以上處理器、4GB以上內(nèi)存環(huán)境、Windows10系統(tǒng)、火狐瀏覽器以及Tomcat服務(wù)器。Tomcat開(kāi)源服務(wù)器適用性強(qiáng),擴(kuò)展性好,配置無(wú)誤時(shí)可為HTML等Web界面服務(wù)[3]。開(kāi)發(fā)時(shí)采用IDEA編譯器、Navicat數(shù)據(jù)庫(kù)編輯器等工具。IntelliJIDEA支持Java等多種語(yǔ)言開(kāi)發(fā),在自動(dòng)提示代碼、重構(gòu)等方面功能卓越,支持Html、CSS、MySQL,操作快捷,使用簡(jiǎn)便;Navicat數(shù)據(jù)庫(kù)編輯器實(shí)用性強(qiáng),簡(jiǎn)化了數(shù)據(jù)庫(kù)管理,還能夠降低管理成本,對(duì)MySQL、Oracle、PostgreSQL等數(shù)據(jù)庫(kù)都可用,且適用于Windows、MacOSX及Linux三大系統(tǒng),與本系統(tǒng)環(huán)境相契合。系統(tǒng)開(kāi)發(fā)語(yǔ)言和技術(shù)分為前端和后端兩部分,前端語(yǔ)言為Html、CSS、JavaScript、jQuery,采用JSP技術(shù)進(jìn)行動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì),并使用H-ui框架進(jìn)行美化。JSP技術(shù)達(dá)成java擴(kuò)展,動(dòng)靜結(jié)合,設(shè)計(jì)網(wǎng)頁(yè)時(shí)分離網(wǎng)頁(yè)邏輯與設(shè)計(jì)且復(fù)用組件基礎(chǔ),動(dòng)態(tài)生成頁(yè)面內(nèi)容[4]。H-ui是輕量級(jí)別的前端框架,美觀實(shí)用且服務(wù)價(jià)值高,使前端頁(yè)面簡(jiǎn)潔美觀,一目了然。后端由Java和SQL語(yǔ)句構(gòu)成,基于SSM框架,使用MySQL數(shù)據(jù)庫(kù)以及Tomcat服務(wù)器提供的服務(wù)使系統(tǒng)運(yùn)行。SSM框架由SpringMVC,Spring,MyBatis三部分構(gòu)成,不僅是開(kāi)發(fā)工具,也是中間件。掌握了各框架核心思想,復(fù)用性強(qiáng),有效簡(jiǎn)化開(kāi)發(fā),大大提高了系統(tǒng)研發(fā)效率,同時(shí)保障系統(tǒng)成品的可維護(hù)性、可擴(kuò)展性以及敏捷性[5];跨平臺(tái)開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng)MySQL是大眾化的數(shù)據(jù)庫(kù)系統(tǒng),方便實(shí)用,與JAVA、PHP等主流編程語(yǔ)言緊密結(jié)合[6]。本章主要介紹了網(wǎng)上購(gòu)物商城的背景、發(fā)展?fàn)顩r以及存在的一些問(wèn)題,從而表述樂(lè)享購(gòu)物商城項(xiàng)目的意義。并引申出本系統(tǒng)的研究?jī)?nèi)容,以及進(jìn)行可行性分析。簡(jiǎn)要介紹了本購(gòu)物商城系統(tǒng)的開(kāi)發(fā)條件,重點(diǎn)闡述了系統(tǒng)的研究?jī)?nèi)容、意義以及可行性,下一章將進(jìn)行需求分析的工作。2需求分析需求分析就是指軟件工程師通過(guò)分析客戶對(duì)于目標(biāo)軟件具有哪些功能方面的需求,用規(guī)范化的形式將這些需求具體地描述出來(lái),定出需求分析說(shuō)明書[7]。本部分通過(guò)訪談及上網(wǎng)或者查閱書籍收集網(wǎng)上購(gòu)物商城的相關(guān)資料,并對(duì)當(dāng)前網(wǎng)上購(gòu)物商城的技術(shù)發(fā)展?fàn)顩r進(jìn)行研究,分析消費(fèi)者對(duì)商品的需要以及商家的運(yùn)營(yíng)模式。逐步了解網(wǎng)上購(gòu)物商城所需要的功能、性能、安全等方面的要求,在一系列的調(diào)查與分析下完成對(duì)樂(lè)享購(gòu)物商城的需求分析。2.1訪談軟件設(shè)計(jì)初期獲取需求時(shí),對(duì)問(wèn)題了解往往比較模糊,用戶對(duì)軟件功能的需求描述、以及最終需要的軟件的要求也經(jīng)常不太清晰。所以在軟件項(xiàng)目設(shè)計(jì)之初,需要對(duì)用戶進(jìn)行訪談,從而初步了解用戶的需求。本系統(tǒng)的使用對(duì)象分別是消費(fèi)者和商家,根據(jù)二者的不同特點(diǎn),準(zhǔn)備好計(jì)劃的問(wèn)題和自由開(kāi)放性問(wèn)題,分別對(duì)部分學(xué)生消費(fèi)者、部分在職消費(fèi)者、部分老年消費(fèi)者以及部分網(wǎng)店商家進(jìn)行正式化和非正式化的訪談,獲取對(duì)象的需求。對(duì)于部分學(xué)生消費(fèi)者,了解到較年輕的消費(fèi)者業(yè)余時(shí)間充足,更傾向于瀏覽款式不同的商品,根據(jù)自己的喜好選擇需求的商品,貨比三家是常事。而且年輕人都喜歡時(shí)髦有趣的商品,也會(huì)購(gòu)買一些各種各樣不同的觀賞或者把玩用的商品,需要有更多提供這些物件的渠道。因此,商城需提供商品推薦功能,將學(xué)生消費(fèi)者常購(gòu)買的商品進(jìn)行歸納展示,從而幫助學(xué)生消費(fèi)者挑選更多優(yōu)質(zhì)商品。對(duì)于部分在職消費(fèi)者,由于已經(jīng)參加工作,經(jīng)常忙得不可開(kāi)交,沒(méi)有充足的業(yè)余時(shí)間挑選商品,而且對(duì)于長(zhǎng)時(shí)間瀏覽商品抱有抵觸感,這時(shí)就需要有能夠幫助快速購(gòu)物的功能。所以商城需有明確的商品分類,并能按價(jià)格、銷量等實(shí)時(shí)更新的信息排序商品,以便忙碌的在職人員快速找到需要的商品,提高購(gòu)物效率。對(duì)于部分老年消費(fèi)者,由于對(duì)網(wǎng)絡(luò)商城使用不夠熟悉,甚至看不動(dòng)一些更新信息,也找不到需要的商品。如果有了檢索商品的渠道,就能幫助老年消費(fèi)者精確查找所需,商城應(yīng)完善搜索功能,方便老年消費(fèi)者效率且精確尋找到需要的商品。同時(shí),商城都應(yīng)該獲取消費(fèi)者的個(gè)人信息,以便訂單的確認(rèn)提交以及商品的發(fā)貨,還應(yīng)設(shè)置個(gè)人中心,方便消費(fèi)者查詢或者編輯訂單信息、商品收藏以及個(gè)人信息。對(duì)于部分網(wǎng)店商家,他們更需要的是好用的管理后臺(tái),操作簡(jiǎn)捷易懂,減少不必要的麻煩,在管理上盡可能的提高效率,從而能夠?qū)ψ约旱牡赇佭M(jìn)行更好的管理,所以商城需要設(shè)計(jì)性能優(yōu)越的管理后臺(tái),盡量采用簡(jiǎn)單分明的界面,提供簡(jiǎn)易操作的功能,方便商家管理店鋪數(shù)據(jù),上傳、編輯商品信息,查看訂單、評(píng)價(jià)信息,接收訂單,然后發(fā)貨,并提交發(fā)貨信息,從而滿足消費(fèi)者與商家之間的信息交互。2.2數(shù)據(jù)流圖數(shù)據(jù)流圖是描述系統(tǒng)中數(shù)據(jù)流動(dòng)情況的一種圖形形式,需求分析過(guò)程中,通過(guò)數(shù)據(jù)的輸入和輸出表示其在系統(tǒng)中流動(dòng)和處理的過(guò)程[7]。1)注冊(cè)登錄模塊用戶進(jìn)行商城注冊(cè)時(shí),輸入用戶信息,將其存進(jìn)用戶表,注冊(cè)后跳轉(zhuǎn)登錄界面,填入用戶名和密碼即可登錄商城,登錄后顯示商城主頁(yè),具體如圖2-1所示。圖2-1注冊(cè)登錄模塊數(shù)據(jù)流圖2)購(gòu)買商品模塊用戶登錄網(wǎng)站后,瀏覽商品表中的商品信息,并選擇想要購(gòu)買的商品。同時(shí),可以將喜歡的商品收藏,存入收藏表;選擇商品后,商品信息存入購(gòu)物車中,在購(gòu)物車結(jié)算后,生成相應(yīng)訂單信息,存入訂單表中;用戶對(duì)訂單信息進(jìn)行確認(rèn),確認(rèn)后提交訂單,其訂單號(hào)傳遞到商城中,具體如圖2-2所示。圖2-2購(gòu)買商品模塊數(shù)據(jù)流圖3)個(gè)人中心模塊用戶進(jìn)入個(gè)人中心,可以選擇訂單中心、商品收藏、賬戶信息三方面功能。在訂單中心,用戶可以了解具體的訂單信息,并且能夠更改訂單,可以取消或者刪除訂單,刪除的訂單信息返回訂單表。對(duì)于商家已處理的訂單,可以根據(jù)物流信息進(jìn)行收貨確認(rèn),并完成訂單,已完成的訂單信息存在訂單表;在商品收藏中,可以查閱已收藏信息,還可以刪除收藏的商品,刪除的收藏信息返回收藏表;在賬戶信息中,用戶則可以修改其具體信息,修改后的用戶信息存入用戶表,具體如圖2-3所示。圖2-3個(gè)人中心模塊數(shù)據(jù)流圖
4)管理員中心模塊管理員登錄管理后臺(tái),在管理員中心可以修改管理員密碼,將修改后的管理員密碼存入用戶表中,并且可以安全退出管理后臺(tái),具體如圖2-4所示。圖2-4管理員中心模塊數(shù)據(jù)流圖5)公告管理模塊管理員通過(guò)管理后臺(tái),進(jìn)入公告管理,可以通過(guò)搜索公告標(biāo)題查看公告;可以添加新的公告,新的公告信息存入公告表中;可以修改已有公告,修改后的公告信息存入公告表;還可以刪除不需要的公告,刪除的公告信息返回公告表,具體如圖2-5所示。圖2-5公告管理模塊數(shù)據(jù)流圖6)圖片管理模塊管理員還能在管理后臺(tái)中管理圖片,圖片管理分為首頁(yè)圖片和商品圖片管理兩部分??梢蕴砑有聢D片,新的圖片內(nèi)容存入圖片表;然后可以根據(jù)圖片路徑查看圖片;可以修改圖片,修改后的圖片信息存入圖片表;還可以刪除圖片,刪除的圖片信息返回圖片表,具體如圖2-6所示。圖2-6圖片管理模塊數(shù)據(jù)流圖7)商品管理模塊在管理后臺(tái)的商品管理中,分為商品分類、商品庫(kù)存、商品評(píng)價(jià)三個(gè)部分。在商品分類中,管理員可以查看和編輯商品的分類,編輯后的分類信息存入分類表;在商品庫(kù)存中,可以查看商品數(shù)量和編輯商品,編輯后的商品信息存入商品表,還可以推薦商品,推薦的商品將在商城首頁(yè)中顯示;在商品評(píng)價(jià)中,可以查看和編輯商品評(píng)價(jià),編輯后的評(píng)價(jià)信息則存入評(píng)價(jià)表,具體如圖2-7所示。圖2-7商品管理模塊數(shù)據(jù)流圖8)訂單管理模塊管理員進(jìn)行訂單管理時(shí),分為處理訂單流程和訂單查詢流程。處理訂單時(shí),可以確認(rèn)訂單信息并進(jìn)行商品發(fā)貨操作,發(fā)貨后提交發(fā)貨信息;訂單查詢中則可以查詢已處理和未處理的訂單,具體如圖2-8所示。圖2-8訂單管理模塊數(shù)據(jù)流圖9)用戶管理模塊管理員由管理后臺(tái)進(jìn)入注冊(cè)用戶管理,能搜索商城中已注冊(cè)用戶,并查看其詳細(xì)信息,如果發(fā)現(xiàn)無(wú)效的用戶,也能將其刪除,刪除的用戶信息返回用戶表,具體如圖2-9所示。圖2-9用戶管理模塊數(shù)據(jù)流圖2.3數(shù)據(jù)字典數(shù)據(jù)字典是通過(guò)分析訪談獲取的用戶需求,并收集和歸納系統(tǒng)的有關(guān)數(shù)據(jù),得到的實(shí)體數(shù)據(jù)及其信息的具體描述,囊括了數(shù)據(jù)流圖所包含各元素的定義,同時(shí)也匯總了系統(tǒng)中各類數(shù)據(jù)描述[7]。數(shù)據(jù)流圖中有兩種屬性的數(shù)據(jù),分別是單屬性和多屬性數(shù)據(jù)。單屬性數(shù)據(jù)是指數(shù)據(jù)流圖中只有一個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù),多屬性數(shù)據(jù)則指的是數(shù)據(jù)流圖中具有兩個(gè)或兩個(gè)以上數(shù)據(jù)項(xiàng)的數(shù)據(jù)。2.3.1單屬性1)用戶名該數(shù)據(jù)表示用戶注冊(cè)登錄時(shí)用戶的名稱信息,注冊(cè)后用來(lái)登錄系統(tǒng),由1~20位字符或漢字構(gòu)成,出現(xiàn)在圖2-1中。2)用戶密碼該數(shù)據(jù)表示用戶名對(duì)應(yīng)的密碼信息,用來(lái)登錄系統(tǒng),由6~20位字符構(gòu)成,出現(xiàn)在圖2-1中。3)商品價(jià)格該數(shù)據(jù)表示商品的價(jià)格信息,在購(gòu)買商品時(shí)用于購(gòu)物車結(jié)算,由1~11位數(shù)字構(gòu)成,出現(xiàn)在圖2-2中。4)商品編號(hào)該數(shù)據(jù)表示商品的價(jià)格信息,在購(gòu)買商品時(shí)用于瀏覽商品,由1~11位數(shù)字構(gòu)成,出現(xiàn)在圖2-2中。5)訂單號(hào)該數(shù)據(jù)表示訂單的編號(hào)信息,提交訂單時(shí)生成,管理訂單時(shí)用于查詢訂單,由1~11位數(shù)字構(gòu)成,出現(xiàn)在圖2-2、圖2-8中。6)管理員賬戶該數(shù)據(jù)表示管理員的賬戶信息,用于登錄管理后臺(tái),由1~11位字符或漢字構(gòu)成,出現(xiàn)在圖2-4中。7)管理員密碼該數(shù)據(jù)表示管理員賬戶對(duì)應(yīng)的密碼信息,用于登錄管理后臺(tái),由6~20位字符構(gòu)成,出現(xiàn)在圖2-4中。8)公告標(biāo)題該數(shù)據(jù)表示公告的標(biāo)題信息,在公告管理時(shí)用于查看公告,由1~20位字符或漢字構(gòu)成,出現(xiàn)在圖2-5中。9)圖片路徑該數(shù)據(jù)表示圖片存儲(chǔ)的路徑信息,在圖片管理時(shí)用于查找圖片,由1~255位字符構(gòu)成,出現(xiàn)在圖2-6中。10)商品數(shù)量該數(shù)據(jù)表示商品的數(shù)量信息,在商品管理時(shí)用于確認(rèn)商品庫(kù)存,由1~50位數(shù)字構(gòu)成,出現(xiàn)在圖2-7中。11)發(fā)貨信息該數(shù)據(jù)表示商品的發(fā)貨信息,在訂單管理時(shí)用于確認(rèn)商品發(fā)貨,由1~255位字符或漢字構(gòu)成,出現(xiàn)在圖2-8中。2.3.2多屬性1)用戶信息該數(shù)據(jù)表示商城用戶的詳細(xì)信息,包括用戶名、姓名、手機(jī)號(hào)和地址等信息,出現(xiàn)在圖2-1中,接著對(duì)新出現(xiàn)的數(shù)據(jù)進(jìn)行定義。(1)姓名該數(shù)據(jù)表示用戶的真實(shí)姓名,用于確認(rèn)用戶身份,便于訂單信息的生成,由1~11位字符構(gòu)成。(2)手機(jī)號(hào)碼該數(shù)據(jù)表示用戶的真實(shí)手機(jī)號(hào)碼,用于商品發(fā)貨后聯(lián)系用戶,由11位數(shù)字構(gòu)成。(3)地址該數(shù)據(jù)表示用戶的真實(shí)地址,用于商品送貨的目的地確認(rèn),由1~50位字符或漢字構(gòu)成。2)商品信息該數(shù)據(jù)表示商品的具體信息,包括商品名、編號(hào)、價(jià)格、類型、庫(kù)存、商品的介紹和商品評(píng)價(jià)信息,出現(xiàn)在圖2-2中,接著對(duì)新出現(xiàn)的數(shù)據(jù)進(jìn)行定義。(1)商品名稱該數(shù)據(jù)表示商品的名稱信息,用于確認(rèn)商品,由1~11位字符構(gòu)成。(2)商品類型該數(shù)據(jù)表示商品的類型信息,用于確認(rèn)商品類型,由1~8位字符構(gòu)成。(3)商品介紹該數(shù)據(jù)表示商品的介紹信息,用于了解商品的參數(shù),由1~50位字符構(gòu)成。3)公告信息該數(shù)據(jù)表示商城公告的具體信息,包括公告標(biāo)題和公告內(nèi)容,出現(xiàn)在圖2-5中,接著對(duì)新出現(xiàn)的數(shù)據(jù)進(jìn)行定義。公告內(nèi)容數(shù)據(jù)表示公告的內(nèi)容信息,用于用戶了解商城公告內(nèi)容,由1~255位字符或漢字構(gòu)成,出現(xiàn)在圖2-3中。4)收藏信息該數(shù)據(jù)表示商品的收藏信息,包括商品編號(hào)、用戶名、商品名、收藏時(shí)間,出現(xiàn)在圖2-8中,接著對(duì)新出現(xiàn)的數(shù)據(jù)進(jìn)行定義。收藏時(shí)間數(shù)據(jù)表示商品收藏的時(shí)間信息,用于記錄商品收藏的具體時(shí)間,由1~11位字符構(gòu)成,出現(xiàn)在圖2-2中。5)訂單信息該數(shù)據(jù)表示訂單的具體信息,包括訂單編號(hào)、用戶名稱、收貨者姓名、手機(jī)號(hào)碼、商品總價(jià)和支付方式信息,出現(xiàn)在圖2-8中,接著對(duì)新出現(xiàn)的數(shù)據(jù)進(jìn)行定義。支付方式數(shù)據(jù)表示商品付款時(shí)的支付方式,用于確認(rèn)支付渠道,由1~11位漢字構(gòu)成,出現(xiàn)在圖2-2中。本章主要是對(duì)樂(lè)享購(gòu)物商城項(xiàng)目進(jìn)行需求分析,先用訪談的方法達(dá)到需求獲取的目的,明確項(xiàng)目的需求關(guān)系。然后通過(guò)數(shù)據(jù)流圖來(lái)描述各個(gè)模塊的功能,清晰地講數(shù)據(jù)的流動(dòng)方向表現(xiàn)出來(lái)。并設(shè)計(jì)項(xiàng)目的數(shù)據(jù)字典,從單屬性和多屬性兩方面列舉出樂(lè)享購(gòu)物商城項(xiàng)目中各模塊的屬性,從而明確出各個(gè)實(shí)體數(shù)據(jù)包含的屬性。表現(xiàn)出了需求分析的完整性和可行性的特點(diǎn),重點(diǎn)描述了數(shù)據(jù)流圖在需求分析中的重要作用,下一章進(jìn)行的是數(shù)據(jù)庫(kù)設(shè)計(jì)。3數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)是由用戶需求得出各種符合要求的數(shù)據(jù)類型,并將這些數(shù)據(jù)結(jié)構(gòu)化組成各個(gè)實(shí)體,搭建起數(shù)據(jù)庫(kù),進(jìn)行數(shù)據(jù)表的設(shè)計(jì),使得系統(tǒng)能夠有效存儲(chǔ)和應(yīng)用數(shù)據(jù)。本系統(tǒng)在獲取用戶需求分析后,先設(shè)計(jì)出系統(tǒng)的概念結(jié)構(gòu),然后分析數(shù)據(jù)庫(kù)中實(shí)體數(shù)據(jù),并根據(jù)實(shí)體屬性進(jìn)行邏輯設(shè)計(jì),最后創(chuàng)建出數(shù)據(jù)庫(kù),完成物理設(shè)計(jì)。同時(shí),保證數(shù)據(jù)庫(kù)的實(shí)施和運(yùn)行,并進(jìn)行數(shù)據(jù)庫(kù)的維護(hù)。3.1概念設(shè)計(jì)概念設(shè)計(jì)從用戶\t"/item/%E6%A6%82%E5%BF%B5%E8%AE%BE%E8%AE%A1/_blank"需求分析入手,進(jìn)行實(shí)體及其之間關(guān)系的分析描述,生成\t"/item/%E6%A6%82%E5%BF%B5%E8%AE%BE%E8%AE%A1/_blank"概念產(chǎn)品的相關(guān)功能的設(shè)計(jì)活動(dòng),是一個(gè)完整而全面的\t"/item/%E6%A6%82%E5%BF%B5%E8%AE%BE%E8%AE%A1/_blank"過(guò)程[7]。3.1.1實(shí)體在數(shù)據(jù)庫(kù)設(shè)計(jì)中,實(shí)體往往指某類事物的集合,包含具體的人或事物的定義以及抽象的概念或聯(lián)系。對(duì)于數(shù)據(jù)庫(kù),將各類數(shù)據(jù)對(duì)象的個(gè)體定義為實(shí)體。根據(jù)數(shù)據(jù)流圖中的多屬性分類實(shí)體,歸納出系統(tǒng)所含實(shí)體有:用戶實(shí)體、公告實(shí)體、商品實(shí)體、商品分類實(shí)體、購(gòu)物車實(shí)體、商品圖片實(shí)體、商品評(píng)價(jià)實(shí)體、收藏實(shí)體、訂單實(shí)體。3.1.2E-R圖E-R圖是實(shí)體之間聯(lián)系的表現(xiàn),其中還包含了實(shí)體的屬性信息。能夠較為準(zhǔn)確地反映各個(gè)實(shí)體的信息聯(lián)系,通過(guò)關(guān)系圖的形式呈現(xiàn)出數(shù)據(jù)庫(kù)的信息構(gòu)成情況[8]。根據(jù)對(duì)數(shù)據(jù)流圖2-2、2-6、2-8分析后可以得到,一個(gè)用戶可以擁有多份不同訂單,一個(gè)訂單包含多個(gè)商品并可以將商品發(fā)貨;同時(shí),每個(gè)用戶都擁有一個(gè)屬于自己的購(gòu)物車,一個(gè)購(gòu)物車又包含多個(gè)商品,商品包含單獨(dú)的圖片和多條評(píng)價(jià);一個(gè)管理員能夠管理多個(gè)用戶,具體如圖3-10所示。圖3-10系統(tǒng)整體E-R圖3.1.3實(shí)體屬性1)用戶實(shí)體該實(shí)體描述用戶的具體屬性,包括用戶名、姓名、地址等屬性,這些信息用于用戶購(gòu)買商品后訂單信息的生成,可確認(rèn)用戶具體信息,該實(shí)體與購(gòu)物車實(shí)體有1:1的關(guān)系,與訂單實(shí)體有1:n的關(guān)系,具體如圖3-1所示。圖3-1用戶實(shí)體屬性圖2)公告實(shí)體該實(shí)體描述公告的具體屬性,包括標(biāo)題、內(nèi)容、添加時(shí)間屬性,這些信息用于商城公告生成以及搜索相應(yīng)公告,具體如圖3-2所示。圖3-2公告實(shí)體屬性圖3)商品實(shí)體該實(shí)體描述商品的具體屬性,包括商品名稱、主圖、商品庫(kù)存、售后保障等屬性,這些信息用于瀏覽商品時(shí)查看了解商品的具體信息,該實(shí)體與購(gòu)物車實(shí)體有1:n的關(guān)系,與圖片實(shí)體和評(píng)價(jià)實(shí)體有1:1的關(guān)系,具體如圖3-3所示。圖3-3商品實(shí)體屬性圖4)商品分類實(shí)體該實(shí)體描述商品分類的具體屬性,包括商品分類編號(hào)、分類名稱、分類序號(hào)屬性,這些信息用于完成商品的分類以及分類之后的排序,商品實(shí)體與該實(shí)體有n:1的關(guān)系,具體如圖3-4所示。圖3-4商品分類實(shí)體屬性圖5)購(gòu)物車實(shí)體該實(shí)體描述購(gòu)物車的具體屬性,包括商品售價(jià)、購(gòu)買數(shù)量、價(jià)格小計(jì)等屬性,這些信息用于確認(rèn)購(gòu)物車中的商品信息以及結(jié)算購(gòu)物車,該實(shí)體與用戶實(shí)體有1:1的關(guān)系,與商品實(shí)體有1:n的關(guān)系,具體如圖3-5所示。圖3-5購(gòu)物車實(shí)體屬性圖6)商品圖片實(shí)體該實(shí)體描述商品圖片的具體屬性,包括商品編號(hào)、圖片路徑屬性,這些信息用于確認(rèn)商品圖片的有關(guān)商品和圖片的位置信息,該實(shí)體與商品實(shí)體有1:1的關(guān)系,具體如圖3-6所示。圖3-6商品圖片實(shí)體屬性圖7)商品評(píng)價(jià)實(shí)體該實(shí)體描述商品評(píng)價(jià)的具體屬性,包括商品名稱、用戶名、評(píng)價(jià)的內(nèi)容、類型、時(shí)間等屬性,這些信息用于查看已評(píng)價(jià)的商品,商品實(shí)體與該實(shí)體有1:n的關(guān)系,具體如圖3-7所示。圖3-7商品評(píng)價(jià)實(shí)體屬性圖8)商品收藏實(shí)體該實(shí)體描述商品收藏的具體屬性,包括商品名稱、用戶名、收藏時(shí)間等屬性,這些信息用于確認(rèn)收藏商品的信息和收藏商品的用戶信息,該實(shí)體與商品實(shí)體有1:n的關(guān)系,具體如圖3-8所示。圖3-8商品收藏實(shí)體屬性圖9)訂單實(shí)體該實(shí)體描述訂單的具體屬性,包括訂單號(hào)、收貨者姓名、手機(jī)號(hào)碼、支付方式等屬性,這些信息用于確認(rèn)提交訂單的用戶信息以及收貨人具體信息,方便商品的發(fā)貨,用戶實(shí)體與該實(shí)體有1:n的關(guān)系,商品實(shí)體與該實(shí)體有n:1的關(guān)系,具體如圖3-9所示。圖3-9訂單實(shí)體屬性圖3.2邏輯設(shè)計(jì)邏輯設(shè)計(jì)通過(guò)分析實(shí)體以及相關(guān)數(shù)據(jù),將實(shí)際數(shù)據(jù)模型轉(zhuǎn)化為邏輯模式下的數(shù)據(jù)庫(kù),通過(guò)分析概念設(shè)計(jì)中得出的系統(tǒng)中各個(gè)實(shí)體所包含的屬性、關(guān)鍵字,將其概念模型轉(zhuǎn)化為數(shù)據(jù)模型,建立相關(guān)數(shù)據(jù)庫(kù)表[7]。本商城網(wǎng)站項(xiàng)目規(guī)模小,信息量不大,采用的是輕量級(jí)數(shù)據(jù)庫(kù)MySQL數(shù)據(jù)庫(kù),操作簡(jiǎn)易,網(wǎng)站數(shù)據(jù)交匯通暢。用MySQL數(shù)據(jù)庫(kù)進(jìn)行設(shè)計(jì),效率更高,且數(shù)據(jù)更精確。下面則分析各個(gè)實(shí)體包含屬性,以及了解各個(gè)實(shí)體信息表之間的關(guān)系,進(jìn)行邏輯設(shè)計(jì)。1)t_user表該表用于儲(chǔ)存用戶或管理員信息,由lx_uersid,lx_username,lx_password,lx_name,lx_role等字段組成,用戶角色為1時(shí)表示管理員,為2時(shí)表示普通用戶;其中,lx_userid為主鍵,不能為空,lx_userid用于區(qū)分用戶;該表為用戶角色時(shí),與t_orders表有著1:n的關(guān)系,該表為管理員角色時(shí),與t_gonggao表和t_goodspic表有1:n的關(guān)系,具體如表3-1所示。表3-1t_user信息表實(shí)體屬性字段MySQL數(shù)據(jù)類型備注用戶IDlx_useridint(10)主鍵用戶名lx_usernamevarchar(22)22位漢字或字符密碼lx_passwordvarchar(22)22位數(shù)字或字符姓名lx_namevarchar(22)22位漢字或字符用戶角色lx_rolevarchar(11)11位漢字或字符手機(jī)號(hào)碼lx_telvarchar(11)11位數(shù)字地址lx_addressvarchar(50)50位漢字、數(shù)字或字符注冊(cè)時(shí)間lx_ctimevarchar(11)11位數(shù)字或字符2)t_gonggao表該表用于儲(chǔ)存商城公告信息,由lx_title,lx_content,lx_ctime字段組成,分別表示公告標(biāo)題、公告內(nèi)容和添加時(shí)間;該表與t_user表有n:1的關(guān)系,具體如表3-2所示。表3-2t_gonggao信息表實(shí)體屬性字段MySQL數(shù)據(jù)類型備注公告標(biāo)題lx_titlevarchar(50)50位漢字或字符公告內(nèi)容lx_contenttext文本內(nèi)容添加時(shí)間lx_ctimevarchar(11)11位數(shù)字或字符3)t_goods表該表用于儲(chǔ)存商品具體信息,由lx_goodsid,lx_cateid,lx_catename,lx_goodsname,lx_goodsnumber等字段組成,分別表示商品ID、商品名、商品編號(hào)、商品庫(kù)存、售后保障等;其中,lx_goodsid為主鍵,不能為空,lx_goodsid用于區(qū)分商品;該表與t_goodspic表有著1:1的關(guān)系,與t_collection表有著n:1的關(guān)系,具體如表3-3所示。表3-3t_goods信息表實(shí)體屬性字段MySQL數(shù)據(jù)類型備注商品IDlx_goodsidint(11)主鍵商品類別編號(hào)lx_cateidint(9)9位數(shù)字或字符商品分類名lx_catenamevarchar(22)22位漢字或字符商品名lx_goodsnamevarchar(22)22位漢字或字符商品編號(hào)lx_goodsnumbervarchar(9)9位數(shù)字或字符銷售價(jià)格(元)lx_priceint(11)11位數(shù)字或字符商品主圖lx_picvarchar(255)255位字符的圖片路徑點(diǎn)擊數(shù)lx_vistint(11)11位數(shù)字銷量lx_saledint(11)11位數(shù)字添加時(shí)間lx_ctimevarchar(11)11位數(shù)字或字符商品介紹lx_Introtext文本內(nèi)容商品庫(kù)存lx_kucunint(11)11位數(shù)字售后保障lx_shouhoutext文本內(nèi)容4)t_cate表該表用于儲(chǔ)存商品分類信息,由lx_cateid,lx_catename,lx_paixu字段組成,分別表示分類ID、分類名稱、分類序號(hào);其中,lx_cateid為主鍵,不能為空,lx_cateid用于區(qū)分商品分類,具體如表3-4所示。表3-4t_cate信息表實(shí)體屬性字段MySQL數(shù)據(jù)類型備注分類編號(hào)lx_cateidint(9)主鍵分類名稱lx_catenamevarchar(22)20位漢字或字符分類序號(hào)lx_paixuint(11)11位數(shù)字或字符5)t_cart表該表用于儲(chǔ)存購(gòu)物車包含的信息,由lx_userid,lx_goodsid,lx_goodsname,lx_goodspic,lx_price等字段組成,分別表示商品名、關(guān)聯(lián)商品、銷售價(jià)格、購(gòu)買數(shù)量、價(jià)格小計(jì)等;其中,lx_userid是t_user表的外鍵,lx_goodsid是t_goods表的外鍵,該表與t_user表有著1:1的關(guān)系,與t_goods表有著1:n的關(guān)系,具體如表3-5所示。表3-5t_cart信息表實(shí)體屬性字段MySQL數(shù)據(jù)類型備注關(guān)聯(lián)用戶lx_useridint(22)外鍵關(guān)聯(lián)商品lx_goodsidint(22)外鍵商品名lx_goodsnamevarchar(22)22位漢字或字符商品主圖lx_goodspicvarchar(255)255位數(shù)字或字符銷售價(jià)格lx_priceint(11)11位數(shù)字或字符購(gòu)買數(shù)量lx_countint(11)11位數(shù)字價(jià)格小計(jì)lx_sumpriceint(11)11位數(shù)字6)t_goodspic表該表用于儲(chǔ)存商品的圖片信息,由lx_goodsid,lx_pic字段組成,分別表示商品ID以及圖片路徑;lx_goodsid是t_goods表的外鍵,該表與t_goods表有1:1的關(guān)系,具體如表3-6所示。表3-6t_goodspic信息表實(shí)體屬性字段MySQL數(shù)據(jù)類型備注商品IDlx_goodsidint(11)外鍵圖片路徑lx_picvarchar(255)255位數(shù)字或字符7)t_pingjia表該表用于儲(chǔ)存商品的評(píng)價(jià)信息,由lx_goodsid,lx_goodsname,lx_count,lx_price,lx_pcontent等字段組成,分別表示商品ID、評(píng)價(jià)內(nèi)容、評(píng)價(jià)類型、評(píng)價(jià)狀態(tài)等;其中,lx_goodsid是t_goods表的外鍵,該表與t_goods表有1:1的關(guān)系,具體如表3-7所示。表3-7t_pingjia信息表實(shí)體屬性字段MySQL數(shù)據(jù)類型備注商品IDlx_goodsidint(11)外鍵商品名lx_goodsnamevarchar(22)22位漢字或字符購(gòu)買數(shù)量lx_countint(11)11位數(shù)字或字符銷售單價(jià)lx_priceint(11)11位數(shù)字或字符評(píng)價(jià)內(nèi)容lx_pjcontenttext文本內(nèi)容評(píng)價(jià)類型lx_pjleixingvarchar(22)22位漢字或字符評(píng)價(jià)時(shí)間lx_ctimevarchar(22)22位數(shù)字或字符評(píng)價(jià)狀態(tài)lx_statusvarchar(22)22位漢字或字符8)t_collection表該表用于儲(chǔ)存商品的收藏信息,由lx_goodsid,lx_goodsname,lx_goodspic,lx_username等字段組成,分別表示商品ID、商品名、商品圖片、收藏的用戶名、收藏時(shí)間;其中,lx_goodsid是t_goods表的外鍵,該表與t_goods表有著1:1的關(guān)系,具體如表3-8所示。表3-8t_collection信息表實(shí)體屬性字段MySQL數(shù)據(jù)類型備注商品IDlx_goodsidint(11)外鍵商品名稱lx_goodsnamevarchar(22)22位漢字或字符商品圖片lx_goodspicvarchar(255)255位字符的圖片路徑收藏的用戶名lx_usernamevarchar(22)22位漢字或字符收藏時(shí)間lx_ctimevarchar(11)11位數(shù)字或字符9)t_orders表該表用于儲(chǔ)存訂單信息,由lx_ordersid,lx_userid,lx_username,lx_address,lx_tel等字段組成,分別表示訂單號(hào)、收貨者姓名、地址、訂單總價(jià)、訂單狀態(tài)等;其中,lx_userid是t_user表的外鍵,該表與t_user表有n:1的關(guān)系,具體內(nèi)容如表3-9所示。表3-9t_orders信息表實(shí)體屬性字段MySQL數(shù)據(jù)類型備注訂單號(hào)lx_ordersidvarchar(11)11位數(shù)字或字符關(guān)聯(lián)用戶lx_useridint(11)外鍵下單的用戶名lx_usernamevarchar(22)22位漢字或字符收貨人姓名lx_namevarchar(22)22位漢字或字符收貨人地址lx_addressvarchar(255)255位漢字或字符手機(jī)號(hào)碼lx_telvarchar(11)11位數(shù)字或字符備注lx_remarkvarchar(255)255位漢字或字符生成時(shí)間lx_ctimevarchar(11)11位數(shù)字或字符支付方式lx_paywayvarchar(22)22位漢字或字符訂單總價(jià)lx_totalpricevarchar(33)33位數(shù)字或字符訂單狀態(tài)lx_statusvarchar(22)22位漢字或字符3.3物理設(shè)計(jì)1)直接創(chuàng)建打開(kāi)數(shù)據(jù)庫(kù)編輯器Navicat,右鍵已連接的MySQL數(shù)據(jù)庫(kù)“tmall”,新建數(shù)據(jù)庫(kù)“shopping_db”,右鍵數(shù)據(jù)庫(kù)“shopping_db”,新建表,命名為t_user表,t_user表中包含lx_uersid,lx_username,lx_password,lx_name,lx_tel,lx_address,lx_ctime字段,根據(jù)類型、長(zhǎng)度、是否為空、主鍵設(shè)計(jì)各字段,其中,userid為主鍵,設(shè)置其不能為空,保存后t_user表便設(shè)計(jì)完畢,以“t_user表”為例,設(shè)計(jì)各種表,包括t_gonggao表、t_goods表、t_cate表、t_cart表、t_goodspic表、t_pingjia表、t_collection表、t_orders表。2)腳本創(chuàng)建(1)數(shù)據(jù)庫(kù)CREATEDATABASEshopping_db;/*創(chuàng)建數(shù)據(jù)表*/(2)t_user表CREATETABLE`t_user`(`lx_id`int(11)NOTNULLAUTO_INCREMENT/*數(shù)據(jù)庫(kù)主鍵*/,`lx_usename`varchar(10)/*用戶名*/,`lx_password`varchar(22)/*密碼*/,`lx_name`varchar(22)/*姓名*/,`lx_role`int(11)/*用戶角色*/,`lx_tel`varchar(11)/*手機(jī)號(hào)碼*/,`lx_address`varchar(50)/*收貨地址*/,`lx_ctime`varchar(11)/*注冊(cè)時(shí)間*/,PRIMARYKEY(`lx_Id`)/*設(shè)置lx_id為主鍵*/)(3)t_gonggao表CREATETABLE`t_gonggao`(`lx_Id`int(11)NOTNULLAUTO_INCREMENT/*數(shù)據(jù)庫(kù)主鍵*/,`lx_biaoti`varchar(50)/*公告標(biāo)題*/,`lx_neirong`text/*公告內(nèi)容*/,`lx_ctime`varchar(11)/*添加時(shí)間*/,PRIMARYKEY(`lx_Id`)/*設(shè)置主鍵*/)(4)t_goods表CREATETABLE`t_goods`(`lx_Id`int(11)NOTNULLAUTO_INCREMENT/*數(shù)據(jù)庫(kù)主鍵*/,`lx_cateid`int(9)/*商品分類ID*/,`lx_catename`varchar(22)/*商品分類名*/,`lx_goodsname`varchar(22)/*商品名*/,`lx_goodsnumber`varchar(9)/*商品編號(hào)*/,`lx_price`double/*銷售價(jià)格(元)*/,`lx_pic`varchar(255)/*商品主圖*/,`lx_vist`int(11)/*點(diǎn)擊數(shù)*/,`lx_saled`int(11)/*銷量*/,`lx_ctime`varchar(11)/*添加時(shí)間*/,`lx_recommend`varchar(22)/*是否推薦*/,`lx_intro`text/*商品介紹*/,`lx_kucun`int(11)/*商品庫(kù)存*/,`lx_shouhou`text/*售后保障*/,PRIMARYKEY(`Id`)/*設(shè)置主鍵*/)(5)t_cate表CREATETABLE`t_cate`(`lx_Id`int(11)NOTNULLAUTO_INCREMENT/*數(shù)據(jù)庫(kù)主鍵*/,`lx_catename`varchar(22)/*分類名稱*/,`lx_paixu`int(11)/*分類排序*/,PRIMARYKEY(`lx_Id`)/*設(shè)置主鍵*/)(6)t_cart表CREATETABLE`t_cart`(`lx_Id`int(11)NOTNULLAUTO_INCREMENT/*數(shù)據(jù)庫(kù)主鍵*/,`lx_userid`int(22)/*關(guān)聯(lián)的用戶*/,`lx_goodsid`int(22)/*關(guān)聯(lián)的商品*/,`lx_goodsname`varchar(22)/*商品名*/,`lx_goodspic`varchar(255)/*商品圖片*/,`lx_price`double/*銷售價(jià)格*/,`lx_shuliang`int(11)/*購(gòu)買數(shù)量*/,`lx_sumprice`double/*價(jià)格小計(jì)*/,PRIMARYKEY(`lx_Id`)/*設(shè)置主鍵*/)(7)t_goodspic表CREATETABLE`t_goodspic`(`lx_Id`int(11)NOTNULLAUTO_INCREMENT/*數(shù)據(jù)庫(kù)主鍵*/,`lx_goodsid`int(11)/*關(guān)聯(lián)的商品ID*/,`lx_pic`varchar(255)/*商品子圖片*/,PRIMARYKEY(`lx_Id`)/*設(shè)置主鍵*/)(8)t_pingjia表CREATETABLE`t_pingjia`(`lx_Id`int(11)NOTNULLAUTO_INCREMENT/*數(shù)據(jù)庫(kù)主鍵*/,`lx_goodsid`int(11)/*商品ID,外鍵*/,`lx_goodsname`varchar(22)/*商品名*/,`lx_pjcontent`text/*評(píng)價(jià)內(nèi)容*/,`lx_pjleixing`varchar(22)/*評(píng)價(jià)類型*/,`lx_ctime`varchar(22)/*評(píng)價(jià)時(shí)間*/,`lx_status`varchar(22)/*評(píng)價(jià)狀態(tài)*/,PRIMARYKEY(`lx_Id`)/*設(shè)置主鍵*/)(9)t_collection表CREATETABLE`t_collection`(`Id`int(11)NOTNULLAUTO_INCREMENT/*數(shù)據(jù)庫(kù)主鍵*/,`lx_goodsid`int(11)/*收藏商品的Id*/,`lx_goodsname`varchar(22)/*商品名稱*/,`lx_goodspic`varchar(255)/*商品圖片*/,`lx_username`varchar(22)/*收藏的用戶名*/,`lx_ctime`varchar(11)/*收藏時(shí)間*/,PRIMARYKEY(`lx_Id`)/*設(shè)置主鍵*/)(10)t_orders表CREATETABLE`t_orders`(`lx_Id`int(11)NOTNULLAUTO_INCREMENT/*數(shù)據(jù)庫(kù)主鍵*/,`lx_ordersid`varchar(11)/*訂單號(hào)*/,`lx_userid`int(11)/*關(guān)聯(lián)的用戶id,外鍵*/,`lx_username`varchar(22)/*下單用戶名*/,`lx_name`varchar(22)/*收貨人姓名*/,`lx_address`varchar(50)/*收貨地址*/,`lx_tel`varchar(11)/*手機(jī)號(hào)碼*/,`lx_remark`varchar(255)/*備注*/,`lx_ctime`varchar(11)/*生成時(shí)間*/,`lx_payway`varchar(22)/*支付方式*/,`lx_totalprice`varchar(33)/*訂單總價(jià)*/,`lx_status`varchar(22)/*訂單狀態(tài)*/,`lx_goodsinfo`text/*購(gòu)買詳情*/,PRIMARYKEY(`lx_Id`)/*設(shè)置主鍵*/)本章主要描述了數(shù)據(jù)庫(kù)設(shè)計(jì),簡(jiǎn)要介紹了數(shù)據(jù)庫(kù)設(shè)計(jì)的定義。羅列出了各個(gè)實(shí)體,描述了實(shí)體所包含的屬性信息,并用E-R圖的形式將實(shí)體之間的關(guān)系清晰的顯示出來(lái)。從邏輯設(shè)計(jì)的角度,進(jìn)行實(shí)體數(shù)據(jù)表的設(shè)計(jì),通過(guò)數(shù)據(jù)表把每個(gè)實(shí)體所包含的屬性以及數(shù)據(jù)類型準(zhǔn)確的列舉出來(lái),每個(gè)實(shí)體屬性及其所對(duì)應(yīng)的字段一目了然。從物理設(shè)計(jì)的角度,簡(jiǎn)述了數(shù)據(jù)庫(kù)的各種表的創(chuàng)建,寫出各個(gè)表的建表代碼語(yǔ)句,清楚的展現(xiàn)了創(chuàng)建數(shù)據(jù)庫(kù)過(guò)程,下一章進(jìn)行的是軟件結(jié)構(gòu)設(shè)計(jì)。4軟件結(jié)構(gòu)設(shè)計(jì)軟件結(jié)構(gòu)設(shè)計(jì)是對(duì)復(fù)雜的系統(tǒng)進(jìn)行分解和規(guī)劃,按照其功能要素將系統(tǒng)分解成多個(gè)有一定邊界的模塊,并以模塊為單位設(shè)計(jì)軟件結(jié)構(gòu),最后對(duì)軟件結(jié)構(gòu)質(zhì)量進(jìn)行評(píng)估,進(jìn)行結(jié)構(gòu)優(yōu)化[9]。樂(lè)享購(gòu)物商城具有前臺(tái)和后臺(tái)兩個(gè)模塊,前臺(tái)模塊又劃分為注冊(cè)登錄模塊、購(gòu)買商品模塊和個(gè)人中心模塊,后臺(tái)模塊則分為管理員中心模塊、公告管理模塊、商品管理模塊、訂單管理模塊和用戶管理模塊。本章從項(xiàng)目整體結(jié)構(gòu)出發(fā),基于需求分析中訪談得到的用戶需求設(shè)計(jì)軟件結(jié)構(gòu),并根據(jù)數(shù)據(jù)流圖,采用自頂向下的方式分析各個(gè)模塊,逐一研究各個(gè)模塊的功能特性,用軟件功能圖的形式展現(xiàn)出來(lái)。最后用項(xiàng)目的整體結(jié)構(gòu)功能圖進(jìn)行總結(jié),體現(xiàn)出軟件結(jié)構(gòu)設(shè)計(jì)的逐步求精的設(shè)計(jì)特點(diǎn)。4.1設(shè)計(jì)原理軟件結(jié)構(gòu)設(shè)計(jì)就是確定組成系統(tǒng)的各個(gè)功能模塊,且構(gòu)建各模塊之間的聯(lián)系,將對(duì)用戶需求分析為基礎(chǔ)產(chǎn)生的系統(tǒng)模型轉(zhuǎn)化為軟件設(shè)計(jì)模型。在軟件結(jié)構(gòu)設(shè)計(jì)中,單獨(dú)命名的模塊是程序語(yǔ)句的集合體,能夠獨(dú)立地完成一定功能,充當(dāng)著構(gòu)造程序的基本單元。進(jìn)行結(jié)構(gòu)化設(shè)計(jì)時(shí),模塊作為表述功能的單位,大小依系統(tǒng)具體情況而定。模塊體現(xiàn)了系統(tǒng)的結(jié)構(gòu)層次,描述了系統(tǒng)的構(gòu)成功能并對(duì)其進(jìn)行分解。通過(guò)模塊分解,可以降低某些軟件問(wèn)題的復(fù)雜程度并使其得到有效解決[9]。結(jié)構(gòu)優(yōu)化的方法實(shí)質(zhì)上是指模塊的分解或合并,綜合分析優(yōu)化從而得到趨于松散耦合、內(nèi)聚程度高、模塊獨(dú)立且功能集中的系統(tǒng)結(jié)構(gòu),達(dá)到優(yōu)化提升及降低成本的目的。并持續(xù)改進(jìn)升級(jí)系統(tǒng),同時(shí)確保模塊獨(dú)立性和模塊規(guī)模的適中性[9]。接著從數(shù)據(jù)流圖入手,設(shè)計(jì)樂(lè)享購(gòu)物商城的軟件結(jié)構(gòu),分析系統(tǒng)的整體功能結(jié)構(gòu),并劃分出各個(gè)功能模塊,并將各模塊歸類整合,結(jié)合到一個(gè)整體功能結(jié)構(gòu)圖當(dāng)中,畫出頂層結(jié)構(gòu)圖,具體如圖4-1所示。圖4-1整體功能結(jié)構(gòu)圖4.2細(xì)分模塊1)注冊(cè)登錄模塊根據(jù)圖2-1數(shù)據(jù)流圖的結(jié)構(gòu),細(xì)分出該注冊(cè)登錄模塊的功能。用戶進(jìn)行注冊(cè)后,使用用戶名和密碼登錄商城,并可以安全退出商城,具體如圖4-2所示。圖4-2注冊(cè)登錄模塊功能圖2)購(gòu)買商品模塊根據(jù)圖2-2數(shù)據(jù)流圖的結(jié)構(gòu),細(xì)分出該購(gòu)買商品模塊的功能。用戶進(jìn)入商城主頁(yè),能夠?yàn)g覽各種商品,搜索商品幫助用戶快速找到商品,挑選完商品后,可添加購(gòu)物車,購(gòu)物車結(jié)算后便完成了購(gòu)買,并提交訂單信息,具體如圖4-3所示。圖4-3購(gòu)買商品模塊功能圖3)個(gè)人中心模塊根據(jù)圖2-3數(shù)據(jù)流圖的結(jié)構(gòu),細(xì)分出該個(gè)人中心模塊的功能。用戶在已登錄狀態(tài)下進(jìn)入個(gè)人中心,可以在訂單中心查看訂單信息,同時(shí)可以取消或刪除商家未處理訂單信息,對(duì)已處理訂單進(jìn)行信息確認(rèn)以及完成訂單;在商品收藏中,可以查看收藏的商品,刪除不再收藏的商品;在賬戶信息中,可以修改用戶信息,具體如圖4-4所示。圖4-4個(gè)人中心模塊功能圖4)管理員中心模塊根據(jù)圖2-4數(shù)據(jù)流圖的結(jié)構(gòu),細(xì)分出該管理員中心模塊的功能。管理員由管理后臺(tái)進(jìn)入管理員中心,可以更改管理員密碼,或安全退出管理后臺(tái),具體如圖4-5所示。圖4-5管理員中心模塊功能圖5)公告管理模塊根據(jù)圖2-5數(shù)據(jù)流圖的結(jié)構(gòu),細(xì)分出該公告管理模塊的功能。管理員通過(guò)管理后臺(tái)進(jìn)入公告管理,可以對(duì)商城公告進(jìn)行增刪改查的操作,具體如圖4-6所示。圖4-6公告管理模塊功能圖6)商品管理模塊根據(jù)圖2-6、2-7數(shù)據(jù)流圖的結(jié)構(gòu),細(xì)分出該管理員中心模塊的功能。管理員可以通過(guò)商城后臺(tái),在商品管理功能中進(jìn)行商品圖片、分類、庫(kù)存、推薦和評(píng)價(jià)管理等操作,具體如圖4-7所示。圖4-7商品管理模塊功能圖7)訂單管理模塊根據(jù)圖2-8數(shù)據(jù)流圖的結(jié)構(gòu),細(xì)分出該訂單管理模塊的功能。管理員由管理后臺(tái)進(jìn)入訂單管理,可以進(jìn)行處理訂單操作和發(fā)貨商品等操作,且能查詢所有訂單信息,具體如圖4-8所示。圖4-8訂單管理模塊功能圖8)用戶管理模塊根據(jù)圖2-9數(shù)據(jù)流圖的結(jié)構(gòu),細(xì)分出該用戶管理模塊的功能。管理員通過(guò)管理后臺(tái),在用戶管理模塊中,可以搜索已注冊(cè)用戶,刪除無(wú)效的用戶,具體如圖4-9所示。圖4-9用戶管理模塊功能圖4.3總體結(jié)構(gòu)通過(guò)細(xì)分模塊步驟得到系統(tǒng)各模塊功能圖,分別為注冊(cè)登錄、購(gòu)買商品、公告管理、商品管理、訂單管理等模塊,根據(jù)各個(gè)模塊之間的關(guān)系結(jié)合起來(lái),得到整個(gè)系統(tǒng)的總體結(jié)構(gòu)功能圖。其中,注冊(cè)登錄模塊細(xì)分為用戶管理、用戶登錄和安全退出功能;購(gòu)買商品模塊細(xì)分為搜索商品、加入購(gòu)物車、購(gòu)物車結(jié)算和訂單提交功能;個(gè)人中心模塊分為訂單中心、商品收藏和賬戶信息功能;管理員中心模塊分為修改密碼和安全退出功能;公告管理模塊分為添加公告,修改公告和刪除公告功能;商品管理模塊分為商品圖片、分類、庫(kù)存、推薦和評(píng)價(jià)管理功能;訂單管理模塊分為處理訂單、商品發(fā)貨和查詢訂單功能,具體如圖4-10所示。圖4-10系統(tǒng)總體結(jié)構(gòu)功能圖本章是對(duì)樂(lè)享購(gòu)物商城結(jié)構(gòu)化設(shè)計(jì)過(guò)程的介紹,簡(jiǎn)述了軟件結(jié)構(gòu)設(shè)計(jì)的定義,詳細(xì)描述了結(jié)構(gòu)化設(shè)計(jì)的設(shè)計(jì)原理。用細(xì)分模塊的方法,將前文所構(gòu)造的數(shù)據(jù)流圖逐個(gè)轉(zhuǎn)化為項(xiàng)目模塊的功能圖,使每個(gè)模塊的功能清晰的羅列出來(lái)。最后用整個(gè)項(xiàng)目的總體結(jié)構(gòu)圖收尾,體現(xiàn)出軟件結(jié)構(gòu)化設(shè)計(jì)自頂向下的特點(diǎn),下一章將進(jìn)行詳細(xì)設(shè)計(jì)的工作。
5詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)本質(zhì)是細(xì)化概要設(shè)計(jì)工作,根據(jù)用戶需求分析怎樣實(shí)現(xiàn)軟件系統(tǒng)的各個(gè)功能,充分詳細(xì)介紹系統(tǒng)各模塊的功能以及對(duì)系統(tǒng)設(shè)計(jì)過(guò)程進(jìn)行描述,并通過(guò)對(duì)軟件結(jié)構(gòu)進(jìn)行深入分析與對(duì)各模塊功能的算法設(shè)計(jì),得到關(guān)于軟件數(shù)據(jù)結(jié)構(gòu)和算法實(shí)現(xiàn),最終完成系統(tǒng)功能設(shè)計(jì)[8]。考慮樂(lè)享購(gòu)物商城的各個(gè)模塊應(yīng)該如何實(shí)現(xiàn)的問(wèn)題,從功能描述、設(shè)計(jì)思想、關(guān)鍵代碼和程序截圖四個(gè)方面對(duì)項(xiàng)目每個(gè)模塊的功能進(jìn)行算法設(shè)計(jì),并采用H-ui框架和CSS樣式對(duì)前端網(wǎng)頁(yè)進(jìn)行美化,減少代碼冗余,復(fù)用并提高其利用率;優(yōu)化代碼結(jié)構(gòu),提升系統(tǒng)運(yùn)行速度,突顯出詳細(xì)設(shè)計(jì)逐步求精的特點(diǎn)。5.1前臺(tái)模塊5.1.1注冊(cè)登錄模塊1)用戶注冊(cè)該功能用于未注冊(cè)用戶注冊(cè),使消費(fèi)者能夠注冊(cè)成為商城新用戶,用戶在前端注冊(cè)頁(yè)面輸入用戶名,并輸入兩次密碼且密碼一致,同時(shí)輸入姓名、手機(jī)號(hào)碼、收貨地址等信息,前端通過(guò)JavaScript采用正則表達(dá)式驗(yàn)證手機(jī)號(hào)等上述用戶信息,符合條件便可完成注冊(cè)。通過(guò)request對(duì)象獲取用戶名,根據(jù)用戶名在數(shù)據(jù)庫(kù)中查詢是否有用戶信息并返回,若用戶名不為空則其在數(shù)據(jù)庫(kù)中存在,跳出彈窗提示“該用戶名已存在,注冊(cè)失??!”,并刷新注冊(cè)頁(yè)面;若用戶名為空則其在數(shù)據(jù)庫(kù)中不存在,創(chuàng)建用戶bean對(duì)象,同時(shí)設(shè)置用戶名、姓名等用戶信息并存入數(shù)據(jù)庫(kù),關(guān)鍵代碼如下:Stringlx_username=request.getParameter("lx_username");//獲取用戶名Userlx_bean=userService.useryz(lx_username);//返回用戶信息lx_bean=newUser();//創(chuàng)建用戶對(duì)象lx_bean1.setAddress(lx_address);//設(shè)置用戶地址等信息userService.insertBean(lx_bean);//用戶信息存入數(shù)據(jù)庫(kù)程序運(yùn)行結(jié)果如圖5-1所示。圖5-1用戶注冊(cè)界面2)用戶登錄該功能用于已注冊(cè)用戶登錄商城,用戶在登錄界面輸入用戶名和密碼,點(diǎn)擊按鈕提交表單,在控制層根據(jù)用戶名、密碼以及角色權(quán)限到數(shù)據(jù)庫(kù)查詢是否有對(duì)應(yīng)用戶信息,返回給bean對(duì)象,如果沒(méi)有的話bean為null。若bean為空,即數(shù)據(jù)庫(kù)中不存在該用戶,跳出彈窗提示“登錄失?。 ?,并刷新登錄界面;若不為空,則通過(guò)request獲取session,將bean對(duì)象存入session中,并跳出彈窗提示“登錄成功!”,關(guān)鍵代碼如下:Userlx_bean=userService.userlogin(lx_username,lx_password,role:2);//返回用戶HttpSessionlx_session=request.getSession();//獲取sessionlx_session.setAttribute(lx_bean);//存入session5.1.2購(gòu)買商品模塊1)搜索商品該功能使用戶能夠在瀏覽商品時(shí)搜索商品,用戶填入搜索信息,點(diǎn)擊搜索按鈕后,發(fā)送搜索請(qǐng)求到控制層的goodslist方法,需要商品名稱和當(dāng)前頁(yè)兩個(gè)參數(shù),搜索商品后顯示的商品列表沒(méi)有提供當(dāng)前頁(yè),默認(rèn)使用第一頁(yè),根據(jù)商品類別或商品名稱在數(shù)據(jù)庫(kù)中模糊查詢,查詢結(jié)果形成商品列表,根據(jù)商品列表和頁(yè)面容量生成pager對(duì)象,通過(guò)當(dāng)前頁(yè)碼返回頁(yè)碼列表,渲染前端商品列表,分頁(yè)展示搜索結(jié)果,關(guān)鍵代碼如下:StringBuffersy=newStringBuffer();//初始化對(duì)象sy.append("goodsnamelike'%"+goodsname+"%'");//模糊查詢List<Goodspic>lx_list=goodspicDao.queryData(sql);//返回商品列表
Pagerlx_pager=newPager(lx_list,pagesize);//生成pager對(duì)象
List<Goodspic>pagerlist=lx_pager.getObjects(currentpage);//返回頁(yè)碼列表程序運(yùn)行結(jié)果如圖5-2所示。圖5-2搜索商品界面2)加入購(gòu)物車該功能用于用戶購(gòu)買商品時(shí)將商品加入購(gòu)物車,由于購(gòu)物車是每個(gè)用戶單獨(dú)擁有的功能對(duì)象,所以需要先驗(yàn)證用戶的登錄狀態(tài),登用戶登錄時(shí)已經(jīng)將登錄信息存入session,在session中查找是否有用戶對(duì)象,沒(méi)有的話就彈出彈窗提示“請(qǐng)先登錄”,并跳轉(zhuǎn)到登錄頁(yè)面;若用戶已登錄,則可以進(jìn)行加入購(gòu)物車操作,通過(guò)request獲取商品ID,并由商品ID獲取商品對(duì)象,根據(jù)商品ID用戶ID查詢購(gòu)物車記錄,判斷在購(gòu)物車中是否有相應(yīng)商品對(duì)象,如果有就跳出彈窗提示“該商品已加入購(gòu)物車,請(qǐng)勿重復(fù)添加”,沒(méi)有則通過(guò)商品對(duì)象獲取商品購(gòu)買數(shù)量,將購(gòu)買數(shù)量跟商品庫(kù)存對(duì)比,如果庫(kù)存足夠,選購(gòu)商品便成功加入購(gòu)物車,關(guān)鍵代碼如下:Stringlx_goodsid=request.getParameter("lx_goodsid");//獲取商品ID
Goodslx_goods=goodsService.selectData("select*fromt_goodswhereid="+goodsid).get(0);//獲取商品對(duì)象
Stringlx_amount=request.getParameter("lx_amount");//獲取商品數(shù)量3)購(gòu)物車結(jié)算該功能用于用戶結(jié)算購(gòu)物車,驗(yàn)證用戶已登錄后,從session中獲取用戶對(duì)象,根據(jù)用戶ID查詢當(dāng)前用戶所擁有購(gòu)物車列表,由于用戶購(gòu)買的商品數(shù)量不定,需要通過(guò)for循環(huán)遍歷購(gòu)物車列表,獲取商品價(jià)格信息,計(jì)算商品總價(jià)格,并返回總價(jià)格到前端,完成購(gòu)物車結(jié)算操作,關(guān)鍵代碼如下:List<Cart>lx_cartlist=cartService.selectData("select*fromt_cartwhereuserid="+user1.getId()+"");//查找購(gòu)物車列表for(Cartlx_cart:lx_cartlist)//遍歷購(gòu)物車列表lx_totalPrice=Arith.add(lx_totalPrice,lx_cart.getSumprice());//計(jì)算總價(jià)格
request.setAttribute("lx_totalPrice",lx_totalPrice);//返回總價(jià)格到前端程序運(yùn)行結(jié)果如圖5-4所示。圖5-4購(gòu)物車結(jié)算界面4)訂單提交該功能用于用戶購(gòu)物車結(jié)算后生成的訂單提交,訂單生成時(shí),用戶對(duì)象從session中獲得,從用戶對(duì)象中獲取用戶信息,在前端訂單提交界面中顯示,通過(guò)request獲取前端傳遞用戶信息參數(shù),根據(jù)訂單生成時(shí)間產(chǎn)生訂單號(hào);提交訂單后,創(chuàng)建新的訂單對(duì)象,根據(jù)訂單號(hào)查詢當(dāng)前結(jié)算購(gòu)物車列表,使用for循環(huán)遍歷結(jié)算購(gòu)物車列表,生成商品結(jié)算信息,將用戶信息和商品結(jié)算信息結(jié)合為完整訂單信息并提交訂單,根據(jù)商品ID查詢商品信息,設(shè)置商品銷量和商品庫(kù)存,購(gòu)物車結(jié)算時(shí)的商品數(shù)量添加到商品銷量,且在商品庫(kù)存中減少,計(jì)算完后更新數(shù)據(jù)庫(kù)中的商品信息,關(guān)鍵代碼如下:Stringlx_ordersid=Util.getTime2();//生成訂單號(hào)lx_bean=ordersService.selectData("select*fromt_orderswhereordersid='"+ordersid+"'").get(0);//查詢結(jié)算購(gòu)物車列表Goodslx_goods=goodsService.selectData("select*fromt_goodswhereid="+cart1.getGoodsid()).get(0);//查詢商品信息goodsService.updateBean(lx_goods);//更新商品信息5.1.3個(gè)人中心模塊1)訂單中心該功能用于用戶購(gòu)買商品后對(duì)訂單信息的確認(rèn)以及對(duì)訂單的一些處理操作,用戶能夠查閱訂單詳情、取消或刪除訂單以及確認(rèn)收貨。從session中獲取用戶對(duì)象,通過(guò)request獲取訂單狀態(tài),根據(jù)訂單的狀態(tài)可以對(duì)訂單進(jìn)行不同的處理;展示訂單時(shí),由于數(shù)量較多,訂單信息分頁(yè)顯示,方法與搜素商品結(jié)果分頁(yè)相同;根據(jù)用戶ID和訂單狀態(tài),查詢當(dāng)前頁(yè)的訂單列表,獲取訂單詳細(xì)信息;依據(jù)訂單號(hào)查詢數(shù)據(jù)庫(kù)中的訂單信息,將被撤銷的訂單狀態(tài)設(shè)置為取消,并實(shí)時(shí)更新訂單信息,便可成功取消訂單;確認(rèn)收貨時(shí),則將已確認(rèn)收貨的訂單狀態(tài)設(shè)置為已完成,并更新訂單信息,便可完成訂單;刪除訂單時(shí),直接根據(jù)訂單號(hào)刪除相關(guān)訂單,關(guān)鍵代碼如下:Stringlx_status=request.getParameter("lx_status");//獲取訂單狀態(tài)
List<Orders>lx_list=lx_map.get(pagerinfo);//獲取訂單詳細(xì)信息lx_bean.setStatus("已取消/完成");//設(shè)置狀態(tài)ordersService.updateBean(lx_bean);//更新訂單信息ordersService.deleteBean(lx_id);//刪除訂單2)商品收藏該功能用于用戶查看收藏的商品信息和刪除收藏商品,查看收藏商品時(shí),從session中獲取用戶對(duì)象,根據(jù)用戶ID查詢當(dāng)前頁(yè)商品收藏,同樣依照分頁(yè)的形式顯示出來(lái);刪除商品時(shí),直接根據(jù)商品ID將商品從收藏中刪除,關(guān)鍵代碼如下:Map<String,List<Collection>>lx_map=collectionService.selectBeanMap(currentpage,10,url,sql);//查詢當(dāng)前頁(yè)商品收藏List<Collection>lx_list=lx_map.get(pagerinfo);//查詢商品詳細(xì)信息collectionService.deleteBean(lx_id);//刪除收藏3)賬戶信息該功能用于用戶修改個(gè)人信息和密碼,修改個(gè)人信息時(shí),從session中獲取用戶對(duì)象,運(yùn)用selectById方法獲取輸入的修改后的用戶信息,將新用戶信息返回bean對(duì)象,通過(guò)其設(shè)置用戶信息中地址等屬性值,并更新用戶信息;修改密碼時(shí),在控制層根據(jù)根據(jù)戶名、密碼以及角色權(quán)限到數(shù)據(jù)庫(kù)查詢是否有對(duì)應(yīng)用戶信息,獲取密碼信息,返回給bean對(duì)象,若bean為空,數(shù)據(jù)庫(kù)不存在該密碼,跳出彈窗提示“原密碼錯(cuò)誤,修改失?。 ?;若不為空,則將新密碼的值賦值到bean對(duì)象,更新用戶信息,關(guān)鍵代碼如下:lx_bean.setAddress(lx_address);//設(shè)置地址lx_bean.setPassword(lx_password2);//修改密碼userService.updateBean(lx_bean);//更新用戶信息程序運(yùn)行結(jié)果如圖5-5所示。圖5-5個(gè)人中心界面5.2后臺(tái)模塊5.2.1管理員中心模塊該功能用于管理員修改密碼或安全退出管理后臺(tái),管理員的登錄信息也存在session中,從session中獲取管理員對(duì)象,判斷用戶角色后根據(jù)名稱到數(shù)據(jù)庫(kù)中查詢是否有對(duì)應(yīng)管理員信息,獲取管理員密碼,返回給bean對(duì)象,判斷bean是否為空,為空表示數(shù)據(jù)庫(kù)中不存在輸入的密碼,跳出彈窗提示密碼錯(cuò)誤;不為空則將輸入密碼賦值給bean對(duì)象,更新管理員信息,關(guān)鍵代碼如下:Userlx_user=(User)lx_session.getAttribute("lx_manage");//獲取管理員對(duì)象lx_bean.setPassword(lx_password2);//修改密碼
userService.updateBean(lx_bean);//更新管理員信息5.2.2公告管理模塊該功能用于管理員處理商城公告的管理,可以對(duì)商城公告進(jìn)行增刪改查操作。管理員可根據(jù)公告的標(biāo)題,獲取當(dāng)前頁(yè)的公告列表,按照分頁(yè)的形式顯示公告,通過(guò)公告標(biāo)題進(jìn)行模糊查詢查找具體公告信息;獲取前端傳遞公告對(duì)象,得到公告信息,返回bean對(duì)象,在數(shù)據(jù)庫(kù)中對(duì)商品公告進(jìn)行增刪改查操作,關(guān)鍵代碼如下:StringBuffersy=newStringBuffer();//初始化對(duì)象sy.append("biaotilike'%"+biaoti+"%'");//模糊查詢lx_bean.setCtime(Util.getRiqi());//獲取公告對(duì)象gonggaoService.insertBean(lx_bean);//添加公告gonggaoService.updateBean(lx_bean);//修改公告gonggaoService.deleteBean(lx_id);//刪除公告程序運(yùn)行結(jié)果如圖5-6所示。圖5-6公告管理界面5.2.3商品管理模塊該功能用于管理員對(duì)商品信息進(jìn)行各種管理,包括商品圖片、分類、庫(kù)存、評(píng)價(jià)以及推薦的管理,可以進(jìn)行增刪改查操作。管理員由管理后臺(tái)進(jìn)入商品管理,首先應(yīng)添加商品分類,獲取前端傳遞的商品分類對(duì)象,存入request中,將得到商品分類信息返回bean對(duì)象,通過(guò)bean對(duì)象在數(shù)據(jù)庫(kù)中對(duì)商品分類進(jìn)行添加、修改和刪除;商品分類查詢后還是按照分頁(yè)的形式顯示,根據(jù)分類ID查詢商品分類對(duì)象,也可以根據(jù)商品名稱進(jìn)行模糊查詢,查找到具體的商品分類信息,關(guān)鍵代碼如下:cateService.insertBean(lx_bean);//添加商品分類request.setAttribute("lx_bean",lx_bean);//把商品分類對(duì)象存入request中sy.append("catenamelike'%"+catename+"%'");//模糊查詢Catelx_bean=cateSe
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 遵義市教育體育局直屬事業(yè)單位遵義市體育運(yùn)動(dòng)學(xué)校2025年公開(kāi)招聘事業(yè)單位工作人員備考題庫(kù)及答案詳解參考
- 2026年結(jié)合醫(yī)療細(xì)分領(lǐng)域:如眼科、口腔、心血管等??圃O(shè)備服務(wù)合同
- 2025年張家港市第五人民醫(yī)院自主招聘編外合同制衛(wèi)技人員備考題庫(kù)附答案詳解
- 2025年中電科海洋信息技術(shù)研究院有限公司招聘?jìng)淇碱}庫(kù)完整參考答案詳解
- 2025年醫(yī)保工作人員年終個(gè)人總結(jié)例文(五篇)
- 交流研討個(gè)人發(fā)言材料
- 國(guó)家知識(shí)產(chǎn)權(quán)局專利局專利審查協(xié)作北京中心福建分中心2026年度行政助理招聘?jìng)淇碱}庫(kù)含答案詳解
- 黑龍江公安警官職業(yè)學(xué)院《德語(yǔ)聽(tīng)力》2025 學(xué)年第二學(xué)期期末試卷
- 2025年阿克蘇市面向社會(huì)公開(kāi)招聘警務(wù)輔助人員備考題庫(kù)及參考答案詳解一套
- 2025年廈門大學(xué)教育研究院行政秘書招聘?jìng)淇碱}庫(kù)及答案詳解參考
- 2026富滇銀行公司招聘面試題及答案
- 2025年南京鐵道職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)附答案
- 2025年網(wǎng)絡(luò)維護(hù)管理人員工作總結(jié)例文(2篇)
- 城銀清算服務(wù)有限責(zé)任公司2026年校園招聘16人備考題庫(kù)附答案
- 2025青海省生態(tài)環(huán)保產(chǎn)業(yè)有限公司招聘11人筆試考試參考題庫(kù)及答案解析
- 骨科VSD治療患者的體位管理護(hù)理
- 茶樓餐廳轉(zhuǎn)讓協(xié)議書
- 中國(guó)正常分娩臨床實(shí)踐指南
- 2025中國(guó)工業(yè)互聯(lián)網(wǎng)研究院校園招聘筆試歷年參考題庫(kù)附帶答案詳解
- 2026年高考時(shí)政熱點(diǎn)學(xué)習(xí)167條
評(píng)論
0/150
提交評(píng)論