




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于SpringBoot的零食商城設(shè)計與實現(xiàn)a摘要本課題旨在設(shè)計和實現(xiàn)基于SpringBoot的零食商城系統(tǒng),以滿足消費者和商家的雙方需求。通過分析市場需求等方法,確定了系統(tǒng)的功能性和非功能性需求。隨后,采用SpringBoot框架和相關(guān)技術(shù),設(shè)計并實現(xiàn)了零食商城系統(tǒng)的各項功能,包括用戶的注冊登錄、零食瀏覽、購物車管理、訂單處理等。通過功能測試和用戶反饋等方式不斷優(yōu)化系統(tǒng)。實驗結(jié)果顯示,基于SpringBoot框架的零食商城系統(tǒng)具有界面友好、操作方便等特點,能夠滿足消費者的購物需求,為商家提供另一銷售渠道,可增強賣家與消費者之間的聯(lián)系。本研究成功設(shè)計并實現(xiàn)了一套功能完備、性能良好的零食商城系統(tǒng),為零食行業(yè)的線上發(fā)展提供了可行的解決方案。關(guān)鍵詞:SpringBoot設(shè)計與實現(xiàn)零食商城功能測試DesignandimplementationofsnackstorebasedonSpringBootAbstractThispaperaimstodesignandimplementasnackstoresystembasedonSpringBoottomeettheneedsofbothconsumersandmerchants.Byanalyzingthemarketdemand,thefunctionalandnon-functionalrequirementsofthesystemaredetermined.Then,theSpringBootframeworkandrelatedtechnologiesareusedtodesignandimplementvariousfunctionsofthesnackmallsystem,includinguserregistrationandlogin,snackbrowsing,shoppingcartmanagement,orderprocessing,etc.Continuouslyoptimizethesystemthroughfunctionaltestinganduserfeedback.TheexperimentalresultsshowthatthesnackmallsystembasedonSpringBootframeworkhasthecharacteristicsoffriendlyinterfaceandconvenientoperation,whichcanmeettheshoppingneedsofconsumers,provideanothersaleschannelformerchants,andenhancethecontactbetweensellersandconsumers.Thisstudysuccessfullydesignedandimplementedasetoffullyfunctionalandgoodperformanceofthesnackmallsystem,whichprovidesafeasiblesolutionfortheonlinedevelopmentofthesnackindustry.Keywords:SpringBoot;designandrealize;Snackshop;MVC;functionaltest目錄ANSHUNUNIVERSITY [5]。通過該框架可以起到減少重復(fù)代碼的一個好處,并且大大的增強了工作效率。其工作原理如圖2-1所示。圖2-1MyBatis的工作原理圖2.3MySQLMySQL是目前最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在WEB應(yīng)用方面,MySQL是RDBMS的最佳應(yīng)用軟件之一REF_Ref23393\r\h[6]。MySQL使用的SQL語言是最常用的標準化語言,用于訪問數(shù)據(jù)庫,MySQL軟件采用雙授權(quán)政策,分為社區(qū)版和商業(yè)版,一般中小型和大型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫,因為它體積小,速度快,總體擁有成本低,特別是開源這一特點,所以MySQL在這個項目中的應(yīng)用是非常方便和簡潔的REF_Ref23393\r\h[6]。2.2使用技術(shù)后臺開發(fā)技術(shù):SpringBoot+MyBatis前臺開發(fā)技術(shù):HTML/CSS/JavaScript/Bootstrap數(shù)據(jù)庫:MySQL:MySQL5.7特色:支付寶沙箱支付,使用ECharts對零食銷量、銷售金額進行圖形化展示,方便管理員查看。(1)支付寶沙箱(AlipaySandbox)是支付寶提供的一個模擬環(huán)境,用于開發(fā)人員在不影響真實支付環(huán)境的情況下進行支付接口的測試和調(diào)試REF_Ref8179\r\h[7]。沙箱環(huán)境允許開發(fā)者模擬各種支付場景,包括付款、收款、退款等,這樣可以簡便的讓他們測試其程序的字符過程,它就給了開發(fā)者一個更加安全、便捷的環(huán)境,能使開發(fā)者能夠在開發(fā)過程中盡早發(fā)現(xiàn)和解決支付相關(guān)的問題,確保最終的應(yīng)用程序在真實環(huán)境中能夠順利運行。(2)ECharts是百度開發(fā)的一個開源數(shù)據(jù)可視化工具,可以幫助用戶創(chuàng)建各種漂亮、交互式的圖表和數(shù)據(jù)展示REF_Ref8712\r\h[8]。它支持多種類型的圖表,包括線圖、柱狀圖、餅圖、散點圖等,還能處理特殊類型的地圖和熱力圖REF_Ref8712\r\h[8]。不僅如此,它還提供了很多交互功能,比如縮放、數(shù)據(jù)視圖、聯(lián)動等,讓用戶更輕松地探索和理解數(shù)據(jù)??偟膩碚f,ECharts功能強大,操作簡單,適用于各種場景下的數(shù)據(jù)展示和分析,無論是企業(yè)大屏展示還是個人項目數(shù)據(jù)可視化都很合適3需求獲取與分析3.1需求獲取依據(jù)本系統(tǒng)商城擬完成需求及最終目標進行研究實現(xiàn)。需求獲取的內(nèi)容有:(1)功能需求:本商城系統(tǒng)應(yīng)有兩部分,分別為前臺選購和后臺管理,而其中的功能則有基本的登錄注冊和用戶、零食、購物車、分類、訂單管理等一系列功能。(2)環(huán)境需求:操作系統(tǒng):windows、數(shù)據(jù)庫:MySQL、開發(fā)工具:IDEA2021.2.2(3)界面需求:界面友好,操作方便(4)用戶類型:有游客和已進行注冊并登錄了的兩種類型(5)測試環(huán)境:在系統(tǒng)搭建完成后,進行測試來確保環(huán)境的穩(wěn)定性和功能性(6)文檔記錄:對每個步驟和配置進行詳細記錄,以備之后的維護和部署使用3.2.功能性需求分析通過對零食商城的業(yè)務(wù)分析,歸納出該平臺主要分為三類角色:后臺商家(商家)、用戶、游客(未注冊的用戶)。3.2.1后臺商家用例分析從后臺商家的角度來看,后臺商家的功能有訂單、零食、分類管理等功能以及對用戶的管理。其商家角色用例圖如圖3-1所示。圖3-1商家角色用例圖3.2.2用戶用例分析從用戶的角度看,主要的功能為用戶登錄和修改個人信息以及查看個人購物車和訂單、加入零食到購物車、刪除購物車中商品、確認收貨、退貨等。用戶角色用例圖如3-2所示。圖3-2用戶用例圖3.2.3游客用例分析從游客的角度來看,游客的功能有注冊以及根據(jù)所需零食的任意名稱查找零食。也可根據(jù)其分類查找所需要的零食和其詳情,游客角色用例圖如圖3-3所示。圖3-3游客角色用例圖3.3.非功能性需求分析3.3.1性能需求分析本系統(tǒng)需對業(yè)務(wù)流程進行梳理,以便對本系統(tǒng)的功能進行具體的劃分,對商城系統(tǒng)中的角色和準備完善的功能進行分析,且確定此系統(tǒng)的開發(fā)規(guī)范與待實現(xiàn)功能的具體要求,之后概括出本系統(tǒng)所需要的用戶用例和游客用例分析。性能需求分析是評估系統(tǒng)在各條件下的性能表現(xiàn),針對本系統(tǒng)的性能需求分析的內(nèi)容有:并發(fā)用戶數(shù):分析系統(tǒng)在保持穩(wěn)定的性能的同時,能處理多個并發(fā)用戶,以此確定系統(tǒng)支持的并發(fā)用戶數(shù)最值,并對此進行評估其運行時的性能上的表現(xiàn)。
數(shù)據(jù)庫性能:分析數(shù)據(jù)庫在高負載情況下的性能表現(xiàn),包括查詢響應(yīng)時間、事務(wù)處理能力等。性能測試:設(shè)計并執(zhí)行性能測試方案,模擬不同負載情況下的用戶訪問行為,評估系統(tǒng)的性能表現(xiàn),分析性能測試結(jié)果,識別系統(tǒng)的性能瓶頸,并提出性能優(yōu)化建議REF_Ref30450\r\h[9]。3.3.2安全需求分析登錄商城系統(tǒng)時需通過數(shù)據(jù)庫進行用戶添加才有權(quán)限對本商城系統(tǒng)進行訪問,整體上優(yōu)化本系統(tǒng)的安全性能。對用戶的身份驗證進行實現(xiàn),使其通過驗證之后的使用者才能訪問重要信息和執(zhí)行重要操作,在此過程中,本系統(tǒng)使用了HTTPS協(xié)議保障了數(shù)據(jù)傳輸,防止信息泄露,對用戶輸入的信息進行嚴格的驗證,確保用戶不做出損壞到系統(tǒng)的操作。存儲用戶密碼時,使用適當?shù)乃惴?,確保用戶密碼的安全性?;赟pringBoot的零食商城設(shè)計與實現(xiàn)需綜合考慮各種安全需求,并采取相應(yīng)的安全措施來保護用戶數(shù)據(jù)和系統(tǒng)安全。
4商城系統(tǒng)設(shè)計商城系統(tǒng)設(shè)計是根據(jù)需求分析階段所得到的功能要求,利用科學(xué)的思考與方法,對系統(tǒng)的功能模塊進行完善的設(shè)計,設(shè)計出完善的商城系統(tǒng)。4.1系統(tǒng)架構(gòu)設(shè)計系統(tǒng)采用B/S結(jié)構(gòu),即瀏覽器/服務(wù)器結(jié)構(gòu),用戶可通過各種瀏覽器實現(xiàn)訪問,部分功能業(yè)務(wù)在前端實現(xiàn),主要數(shù)據(jù)服務(wù)功能在服務(wù)器端實現(xiàn)REF_Ref17202\r\h[10]。分為表現(xiàn)層,控制層,業(yè)務(wù)層,持久層四個層次完成對系統(tǒng)的實現(xiàn)REF_Ref17202\r\h[10],分層可以使開發(fā)者專注于其中的一層,并且層與層之間的依賴可得到降低,優(yōu)化開發(fā)者的效率。圖4-1系統(tǒng)架構(gòu)圖4.2功能模塊設(shè)計根據(jù)本商城系統(tǒng)的功能需求分析,分為用戶管理模塊、零食管理模塊、訂單管理模塊、分類管理模塊、購物車管理模塊,其中在商城系統(tǒng)前臺主要有登錄注冊、購物車查看、訂單信息查看、零食信息查看等功能供用戶使用,在商城系統(tǒng)后臺主要有分類管理、訂單管理、零食管理、用戶管理等相關(guān)操作REF_Ref595\r\h[11],商家可通過后臺功能更好的進行零食銷售。具體功能建模如圖4-2所示。圖4-2商城系統(tǒng)功能結(jié)構(gòu)圖4.2.1用戶管理模塊部分設(shè)計用戶管理模塊的主要參與者是商家,商家可對使用該商城系統(tǒng)的用戶進行相關(guān)操作。查看用戶商家登錄商城系統(tǒng)后來到后臺主頁面,在該頁面中點擊用戶管理下的查看用戶即可查看所有使用本商城系統(tǒng)的用戶,同時在用戶管理頁面也可輸入用戶名來查找用戶。刪除用戶商家登錄后來到主頁面時,點擊用戶管理下的查看用戶則可看到在系統(tǒng)中注冊的全部用戶,且能對此用戶進行刪除。該類圖如圖4-3所示。圖4-3用戶管理模塊類圖4.2.2零食管理模塊部分設(shè)計零食模塊主要參與者是商城系統(tǒng)用戶和商家。下面以零食關(guān)鍵字搜索、和添加零食功能為例介紹相關(guān)的類設(shè)計。1.零食關(guān)鍵字搜索用戶成功登錄商城系統(tǒng)來到主頁面后,可點擊右上角的搜索圖標,在彈出來的輸入框中輸入零食的關(guān)鍵詞信息,關(guān)鍵詞信息可是零食名中的關(guān)鍵字、零食中的價格、零食的口味等。比如輸入零食中的“干”字,則商城系統(tǒng)會把數(shù)據(jù)庫中所有帶有“干”字的零食都查詢出來并顯示在主頁。2.添加零食商家成功登錄后臺商城系統(tǒng)來到后臺主頁面,在主頁面中點擊零食管理,然后會顯示出添加零食和零食查詢。點擊零食添加后商城系統(tǒng)跳轉(zhuǎn)到添加零食的頁面,在該頁面中商家可填寫零食的信息、上傳零食的圖片。填寫之后點擊保存按鈕后會提示添加成功,然后商城系統(tǒng)自動跳轉(zhuǎn)到前臺主頁面,在前臺主頁面中便可查看到剛剛添加的零食信息。零食管理類圖如圖4-4所示。圖4-4零食管理模塊類圖4.2.3購物車管理模塊部分設(shè)計購物車模塊主要參與者是商城系統(tǒng)用戶。下面以加入購物車和購物車結(jié)算功能為例介紹相關(guān)的類設(shè)計。1.加入購物車用戶成功登錄商城系統(tǒng)來到主頁面后,在主頁面中會現(xiàn)實數(shù)據(jù)庫中的所有的零食信息。點擊零食便可鏈接到相應(yīng)的零食詳情頁并將其詳細信息展示出來,在此頁面用戶可購物車鏈接,選擇個人需要的零食數(shù)量進行添加。如果零食已出現(xiàn)在購物車,則對其數(shù)量進行疊加。如果在購物車里沒有此零食,則會再其中新增一個零食類目。2.購物車結(jié)算在購物車結(jié)算頁用戶點擊去結(jié)賬按鈕,將鏈接到結(jié)算頁,在結(jié)算頁面中可看到購物車中的總金額,用戶需填寫自己的收貨地址,然后選擇線上支付或線下支付。選擇線上支付的話可通過支付寶支付,選擇線下支付的話商城系統(tǒng)會提示用戶盡快進行線下付款并跳轉(zhuǎn)到主頁面。訂單的狀態(tài)在支付成功后變?yōu)橐阎Ц段窗l(fā)貨,等候商家進后臺配貨并發(fā)貨,此時訂單狀態(tài)改為已發(fā)貨,買家收到零食后點擊收貨按鈕以完成此交易過程。購物車管理類圖如圖4-5所示。圖4-5購物車管理模塊類圖4.2.4訂單管理模塊部分設(shè)計訂單模塊主要涉及者的參與者是用戶,商家。下面以查看用戶訂單和商家發(fā)貨功能為例介紹相關(guān)的類設(shè)計。1.查看用戶訂單用戶登錄到該商城系統(tǒng)后,可在我的賬戶中進行訂單查看,訂單查看中會把該用戶的所有訂單顯示出來,用戶點擊訂單后的訂單詳情,系統(tǒng)則會根據(jù)當前顯示訂單數(shù)據(jù)去數(shù)據(jù)庫中把對應(yīng)的訂單詳細信息查詢出來,并跳轉(zhuǎn)到一個新的頁面將訂單詳情展示出來。2.商家發(fā)貨商家登錄到該商城系統(tǒng)后臺,可在訂單管理中查看所有的訂單,每條訂單數(shù)據(jù)都會有一個付款狀態(tài),商家對已付款但還未發(fā)貨的訂單進行發(fā)貨操作,點擊發(fā)貨按鈕后該訂單發(fā)貨狀態(tài)改為已發(fā)貨。訂單管理類圖如圖4-6所示。圖4-6訂單管理模塊類圖4.2.5分類管理模塊部分設(shè)計分類模塊主要參與者是商城系統(tǒng)用戶、商家。下面以零食分類展示和添加零食分類為例介紹相關(guān)的類設(shè)計。1.零食分類展示商城系統(tǒng)首頁中會顯示一個下拉框列表,用戶點擊下拉框列表時會把數(shù)據(jù)庫中的所有分類展示出來,用戶再點擊自己喜歡的分類,商城系統(tǒng)則會把用戶點擊的分類中的所有內(nèi)容查詢出來并展示到當前頁面。2.零食分類添加商家成功登錄到商城系統(tǒng)后臺后,點擊左邊菜單欄中的分類管理下的添加分類,選擇父分類并輸入新增分類名稱,然后點擊添加按鈕,若商城系統(tǒng)中已有該分類已存在,用戶需重新輸入分類名稱進行添加。添加成功后商城系統(tǒng)會彈出添加分類成功提示。分類管理類圖如圖3-7所示。圖4-7分類管理模塊類圖4.3數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計影響著系統(tǒng)的性能和安全,是系統(tǒng)建設(shè)的核心。在數(shù)據(jù)庫需求分析的基礎(chǔ)上,嚴格按照數(shù)據(jù)庫設(shè)計要求,進行具體設(shè)計與實現(xiàn),應(yīng)包括邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計和驗證性設(shè)計REF_Ref18547\r\h[12]。為滿足零食商城的功能需求,本商城系統(tǒng)采用MySQL關(guān)系型數(shù)據(jù)庫對該商城系統(tǒng)所產(chǎn)生的數(shù)據(jù)進行存儲處理REF_Ref18547\r\h[12]。4.3.1概念結(jié)構(gòu)設(shè)計數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計是對該系統(tǒng)的數(shù)據(jù)庫中每個表的關(guān)系予以約束,來明確物理結(jié)構(gòu)。表的易讀性和讀取以及存儲的效率等需要被考慮到。1.實體的屬性:用戶:體現(xiàn)用戶的應(yīng)有屬性,用戶實體圖如圖4-8所示。圖4-8用戶實體圖零食:展示了零食的應(yīng)有屬性。零食實體圖如圖4-9所示。圖4-9零食實體圖分類:ID,分類名。分類實體圖如圖4-10所示。圖4-10分類實體圖(4)訂單:展示了訂單應(yīng)有屬性。訂單實體圖如圖4-11所示。圖4-11訂單實體圖(5)訂單詳情:展示了訂單的應(yīng)有屬性。訂單詳情實體圖如圖4-12所示。圖4-12訂單詳情實體圖(6)購物車:展示了購物車的應(yīng)有屬性。購物車實體圖如圖4-13所示。圖4-13購物車實體圖(7)收貨地址:體現(xiàn)收貨地址的應(yīng)有屬性。收貨地址實體圖如圖4-14所示。圖4-14收貨地址實體圖賬單:展示了賬單的應(yīng)有屬性。賬單實體圖如圖4-15所示。圖4-15賬單實體圖2.實體之間的聯(lián)系描述根據(jù)所學(xué)的軟件工程知識,我對本系統(tǒng)進行了實體之間的分析,得出了用戶、購物車、訂單、收貨地址、賬單信息,零食分類的關(guān)系(包括一對一,一對多,多對一)的情況,經(jīng)過設(shè)計可得平臺的商城系統(tǒng)E-R圖如圖4-16所示。圖4-16商城系統(tǒng)E-R圖4.3.2數(shù)據(jù)庫表設(shè)計本商城系統(tǒng)包含唯一一個數(shù)據(jù)庫snacksystem,包含以下數(shù)據(jù)庫表:零食(snack)信息表、用戶(user)信息表、收貨地址(address)信息表、購物車(cart)信息表、分類(category)信息表、訂單(order)信息表、訂單明細(order_item)信息表、賬單(pay)信息表。1.零食表(snack)。零食信息存儲如表4-1所示。表4-1零食表字段名字段說明數(shù)據(jù)類型長度主鍵或外鍵snack_id零食idint11主鍵snack_name零食名varchar255snack_image零食圖片varchar255csnack_new_price零食現(xiàn)價格doublesnack_old_price零食原價格doublesnack_color零食口味varchar255snack_size零食凈含量varchar255snack_inventory零食庫存int11snack_status零食狀態(tài)int11snack_shelves_time零食上架時間datesnack_label零食標簽varchar255snack_remarks零食寄語varchar255snack_category_id零食分類idint11snack_sales零食銷量int112.用戶表(user)。用戶信息存儲如表4-2所示。表4-2用戶表字段名字段說明數(shù)據(jù)類型長度主鍵或外鍵user_id用戶idint11主鍵user_nickname用戶昵稱varchar255user_name用戶姓名varchar255user_pass用戶密碼varchar255user_phone用戶手機號varchar20user_email用戶郵箱varchar255user_create_time用戶創(chuàng)建日期date0user_role用戶角色,0是普通用戶,1是商家int113.收貨地址表(address)。收貨地址信息存儲如表4-3所示。表4-3收貨地址表字段名字段說明數(shù)據(jù)類型長度主鍵或外鍵address_ididint11主鍵address_user_id用戶的idint11address_user_name收貨人姓名varchar255address_user_phone收貨人手機號varchar255address_user_details收貨地址詳情varchar2554.購物車表(cart)。購物車信息存儲如表4-4所示。表4-4購物車表字段名字段說明數(shù)據(jù)類型長度主鍵或外鍵cart_ididint11主鍵cart_user_id用戶idint11cart_snack_id零食idint11cart_snack_name零食名varchar255cart_snack_image零食圖片varchar255cart_snack_number零食數(shù)量int11cart_snack_selected是否勾選int115.分類管理表(category)。分類信息存儲如表4-5所示。表4-5分類管理表字段名字段說明數(shù)據(jù)類型長度主鍵或外鍵category_id類別idint11主鍵category_parent_id父類別id當id=0時說明是根節(jié)點一級類別int11category_name類別名varchar255category_status類別狀態(tài)1-正常,2-已廢棄int116.訂單表(order)。訂單信息存儲如表4-6所示。表4-6訂單表字段名字段說明數(shù)據(jù)類型長度主鍵或外鍵Category_id訂單idint11 主鍵Category_no訂單編號varchar255Category_user_id下單的用戶idInt11Category_snack_id該訂單中零食的idvarchar255Category_pay_way付款方式0線上,1線下int11Category_sum實際付款金額doubleCategory_status訂單狀態(tài),0完成,1未完成int11Category_create_time下單時間date7.訂單詳情表(order_item)。訂單詳情存儲如表4-7所示。表4-7訂單明細表字段名字段說明數(shù)據(jù)類型長度主鍵或外鍵item_id訂單詳情idint11主鍵item_no訂單編號varchar255item_user_id該訂單的用戶idint11item_snack_id該訂單中的零食idvarchar255item_snack_name該訂單中的零食名字varchar255item_snack_image該訂單中的零食圖片varchar255item_snack_price零食單價doubleitem_snack_number零食數(shù)量int11item_snack_sum總價doubleitem_status狀態(tài),0完成,1未完成int11item_create_time下單時間dateitem_complete_time完成時間date8.賬單表(pay)。賬單信息存儲如表4-8所示。表4-8賬單信息表字段名字段說明數(shù)據(jù)類型長度主鍵或外鍵pay_ididint11主鍵pay_user_id用戶idint11pay_Category_id訂單idint11pay_way付款方式0線上1線下int11pay_amount付款金額doublepay_time付款時間date5商城系統(tǒng)實現(xiàn)在進行需求分析與設(shè)計之后準備對整個商城系統(tǒng)進行一個實現(xiàn),本章節(jié)主要是對本系統(tǒng)需實現(xiàn)的主要模塊進行介紹,大致分為用戶、零食、訂單、分類、個人信息管理五大模塊,在每個模塊中主要包含該模塊的業(yè)務(wù)流程的實現(xiàn)和界面實現(xiàn)兩部分。在業(yè)務(wù)流程實現(xiàn)中使用時序圖來描述業(yè)務(wù)的流程走向,在界面實現(xiàn)中會描述商城系統(tǒng)中主要頁面的控件以及商城系統(tǒng)中實現(xiàn)的頁面截圖。5.1登錄注冊模塊的實現(xiàn)登錄注冊模塊主要參與者是用戶和游客,用戶可通過登錄用例登錄到本商城系統(tǒng)使用更多的功能,游客可通過注冊用例注冊為本商城系統(tǒng)的用戶從而使用更多功能。下面對登錄注冊模塊進行詳細的介紹。5.1.1登錄功能實現(xiàn)用戶輸入其用戶昵稱和密碼以登錄,此時系統(tǒng)將調(diào)用用戶控制類的方法frontLogin()。如果輸入的昵與密碼和數(shù)據(jù)庫存儲的數(shù)據(jù)比對失敗,則提示輸入的賬號或密碼錯誤。反之,提示登錄成功后自動鏈接到本商城系統(tǒng)的主頁面。用戶登錄功能的時序圖如圖5-1所示。圖5-1用戶登錄功能時序圖核心代碼:@PostMapping("front_login")publicvoidfrontLogin(StringuserNickname,StringuserPass,HttpServletResponseresponse,HttpSessionsession)throwsIOException{response.setContentType("text/html;charset=UTF-8");PrintWriterout=response.getWriter();if(userNickname!=null&&userPass!=null){Useruser=userService.frontLogin(userNickname,userPass);if(user!=null){session.setAttribute("userLogin",user.getUserId());session.setAttribute("user",user);…}else{…}}…}用戶登錄功能的實現(xiàn)圖如圖5-2所示。圖5-2用戶登錄功能實現(xiàn)圖5.1.2注冊功能的實現(xiàn)游客想要進入商城的詳情頁面第一步需要注冊,首先進入本系統(tǒng)的登陸頁面,點擊注冊鏈接進入到注冊頁面,也就是本系統(tǒng)的register.HTML頁面,經(jīng)過信息的填寫,注冊過程中系統(tǒng)會調(diào)用其中的UserController類中的方法進行注冊功能。游客注冊功能的時序圖如圖5-3所示。圖5-3游客注冊時序圖用戶注冊功能的實現(xiàn)圖如圖5-4所示。核心代碼:@PostMapping("addUser")publicStringaddUser(Useruser,HttpServletResponseresponse)throwsIOException{response.setContentType("text/html;charset=UTF-8");PrintWriterout=response.getWriter();if(ObjectUtil.isNotNull(user)){List<User>userByNickAndPhone=userService.findUserByNickAndPhone(user.getUserNickname(),user.getUserPhone());if(CollectionUtil.isNotEmpty(userByNickAndPhone)){…return"register";}intcount=userService.insert(user);if(count>0){…}…}else{…return"register";}}圖5-4游客注冊功能實現(xiàn)圖5.2用戶管理模塊功能的實現(xiàn)用戶管理模塊主要參與者是商家,商家主要可以刪除用戶、查看所有用戶、查找用戶等。下面以查找用戶和刪除用戶為例對用戶管理模塊進行詳細的介紹。5.2.1刪除用戶功能實現(xiàn)商家成功登錄該商城系統(tǒng),進入本系統(tǒng)的后臺頁面,在后臺頁面中的用戶管理中則會有本系統(tǒng)用戶的全部信息,在每條用戶數(shù)據(jù)后面都要一個刪除按鈕,點擊則可以刪除此用戶,點擊此按鈕系統(tǒng)將調(diào)用用戶控制類中的方法deleteUserById()。刪除用戶功能的時序圖如圖5-5所示。圖5-5刪除用戶功能時序圖核心代碼:@GetMapping("deleteUserById")publicvoiddeleteUserById(IntegeruserId,HttpServletResponseresponse)throwsIOException{response.setContentType("text/html;charset=UTF-8");PrintWriterout=response.getWriter();booleanb=userService.deleteById(userId);if(b){…}else{…}}刪除用戶功能的實現(xiàn)圖如圖5-6所示。圖5-6刪除用戶功能實現(xiàn)圖5.2.2查找用戶功能的實現(xiàn)商家成功登錄該商城系統(tǒng)進入本系統(tǒng)的后臺頁面,在后臺頁面中的用戶管理中則會有本系統(tǒng)用戶的全部信息,在該頁面的上方商家只需輸入要查找的用戶姓名,則完成了查找用戶操作。商家輸入需查找用戶姓名后將調(diào)用用戶控制類中的方法selectUserByName()。查找用戶功能的時序圖如圖5-7所示。圖5-7查找用戶功能時序圖核心代碼:@PostMapping("selectUserLikeName")publicStringselectSnackLikeName(StringuserName,IntegeruserId,Modelmodel){List<User>users=userService.selectSnackLikeName(userName,userId);if(ObjectUtil.isNotNull(users)){model.addAttribute("users",users);return"find_user";}else{…return"find_user";}}查找用戶功能的實現(xiàn)圖如圖5-8所示。圖5-8查找用戶功能實現(xiàn)圖5.3零食模塊功能的實現(xiàn)零食模塊主要參與者是商城系統(tǒng)用戶和商家,用戶涉及的用例主要有:瀏覽零食、查看零食詳情、搜索零食功能,添加購物車和在線付款。商家該模塊的功能主要有對零食的上架、下架、修改、刪除、查看等。下面以零食關(guān)鍵字搜索和零食上架功能為例對零食管理模塊進行詳細的介紹。5.3.1零食關(guān)鍵字搜索功能的實現(xiàn)用戶成功登錄商城系統(tǒng)來到主頁面后,可點擊右上角的搜索圖標,在彈出來的輸入框中輸入零食的關(guān)鍵詞信息,商城系統(tǒng)調(diào)用SnackController類中的selectSnackLikeName()方法,關(guān)鍵詞信息可是零食名中的關(guān)鍵字、零食中的價格、零食的名稱等。比如輸入餅干,則商城系統(tǒng)會把數(shù)據(jù)庫中所有帶有“餅干”名稱的零食都查詢出來并顯示在主頁。零食關(guān)鍵字搜索功能的序列圖如圖5-9所示。圖5-9零食關(guān)鍵字搜索功能時序圖核心代碼:@PostMapping("selectSnackLikeNameBack")publicStringselectSnackLikeNameBack(StringsnackName,Modelmodel){model.addAttribute("snacks",snackName);List<Snack>snacks=snackService.selectSnackLikeName(snackName);if(ObjectUtil.isNotNull(snacks)){model.addAttribute("snacks",snacks);return"find_snack";}else{…return"find_snack";}}零食關(guān)鍵字搜索功能的實現(xiàn)圖如圖5-10所示。圖5-10零食關(guān)鍵字搜索功能實現(xiàn)圖5.3.2零食上架功能實現(xiàn)商家成功登錄后臺商城系統(tǒng)來到后臺主頁面,在主頁面中點擊零食管理,然后會顯示出零食上架和零食查詢。點擊零食上架按鈕,系統(tǒng)鏈接到零食上架頁面,在此頁面商家進行零食所需信息的填寫并保存。然后商城系統(tǒng)自動跳轉(zhuǎn)到前臺主頁面,在前臺主頁面中便可查看到剛剛上架的零食信息。當商家店家提交按鈕后商城系統(tǒng)調(diào)用SnackController類中的addSnack()方法。零食上架功能的序列圖如圖5-11所示。圖5-11零食上架功能時序圖核心代碼:@PostMapping("addSnack")publicvoidaddSnack(Snacksnack,HttpServletResponseresponse,HttpSessionsession)throwsIOException{response.setContentType("text/html;charset=UTF-8");PrintWriterout=response.getWriter();if(ObjectUtil.isNotNull(snack)){StringfileName=(String)session.getAttribute("fileName");System.out.println(fileName+"ddd");snack.setSnackImage(fileName);intcount=snackService.insert(snack);……}零食上架功能的實現(xiàn)圖如圖5-12所示。圖5-12零食上架功能實現(xiàn)圖5.4購物車模塊功能的實現(xiàn)購物車模塊主要參與者是商城系統(tǒng)用戶。涉及的用例主要有加入購物車、刪除購物車里的零食、結(jié)算購物車里的零食、查看購物車中的零食。下面以加入購物車和購物車結(jié)算功能為例對購物車模塊進行詳細的介紹。5.4.1加入購物車功能實現(xiàn)添加購物車功能實現(xiàn)需用戶登錄,用戶登錄后進入零食頁面選擇零食分類下的零食或者在搜索欄中搜索零食,將零食的詳情頁打開,然后單擊加入購物車實現(xiàn)添加購物車功能,商城系統(tǒng)將調(diào)用CartController類中的addCart()方法加入購物車功能的序列圖如圖5-13所示。圖5-13加入購物車功能時序圖核心代碼:@PostMapping("addCart")publicvoidaddCart(Cartcart,HttpServletResponseresponse,HttpSessionsession,Modelmodel)throwsIOException{response.setContentType("text/html;charset=UTF-8");PrintWriterout=response.getWriter();IntegeruserId=(Integer)session.getAttribute("userLogin");if(userId!=null){cart.setCartUserId(userId);Cartcart1=cartService.queryBySnackId(cart.getCartSnackId());if(ObjectUtil.isNotNull(cart1)){Integersum=cart1.getCartSnackNumber()+cart.getCartSnackNumber();cart1.setCartSnackNumber(sum);cart1.setCartUserId(userId);Cartupdate=cartService.update(cart1);if(ObjectUtil.isNotNull(update)){model.addAttribute("cart",update);}else{…}}else{intcount=cartService.insert(cart);if(count>0){model.addAttribute("cart",cart);…");}else{…}}}else{…}}加入購物車功能的實現(xiàn)圖如圖5-14所示。圖5-14加入購物車功能實現(xiàn)圖5.4.2購物車結(jié)算功能實現(xiàn)用戶在購物車頁面中選擇付款,在結(jié)算頁面中可看到購物車中的總金額,用戶需填寫其收貨地址,有線上和線下兩種支付方式可選擇。如果選擇線上的支付方式,商城系統(tǒng)會彈出對應(yīng)的線上支付頁面,選擇線下支付的話商城系統(tǒng)會提示用戶盡快進行線下付款并跳轉(zhuǎn)到主頁面。當用戶點擊去結(jié)賬按鈕后商城系統(tǒng)調(diào)用CartController類中的selectALlCart()方法購物車結(jié)算功能的時序圖如圖5-15所示。圖5-15加入購物車功能時序圖核心代碼:@GetMapping("selectAllCart")publicStringselectAllCart(Modelmodel,HttpServletResponseresponse,HttpSessionsession)throwsIOException{response.setContentType("text/html;charset=UTF-8");PrintWriterout=response.getWriter();IntegeruserId=(Integer)session.getAttribute("userLogin");if(userId!=null){List<Cart>carts=cartService.queryAllCart(userId);doublesum=0.00;StringsnacksId="";StringsnackNumbers="";for(inti=0;i<carts.size();i++){…}model.addAttribute("sum",sum);model.addAttribute("carts",carts);session.setAttribute("snacksId",snacksId);session.setAttribute("snackNumbers",snackNumbers);if(ObjectUtil.isNotNull(carts)){return"cart";}else{…return"redirect:/";}}…return"front_login";}購物車結(jié)算功能的實現(xiàn)圖如圖5-16所示。圖5-16購物車結(jié)算功能實現(xiàn)圖5.5訂單模塊功能的實現(xiàn)訂單模塊主要涉及者的參與者是用戶,商家。用戶涉及的用例主要有下單、瀏覽個人訂單、點擊查看訂單詳情。商家該模塊的功能主要有對所有訂單進行查看、對訂單進行發(fā)貨等。下面以查看用戶訂單和商家發(fā)貨功能為例對訂單模塊進行詳細的介紹。5.5.1查看用戶訂單功能實現(xiàn)用戶登錄到該商城系統(tǒng)后,在我的賬戶查看所有訂單,用戶點擊訂單后的訂單詳情,跳轉(zhuǎn)到一個新的頁面將訂單詳情展示出來。當用戶成功登錄商城系統(tǒng)后,點擊我的賬戶鏈接,商城系統(tǒng)調(diào)用OrderController類中的orderLikeNo()方法。創(chuàng)建訂單功能的時序如圖5-17所示。圖5-17創(chuàng)建訂單序列圖核心代碼:@PostMapping("orderLikeNo")publicStringorderLikeNo(Modelmodel,StringorderNo){List<Order>orders=orderService.orderLikeNo(orderNo);ArrayList<User>users=newArrayList<>();ArrayList<Address>addresses=newArrayList<>();if(ObjectUtil.isNotNull(orders)){for(inti=0;i<orders.size();i++){…}…return"find_order";}else{…return"find_order";}}創(chuàng)建訂單功能的實現(xiàn)圖如圖5-18所示。圖5-18創(chuàng)建訂單實現(xiàn)圖5.5.2商家發(fā)貨功能實現(xiàn)商家登錄到該商城系統(tǒng)后臺頁面后,可在訂單管理中查看所有的訂單內(nèi)容,每條訂單數(shù)據(jù)都會有一個付款狀態(tài),商家可點擊已付款但未發(fā)貨的訂單進行發(fā)貨操作,點完發(fā)貨按鈕后,訂單狀態(tài)會重新刷新,然后頁面上的發(fā)貨狀態(tài)則會顯示為已發(fā)貨。商家登錄成功后來到后臺管理界面,點擊左側(cè)菜單欄中的訂單管理按鈕,商城系統(tǒng)會調(diào)用OrderController類中的delivery()方法商家發(fā)貨功能的時序圖如圖5-19所示。圖5-19商家發(fā)貨功能時序圖核心代碼:
@GetMapping("delivery")publicStringdelivery(StringorderNo,Modelmodel){Orderorder=orderService.queryByOrderNumber(orderNo);order.setOrderStatus(2);Orderupdate=this.orderService.update(order);if(update!=null){return"redirect:/order/orderPage";}else{…return"indexback";}}商家發(fā)貨功能的實現(xiàn)圖如圖5-20所示。圖5-20商家發(fā)貨功能實現(xiàn)圖5.6分類模塊功能的實現(xiàn)分類模塊主要參與者是商城系統(tǒng)用戶、商家。涉及的用戶的用例主要有瀏覽零食分類、點擊查看分類零食內(nèi)容。商家模塊的功能主要有對零食分類的添加、修改、刪除、查看。下面以零食分類展示和零食分類添加功能為例對分類模塊進行詳細的介紹。5.6.1零食分類展示功能的實現(xiàn)用戶成功登錄商城系統(tǒng)來到主頁面后,可點擊分類查詢中的下拉框,在下拉框列表中選擇自己喜歡的分類,主頁面中則會顯示查詢出的分類內(nèi)容。點擊分類中分類分類,系統(tǒng)調(diào)用零食控制類中的方法selectCategory()。零食分類顯示功能的時序圖如圖5-21所示。圖5-21商家分類展示功能的時序圖核心代碼:
@GetMapping("selectCategory")publicStringselectCategory(IntegersnackName,Modelmodel){List<Snack>snacks=snackService.selectCategory(snackName);if(ObjectUtil.isNotNull(snacks)){model.addAttribute("snacks",snacks);return"index";}else{…return"index";}}零食分類顯示功能的實現(xiàn)圖如圖5-22所示。圖5-22零食分類顯示功能實現(xiàn)圖5.6.2添加零食分類功能的實現(xiàn)商家登錄到商城系統(tǒng)后臺后,選擇菜單欄中分類管理中的添加分類。點擊完添加按鈕后,商城系統(tǒng)會訪問到CategoryController層的addCategory()方法中。添加分類序列圖如圖5-23所示圖5-23添加分類序列圖添加分類功能實現(xiàn)圖如圖5-24所示。圖5-24添加分類功能實現(xiàn)圖核心代碼;@PostMapping("add")publicvoidadd(Categorycategory,HttpServletResponseresponse)throwsIOException{response.setContentType("text/html;charset=UTF-8");PrintWriterout=response.getWriter();Categorycategory1=categoryService.queryByName(category.getCategoryName());if(ObjectUtil.isNotNull(category1)){…}else{Categoryinsert=categoryService.insert(category);if(ObjectUtil.isNotNull(insert)){…}}}6商城系統(tǒng)測試對于程序中存在的錯誤可通過執(zhí)行軟件測試得出。具體來說,軟件測試就是依據(jù)軟件開發(fā)每個階段的程序內(nèi)部結(jié)構(gòu)和規(guī)格說明,設(shè)計出具有針對性的測試用例,并通過設(shè)計的測試用例運行程序,找出程序存在錯誤的過程REF_Ref19533\r\h[13]。為確保所開發(fā)商城系統(tǒng)是否符合用戶的需求,執(zhí)行測試用例之后,檢查測試結(jié)果與預(yù)期要求的一致性很重要REF_Ref19533\r\h[13]。6.1測試方法本系統(tǒng)采用“黑盒測試”。對每個功能模塊進行詳細的測試。黑盒測試也稱功能測試、數(shù)據(jù)驅(qū)動測試,它適用于功能測試、可用性測試及可接受性測試;對照項目說明書測試程序功能;還可測試長的、復(fù)雜的程序的工作邏輯REF_Ref1056\r\h[14],易被理解。6.2測試環(huán)境(1)軟件環(huán)境(相關(guān)軟件、操作系統(tǒng)等)(2)數(shù)據(jù)庫:MySQL8.0.21(3)操作系統(tǒng):Windows10專業(yè)版(4)服務(wù)器:Tomcat9(5)軟件環(huán)境(開發(fā)工具包:JavaJDK1.8、開發(fā)工具:IDEA瀏覽器:IE瀏覽器、火狐、谷歌等瀏覽器)6.3測試結(jié)果和結(jié)論商城系統(tǒng)的各功能模塊的實現(xiàn)滿足商城系統(tǒng)的需求。6.3.1登錄注冊模塊測試測試登錄注冊模塊,滿足預(yù)期結(jié)果。注冊登錄測試用例表如表6-1所示。表6-1注冊登錄測試用例表測試用例編號T001測試項目系統(tǒng)登錄注冊頁面測試標題測試用戶注冊登錄系統(tǒng)是否正常重要級別高預(yù)置條件啟動項目,在網(wǎng)頁中正常打開網(wǎng)址輸入運行項目,在網(wǎng)頁中正常訪問路徑,輸入用戶名和密碼測試流程1)啟動項目2)在網(wǎng)頁中輸入訪問路徑3)輸入用戶名www,密碼456預(yù)期結(jié)果系統(tǒng)返回輸入數(shù)據(jù)并成功注冊、登錄測試結(jié)果與預(yù)期結(jié)果一致是否通過通過6.3.2用戶管理模塊測試測試用戶管理模塊,滿足預(yù)期結(jié)果。用戶管理模塊測試用例表如表6-2所示。表6-2用戶管理模塊測試用例表測試用例編號T002測試項目用戶管理模塊測試測試標題測試用戶注冊登錄系統(tǒng)是否正常重要級別高預(yù)置條件啟動項目,在網(wǎng)頁中正常打開網(wǎng)址輸入運行項目,在網(wǎng)頁中正常訪問路徑,輸入數(shù)據(jù)測試流程點擊用戶列表后的刪除按鈕,輸入用戶名或輸入其他信息預(yù)期結(jié)果點擊按鈕刪除成功,輸入用戶名可成功查找,輸入其他信息則失敗測試結(jié)果與預(yù)期結(jié)果一致是否通過通過6.3.3零食模塊測試測試零食模塊,滿足預(yù)期結(jié)果。零食模塊測試用例表如表6-3所示。表6-3零食模塊測試用例表測試用例編號T003測試項目添加零食功能測試測試標題零食管理模塊的展示重要級別高預(yù)置條件啟動項目,在網(wǎng)頁中正常打開網(wǎng)址輸入輸入零食的名稱、口味、描述、庫存,上傳圖片,零食價格等測試流程1)啟動項目2)在網(wǎng)頁中輸入訪問路徑,進入商家后臺管理3)測試零食數(shù)據(jù)的增、刪、改、查預(yù)期結(jié)果零食成功添加、刪除,零食信息更新成功測試結(jié)果與預(yù)期結(jié)果一致是否通過通過6.3.4訂
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 瀘州市重點中學(xué)2026屆高三化學(xué)第一學(xué)期期末達標檢測試題含解析
- 情景交際公開課課件
- 人教版 2024 版歷史八年級上冊第二單元《早期現(xiàn)代化的初步探索和民族危機加劇》測試卷(附答案)
- 學(xué)校常態(tài)化疫情防控方案
- 恒豐銀行反洗錢培訓(xùn)課件
- 小學(xué)語文第一單元的復(fù)習(xí)方案
- 2026屆安徽省滁州西城區(qū)中學(xué)高一化學(xué)第一學(xué)期期末經(jīng)典試題含解析
- 宣化叉車實操考試試題及答案
- 新安化工考試試題及答案
- 無領(lǐng)導(dǎo)面試題及答案
- 雙方簽定協(xié)議書
- 2024-2025學(xué)年八年級數(shù)學(xué)下冊期末培優(yōu)卷(北師大版)含答案
- 2025福建福州市鼓樓區(qū)國有資產(chǎn)投資發(fā)展集團有限公司副總經(jīng)理公開招聘1人筆試參考題庫附帶答案詳解(10套)
- 2025年12345熱線考試題庫
- 多余物控制管理辦法
- 2025年衛(wèi)生健康行業(yè)經(jīng)濟管理領(lǐng)軍人才試題
- 河南省洛陽市2024-2025學(xué)年高一下學(xué)期期末質(zhì)量檢測物理試卷
- 雅思介紹課件
- 《電商直播運營》教案-任務(wù)1 直播平臺與崗位認知
- 反邪教宣講課件
- 2025年重慶市高考物理試卷(含答案解析)
評論
0/150
提交評論