




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
本科畢業(yè)設(shè)計中文題目愛得淘網(wǎng)購商城的設(shè)計與實現(xiàn)英文題目ThedesignandimplementationoftheAideTaoonlineshoppingmall選題編號xgx230809014718系(部)專業(yè)學(xué)生姓名學(xué)號指導(dǎo)教師完成時間2023年5月22日原創(chuàng)性聲明本人鄭重聲明:本人所呈交的畢業(yè)論文(設(shè)計),是在指導(dǎo)老師的指導(dǎo)下獨立進行研究所取得的成果。畢業(yè)論文(設(shè)計)中凡引用他人已經(jīng)發(fā)表或未發(fā)表的成果、數(shù)據(jù)、觀點等,均已明確注明出處。除文中已經(jīng)注明引用的內(nèi)容外,不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的科研成果。對本文的研究成果做出重要貢獻的個人和集體,均已在文中以明確方式標(biāo)明。本聲明的法律責(zé)任由本人承擔(dān)。論文作者簽名: 日期:關(guān)于使用授權(quán)的聲明本人在指導(dǎo)老師指導(dǎo)下所完成的畢業(yè)論文(設(shè)計)及相關(guān)的資料(包括圖紙、試驗記錄、原始數(shù)據(jù)、實物照片、圖片、錄音帶、設(shè)計手稿等),知識產(chǎn)權(quán)歸屬。本人完全了解XX大學(xué)有關(guān)保存、使用畢業(yè)論文(設(shè)計)的規(guī)定,本人授權(quán)XX大學(xué)可以將本畢業(yè)論文(設(shè)計)的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進行檢索,可以采用任何復(fù)制手段保存和匯編本畢業(yè)論文(設(shè)計)。如果發(fā)表相關(guān)成果,一定征得指導(dǎo)教師同意,且第一署名單位為XX大學(xué)。本人離校后使用畢業(yè)論文(設(shè)計)或與該論文直接相關(guān)的學(xué)術(shù)論文或成果時,第一署名單位仍然為XX大學(xué)。論文作者簽名: 日期:指導(dǎo)教師簽名: 日期:XX大學(xué)本科畢業(yè)論文(設(shè)計)[5]。RabbitMQ是實現(xiàn)了高級消息隊列協(xié)議(AMQP)的開源消息代理軟件(亦稱面向消息的中間件),用于緩解高并發(fā)下,系統(tǒng)流量過大的問題。Redis緩存中間件Redis是一款基于內(nèi)存的單線程數(shù)據(jù)庫,用于存儲一些熱點訪問數(shù)據(jù),程序可以直接從內(nèi)存中存取數(shù)據(jù),從而達到快速響應(yīng)請求的目的,對項目吞吐量的提高具有重大作用。Elasticsearch搜索引擎Elasticsearch是位于ElasticStack核心的分布式搜索和分析引擎。為所有類型的數(shù)據(jù)提供近乎實時的搜索和分析。無論擁有結(jié)構(gòu)化或非結(jié)構(gòu)化文本、數(shù)字數(shù)據(jù)還是地理空間數(shù)據(jù),Elasticsearch都能以支持快速搜索的方式高效地存儲和索引它。2.2.2業(yè)務(wù)流程分析用戶進入網(wǎng)頁,開始瀏覽并選購商品,查看商品的詳細信息,將選中的商品加入自己的購物車中。商品選擇完畢之后回到購物車點擊結(jié)算跳轉(zhuǎn)至收銀界面,在收銀界面應(yīng)該判斷用戶是否注冊,未注冊就去到注冊頁面,注冊之后再登錄,有賬號直接登錄填寫收貨相關(guān)信息,并選擇付款方式。確認購買并支付成功之后會生成一個訂單,商品服務(wù)商看到這個訂單后對其審核,看用戶購買的商品是否有貨,無貨的話需要采購入庫,有貨的話需要扣減庫存并發(fā)貨。發(fā)貨后生成一張發(fā)貨通知單,告知用戶商品已發(fā)貨。最終完成整個商城的業(yè)務(wù)流程,業(yè)務(wù)流程圖如下圖2.1所示。圖2.1業(yè)務(wù)流程圖2.2.3功能需求分析在對基于微服務(wù)框架下“愛得淘商城”系統(tǒng)的設(shè)計之前,首先需要對系統(tǒng)的功能進行初步的調(diào)研與分析,對系統(tǒng)所應(yīng)該具有的大致功能做初步確定,同時應(yīng)該分析每一項功能所包含的基礎(chǔ)信息和實現(xiàn)思路。通過查閱大量的相關(guān)資料,明確了功能的詳細需求,同時確定了實現(xiàn)系統(tǒng)功能所需的技術(shù)路線和設(shè)計思想。在不斷的市場調(diào)研下,最終確定包含的模塊有登錄授權(quán)模塊、商品檢索模塊、購物車模塊、訂單模塊、倉儲管理、秒殺模塊、商品管理。其中登錄授權(quán)模塊包含注冊和登錄兩大功能,用戶可使用系統(tǒng)內(nèi)賬號登錄,也可使用系統(tǒng)集成的社交賬號進行登錄;商品檢索模塊包括對用戶輸入關(guān)鍵字進行搜索,使用商品類別、品牌等信息進行模糊匹配;購物車模塊包含對加入購物車的商品進行增刪改查的功能;訂單模塊包括對商品收貨信息進行增刪改查的功能;倉儲模塊包含對商品的倉儲信息進行增刪改查;秒殺模塊包括對購買的限時秒殺商品進行管理,包括取消以及支付等功能;商品管理主要是包含對商品的基礎(chǔ)信息,如品牌、類別、參數(shù)等進行增刪改查。以下將對系統(tǒng)對的業(yè)務(wù)需求和功能模塊進行詳細的介紹與分析。登錄注冊功能登錄注冊是整個商城程序的入口,用戶在瀏覽商品之后如果需要下訂單,點擊登錄按鈕,輸入相應(yīng)的密碼,或者是根據(jù)社交帳號進行登錄。如果未注冊,則在登錄頁面點擊注冊按鈕,填寫相關(guān)信息完成注冊后登錄,管理員輸入對應(yīng)的密碼完成登錄和注冊。關(guān)于系統(tǒng)登錄注冊功能用例圖如圖2.2所示。圖2.2登錄注冊功能用例圖商品檢索功能作為一款商城系統(tǒng),強大的檢索功能必不可少。用戶可以通過該項功能快速搜索到自己想要的商品,并且搜索的商品集會根據(jù)其熱度進行排序。同時對用戶輸入的關(guān)鍵字在搜索結(jié)果中高亮顯示。商品檢索功能用例圖如圖2.3所示。圖2.3商品檢索功能用例圖購物車功能購物車用于存儲用戶在商城瀏覽的過程中有購買意向的物品,能夠通過該項功能快速找到想購買的歷史商品,在購物車功能中點擊結(jié)算可生成對應(yīng)的訂單,同時也可對購物車中的商品進行管理。購物車功能用例圖如圖2.4所示。圖2.4購物車功能用例圖訂單功能用戶在購物車界面結(jié)算之后。生成相應(yīng)的訂單,可供用戶查看本次購物的明細。對訂單進行管理。訂單功能用例圖如圖2.5所示。圖2.5訂單功能用例圖倉儲功能倉儲功能主要是對整個商城的商品發(fā)貨倉庫以及倉庫信息,包含倉庫地址、倉庫負責(zé)人及其電話號碼等進行增刪改查。還包含對缺貨商品提起采購單,對采購單進行申審核。倉儲功能用例圖如圖2.6所示。圖2.6倉儲功能用例圖秒殺功能該項功能屬于商城系統(tǒng)中的限時活動模塊,用戶可對指定數(shù)量的特價商品進行搶購,在限定時間內(nèi)付款則可完成商品的購買。秒殺功能用例圖如圖2.7所示。圖2.7秒殺功能用例圖商品管理功能該項功能對商城內(nèi)所有商品的基礎(chǔ)信息進行增刪改查,對商品進行上下架處理以及修改熱點商品和首頁展示商品的功能。商品管理用例圖如圖2.8所示。圖2.8商品管理功能2.2.4性能需求分析本系統(tǒng)作為一款電商級別的網(wǎng)站,性能要求較高。系統(tǒng)的界面交互應(yīng)該足夠簡潔,并且對用戶友好。因此,本系統(tǒng)采取微服務(wù)分布式的技術(shù)架構(gòu),可以支撐較大的并發(fā)請求,提升了系統(tǒng)的可擴展性,對項目進行集群部署也提高其容災(zāi)能力,其中一部分中間件可提高系統(tǒng)整體性能。使用性能較高的Linux服務(wù)器進行部署,整體上以保證用戶體驗、系統(tǒng)安全性、整體可用性為主要目標(biāo)。2.2.5數(shù)據(jù)需求分析1、用戶注冊用戶輸入注冊的信息,如用戶名、用戶真實姓名、用戶手機號碼、用戶性別、用戶密碼等。2、商品訂單系統(tǒng)生成商品訂單信息,內(nèi)容包括訂單號、訂單人的真實姓名、訂單人的昵稱、以及收貨地址信息等。3、賬號信息系統(tǒng)顯示社交帳號信息,內(nèi)容包括社交帳號類型、社交帳戶用戶名、社交賬戶昵稱、社交帳號用戶驗證token、用戶手機號、出生日期、用戶性別等。4、采購單信息系統(tǒng)生成的采購單信息,內(nèi)容包括訂單號、訂單人的真實姓名、訂單人的身份證號碼、訂單的倉庫地址等。2.2.6接口需求分析1、用戶接口使用用戶令牌通過WebAPI接口訪問數(shù)據(jù)。后臺系統(tǒng)拿到用戶令牌,也就是用戶token之后會先對令牌進行校驗,校驗通過對令牌進行解析拿到用戶的ID,然后根據(jù)ID去數(shù)據(jù)庫查詢該登錄用戶的相關(guān)信息并返回,例如賬號、昵稱、性別、出生日期以及其余用戶數(shù)等。針對社交登錄的賬號,首先請求社交網(wǎng)站拿到校驗令牌,然后攜帶令牌獲取用戶token,最后根據(jù)該token獲取用戶詳細信息。整個過程中都采取令牌校驗的方式,極大地保護了用戶的隱私,避免賬號被盜和入侵風(fēng)險。2、支付接口通過WebAPI接口訪問數(shù)據(jù),后端服務(wù)接收到發(fā)起的支付請求,根據(jù)訂單信息構(gòu)造訪問請求,攜帶這些信息訪問支付寶的支付接口。驗證通過就會執(zhí)行支付寶的支付流程,支付完成之后將支付結(jié)果通過回調(diào)函數(shù)返回至商城后臺。最后對支付結(jié)果進行校驗,保證整個支付過程的安全性。3、商城訂單接口通過webAPI接口訪問數(shù)據(jù)。后端服務(wù)接收到前端的訂單信息,首先會對這些信息進行校驗,之后再生成對應(yīng)的訂單,也可通過該模塊接口獲取訂單詳細信息,以及用戶信息和收件人相關(guān)信息。4、倉庫管理接口通過webAPI接口訪問數(shù)據(jù)??梢苑祷貛齑嫦嚓P(guān)信息,以及采購單的相關(guān)信息。包含采購人和倉庫負責(zé)人的姓名、性別、聯(lián)系方式等信息。2.2.7將來可能提出的需求分析1、對商城的頁面排版進一步的優(yōu)化。2、增加商品的優(yōu)惠專區(qū)。3、增加商品的討論專區(qū)。4、增加商城內(nèi)購買物品二手交易模塊上述可優(yōu)化的方向未在本次畢業(yè)設(shè)計的項目中實現(xiàn),除界面以外的優(yōu)化都具有一定的工作量,由于整體時間的關(guān)系未能做出功能實現(xiàn)。預(yù)期在后續(xù)軟件的優(yōu)化中會做出詳細的需求分析及功能實現(xiàn)。關(guān)于界面優(yōu)化,由于自己對前端知識的掌握具有一定的局限性,導(dǎo)致頁面和交互有很大的進步空間,因此還有許多需要學(xué)習(xí)的地方。相信在具有完備的知識體系和充足的時間后一定能夠?qū)⒃撋坛琼椖窟M行進一步的完善。
3系統(tǒng)設(shè)計3.1架構(gòu)設(shè)計軟件架構(gòu)是該系統(tǒng)的一個或多個結(jié)構(gòu),由元素外部元素屬性與之間的關(guān)系組成。系統(tǒng)架構(gòu)圖如圖3.1所示。圖3.1系統(tǒng)架構(gòu)圖3.2功能模塊設(shè)計根據(jù)前文分析,本系統(tǒng)的功能模塊圖如圖3.2所示。圖3.2系統(tǒng)功能模塊圖3.3數(shù)據(jù)庫設(shè)計3.3.1概念模型設(shè)計為了持久化的存儲信息,避免信息的丟失,“愛得淘”商城系統(tǒng)設(shè)計采取MySQL5.7關(guān)系數(shù)據(jù)庫做數(shù)據(jù)存儲。除了良好的事務(wù)支持和強大的數(shù)據(jù)庫引擎、還支持一二級緩存,讀取速度更快,為本項目數(shù)據(jù)的快速存取提供有力支持。經(jīng)過分析,本次設(shè)計的系統(tǒng)主要涉及到用戶模塊、商品模塊、訂單模塊、優(yōu)惠模塊、倉儲模塊,各個模塊的數(shù)據(jù)庫E-R圖如下列圖片所示。1、用戶模塊E-R圖該模塊主要展示用戶信息、會員等級、成長積分以及用戶操作日志表中間的關(guān)聯(lián)關(guān)系。圖3.3系統(tǒng)E-R圖(用戶模塊)2、商品模塊E-R圖該模塊主要展示商品表與商品分組、商品品牌、商品屬性、一二級商品、商品圖片、商品描述信息表建立的關(guān)聯(lián)關(guān)系。圖3.4系統(tǒng)E-R圖(商品模塊)3、訂單模塊E-R圖該模塊主要展示訂單表信息與支付信息、商品、支付記錄、支付回調(diào)信息表建立的關(guān)聯(lián)關(guān)系。圖3.5系統(tǒng)E-R圖(訂單模塊)4、優(yōu)惠模塊E-R圖該模塊主要展示優(yōu)惠券表與優(yōu)惠券使用歷史、商品、商品類別表之間建立的關(guān)聯(lián)關(guān)系。圖3.6系統(tǒng)E-R圖(優(yōu)惠模塊)5、倉儲模塊E-R圖該模塊主要展示倉庫表與倉庫管理員信息、訂單、庫存、日志表之間建立的關(guān)聯(lián)關(guān)系。圖3.7系統(tǒng)E-R圖(倉儲模塊)3.3.2數(shù)據(jù)庫表的設(shè)計本系統(tǒng)采用開源的MySQL數(shù)據(jù)庫,該數(shù)據(jù)庫支持多種語言與操作系統(tǒng),同時也支持多線程,對CPU資源的利用十分充分。并且還具有強大的事務(wù)支持和緩存機制,極大提高了數(shù)據(jù)存取速度。本系統(tǒng)采取分布式開發(fā),拆分的微服務(wù)模塊各自含有其模塊數(shù)據(jù)庫,包含oms訂單信息庫、pms商品信息庫、sms優(yōu)惠滿減活動信息庫、ums用戶信息庫、wms倉儲信息庫。這些庫分別定制相應(yīng)規(guī)則,以存儲各個模塊產(chǎn)生的數(shù)據(jù),各表之間利用主外鍵建立關(guān)系實現(xiàn)表之間的連接。根據(jù)以上的分析,下面將給出本系統(tǒng)的數(shù)據(jù)庫表。user表user表為用戶的所有信息表,表內(nèi)包括用戶名、密碼、昵稱、年齡、性別、手機號碼等信息,在系統(tǒng)中可以通過該表實現(xiàn)對用戶的信息管理。表設(shè)計如下表3.1所示。表3.1用戶信息表member序號列名數(shù)據(jù)類型長度主鍵外鍵允許空默認值說明1idbigint20是否ID2Level_idbigint20是等級3usernamechar64是賬戶4passwordvarchar64是密碼5nicknamevarchar64是昵稱6mobilevarchar20是手機7emailvarchar64是郵箱8headervarchar500是頭像9gendertinyint4是性別10birthdate是生日11cityvarchar500是城市12jobvarchar255是工作13signvarchar255是簽名14source_typetinyint4是來源15integrationint11是積分16growthint11是長值17statustinyint20是狀態(tài)18create_timedatetime4是創(chuàng)建時間19social_uidvarchar255是是社交id20access_tokenvarchar255是社交token21expires_invarchar255是過期時間22refresh_codevarchar255是刷新token23create_atvarchar255是token時間member_level表member_level為會員等級表,包含有哪些會員信息和會員成長等級。表設(shè)計如下表3.2所示。表3.2會員等級表member_level列名類型長度主鍵外鍵允許為空默認值說明idbigint20是NOidnamevarchar100YES等級名稱growth_pointint11YES成長值default_statustinyint4YES默認等級free_freight_pointdecimal18YES免運費標(biāo)準comment_growth_pointint11YES評價成長值priviledge_free_freighttinyint4YES免郵priviledge_member_pricetinyint4YES價格特權(quán)priviledge_birthdaytinyint4YES生日特權(quán)notevarchar255YES備注member_receive_address表member_receive_address為用戶收貨地址表,保存了所有用戶的收貨地址信息,并且通過member_id和用戶表建立關(guān)系。表設(shè)計如下表3.3所示。表3.3用戶收貨地址表member_receive_address列名數(shù)據(jù)類型長度主鍵外鍵允許為空默認值說明idbigint20是NOidmember_idbigint20是YESmember_idnamevarchar255YES收貨人姓名phonevarchar64YES電話post_codevarchar64YES郵政編碼provincevarchar100YES省份/直轄市cityvarchar100YES城市regionvarchar100YES區(qū)detail_addressvarchar255YES詳細地址(街道)areacodevarchar15YES省市區(qū)代碼default_statustinyint1YES是否默認attr表attr為商品屬性,保存了所有商品具有的屬性信息。表設(shè)計如下表3.4所示。表3.4商品屬性表分類attr列名數(shù)據(jù)類型長度主鍵外鍵允許為空默認值說明attr_idbigint20是NO屬性idattr_namechar30YES屬性名search_typetinyint4YES是否需要檢索iconvarchar255YES屬性圖標(biāo)value_selectchar255YES可選值列表attr_typetinyint4YES屬性類型enablebigint20YES啟用狀態(tài)catelog_idbigint20是YES所屬分類Show_desctinyint4YES快速展示value_typetinyint4YES可選值類型sku_info表sku_info為二級商品信息表,是商品的最小單位,保存的每個具體商品的信息,和一級商品表建立聯(lián)系、表設(shè)計如下表3.5所示。表3.5二級商品基礎(chǔ)信息表sku_info列名數(shù)據(jù)類型長度主鍵外鍵允許為空默認值說明sku_idbigint20是NOskuIdspu_idbigint20是YESspuIdsku_namevarchar255YESsku名稱sku_descvarchar2000YESsku介紹描述catalog_idbigint20是YES所屬分類idbrand_idbigint20是YES品牌idsku_default_imgvarchar255YES默認圖片sku_titlevarchar255YES標(biāo)題sku_subtitlevarchar2000YES副標(biāo)題pricedecimal18YES價格sale_countbigint20YES銷量category表category為商品的分類信息表,包含了所有商品的分類,表內(nèi)建立父子關(guān)系表示分類層級。表設(shè)計如下表3.6所示。表3.6商品分類信息表category列名數(shù)據(jù)類型長度主鍵外鍵允許為空默認值說明cat_idbigint20是NO分類idnamechar50YES分類名稱parent_cidbigint20YES父分類idcat_levelint11YES層級show_statustinyint4YES是否顯示sortint11YES排序iconchar255YES圖標(biāo)地址product_unitchar50YES計量單位product_countint11YES商品數(shù)量product_attr_value表product_attr_value為商品的屬性值表,和前面的屬性表建立關(guān)聯(lián),指定其所具有的屬性值,表設(shè)計如下表3.7所示。表3.7商品屬性值表product_attr_value列名數(shù)據(jù)類型長度主鍵外鍵允許為空默認值說明idbigint20是NOidspu_idbigint20是YES商品idattr_idbigint20是YES屬性idattr_namevarchar200YES屬性名attr_valuevarchar200YES屬性值attr_sortint11YES順序quick_showtinyint4YES快速展示spu_info表spu_info為一級商品信息表,和二級商品建立關(guān)聯(lián),相當(dāng)于一個大類別下面的子產(chǎn)品的關(guān)系,表設(shè)計如下表3.8所示。表3.8一級商品基礎(chǔ)信息表spu_info列名數(shù)據(jù)類型長度主鍵外鍵允許為空默認值說明idbigint20是NO商品idspu_namevarchar200YES商品名稱spu_descriptionvarchar1000YES商品描述catalog_idbigint20是YES所屬分類id續(xù)表3.8一級商品基礎(chǔ)信息表spu_info列名數(shù)據(jù)類型長度主鍵外鍵允許為空默認值說明brand_idbigint20是YES品牌idWeightdecimal18YESpublish_statustinyint4YES上架狀態(tài)create_timedatetimeYESupdate_timedatetimeYESbrand表brand為品牌信息表,詳細記錄了所有品牌的基礎(chǔ)信息,如名稱、logo等。表設(shè)計如下表3.9所示。表3.9品牌信息表brand列名數(shù)據(jù)類型長度主鍵外鍵允許為空默認值說明brand_idbigint20是NO品牌idnamechar50YES品牌名logovarchar2000YES品牌logo地址descriptlongtext4294967295YES介紹show_statustinyint4YES顯示狀態(tài)first_letterchar1YES檢索首字母sortint11YES排序coupon表coupon為優(yōu)惠券信息表,保存商城內(nèi)做活動時贈送的優(yōu)惠券信息,包含使用時間,過期時間等。表設(shè)計如下表3.10所示。表3.10優(yōu)惠券信息表coupon列名數(shù)據(jù)類型長度主鍵外鍵允許為空默認值說明idbigint20是NOidcoupon_typetinyint1YES優(yōu)惠卷類型coupon_imgvarchar2000YES優(yōu)惠券圖片coupon_namevarchar100YES優(yōu)惠卷名字numint11YES數(shù)量amountdecimal18YES金額per_limitint11YES每人限領(lǐng)張數(shù)min_pointdecimal18YES使用門檻start_timedatetimeYES開始時間end_timedatetimeYES結(jié)束時間續(xù)表3.10優(yōu)惠券信息表coupon列名數(shù)據(jù)類型長度主鍵外鍵允許為空默認值說明use_typetinyint1YES使用類型notevarchar200YES備注publish_countint11YES發(fā)行數(shù)量use_countint11YES已使用數(shù)量receive_countint11YES領(lǐng)取數(shù)量enable_start_timedatetimeYES可以領(lǐng)取的開始日期enable_end_timedatetimeYES可以領(lǐng)取的結(jié)束日期codevarchar64YES優(yōu)惠碼member_leveltinyint1YES可以領(lǐng)取的會員等級publishtinyint1YES發(fā)布狀態(tài)ware_info表ware_info為倉庫信息表,保存了商城內(nèi)所有的倉庫信息,包含其地址、負責(zé)人等信息。表設(shè)計如下表3.11所示。表3.11倉庫信息表ware_info列名數(shù)據(jù)類型長度主鍵外鍵允許為空默認值說明idbigint20是NOidnamevarchar255YES倉庫名addressvarchar255YES倉庫地址areacodevarchar20YES區(qū)域編碼ware_sku表ware_sku為商品的庫存信息表,保存了所有商品的數(shù)量,下單時會在此表中鎖定相應(yīng)庫存。表設(shè)計如下表3.12所示。表3.12庫存信息表ware_sku列名數(shù)據(jù)類型長度主鍵外鍵允許為空默認值說明idbigint20是NOidsku_idbigint20是YESsku_idware_idbigint20是YES倉庫idstockint11YES庫存數(shù)sku_namevarchar200YESsku_namestock_lockedint11YES0鎖定庫存
4系統(tǒng)實現(xiàn)4.1開發(fā)環(huán)境愛得淘網(wǎng)站采取B/S結(jié)構(gòu)體系,基于Java微服務(wù)框架進行開發(fā)。數(shù)據(jù)庫選取開源的MySQL數(shù)據(jù)庫,提升系統(tǒng)性能的中間件采取ElasticSearch、Redis、RabbitMQ等。該系統(tǒng)的運行環(huán)境如表4.1所示。表4.1系統(tǒng)所需軟、硬件環(huán)境硬件環(huán)境軟件環(huán)境CPU頻率:3.0GHz以上操作系統(tǒng):Windows10及以上版本內(nèi)存:16GB以上數(shù)據(jù)庫:MySQL5.7;JDK版本:1.8硬盤:50GB以上Web服務(wù)器:Tomcat7.0以上版本瀏覽器:GoogleChromeCentos7.0搜索中間件:ElasticSearch7.0及以上版本緩存中間件:Redis6.0及以上版本消息隊列中間件:RabbitMQ3.0及以上版本4.2功能模塊實現(xiàn)4.2.1登錄模塊登錄模塊主要實現(xiàn)用戶普通登錄功能以及社交帳號登錄。用戶輸入賬號、密碼,驗證后進行普通登錄。此外,用戶可以使用社交帳號進行快捷登錄,避免了注冊的繁瑣過程,也實現(xiàn)了將用戶快速接入本系統(tǒng)。登錄功能的整體思想為,用戶輸入賬戶密碼后傳送至后端服務(wù)進行校驗,校驗不通過則返回相關(guān)的錯誤信息至前端界面。檢驗通過則將數(shù)據(jù)庫中該用戶的數(shù)據(jù)取出來,然后將該用戶信息的ID用于token令牌的生成。經(jīng)過加密后為用戶生成唯一的令牌作為后端服務(wù)端與客戶端交互的橋梁,將此令牌存入Redis緩存中并設(shè)置過期時間,后續(xù)直接從Redis讀取該token驗證用戶信息。社交登錄即是引導(dǎo)用戶去社區(qū)網(wǎng)站界面點擊登錄,然后返回給系統(tǒng)一個令牌token,本系統(tǒng)通過該令牌去社交網(wǎng)站獲取用戶信息,存入本系統(tǒng)數(shù)據(jù)庫后完成登錄。實現(xiàn)整個登錄主體功能的代碼如圖4.1所示。圖4.1登錄模塊部分代碼具體的實現(xiàn)效果圖如圖4.2所示。圖4.2登錄模塊實現(xiàn)圖4.2.2注冊模塊注冊模塊的實現(xiàn)思想為,用戶輸入用戶名、密碼、手機號之后點擊發(fā)送短信驗證碼,且將驗證碼存入Redis,用戶接收到驗證碼之后進行填入。最后點擊注冊將數(shù)據(jù)傳送至服務(wù)端進行后臺校驗,校驗不通過則返回錯誤信息至前端頁面,校驗通過則將數(shù)據(jù)存儲至數(shù)據(jù)庫并登錄。實現(xiàn)注冊功能的主要代碼如圖4.3所示。圖4.3注冊模塊部分代碼具體的實現(xiàn)效果圖如圖4.4所示。圖4.4注冊模塊實現(xiàn)圖4.2.3商品檢索模塊檢索模塊的主要實現(xiàn)思想為是先將所有的上架商品數(shù)據(jù)存儲至ElasticSearch,因為該中間件提供高效的搜索能力。然后用戶輸入商品關(guān)鍵字,根據(jù)這個關(guān)鍵字去ElasticSearch中查詢相關(guān)數(shù)據(jù),最后將查詢結(jié)果集中的關(guān)鍵字部分進行高亮并將數(shù)據(jù)返回至前端,前端解析Json數(shù)據(jù)后渲染至頁面。實現(xiàn)檢索功能的代碼如圖4.6所示。圖4.5檢索模塊部分代碼具體的實現(xiàn)效果圖如圖4.6所示。圖4.6檢索模塊實現(xiàn)圖4.2.4購物車模塊購物車是商城系統(tǒng)中必不可少的一部分,它的大致設(shè)計思路是將購物車分為離線購物車和在線購物車,它們的區(qū)別就是用戶是否登錄。在線和離線購物車都有著各自的一個token,保存的商品會和這個token進行關(guān)聯(lián),而這個token又和用戶關(guān)聯(lián)。由此用戶即可查看到自己購物車的內(nèi)容,并且在離線購物車下存放的商品會在用戶登錄之后合并到在線購物車,最后在購物車中選擇結(jié)算,完成后續(xù)購物流程。購物車功能實現(xiàn)代碼如圖4.7所示。圖4.7購物車模塊部分代碼具體的實現(xiàn)效果圖如圖4.8所示。圖4.8購物車模塊實現(xiàn)圖4.2.5訂單模塊訂單模塊主要是根據(jù)用戶所選信息生成對應(yīng)的訂單,訂單模塊的主要實現(xiàn)思路是在購物車點擊去結(jié)算之后,訂單服務(wù)拿到訂單里面的所有商品信息。首先要對這些商品的信息進行校驗,比如價格、數(shù)量、收貨地址等,避免惡意篡改。校驗通過后生成訂單的基本信息,并將這些信息返回至前端頁面,前端解析并渲染數(shù)據(jù)。訂單模塊的實現(xiàn)代碼如圖4.9所示。圖4.9訂單模塊部分代碼具體的實現(xiàn)效果圖如圖4.10所示。圖4.10訂單模塊實現(xiàn)圖4.2.6支付模塊支付模塊是在點擊結(jié)算之后的流程模塊,主要設(shè)計思路是在購物車中點擊了結(jié)算之后,生成對應(yīng)的訂單。將訂單信息傳送給支付模塊,支付模塊拿到訂單信息后攜帶信息跳轉(zhuǎn)至支付寶支付界面,完成支付后該模塊接收支付寶回調(diào)函數(shù)返回的支付結(jié)果參數(shù),校驗是否支付成功,成功則修改訂單狀態(tài),失敗則返回錯誤信息。支付功能實現(xiàn)代碼如圖4.11所示。圖4.11支付模塊部分代碼具體的實現(xiàn)效果圖如圖4.12所示。圖4.12支付模塊實現(xiàn)圖
5系統(tǒng)測試5.1測試計劃一款完善的系統(tǒng)離不開詳細的系統(tǒng)測試,通過測試的手段可以提前發(fā)現(xiàn)系統(tǒng)所具有的BUG,規(guī)避項目上線后可能遇到的一些問題和風(fēng)險。本次的測試主要針對“愛得淘”商城的主要模塊進行測試,也就是對于軟件需求進行測試。本次測試采取的方式是黑盒測試,該方式僅僅關(guān)注系統(tǒng)的輸入和輸出,而不關(guān)注具體的代碼邏輯是如何實現(xiàn)的,主要目的就是看看系統(tǒng)功能是否符合預(yù)期。5.1.1測試范圍與主要內(nèi)容本次測試涉及到的重點區(qū)域內(nèi)容如表5.1所示。表5.1測試內(nèi)容測試模塊測試區(qū)域登錄模塊登錄頁展示用戶信息校驗社交登錄錯誤信息返回注冊模塊注冊頁面展示用戶注冊信息校驗注冊短信驗證碼發(fā)送購物車模塊購物車頁面展示商品加入購物車從購物車中刪除商品在購物車中點擊結(jié)算支付模塊支付頁面展示支付結(jié)果頁面跳轉(zhuǎn)獲取支付結(jié)果從購物車中移除該商品商品檢索模塊商品檢索框展示展示檢索結(jié)果搜索結(jié)果關(guān)鍵字是否高亮檢索結(jié)果和關(guān)鍵字是否相關(guān)檢索結(jié)果是否根據(jù)熱度排序商品詳情頁切換商品詳情頁展示點擊商品不同屬性進行切換點擊加入購物車5.1.2測試方法本次在對“愛得淘商城”進行功能測試時采用的方式是黑盒測試,黑盒測試其實又稱為功能測試,主要檢測軟件的每一個功能是否能夠正常使用。在測試過程中,將程序看成不能打開的黑盒子,不考慮程序內(nèi)部結(jié)構(gòu)和特性的基礎(chǔ)上通過程序接口進行測試,檢查程序功能是否按照設(shè)計需求以及說明書的規(guī)定能夠正常打開使用。在本次黑盒測試中用到的測試方法有:等價類劃分法、邊界值分析法以及錯誤推測法。其中等價類劃分法是黑盒測試中最為重要的一種方法,它選取具有代表性的測試用例,將這些測試用例分為有效等價類和無效等價類,然后分別輸入系統(tǒng)進行測試。邊界值分析法就是對一些具有范圍限制的功能,選取在限制范圍邊界中的值進行測試,也就是測試某項功能的極限。錯誤推測法就是根據(jù)以往的經(jīng)驗和對該功能的直覺,設(shè)計相關(guān)的測試用例進行正對性的測試,看看是否滿足自己的預(yù)期。5.1.3測試環(huán)境本次主要的測試環(huán)境如表5.2所示。表5.2測試環(huán)境客戶端軟、硬件配置備注硬件軟件ACPU:P42.66GOS:Windows10內(nèi)存:1G愛得淘商城硬盤:40G瀏覽器:GoogleChromeBCPU:P42.66GOS:Windows11內(nèi)存:4G愛得淘商城硬盤:520G瀏覽器:MicrosoftEdge5.2功能測試功能測試主要是對本次畢設(shè)項目實現(xiàn)界面所對應(yīng)的功能進行測試,看每項功能是否滿足預(yù)期效果。以商城系統(tǒng)的圖形用戶界面為入口,測試功能的整個流程能否走通。在此過程中檢查界面數(shù)據(jù)的正確性以及是否會出現(xiàn)程序異常,及時發(fā)現(xiàn)隱藏的BUG并修改。除此之外還要看業(yè)務(wù)功能是否和需求分析中的詳細規(guī)則一致。本次功能測試主要測試系統(tǒng)的登錄、注冊、購買商品、購物車、商品檢索、詳情頁展示等模塊。本次功能測試的詳細內(nèi)容如表5.3所示。表5.3功能測試用例表編號測試項描述/輸入/操作期望結(jié)果實際結(jié)果1登錄頁面登錄展示頁點擊去登錄按鈕后跳轉(zhuǎn)顯示正確顯示登錄頁面,格式不會亂正確顯示登錄頁面,格式不會亂2輸入登錄信息賬號輸入為空,密碼輸入為123456提示用戶名不能為空提示用戶名不能為空賬號輸入wangxiaoming,密碼輸入為空提示密碼不能為空提示密碼不能為空賬號輸入wangxiaoming,密碼輸入123456提示賬號或密碼錯誤提示賬號或密碼錯誤賬號輸入wangxiaoming,密碼輸入123456提示賬號或密碼錯誤提示賬號或密碼錯誤賬號或密碼輸入sql語句“or1=1”提示賬號或密碼錯誤提示賬號或密碼錯誤賬號輸入wangxiaoming,密碼輸入1提示請輸入6-20位密碼提示請輸入6-20位密碼賬號輸入wangxiaoming,密碼輸入aaaaaaaaaaaaaaaaaaaaa提示請輸入6-20位密碼提示請輸入6-20位密碼賬號正確輸入wangxiaoming,密碼輸入123456登錄成功,跳轉(zhuǎn)至首頁登錄成功,跳轉(zhuǎn)至首頁賬號輸入wangxaioming,密碼輸入12345678登錄失敗,提示密碼錯誤登錄失敗,提示密碼錯誤賬號輸入wangmazi,密碼輸入12345678登錄失敗,提示用戶不存在登錄失敗,提示用戶不存在3社交登錄點擊集成的社交登錄跳轉(zhuǎn)至社交登錄頁面,登錄后返回本商城。獲取到社交網(wǎng)站的用戶信息并展示當(dāng)前登錄用戶跳轉(zhuǎn)至社交登錄頁面,登錄后返回首頁。獲取到社交網(wǎng)站的用戶信息。續(xù)表5.3功能測試用例表編號測試項描述/輸入/操作期望結(jié)果實際結(jié)果4注冊頁面頁面展示點擊去注冊正確導(dǎo)航正確導(dǎo)航5輸入注冊信息賬號輸入wangxiaoer,密碼輸入123456,確認密碼輸入123456,手機號輸輸入正確驗證碼7854注冊成功,跳轉(zhuǎn)至登錄頁面注冊成功,跳轉(zhuǎn)至登錄頁面賬號輸入wangxiaoer,密碼輸入123,確認密碼輸入123,手機號輸輸入正確驗證碼7854注冊失敗,密碼為6-20為字符注冊失敗,密碼為6-20為字符賬號輸入wangxiaoming,密碼輸入123456,確認密碼輸入123456,手機號輸輸入正確驗證碼7854注冊失敗,提示用戶已存在注冊失敗,提示用戶已存在賬號輸入wangxiaoer,密碼輸入123456,確認密碼輸入12345678,手機號輸輸入正確驗證碼7854注冊失敗,提示兩次輸入的密碼不一致注冊失敗,提示兩次輸入的密碼不一致賬號輸入空值,密碼輸入123456,確認密碼輸入12345678,手機號輸輸入正確驗證碼7854注冊失敗,提示賬號不能為空注冊失敗,提示賬號不能為空賬號輸入wangxiaoer密碼和確認密碼輸入空值,手機號輸輸入正確驗證碼7854注冊失敗,提示密碼不能為空注冊失敗,提示密碼不能為空賬號輸入wangxiaoer,密碼輸入123456,確認密碼輸入123456,手機號輸入15112345678666注冊失敗,提示手機號格式錯誤注冊失敗,提示手機號格式錯誤賬號輸入wangxiaoer,密碼輸入123456,確認密碼輸入123456,手機號輸輸入驗證碼為空注冊失敗,提示請輸入驗證碼注冊失敗,提示請輸入驗證碼任意輸入框輸入sql語句“or1=1”注冊失敗,提示錯誤注冊失敗,提示錯誤續(xù)表5.3功能測試用例表編號測試項描述/輸入/操作期望結(jié)果實際結(jié)果6發(fā)送注冊驗證碼填寫手機號后點擊發(fā)送驗證碼接收到驗證碼,輸入并驗證通過接收到驗證碼,輸入并驗證通過7購物車頁面頁面展示點擊我的購物車1)正確顯示所在頁面的模塊名稱2)正確導(dǎo)航1)正確顯示所在頁面的模塊名稱2)正確導(dǎo)航8商品加入購物車商品詳情頁點擊加入購物車選中商品被添加至購物車選中商品被添加至購物車9商品從購物車刪除在購物車中選中商品,點擊刪除按鈕商品被移除購物車商品被移除購物車10結(jié)算在購物車頁面點擊去結(jié)算跳轉(zhuǎn)至結(jié)算頁面跳轉(zhuǎn)至結(jié)算頁面11支付頁面頁面展示點擊去結(jié)算跳轉(zhuǎn)至支付頁面,顯示訂單信息跳轉(zhuǎn)至支付頁面,顯示訂單信息12支付結(jié)果頁面跳轉(zhuǎn)支付商品導(dǎo)航至支付結(jié)果頁面導(dǎo)航至支付結(jié)果頁面13獲取支付結(jié)果支付完成之后獲取支付寶回調(diào)信息,顯示支付狀態(tài)獲取支付寶回調(diào)信息,顯示支付狀態(tài)14移除購物車商品購買成功之購買商品從購物車移除購買商品從購物車移除15商品檢索頁面檢索框展示進入首頁顯示搜索框顯示搜索框16展示搜索結(jié)果輸入關(guān)鍵字點擊搜索展示搜索結(jié)果展示搜索結(jié)果17關(guān)鍵字高亮點擊搜索之后關(guān)鍵字被加粗標(biāo)紅關(guān)鍵字被加粗標(biāo)紅18熱度排序搜索關(guān)鍵字之后商品根據(jù)熱度進行排序商品根據(jù)熱度進行排序19商品頁面展示點擊一件商品正常顯示正常顯示續(xù)表5.3功能測試用例表編號測試項描述/輸入/操作期望結(jié)果實際結(jié)果20詳情頁庫存顯示查看商品詳情顯示是否有貨顯示是否有貨21切換商品屬性點擊商品不同的屬性按鈕切換至對應(yīng)商品切換至對應(yīng)商品5.3兼容性測試由于軟件是面向大眾的,一款好的系統(tǒng)應(yīng)當(dāng)具備良好的跨平臺性,不能只是在某個特定的軟件或者是操作系統(tǒng)上才可正常運行。因此,如何保障開發(fā)的程序能夠在其他客戶機正常運行是兼容性測試的重要目標(biāo)之一。表5.4為本網(wǎng)站兼容性測試用例及測試結(jié)果。表5.4兼容性測試用例表配置說明操作系統(tǒng)系統(tǒng)軟件外設(shè)應(yīng)用軟件結(jié)果服務(wù)器Window10正常配置正常配置正常配置友好支持Window11正常配置正常配置正常配置友好支持MACOS正常配置正常配置正常配置友好支持客戶端Window10正常配置正常配置正常配置友好支持Window11正常配置正常配置正常配置友好支持MACOS正常配置正常配置正常配置友好支持數(shù)據(jù)庫服務(wù)器Window10正常配置正常配置正常配置友好支持Window11正常配置正常配置正常配置友好支持MACOS正常配置正常配置正常配置友好支持瀏覽器Window10正常配置正常配置正常配置友好支持Window11正常配置正常配置正常配置友好支持MACOS正常配置正常配置正常配置友好支持5.4測試結(jié)論本系統(tǒng)經(jīng)過功能測試和兼容性測試后,各個模塊的功能正常運行,達到了系統(tǒng)設(shè)計時的預(yù)期結(jié)果,測試過程中發(fā)現(xiàn)了一些問題并對問題及時做出修改,軟件運行更加可靠、穩(wěn)定。最終得到了符合要求的高效率商城購物系統(tǒng)。
6總結(jié)與展望6.1總結(jié)本次“愛得淘商城”的設(shè)計主要是靈活運用了Java開發(fā)語言的優(yōu)勢,利用其良好的生態(tài)環(huán)境進行項目開發(fā)。本次設(shè)計中,前端采取的是Vue和Thymeleaf框架,利用這兩個技術(shù)完成頁面的搭建。而后端則采取了大量優(yōu)秀的中間件技術(shù),以此來提升整個系統(tǒng)的性能,增加系統(tǒng)的并發(fā)承受能力。后端代碼的設(shè)計和主要是依賴于SpringBoot和SpringCloud框架。在開發(fā)過程中使用了VSCode、IDEA兩款強大的開發(fā)者工具,使整個開發(fā)過程得心應(yīng)手,最后關(guān)于主要功能的具體實現(xiàn)描述如下。針對登錄功能的實現(xiàn),采取redis臨時緩存用戶token及其基本信息,由于分布式開發(fā)的原因,使用SpringSession技術(shù)進行服務(wù)間的session共享,達到單點登錄的系統(tǒng)效果。同時還使用redis完成了購物車功能的實現(xiàn),將用戶離線和在線購物車的內(nèi)容存儲至redis中,并在登錄后將二者合并。作為一個商城系統(tǒng)的核心功能,支付功能對接阿里的支付寶沙箱模擬真實的支付場景。整個系統(tǒng)的信息存儲采用的是MySQL,同時為了優(yōu)化商品檢索的速度,引入ElasticSearch搜索引擎,該引擎使用倒排索引技術(shù)大大提高了信息的檢索速度。最后針對訂單功能采取了RabbiMQ消息隊列中間件,用于緩存訂單信息,使系統(tǒng)在大并發(fā)的情況下依舊正常運行,增強系統(tǒng)的可用性。6.2展望本次的畢業(yè)設(shè)計即將步入最后的階段,本次畢業(yè)設(shè)計的項目雖然大體上完成了所有的預(yù)期效果,但是由于時間和技術(shù)問題導(dǎo)致依然存在一定的不足。比如評論以及評分功能還未實現(xiàn),商城界面依然值得優(yōu)化,其中也包括與用戶之間的交互。同時關(guān)于商城檢索功能也只是實現(xiàn)了常用的功能點,復(fù)雜的檢索還有待優(yōu)化。后續(xù)針對本項目依然會進行不斷地優(yōu)化和迭代更新,包括新增二手交易模塊、商品討論區(qū)、物流模塊等等。相信在未來的不斷完善下,該系統(tǒng)一定會被大眾所認可。
參考文獻崔靜靜,李成鋼.網(wǎng)購平臺對
溫馨提示
- 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年江蘇省安全員-C證(專職安全員)考試題庫
- 頂管周圍壓密注漿施工方案
- 不銹鋼梯形橋架施工方案
- 企業(yè)綠化實施合同范本
- 2025天津市安全員《A證》考試題庫
- 公司經(jīng)營 管理 合同范本
- 二年級口算練習(xí)題集100道
- 二年級口算題目集100道
- 醫(yī)院護理人文關(guān)懷實踐規(guī)范專家共識課件
- DeepSeek在自然災(zāi)害預(yù)警中的潛力
- 2025年專利技術(shù)保密協(xié)議書模板
- 個人合伙開店合同范本
- 生而為贏自燃成陽-開學(xué)第一課發(fā)言稿
- 2025年中國國投高新產(chǎn)業(yè)投資集團招聘筆試參考題庫含答案解析
- 2024-2025學(xué)年小學(xué)美術(shù)一年級下冊(2024)嶺南版(2024)教學(xué)設(shè)計合集
- 《研學(xué)旅行課程設(shè)計》課件-研學(xué)課程設(shè)計計劃
- 年產(chǎn)10噸功能益生菌凍干粉的工廠設(shè)計改
- 中醫(yī)痹癥-課件
- 電梯維修作業(yè)指導(dǎo)書
評論
0/150
提交評論