【《基于Spring Cloud的電商平臺的設(shè)計與實現(xiàn)》14000字(論文)】_第1頁
【《基于Spring Cloud的電商平臺的設(shè)計與實現(xiàn)》14000字(論文)】_第2頁
【《基于Spring Cloud的電商平臺的設(shè)計與實現(xiàn)》14000字(論文)】_第3頁
【《基于Spring Cloud的電商平臺的設(shè)計與實現(xiàn)》14000字(論文)】_第4頁
【《基于Spring Cloud的電商平臺的設(shè)計與實現(xiàn)》14000字(論文)】_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

基于SpringCloud的電商平臺的設(shè)計與實現(xiàn)近年來以電子商務(wù)為首的在線新零售行業(yè)迅速發(fā)展,電子商務(wù)的普及不僅滿足了人們對于新時代消費的需求,還為廣大人們實現(xiàn)社會主義大眾創(chuàng)業(yè)、萬眾創(chuàng)新提供了一種嶄新的路徑和手段,也為我國疫情后期實現(xiàn)經(jīng)濟復(fù)蘇提供了新的動力。在我國這個人口大國,電商平臺的快速發(fā)展直接導(dǎo)致其用戶數(shù)量呈指數(shù)倍增,而大部分傳統(tǒng)的電商平臺系統(tǒng)都是將功能耦合在一起,在高并發(fā)場景下極易導(dǎo)致系統(tǒng)全面崩潰,十分不利于拓展和維護,已無法滿足當前市場的需求。故在此社會大背景下,本系統(tǒng)在開發(fā)過程中采用SpringCloud框架,將用戶管理、商品管理、訂單管理等功能獨立拆分,實現(xiàn)了服務(wù)之間的解耦,方便了系統(tǒng)后期功能的拓展和維護,在后臺數(shù)據(jù)管理方面采用了MySQL數(shù)據(jù)庫,用其開源和可靠的特性來保證后期維護的簡便性、數(shù)據(jù)操作的快捷性以及數(shù)據(jù)的安全性,在緩存處理方面選用了Redis鍵值對數(shù)據(jù)庫,減輕了MySQL數(shù)據(jù)庫的負荷,提升了數(shù)據(jù)查詢時的反饋速度,優(yōu)化了用戶的使用體驗??梢哉f該系統(tǒng)解決了電商平臺在高并發(fā)場景下的易癱瘓問題,保證了電商平臺的穩(wěn)定運行,增強了電商平臺的可拓展性,滿足了用戶的消費需求,節(jié)約了商家拓展市場的成本,使用戶和商家能夠更加安全便捷的進行網(wǎng)上交易。電子商務(wù);SpringCloud框架;微服務(wù);Redis;高并發(fā)目錄1緒論 11.1課題研究的背景 11.2課題的目的與意義 11.3國內(nèi)外研究現(xiàn)狀 11.4課題內(nèi)容 21.5論文結(jié)構(gòu) 21.6本章小結(jié) 32相關(guān)技術(shù)介紹 32.1SpringCloud框架介紹 32.2MySQL數(shù)據(jù)庫介紹 42.3Redis介紹 42.4本章小結(jié) 53需求分析 53.1可行性需求分析 53.1.1經(jīng)濟可行性分析 53.1.2技術(shù)可行性分析 63.2功能需求分析 63.2.1用戶注冊登錄功能 63.2.2商品展示功能 63.2.3購物車功能 73.2.4訂單功能 73.2.5留言功能 73.2.6管理員后臺管理功能 73.3面向?qū)ο蠓治?73.3.1用戶用例分析 73.3.2管理員用例分析 93.4本章小結(jié) 104系統(tǒng)分析 104.1概要設(shè)計 104.2詳細設(shè)計 104.2.1用戶注冊登錄功能 104.2.2商品展示功能 124.2.3購物車功能 124.2.4訂單功能 144.2.5留言功能 154.3數(shù)據(jù)庫設(shè)計 164.3.1概念模型設(shè)計 164.3.2邏輯表結(jié)構(gòu)設(shè)計 184.4本章小結(jié) 195系統(tǒng)實現(xiàn) 195.1用戶注冊登錄功能的實現(xiàn) 195.2商品展示功能的實現(xiàn) 215.3購物車功能的實現(xiàn) 235.4訂單功能的實現(xiàn) 245.5留言功能的實現(xiàn) 265.6本章小結(jié) 276系統(tǒng)測試 276.1測試概述 276.2功能測試 286.2.1用戶注冊登錄測試 286.2.2商品展示測試 286.2.3訂單功能測試 286.3本章小結(jié) 28結(jié)束語 29參考文獻 30PAGE5緒論課題研究的背景電商平臺的迅猛發(fā)展是我國進入互聯(lián)網(wǎng)時代的必然結(jié)果,電子商務(wù)的迅猛發(fā)展也同時構(gòu)成了我國互聯(lián)網(wǎng)新零售行業(yè)的一個增長加速器。電子商務(wù)的普及和發(fā)展不僅滿足了人們對于新時代消費的需求,為廣大人們實現(xiàn)社會主義大眾創(chuàng)業(yè)、萬眾創(chuàng)新活動提供了一種嶄新的路徑和手段。而且現(xiàn)在我國電子商務(wù)正在進一步地加速與傳統(tǒng)制造業(yè)深度融合,推動了服務(wù)業(yè)的進一步轉(zhuǎn)型和消費升級,催生了新興行業(yè),成為廣大社會公民群眾所需要的各種公共產(chǎn)品、各類公共服務(wù)的一種全球化新驅(qū)動力量。加快和發(fā)展現(xiàn)代電子商務(wù)可以有效地幫助企業(yè)尤其是中小型企業(yè)大幅度降低成本、提高企業(yè)利潤、創(chuàng)新其經(jīng)營管理模式、提升其產(chǎn)品競爭能力,對于實現(xiàn)我國產(chǎn)業(yè)轉(zhuǎn)型、推進供給側(cè)結(jié)構(gòu)性改革、支持民族自主品牌產(chǎn)業(yè)發(fā)展以及形成一個新的經(jīng)濟增長點都具有重要作用,對于刺激我國疫情過后的消費內(nèi)需、改善民生和帶動就業(yè)都將具有十分重要的指導(dǎo)價值。當前,2021年這個時期將是我們黨全面融入建成現(xiàn)代化小康社會的一個決勝之年,推進人們實現(xiàn)大眾創(chuàng)業(yè)、增加就業(yè)崗位,保障民生,是我國發(fā)展的安邦之策,是實現(xiàn)產(chǎn)業(yè)結(jié)構(gòu)化轉(zhuǎn)型、推進供給側(cè)結(jié)構(gòu)性改革、在疫情之后實現(xiàn)經(jīng)濟復(fù)蘇的重大舉措。故本系統(tǒng)在此大背景下應(yīng)運而生,助力電子商務(wù)發(fā)展。課題的目的與意義目的:科技的發(fā)展直接導(dǎo)致生活方式的轉(zhuǎn)變,在近年來越發(fā)明顯,尤其是在購物方面。網(wǎng)絡(luò)的發(fā)達及快遞的完善使得網(wǎng)購變得更加輕松便捷,故電商平臺系統(tǒng)對人們?nèi)粘I罘绞降母淖冇l(fā)深遠?;赟pringCloud的電商平臺是通過爆款商品搶購幫助商家進行引流,通過系統(tǒng)的用戶、購物車、商品以及訂單等一系列配套的管理體系,在保證了用戶獲得優(yōu)惠的同時,平臺獲得用戶流量以變現(xiàn),商家也能賣出自己更多的產(chǎn)品,從而實現(xiàn)本系統(tǒng)“用戶、商家、平臺三方互利”的目的。意義:本系統(tǒng)是一套功能體系完整的電商平臺,企業(yè)商家可以在該平臺發(fā)布自己的部分爆款商品以帶動其他產(chǎn)品的銷量,用戶可在平臺上進行自主選擇。從而幫助了用戶獲得實惠的同時,提高平臺商家的效益,同時平臺也可通過廣告位等獲利,故實現(xiàn)三方共贏的意義。本系統(tǒng)于用戶而言,可以十分優(yōu)惠且便利的滿足消費需求。于商家而言,可以銷售更多產(chǎn)品的同時節(jié)省了許多成本。不僅如此,該系統(tǒng)實現(xiàn)了零門檻創(chuàng)業(yè),只需一部電腦,就可以開店,從而帶動產(chǎn)業(yè)的發(fā)展,十分有利于我國疫后經(jīng)濟復(fù)蘇。國內(nèi)外研究現(xiàn)狀電子商務(wù)平臺即是B2C的在線購物系統(tǒng)。商家通過電子商務(wù)平臺展示、出售自己的產(chǎn)品。用戶在該平臺根據(jù)自己的喜好購買商品,流程簡單、物流便捷、信息安全等諸多優(yōu)點使得網(wǎng)上購物越來越贏得大眾們的青睞。電商平臺從無到有大約經(jīng)過了如下四個過程:誕生階段:1998年易趣公司在上海成立,做出了中國第一家網(wǎng)上購物系統(tǒng)。同年3月18日,在北京誕生了我國第一筆網(wǎng)上購物交易。受阻階段:2001年,正當電子商務(wù)站在風口上準備起飛的時候,由于互聯(lián)網(wǎng)泡沫經(jīng)濟嚴重,問題隨之爆發(fā),諸多電商平臺也因此倒閉。發(fā)展階段:由于2003年非典爆發(fā),人們不得不由線下購物向線上購物轉(zhuǎn)變,因此可以說非典間接推動了其快速發(fā)展,這個時候國內(nèi)外諸多電子商務(wù)平臺開始崛起,如阿里巴巴旗下的淘寶網(wǎng)就是在此時代背景下發(fā)家的??梢哉f像淘寶網(wǎng)這些電商平臺是時代的產(chǎn)物也是歷史的選擇。升華階段:我國在線零售總額于2019年達到195209.7億元,在社會零售總額占比高達四分之一,到目前為止,我國已有8億人參與過網(wǎng)購。隨著網(wǎng)上購物系統(tǒng)的越來越普及,平臺對于質(zhì)量的監(jiān)管也在逐漸下降,這一階段我國電商平臺便完成了從量到質(zhì)的轉(zhuǎn)變,優(yōu)勝劣汰,市場上只剩下淘寶網(wǎng)、京東網(wǎng)等網(wǎng)上購物平臺。世界即將進入網(wǎng)絡(luò)化、虛擬化和數(shù)據(jù)化的信息時代,隨之而來的就是信息時代對生活產(chǎn)生的影響,故本課題在此時代大背景下應(yīng)運而生,基于SpringCloud的電商平臺的設(shè)計與實現(xiàn)是基于網(wǎng)頁端的B2C網(wǎng)購平臺,該系統(tǒng)采用SpringCloud微服務(wù)架構(gòu),實現(xiàn)了電商平臺系統(tǒng)服務(wù)之間的解耦以及各功能高度模塊化,滿足了高并發(fā)場景下的高可用,因此具有極強的拓展性和穩(wěn)定性。課題內(nèi)容本系統(tǒng)主要包括用戶角色功能和管理員角色功能兩部分。首先用戶進入首頁,在其游客身份下也可以使用購物車功能,登錄后會將游客狀態(tài)下的購物車內(nèi)商品與本身該用戶購物車內(nèi)的商品進行合并,之后用戶可選擇購物車內(nèi)的商品提交訂單,然后填寫完整收貨地址以及選擇付款方式,最后訂單會進入到后臺,由管理員進行后續(xù)發(fā)貨等操作。管理員負責對商品上下架、用戶找回、訂單發(fā)貨、留言回復(fù)等。除此之外平臺具有留言板功能,用戶可以在平臺發(fā)表自己的使用體驗,以促進平臺進行改進。論文結(jié)構(gòu)第一章為緒論,介紹了電商平臺的整體背景、國內(nèi)外研究現(xiàn)狀、對社會產(chǎn)生的價值以及該篇論文結(jié)構(gòu)。第二章為相關(guān)技術(shù)介紹,主要為本課題從理論到實踐,真正落地進行開發(fā)過程中用到的技術(shù)的相關(guān)介紹。第三章為需求分析,主要分為可行性需求分析、功能需求分析、面向?qū)ο蠓治鋈竽K。其中可行性需求分析對經(jīng)濟和技術(shù)進行需求分析介紹。功能需求分析對注冊登錄、商品展示、購物車、訂單、留言、管理員后臺管理等功能進行可行性分析。面向?qū)ο蠓治鍪菍ο到y(tǒng)的使用者進行用例的分析。第四章為系統(tǒng)分析,主要包括概要設(shè)計、詳細設(shè)計、數(shù)據(jù)庫設(shè)計。概要設(shè)計介紹了本系統(tǒng)的主要模塊功能和詳細設(shè)計,圖文并茂地介紹了該電商系統(tǒng)的功能實現(xiàn)原理,數(shù)據(jù)庫設(shè)計介紹了本電商平臺涉及到的實體表信息。第五章為系統(tǒng)實現(xiàn),用主要功能的截圖展示了實現(xiàn)后的系統(tǒng),并對每個功能進行了大致介紹且附上核心源碼。第六章為系統(tǒng)測試,主要介紹了測試的目的和本系統(tǒng)部分主要功能的測試用例。本章小結(jié)本章主要介紹了基于SpringCloud的電商平臺的國內(nèi)外研究背景、研究該課題的目的以及對社會產(chǎn)生的價值,并且介紹了與以往的電商平臺相比之下的優(yōu)勢。除此之外,本章闡述了該課題的主要研究內(nèi)容以及該篇論文結(jié)構(gòu)。相關(guān)技術(shù)介紹本系統(tǒng)采用Java語言基于SpringCloud框架進行開發(fā),使用MySQL數(shù)據(jù)庫對系統(tǒng)產(chǎn)生的數(shù)據(jù)進行管理,為實現(xiàn)高并發(fā)場景下的穩(wěn)定,采用了Redis技術(shù)做緩存處理,該套架構(gòu)選型滿足了高并發(fā)場景下的高可用,具有極強的拓展性和穩(wěn)定性。下面對該系統(tǒng)涉及的主要技術(shù)架構(gòu)進行介紹。SpringCloud框架介紹SpringCloud是標準的微服務(wù)解決方案,由于它提供了許多成熟的組件并且它基于SpringBoot,所以在開發(fā)分布式系統(tǒng)的過程中十分便捷。如果我們要自行搭建一個分布式框架,就需要自己配置注冊中心、負載均衡、遠程調(diào)用、熔斷器、網(wǎng)關(guān)、配置中心等一系列繁瑣復(fù)雜的服務(wù),而在SpringCloud的生態(tài)圈里,早就提供了這么一套完整的組件模型,我們就只需在這些組件上搭建我們自己的服務(wù)即可,從而大大減少了開發(fā)成本,使我們能夠輕松地構(gòu)建微服務(wù)項目,十分方便快捷。SpringCloud主要有以下五大組件:1.注冊中心:Eureka,是SpringCloud基于REST協(xié)議用來進行服務(wù)發(fā)現(xiàn)的一個核心組件,每個服務(wù)都會先到Eureka的注冊表上進行注冊,調(diào)用其他服務(wù)時也會從該注冊表獲得其他服務(wù)的地址,從而進行調(diào)用。2.負載均衡:Ribbon,Ribbon是一套開源的用戶端用于負載均衡的組件。簡單的來說:就是消費方去注冊中心獲取指定服務(wù)名稱下保存的服務(wù)列表中所有地址,然后Ribbon再采用指定規(guī)則(輪詢、隨機、權(quán)重和自定義等等算法)去選擇具體的某一地址,去連接機器。3.遠程調(diào)用:Feign;基于Ribbon進行遠程服務(wù)調(diào)用,F(xiàn)eign的本質(zhì)是通過動態(tài)代理的模式來實現(xiàn)的。4.斷路器:Hystrix,Hystrix是用于解決服務(wù)調(diào)用過程中出錯的開源庫,即當目標服務(wù)不可用時候,采取熔斷措施,防止調(diào)用方時間等待過長。Hystrix會為每一個Feign客戶端,創(chuàng)建一個單獨的線程池(服務(wù)調(diào)用),用于隔離熔斷,當一個服務(wù)在設(shè)定閾值內(nèi)不可用的時候,Hystrix會開啟熔斷,之后會在設(shè)定時間后嘗試恢復(fù)。降級就是當被調(diào)用方癱瘓時,返回給調(diào)用方提示,不至于一直等待而耗盡內(nèi)存,從而導(dǎo)致整體系統(tǒng)服務(wù)雪崩,可以將此次服務(wù)調(diào)用的信息,服務(wù)調(diào)用路徑、參數(shù)、時間等相關(guān)信息存到數(shù)據(jù)庫的日志表中,等待后續(xù)人工解決。5.服務(wù)網(wǎng)關(guān):Zuul,Zuul主要負責對請求的過濾和跳轉(zhuǎn)。我們可以對Zuul進行安全配置,當請求進來的時候,Zuul會對其進行安全性判定,從而過濾非法請求。Zuul還能根據(jù)請求特征找到相對應(yīng)的服務(wù),從而實現(xiàn)請求的跳轉(zhuǎn)。除此之外,Zuul還可以做限流,認證授權(quán)等。提起微服務(wù)框架,不得不說另一個微服務(wù)框架:Dubbo。Dubbo是用于服務(wù)拆分的一個分布式服務(wù)治理RPC框架,但從嚴格意義上講Dubbo并不是完整的微服務(wù)框架,僅僅做到了分布式環(huán)境下的服務(wù)治理。在微服務(wù)架構(gòu)方面與其相比,SpringCloud有諸多優(yōu)勢,比如SpringCloud實現(xiàn)了微服務(wù)模塊全覆蓋,無需自己再造車輪,SpringCloud用注解取締了配置文件,并且對生態(tài)鏈都進行了很大程度的封裝,大大提高了工程師的開發(fā)效率,除此之外,開發(fā)者可以根據(jù)實際情況靈活選擇SpringCloud的輕量級組件。基于以上諸多優(yōu)點,本系統(tǒng)選用SpringCloud作為主體開發(fā)框架。MySQL數(shù)據(jù)庫介紹MySQL在20世紀末由MySQLAB公司發(fā)行,由于MySQL價格低廉、速度快、并且內(nèi)存少,越來越多的公司選用MySQL作為數(shù)據(jù)庫。MySQL采用處理數(shù)據(jù)庫最標準的計算機語言對數(shù)據(jù)庫進行管理,MySQL相較于市面上常見的DB2、Oracle等數(shù)據(jù)庫有諸多優(yōu)勢,較Oracle而言其復(fù)雜程度較低,MySQL小巧且價格低廉,其只占幾十兆的系統(tǒng)內(nèi)存,對個人用戶還是免費的,MySQL不僅性能優(yōu)越支持多個客戶端同時連接,這些客戶端可以是命令行、網(wǎng)頁瀏覽器或客戶機程序,還可以是由C、C++、Java等編寫的界面。另外,MySQL可部署在各種平臺上,具有十分強大的跨平臺性。Web系統(tǒng)可以說是對數(shù)據(jù)的可視化展示,提供一個方便用戶使用的界面來對數(shù)據(jù)進行增刪查改。因此對數(shù)據(jù)的管理就是整個系統(tǒng)的核心,鑒于MySQL相較于市面上若干數(shù)據(jù)庫的諸多優(yōu)點,故本電商平臺選用MySQL作為數(shù)據(jù)庫。Redis介紹Redis是Key-Value形式的鍵值對非關(guān)系型數(shù)據(jù)庫,Redis在生產(chǎn)中常用于數(shù)據(jù)庫、緩存處理以及消息代理等。Redis提供了五種數(shù)據(jù)類型,適用于各種數(shù)據(jù)的儲存,其中包括:String(字符串),每個Key有其唯一的Value,其也是最為典型的數(shù)據(jù)結(jié)構(gòu);Hash(哈希),其值又是類似鍵值對的形式,常用于儲存對象;List(隊列),List相當于是一個雙端鏈表,兩側(cè)都可以進行入隊和出隊,常用于隊列操作;Set(集合),其值可保存多個字符串,但無序且不可重復(fù),常用于聚合分類的場景;Zset(有序集合),與Set一樣Value不可重復(fù),但是有序,常用于做排行榜等場景。在對數(shù)據(jù)進行持久化方面,Redis提供了RDB(默認開啟)和AOF(手動開啟)兩種方式,我們只需要做簡單的配置,就能使Redis在宕機后自動恢復(fù)數(shù)據(jù),充分保證了數(shù)據(jù)的安全性。直至今日,Redis在月度排行網(wǎng)站DB-E中仍然是使用最多的鍵值對非關(guān)系型數(shù)據(jù)庫。由于是存儲在系統(tǒng)的內(nèi)存當中,所以有非??斓淖x寫速度,讀在10萬每秒,寫在8萬每秒,因此在高并發(fā)場景下,可以將Redis作為MySQL數(shù)據(jù)庫的緩沖層,讓原本該進入數(shù)據(jù)庫的線程先去Redis中進行讀取,如果未讀取到數(shù)據(jù),再去訪問數(shù)據(jù)庫,從數(shù)據(jù)庫中查詢到數(shù)據(jù)的同時將數(shù)據(jù)導(dǎo)入Redis,接下來的請求就都會從Redis中讀取到數(shù)據(jù),從而避免大量的用戶請求涌入數(shù)據(jù)庫,故可避免數(shù)據(jù)庫因過多負荷導(dǎo)致的崩潰。本章小結(jié)本章主要圍繞該電商平臺的技術(shù)架構(gòu),介紹了如此進行選擇的主要原因,并且對電商平臺所涉及到的主要技術(shù)進行介紹。需求分析可行性需求分析一個系統(tǒng)是否具有開發(fā)的價值,是否通過開發(fā)此系統(tǒng)改變了某些地方的不足或提高了某些方面的生產(chǎn)效率,可行性分析就是對經(jīng)濟和技術(shù)兩方面對項目進行綜合分析論證。其目的是通過事先進行科學分析預(yù)估,在取得最大成果的同時付出最小的成本。經(jīng)濟可行性分析本電商平臺在開發(fā)過程中所涉及到的軟件都是免費的,不僅大大節(jié)約了經(jīng)濟成本,而且其技術(shù)社區(qū)都十分活躍,開發(fā)過程中遇到的問題能夠第一時間解決。在用戶使用本系統(tǒng)時,由于本電商平臺采用的是B/S架構(gòu),所以用戶在網(wǎng)頁端就可以使用該系統(tǒng),十分經(jīng)濟便捷。在后期維護方面,即使后期用戶數(shù)驟增,原系統(tǒng)無法負荷,由于我們采用的是SpringCloud架構(gòu),我們可以將各個服務(wù)拆分成一個個小模塊單獨部署到價格低廉的服務(wù)器上,在后期高并發(fā)的場景下,我們也可以通過增加價格低廉的服務(wù)器來增加系統(tǒng)的承受能力,在經(jīng)濟方面也是十分可觀的。技術(shù)可行性分析由于該電商平臺主要是B2C系統(tǒng),故難免會有高并發(fā)的場景,因此在項目架構(gòu)選型階段,在綜合對比之下選用了SpringCloud框架來做系統(tǒng)的整體開發(fā)框架,SpringCloud架構(gòu)是把每個功能或者模塊單獨拆分,實現(xiàn)系統(tǒng)功能之間的解耦,避免了因為部分功能崩潰導(dǎo)致整個系統(tǒng)癱瘓的情況。我們可以將每個服務(wù)單獨部署,如果后期業(yè)務(wù)量增大,我們也可以有選擇性的將部分服務(wù)搭建成集群架構(gòu),從而大大提升系統(tǒng)的性能。在數(shù)據(jù)庫選用的是MySQL,由于是開源的,其開發(fā)社區(qū)一直比較活躍,技術(shù)氛圍也是十分良好,有大量案例和文獻可供參考,能夠及時解決問題。由于MySQL只能承載幾萬的并發(fā),所以單單只靠MySQL來解決數(shù)據(jù)問題是遠遠不行的,所以在設(shè)計本系統(tǒng)時,我引入了Redis技術(shù)來做緩存處理,由于Redis的高可用,讀在10萬每秒,寫在8萬每秒,因此在高并發(fā)場景下,可以將Redis做一個數(shù)據(jù)庫的緩沖,讓請求先訪問Redis讀取數(shù)據(jù),如果沒有取到,再去訪問數(shù)據(jù)庫,這樣就避免了大量請求直接涌入數(shù)據(jù)庫,故可避免數(shù)據(jù)庫因過多負荷導(dǎo)致的崩潰。采用Redis+MySQL的架構(gòu),充分保證了系統(tǒng)的安全性和可用性。功能需求分析用戶注冊登錄功能本系統(tǒng)采用的是B/S架構(gòu),所有功能都是以網(wǎng)頁的形式進行交互,用戶在首頁瀏覽商品時無需登錄,但使用其他功能,就會拉起登錄,新用戶將進行注冊,用戶在注冊頁面通過Form表單填寫個人信息,在填寫信息的同時會對非法字符進行提示,填寫完成后通過Post的方式發(fā)送給后臺,后臺會將該用戶信息導(dǎo)入到MySQL數(shù)據(jù)庫中。用戶在登錄頁輸入賬號密碼以及驗證碼,用戶信息通過Post的方式發(fā)送給后臺的控制層,后臺通過查詢數(shù)據(jù)庫校驗用戶信息及驗證碼,正確即登錄成功,反之登錄失敗。商品展示功能商品展示分為兩部分,一是首頁展示所有商品信息,二是點擊商品圖片,查看其詳細信息。在首頁展示所有商品時,由于每個用戶都會首先進入首頁,如果按照傳統(tǒng)的每個用戶都去訪問一遍數(shù)據(jù)庫來查詢商品信息,由于商品信息本身就數(shù)據(jù)量巨大,加上用戶的頻繁訪問,難免給數(shù)據(jù)庫增加巨大的壓力,導(dǎo)致難以負荷,因此我使用Redis技術(shù)來解決這一難題,在第一個用戶訪問首頁的時候,我們將查詢到的商品數(shù)據(jù)寫入到Redis中,在之后所有用戶都是從Redis中讀取商品信息,不需要再對數(shù)據(jù)庫進行查詢,不僅解決了MySQL在高并發(fā)場景下的崩潰問題,由于Redis的高性能,還大大提升了商品信息的查詢速度,優(yōu)化了用戶的體驗。當用戶想查看某個商品的詳情,從而點擊某個商品時,該商品唯一的商品ID會跟隨請求傳入后臺,后臺會根據(jù)此唯一的商品ID查詢出該商品的顏色、價格等詳細信息,返回給前端頁面進行展示給用戶。購物車功能購物車功能分為游客狀態(tài)下的購物車、登錄狀態(tài)下的購物車兩部分,游客狀態(tài)下會儲存在本地瀏覽器的Cookie中,而登錄狀態(tài)下會儲存在我們的Redis中。用戶在首頁瀏覽商品,點擊跳轉(zhuǎn)到詳情頁,點擊加入購物車,商品ID會隨請求傳入后臺,會將該商品加入到用戶的購物車信息中。在購物車中也可以對加購商品進行修改操作,并且也可以批量操作加購的商品。訂單功能用戶加購商品到購物車,在購物車內(nèi)能修改商品,在提交訂單頁,用戶要填寫相關(guān)收貨人以及收貨地址。在提交訂單時,選中的商品ID會隨請求傳入后臺,生成新的訂單數(shù)據(jù),存儲到MySQL中,管理員在后臺訂單管理界面進行發(fā)貨等操作。留言功能用戶可在進入到商品詳情頁后,可對感興趣的商品進行留言,管理員看到后可進行回復(fù),留言支持模糊查詢,在留言過多的情況下,用戶可以根據(jù)關(guān)鍵詞查找到自己感興趣的留言。同時留言功能利用Mybatis的PageHelper插件實現(xiàn)了分頁功能,根據(jù)留言時間倒序排列,用戶可根據(jù)時間段來查找自己想看到的留言信息,非常方便。管理員后臺管理功能在此電商平臺系統(tǒng)中,管理員擁有最高權(quán)限,負責對整個系統(tǒng)的合理運作進行維護,除對各模塊數(shù)據(jù)有查看權(quán)限外,還可以對用戶、商品、留言等修改操作,對訂單進行發(fā)貨操作等。面向?qū)ο蠓治鰧τ谝粋€完整的系統(tǒng)而言,用例分析是必不可少且至關(guān)重要的一步,通過用例分析可以清楚的了解各個角色的功能,以下將對各個對象進行詳細的用例分析。用戶用例分析在用戶方面,用戶能夠注冊賬戶并登錄,在首頁能夠瀏覽商品,并且能夠?qū)⑸唐芳尤胭徫镘?,選擇好購物車內(nèi)的商品提交訂單,在“我的訂單”頁能夠查看訂單的狀態(tài)。用戶用例分析圖如圖3-1所示:圖3-1用戶用例圖表3-1用戶注冊用例描述用例名稱用戶注冊參與者用戶用例說明通過輸入個人信息完成注冊前置條件用戶能夠注冊成功基本事件流進入首頁,跳轉(zhuǎn)到注冊頁面填寫信息。點擊注冊按鈕,提交注冊。用戶能夠成功注冊并且用戶信息能夠提交到數(shù)據(jù)庫。異常事件流所填寫的用戶信息不符合要求。后置條件所填寫的注冊信息必須符合要求,才能夠注冊有效賬戶信息。表3-2用戶登錄用例描述用例名稱用戶登錄參與者用戶用例說明通過輸入個人信息完成用戶登錄前置條件用戶能夠登錄成功基本事件流進入首頁,跳轉(zhuǎn)到登錄頁面填寫個人賬號密碼。點擊登錄按鈕,提交登錄。用戶能夠成功登錄并且進入系統(tǒng)首頁。異常事件流所填寫的用戶賬號密碼不符合要求。后置條件所填寫的用戶賬號密碼必須符合要求,才能夠登錄成功并進入首頁。表3-3用戶加購商品用例描述用例名稱用戶加購商品參與者用戶用例說明選擇商品加入購物車前置條件用戶能夠?qū)⑸唐芳尤胭徫镘嚦晒臼录鬟M入首頁,用戶點擊商品進入詳情頁,將其加入購物車。異常事件流商品加入購物車失敗。后置條件商品詳情頁點擊加購后跳轉(zhuǎn)到我的購物車頁。表3-4用戶下單用例描述用例名稱用戶下單參與者用戶用例說明選購商品完成下單前置條件用戶能夠下單成功基本事件流進入首頁,選購商品加入購物車,在購物車內(nèi)選擇商品進行提交訂單,在我的訂單頁能夠看到該訂單狀態(tài)。異常事件流用戶填寫收貨信息不合理。后置條件所填寫的收貨信息必須合理。管理員用例分析管理員具有登錄,分類管理,商品管理與訂單管理等功能,分類管理可以對商品的一二級分類進行操作,商品管理可以對商品進行編輯、上下架等操作,訂單管理可以對訂單進行查看、發(fā)貨等操作。管理員用例分析圖如圖3-2所示:圖3-2管理員用例圖表3-5管理員登錄用例描述用例名稱管理員登錄參與者管理員用例說明通過輸入管理員信息完成管理員登錄前置條件管理員能夠登錄成功基本事件流進入后臺,填寫管理員賬號密碼。點擊登錄按鈕。管理員能夠成功登錄并且進入系統(tǒng)后臺。異常事件流所填寫的用戶賬號密碼不符合要求。后置條件所填寫的管理員賬號密碼必須符合要求,才能夠登錄成功并進入后臺。表3-6管理員管理分類用例描述用例名稱管理員管理商品分類參與者管理員用例說明管理員可對商品的一/二級分類進行修改并保存前置條件管理員修改一/二級分類成功基本事件流進入后臺,點擊一/二級分類管理,單擊某個分類,對其進行編輯并成功保存。異常事件流所編輯的商品分類不符合要求。后置條件所編輯的商品分類必須符合要求,才能保存至數(shù)據(jù)庫并展示在首頁。表3-7管理員管理商品用例描述用例名稱管理員管理商品參與者管理員用例說明管理員可對所有商品進行添加、修改、刪除。前置條件管理員添加、修改、刪除商品成功基本事件流進入后臺,點擊商品管理,點擊某個商品,對其進行添加、修改、刪除并執(zhí)行成功。異常事件流所編輯的商品不符合要求。后置條件所編輯的商品必須符合要求,才能保存至數(shù)據(jù)庫并展示在首頁。表3-8管理員管理訂單用例描述用例名稱管理員管理訂單參與者管理員用例說明管理員可對所有訂單進行查看、發(fā)貨。前置條件管理員查看、發(fā)貨訂單成功基本事件流進入后臺,點擊訂單管理,點擊某個訂單,對其進行查看/發(fā)貨并執(zhí)行成功。異常事件流訂單發(fā)貨失敗。后置條件必須在該訂單存在且狀態(tài)為“待發(fā)貨”,管理員才能進行發(fā)貨操作。本章小結(jié)本章主要介紹了該電商平臺的可行性、功能等進行分析,著重對經(jīng)濟可行性和技術(shù)可行性進行了闡述,在功能需求方面主要對該系統(tǒng)六大主要功能進行需求分析。系統(tǒng)分析概要設(shè)計本電商平臺主要包括用戶注冊登錄、商品展示、購物車功能、提交訂單、留言功能、管理員功能等六大模塊。用戶可在首頁加購商品,在購物車內(nèi)也可對商品進行編輯,用戶在登錄后可提交訂單,管理員在后臺對訂單進行發(fā)貨,發(fā)貨后用戶在訂單頁確認收貨,到此完成系統(tǒng)閉環(huán)。該電商平臺概念圖如圖4-1所示圖4-1電商平臺概要設(shè)計圖詳細設(shè)計用戶注冊登錄功能用戶進入系統(tǒng)后,在使用登錄狀態(tài)下才能使用的功能時,會跳轉(zhuǎn)到登錄頁,此時需要輸入自己特有的賬號密碼以及驗證碼,數(shù)據(jù)會通過Form表單以Post的傳輸方式發(fā)送到后臺Controller,后臺Controller會去查詢MySQL數(shù)據(jù)庫表中的數(shù)據(jù)來進行比對,如果數(shù)據(jù)一致,則該用戶輸入密碼正確,成功登錄,并且將用戶信息儲存到Session會話,用戶再次使用時,系統(tǒng)只需從Session獲取該信息便可,反之登錄失敗,會再次返回登錄頁。用戶如果還沒有申請賬號,可在登錄頁面進行注冊,在填寫個人信息時JS會進行校驗,保證用戶信息的合法性,在用戶填寫完信息之后,還需輸入一個驗證碼,之后帶有用戶信息和驗證碼的Form表單會以Post的形式發(fā)送給后臺Controller,Controller在核對驗證碼正確后,即將該用戶信息寫入MySQL數(shù)據(jù)庫中,用戶下次即可直接登錄。注冊登錄流程圖如圖4-2所示:圖4-2用戶注冊登錄流程圖商品展示功能用戶每次進入首頁,系統(tǒng)都會對所有商品進行展示,如果按照傳統(tǒng)的方法每個用戶查詢商品信息時都會訪問一遍MySQL數(shù)據(jù)庫,由于商品信息本身就數(shù)據(jù)量巨大,加上用戶的頻繁訪問,難免給數(shù)據(jù)庫帶來造成較高的負荷甚至導(dǎo)致數(shù)據(jù)庫崩潰,因此本系統(tǒng)在這引入了Redis作為緩存來減輕數(shù)據(jù)庫的壓力。首先請求會先去Redis中取出商品數(shù)據(jù),如果成功取到商品信息,則使用FastJSon轉(zhuǎn)換為List格式返回給前端。反之則去查詢MySQL數(shù)據(jù)庫,同樣將商品信息返回給前端,并且使用FastJSon將商品信息轉(zhuǎn)換成JSON格式,存儲到Redis中。這樣下次用戶再進行請求就從Redis中直接取到數(shù)據(jù),不僅減輕了MySQL的壓力,而且由于Redis的較高的讀寫速度,還優(yōu)化了用戶的體驗感。首頁同時支持模糊查詢,用戶可以輸入關(guān)鍵字進行搜索,極大的方便了用戶的使用。商品展示流程圖如4-3所示:圖4-3商品展示流程圖購物車功能因不管用戶是否登錄都需要滿足可以將商品加入購物車,故購物車功能分為游客狀態(tài)下和登錄狀態(tài)下兩種,且要實現(xiàn)游客狀態(tài)下加購的商品,在登錄后實現(xiàn)合并購物車。當用戶向購物車加購商品時,通過商品ID查詢出該商品,添加到用于保存購物車信息的List中,還需用FastJSon把List轉(zhuǎn)換成JSON類型進行utf-8轉(zhuǎn)碼,如果用戶處于游客狀態(tài)下,為了不占用系統(tǒng)資源,所以要將信息存儲到本地Cookie,如果用戶處于登錄狀態(tài)下,將購物車信息存儲到數(shù)據(jù)庫中。最后用Ajax技術(shù)刷新頁面。游客購物車和登錄購物車合并,先用游客身份將加購商品,然后進行登錄操作,我們就需要將購物車進行合并。首先獲得兩個購物車信息,一個是從Cookie中獲得的游客狀態(tài)下的購物車信息,另一個是從數(shù)據(jù)庫中獲得的登錄狀態(tài)下的購物車信息。我們首先將兩個購物車信息進行轉(zhuǎn)碼,然后將游客狀態(tài)下的購物車數(shù)據(jù)合并到登錄狀態(tài)下的購物車數(shù)據(jù),同時儲存進數(shù)據(jù)庫。購物車流程圖如4-4所示:圖4-4購物車流程圖訂單功能在訂單功能中,用戶在購物車加購商品后,在登錄狀態(tài)下,選擇部分商品,點擊“提交訂單”按鈕,選中的商品的商品信息會隨請求進入到填寫訂單信息頁面,用戶在此頁面填寫收獲人的信息,系統(tǒng)會進行校驗信息是否合法,同時會將該訂單保存至數(shù)據(jù)庫,此時訂單狀態(tài)為“已提交”;用戶選擇付款方式,如果用戶已經(jīng)付款,訂單狀態(tài)為“待發(fā)貨”,反之訂單狀態(tài)為“未付款”;后臺管理員可在訂單管理頁進行發(fā)貨,管理員發(fā)貨后訂單狀態(tài)為“已發(fā)貨”;用戶可在自己的訂單頁面看到訂單狀態(tài),在管理員發(fā)貨后,用戶點擊確認收貨,訂單狀態(tài)變?yōu)椤耙淹瓿伞?,此時整個訂單流程結(jié)束。訂單流程圖如4-5所示:圖4-5訂單流程圖留言功能用戶可以在留言板評論自己對商品的感受以及發(fā)表自己的疑問。留言板會記錄發(fā)表人的用戶昵稱和留言日期,同時留言板引用Mybatis的PageHelper插件,PageHelper是通過在寫好的SQL語句基礎(chǔ)上,拼接生成兩個SQL語句實現(xiàn)的,第一個是原SQL作為子查詢用來查詢符合條件是數(shù)據(jù)總條數(shù)。另一個是在你的SQL的基礎(chǔ)上拼接進行分頁查詢。留言板利用PageHelper插件實現(xiàn)了分頁功能,十分方便用戶瀏覽。首先用戶進入到留言板,系統(tǒng)會分頁顯示所有留言,包括留言的用戶昵稱以及留言時間,用戶編輯留言后點擊按鈕進行發(fā)表,游客狀態(tài)下不能發(fā)表留言,登錄成功后點擊發(fā)表按鈕,后臺通過異步Ajax技術(shù)將留言板更新,同時將該留言保存至MySQL數(shù)據(jù)庫。留言板流程圖如4-6所示:圖4-6留言板流程圖數(shù)據(jù)庫設(shè)計概念模型設(shè)計數(shù)據(jù)庫的設(shè)計對于一個系統(tǒng)至關(guān)重要,一個良好的數(shù)據(jù)庫設(shè)計不僅能在開發(fā)過程中避免不必要的麻煩,還能方便后期系統(tǒng)進行維護以及拓展新的功能。本系統(tǒng)用戶表來保存用戶信息、用訂單表來保存訂單信息、用購物車表來保存購物車信息、用分類表來保存商品分類信息、用留言表來保存用戶留言信息。其中用戶一次創(chuàng)建一個訂單但是可以創(chuàng)建多次,但是一個訂單只對應(yīng)一個用戶。用戶、訂單E-R圖如圖4-7所示:圖4-7用戶名訂單E-R圖用戶信息的實體類由用戶所產(chǎn)生,含有以下屬性:用戶ID、昵稱、密碼、姓名、郵箱、手機號、地址、狀態(tài)。用戶表實體屬性圖,如圖4-8所示:圖4-8用戶表實體屬性圖商品信息的實體類由管理員上架的商品所產(chǎn)生,含有以下屬性:商品ID、商品名、市場價格、售價、狀態(tài)、圖片、描述、是否爆款、上架日期。商品表實體屬性圖,如圖4-9所示:圖4-9商品表實體屬性圖訂單信息的實體類由用戶發(fā)起的訂單時所產(chǎn)生,含有以下屬性:訂單ID、數(shù)量、總價、用戶的ID、狀態(tài)。訂單表實體屬性圖,如圖4-10所示:圖4-10訂單表實體屬性圖MySQL數(shù)據(jù)庫中的購物車表只儲存登錄狀態(tài)下的用戶的購物車信息,購物車信息的實體類由登錄用戶的購物車所產(chǎn)生,含有以下屬性:用戶ID、購物車ID、商品ID集、價格、數(shù)量、總價、商品名、商品圖片地址。購物車實體屬性圖,如圖4-11所示:圖4-11購物車表實體屬性圖邏輯表結(jié)構(gòu)設(shè)計用戶信息表字段如表4-1所示:表4-1用戶信息表列名數(shù)據(jù)類型長度不是null注釋uIDint11True序號usernamevarchar255False昵稱passwordvarchar255False密碼namevarchar255False姓名emailvarchar255False郵箱phonevarchar255False手機號addrvarchar255False地址statevarchar255True狀態(tài)codevarchar50False編碼商品信息表字段如表4-2所示:表4-2商品信息表列名數(shù)據(jù)類型長度不是null注釋pIDint11True序號pnamevarchar255False名稱marketpricedouble0False市場價shoppricedouble0False售價imagevarchar255False圖片地址pdescvarchar5000False描述ishotint11False是否為爆款pdatetimestamp0False日期csIDint11False編碼stateint11False狀態(tài)訂單信息表字段如表4-3所示:表4-3訂單信息表列名數(shù)據(jù)類型長度不是null注釋oIDint11True序號moneydouble0False價格stateint11False狀態(tài)receiveInfovarchar255False收地址phoNumvarchar255False收貨人手機號o_timedatetime0False時間uIDint11False用戶IDacceptervarchar100False收件人購物車信息表字段詳情如表4-4所示:表4-4購物車信息表列名數(shù)據(jù)類型長度不是null注釋citemIDint11True序號uIDint11False用戶IDpIDint11False商品IDpcountint11False數(shù)量pricedouble0False商品單價imagevarchar255False商品圖片ptotaldouble0False總價pnamevarchar255False商品名稱本章小結(jié)第四章主要用圖表的方式對該課題系統(tǒng)分析的內(nèi)容進行展示,其中介紹了該電商平臺的概要設(shè)計,且用流程圖展示了每個功能的實現(xiàn)邏輯。最后對該電商平臺的數(shù)據(jù)庫概念模型進行了分析展示,并且列出了數(shù)據(jù)庫表的實體屬性圖以及字段表。系統(tǒng)實現(xiàn)用戶注冊登錄功能的實現(xiàn)用戶可在商城首頁點擊“注冊”跳轉(zhuǎn)到注冊頁面,輸入自己的“用戶名”、“密碼”、“郵箱”等信息,提交注冊。注冊頁面如圖5-1所示:圖5-1用戶注冊頁截圖當用戶已有賬號,可在首頁點擊“登錄”按鈕跳轉(zhuǎn)登錄頁,輸入賬號密碼及臨時驗證碼進行登錄。登錄頁面如圖5-2所示:圖5-2用戶登錄頁面截圖注冊登錄核心代碼如下:public@ResponseBody Userlogin(@RequestBodyUseru,HttpSessions,HttpServletRequestr,HttpServletResponsere){ u=userService.findUserByUsernameAndPassword(u); if(null!=u){ s.setAttribute("u",u); try{ shopcarCompareCookieAndRedis(s,r,re); }catch(UnsupportedEncodingExceptione){ e.printStackTrace(); } } returnu; }商品展示功能的實現(xiàn)商城首頁即展示所有商品,支持一二級分類,可在分類中查看歸屬商品,同時支持模糊查詢,十分方便用戶使用。商品展示頁面如圖5-3所示:圖5-3商品展示頁面截圖商品模糊搜索頁面如圖5-4所示:圖5-4商品模糊搜索頁面截圖用戶點擊商品圖片跳轉(zhuǎn)到該商品詳情頁,可在詳情圖選擇數(shù)量加入購物車。商品詳情頁如圖5-5所示:圖5-5商品詳情頁截圖商品展示核心代碼如下: publicStringindex(Modelm,HttpServletRequestr){ List<Category>cl=categoryService.find(); r.getSession().getServletContext().setAttribute("cl",cl); List<Product>hl=productService.find(); m.addAttribute("hl",hl); List<Product>nList=productService.find(); m.addAttribute("nList",nList); List<Product>sl; if(hl.size()>3) { sl=newArrayList<Product>(); sl.add(hl.get(0)); sl.add(hl.get(1)); sl.add(hl.get(2)); m.addAttribute("sl",sl); } else { m.addAttribute("sl",hl); } return"index"; }購物車功能的實現(xiàn)用戶游客狀態(tài)下也可在購物車加購商品,在登錄后會自動合并購物車,用戶可在購物車編輯商品,購物車會自動計算價格。購物車頁面如圖5-6所示:圖5-6購物車頁面截圖購物車核心代碼如下: //先取cookie中的購物車 Cookie[]cs=request.getCookies(); Cookieshopcar=null; for(Cookiec:cs){ if(c.getName().equals("shopcar")){ shopcar=c; break; } } if(shopcar!=null){ Stringjson=shopcar.getValue(); json=URLDecoder.decode(json,"utf-8"); //游客購物車的數(shù)據(jù) MapvisitorMap=JSONObject.parseObject(json,HashMap.class); //取redis購物車的數(shù)據(jù) Useruser=(User)session.getAttribute("user"); Stringkey="shopcar:"+user.getId(); if(redisTemplate.boundValueOps(key).get()!=null){ //原redis購物車是有數(shù)據(jù)的 HashMap<String,Items>redisMap=(HashMap<String,Items>)redisTemplate.boundValueOps(key).get(); //兩個map,進行判斷商品id,并合并數(shù)量 Set<String>keySet=visitorMap.keySet(); for(Stringid:keySet){JSONObjectobj=(JSONObject)visitorMap.get(id); if(redisMap.containsKey(id)){ Itemsitems=redisMap.get(id); items.setCount((Integer)obj.get("count")+redisMap.get(id).getCount()); redisMap.put(id,items); }else{ Itemsit=obj.toJavaObject(Items.class); redisMap.put(id,it); } } redisTemplate.boundValueOps(key).set(redisMap); }else{ //原redis購物車是沒有數(shù)據(jù)的 Set<String>ids=visitorMap.keySet(); for(Stringid:ids){ JSONObjectobj=(JSONObject)visitorMap.get(id); Itemsit=obj.toJavaObject(Items.class); visitorMap.put(id,it); } redisTemplate.boundValueOps(key).set(visitorMap); } //清空cookie購物車shopcar.setValue(""); shopcar.setMaxAge(0); shopcar.setPath("/"); response.addCookie(shopcar); } }訂單功能的實現(xiàn)用戶在購物車提交訂單,便創(chuàng)建訂單成功,用戶填寫完收貨信息后點擊“確認訂單”按鈕,該訂單狀態(tài)變?yōu)椤按l(fā)貨”,用戶可在“我的訂單”頁面可看到業(yè)務(wù)進度,接下來由管理員進行發(fā)貨操作,發(fā)貨后,用戶點擊確認收貨,訂單結(jié)束。提交訂單如圖5-7所示:圖5-7提交訂單頁面截圖“我的訂單”頁面如圖5-8所示:圖5-8我的訂單頁截圖訂單功能核心代碼如下: publicStringtoOrder(HttpServletRequestr,Modelm)throwsException{ Orderso=newOrders(); Cartc=(Cart)r.getSession().getAttribute("c"); Userl=(User)r.getSession().getAttribute("loginUser"); if(login==null){ m.addAttribute("message","對不起您還沒有登錄"); return"msg"; } Map<Integer,CartItem>cs=c.getCartItem(); for(Entry<Integer,CartItem>e:cs.eSet()){ CartItemc=e.getValue(); Orderitemo=newOrderitem(); o.setProduct(c.getProduct()); o.setCount(c.getCount()); o.setPID(c.getProduct().getPID()); o.setSubtotal(c.getSubtotle()); o.setOID(o.getOID()); o.getOiList().add(o); oService.toOrderItem(o); } c.clear(); r.getSession().setAttribute("os",o); return"o"; }留言功能的實現(xiàn)系統(tǒng)設(shè)置公共留言板,用戶可在留言板留言,留言板會根據(jù)時間逆序分頁展示。留言板頁面如圖5-9所示:圖5-9留言板頁面截圖留言功能核心代碼如下: publicPageBean<Message>findAll(intpage){ PageBean<Message>p=newPageBean<>(); p.setPage(page); intlp=4; p.setLimitPage(lp); intt=0; t=messagesMapper.countAll(); if(Math.ceil(t%lp)==0){ tp=tp/lp; }else{ tp=tp/lp+1; } p.setTotle(tp); intb=(1)*lp; List<Message>list=messagesMapper.findAl(b,lp); p.setList(list); returnpageBean; }管理員具有整個電商平臺的最高權(quán)限,可對用戶、分類、商品、訂單、留言等進行管理,負責該電商平臺的正常運作。管理員頁面如圖5-10所示:圖5-10管理員頁面截圖管理員核心代碼如下: publicStringadminAll(Modelm,HttpServletRequestr) throwsException{ Adminuserauser=(Adminuser)r.getSession().getAttribute("auser"); if(auser==null){ r.getSession().setAttribute("message","對不起您還沒有登錄"); return"admin/index"; } List<Category>cl=categoryService.adminbFindCategory(); m.addAttribute("cl",cl); return"admin/category/List"; } 本章小結(jié)第五章主要展示了該系統(tǒng)實現(xiàn)后的效果圖,同時對功能進行了大致介紹,并且列出了部分核心代碼。系統(tǒ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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論