




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄引言研究背景及意義近年來(lái),隨著國(guó)內(nèi)動(dòng)漫內(nèi)容市場(chǎng)及電商的蓬勃發(fā)展,手辦銷售持續(xù)火爆。網(wǎng)絡(luò)上常說(shuō)的手辦主要是指PVCFigure(簡(jiǎn)稱PF),是一種以聚氯乙烯為原料制作的人物模型,這種材料成本相對(duì)廉價(jià),市場(chǎng)上流動(dòng)的人物模型多為此材質(zhì)。相較原型師用樹脂制作的人形作品(GarageKit,簡(jiǎn)稱GK),PF價(jià)格便宜,但精細(xì)度程度較低。廣義上的手辦還包括了黏土、扭蛋、景品等人物模型。手辦是無(wú)形文化的實(shí)物化,是將虛擬形象人格化,將屏幕中的英雄、少女、萌物形象帶入現(xiàn)實(shí)生活的載體之一。手辦消費(fèi)是小眾群體展示個(gè)性與愛(ài)好,將自身與他人區(qū)別開來(lái)的便捷方式。隨著5G的發(fā)展,短視頻、電商直播、VR直播、虛擬偶像演出等將不斷發(fā)展。新媒體豐富了動(dòng)漫手辦的IP來(lái)源、產(chǎn)品形式和營(yíng)銷渠道[1]。在消費(fèi)者的社群性、產(chǎn)消性、數(shù)據(jù)庫(kù)式的文化消費(fèi)行為當(dāng)中,在政府對(duì)動(dòng)漫產(chǎn)業(yè)扶持力量的介入、日本相關(guān)文化的大眾傳播、資本對(duì)二次元的關(guān)注和運(yùn)作等諸多因素的合力之下,中國(guó)二次元文化的概念被極大程度地?cái)U(kuò)充了[2]。隨著人們對(duì)手辦消費(fèi)需求的增長(zhǎng),其中的問(wèn)題也逐步顯現(xiàn),由于手辦市場(chǎng)的變化較快,而手辦的消費(fèi)群體大多還是學(xué)生,他們的購(gòu)買能力有限,出現(xiàn)了有些需求無(wú)法得到解決。這些需求恰好可以通過(guò)二手交易的方式來(lái)解決,大部分手辦愛(ài)好者對(duì)手辦二手交易持有積極的態(tài)度并愿意參與其中。目前線上的二手交易平臺(tái)很多,卻沒(méi)有一款專門針對(duì)手辦相關(guān)的二手交易平臺(tái)。當(dāng)前大部分手辦愛(ài)好者的二手交易行為發(fā)生在大型通用平臺(tái)下。手辦愛(ài)好者在這類通用平臺(tái)下進(jìn)行交易時(shí)會(huì)遇到多種問(wèn)題。比如搜索某手辦物品時(shí),會(huì)出現(xiàn)很多其他不相干的物品;賣家發(fā)布某限量款稀有手辦物品時(shí),因無(wú)法第一時(shí)間得到消息推送,導(dǎo)致被人搶先買走等。這些都是由于手辦特有用戶群體和商品屬性決定的,也反應(yīng)了二手交易平臺(tái)在這一特殊環(huán)境下的局限性。研究現(xiàn)狀移動(dòng)互聯(lián)網(wǎng)時(shí)代網(wǎng)絡(luò)信息平臺(tái)正在從桌面端向移動(dòng)端遷移,人們的信息獲取方式與使用習(xí)慣也正在向移動(dòng)智能終端轉(zhuǎn)移。隨時(shí)、隨地、隨身、永遠(yuǎn)在線的移動(dòng)應(yīng)用特性滲透到各行各業(yè)及社會(huì)生活的方方面面。從訂購(gòu)機(jī)票、火車票到讀書、K歌、聽音樂(lè)等都可通過(guò)移動(dòng)終端利用碎片化時(shí)間來(lái)實(shí)現(xiàn)[3]。目前有許多的二手交易平臺(tái)是Web端的,然而現(xiàn)在大多數(shù)人都更傾向使用手機(jī),所以需要移動(dòng)App來(lái)幫助人們方便的瀏覽和交易二手商品,采用新技術(shù)和新方法改革傳統(tǒng)業(yè)務(wù)是不可逆轉(zhuǎn)的趨勢(shì)[4]。但是線上還沒(méi)有針對(duì)手辦這一領(lǐng)域進(jìn)行細(xì)分的二手交易平臺(tái),國(guó)內(nèi)常用的通用二手交易App有閑魚、轉(zhuǎn)轉(zhuǎn)等等。以閑魚為例,平臺(tái)內(nèi)的商品分類是按照商品的屬性來(lái)進(jìn)行分類的,范圍較大無(wú)法查找到相關(guān)手辦內(nèi)容。如在轉(zhuǎn)轉(zhuǎn)搜索“火影忍者”時(shí)會(huì)出現(xiàn)大量的其他無(wú)關(guān)信息,這時(shí)對(duì)消費(fèi)者來(lái)說(shuō),給予選擇就不夠豐富??梢?,雖然手辦的二手消費(fèi)十分龐大,但因其屬性較為特殊,在通用二手交易平臺(tái)上進(jìn)行買賣會(huì)出現(xiàn)困擾用戶的多種問(wèn)題。一些ACG社交軟件設(shè)有閑置專區(qū)可以出售二手手辦等,但對(duì)二手商品并沒(méi)有分類,用戶難以找到有針對(duì)性的信息,內(nèi)容管理混亂。其次也沒(méi)有搜索功能,用戶只能看到信息卻無(wú)法查找商品。這些App中的二手交易功能僅是依附于社交軟件的一個(gè)模塊,導(dǎo)致功能不被重視,設(shè)計(jì)簡(jiǎn)陋、形式單一,用戶體驗(yàn)較差[5]。研究技術(shù)可行性分析本系統(tǒng)主要使用JAVA語(yǔ)言進(jìn)行開發(fā),后端選用SpringBoot和Mybatis框架,前端使用Uniapp+uView框架,數(shù)據(jù)庫(kù)使用MySQL關(guān)系型數(shù)據(jù)庫(kù),使用Redis作為緩存數(shù)據(jù)庫(kù)提高系統(tǒng)性能。本系統(tǒng)還涉及到實(shí)時(shí)通訊功能,該功能是基于WebSocket協(xié)議實(shí)現(xiàn)的。SpringBoot是Pivotal團(tuán)隊(duì)提供的一個(gè)新框架,旨在簡(jiǎn)化新Spring應(yīng)用程序的初始構(gòu)建和開發(fā)過(guò)程。通過(guò)約定優(yōu)于配置和起步依賴,簡(jiǎn)化復(fù)雜的依賴關(guān)系,大量減少XML配置文件,基本實(shí)現(xiàn)自動(dòng)化位置,能夠快速創(chuàng)建獨(dú)立運(yùn)行的Spring項(xiàng)目,并且集成了主流框架,如AOP和MyBatis。通過(guò)這種方法,SpringBoot致力于成為蓬勃發(fā)展的快速應(yīng)用程序開發(fā)領(lǐng)域的領(lǐng)導(dǎo)者[6]。Mybatis是一個(gè)支持普通SQL查詢、存儲(chǔ)過(guò)程和高級(jí)映射的優(yōu)秀持久層框架,在持久層映射關(guān)系的開發(fā)中,可以不用寫實(shí)現(xiàn)類,能以代理方式自動(dòng)生成實(shí)現(xiàn)代碼,同時(shí)SQL語(yǔ)句寫在映射XML文件中,實(shí)現(xiàn)了代碼與SQL分離,降低耦合度。在映射XML文件中,通過(guò)id標(biāo)識(shí)不同類型的SQL語(yǔ)句,對(duì)查詢、插入、刪除和更新語(yǔ)句進(jìn)行區(qū)分,如查詢語(yǔ)句的id前綴為query,刪除語(yǔ)句的id前綴為delete,通過(guò)甄別判斷為不同SQL語(yǔ)句選擇對(duì)應(yīng)的數(shù)據(jù)源,實(shí)現(xiàn)動(dòng)態(tài)的讀寫分離[7]?;谥髁骱妥钚虑岸碎_發(fā)框架的Vue.js技術(shù)開發(fā)平臺(tái)前端部分,提高了網(wǎng)站的開發(fā)效率,代碼邏輯更清晰,更容易應(yīng)對(duì)不斷變化的需求,系統(tǒng)更容易維護(hù)和集成,從而降低開發(fā)成本[8]。uni-app
是一個(gè)使用
Vue.js
開發(fā)所有前端應(yīng)用的框架[9]。開發(fā)者通過(guò)編寫Vue.js代碼,Uni-app將其編譯到iOS、Android、微信小程序等多個(gè)平臺(tái),保證其正確運(yùn)行并達(dá)到優(yōu)秀體驗(yàn)。Uni-app繼承自Vue.js,提供了完整的Vue.js開發(fā)體驗(yàn)。WebSocket協(xié)議支持Web瀏覽器與Web服務(wù)器之間的數(shù)據(jù)交互,通過(guò)較低的性能開銷,實(shí)現(xiàn)客戶端與服務(wù)器的實(shí)時(shí)數(shù)據(jù)傳輸。WebSocket協(xié)議支持Web瀏覽器與Web服務(wù)器之間的數(shù)據(jù)交互,通過(guò)較低的性能開銷,實(shí)現(xiàn)客戶端與服務(wù)器的實(shí)時(shí)數(shù)據(jù)傳輸[10]。Redis作為一個(gè)NoSQL數(shù)據(jù)庫(kù),它的簡(jiǎn)單易用是它最主要的特點(diǎn)。作為一個(gè)服務(wù)器和數(shù)據(jù)庫(kù)之間的一個(gè)緩沖區(qū),當(dāng)用戶要訪問(wèn)數(shù)據(jù)庫(kù)時(shí),先訪問(wèn)Redis,如果Redis中有所需要的數(shù)據(jù),便直接取出,返回到服務(wù)器;如果沒(méi)有,便去訪問(wèn)數(shù)據(jù)庫(kù),將數(shù)據(jù)庫(kù)中的數(shù)據(jù)返回給服務(wù)器,同時(shí)將數(shù)據(jù)保存一份到Redis中,便于下次的取和用[11]。同時(shí)以上技術(shù)筆者均有一定的基礎(chǔ),因此完成該系統(tǒng)的開發(fā)在技術(shù)上是可行的。主要研究?jī)?nèi)容本課題結(jié)合國(guó)內(nèi)外的研究現(xiàn)狀,并對(duì)實(shí)際情況和實(shí)際需求進(jìn)行分析,設(shè)計(jì)出了一個(gè)二手手辦交易系統(tǒng)。系統(tǒng)以用戶發(fā)布手辦和購(gòu)買手辦為核心,以下是要實(shí)現(xiàn)的主要功能點(diǎn):1.瀏覽二手手辦商品。用戶能夠在本系統(tǒng)中瀏覽二手手辦信息,以便選擇用戶喜歡的手辦,并根據(jù)用戶的需求過(guò)濾價(jià)格、發(fā)布地點(diǎn)等,方便用戶查找商品。2.買方和賣方之間的溝通。在用戶看到到心儀的手辦后,能與賣家進(jìn)行交流溝通,確認(rèn)手辦的詳細(xì)信息、商議具體價(jià)格等,直到買賣雙方都有意愿進(jìn)行交易。3.買賣雙方達(dá)成交易。買賣雙方達(dá)成交易意向后,買家可直接下訂單然后確認(rèn)好訂單信息,核實(shí)訂單信息無(wú)誤后再行付款,若發(fā)現(xiàn)訂單信息有誤可取消訂單。賣家收到買家下的訂單并付款后,賣家進(jìn)行發(fā)貨。買家收到手辦后,確認(rèn)商品無(wú)誤后,平臺(tái)才將商品金額打給賣家。4.發(fā)布二手商品信息。用戶有閑置的手辦,想要出手時(shí),可以發(fā)布手辦的相關(guān)信息,在平臺(tái)審核后才能夠進(jìn)行買賣。這樣能有效減少資源浪費(fèi),讓售賣方也能減少損失。5.愛(ài)好者們的交流。用戶能在平臺(tái)上分享自己與手辦的故事、挑選手辦的心得等,其他愛(ài)好者可進(jìn)行評(píng)論交流。在完成以上主要功能后,可進(jìn)行相應(yīng)的功能擴(kuò)展,如商品的留言、評(píng)論等功能,同時(shí)也要保證系統(tǒng)的易用性、可操作性以及界面的一致性。本文結(jié)構(gòu)本文共分為六章,各章主要內(nèi)容如下:第一章引言。主要介紹了本研究課題的研究背景及意義,分析了國(guó)內(nèi)外研究現(xiàn)狀,進(jìn)行了技術(shù)的可行性分析,交待了本文的主要研究?jī)?nèi)容。第二章需求分析。主要介紹了系統(tǒng)的功能需求、非功能需求和功能結(jié)構(gòu)設(shè)計(jì),然后從售賣者和購(gòu)買者兩大主要用戶進(jìn)行需求分析。第三章總體設(shè)計(jì)。主要介紹了系統(tǒng)架構(gòu)的設(shè)計(jì)和項(xiàng)目結(jié)構(gòu),并進(jìn)行簡(jiǎn)單的分析。第四章數(shù)據(jù)庫(kù)設(shè)計(jì)。主要介紹了系統(tǒng)數(shù)據(jù)庫(kù)的實(shí)體聯(lián)系設(shè)計(jì),并且列舉了主要表的結(jié)構(gòu)。第五章系統(tǒng)詳細(xì)設(shè)計(jì)。主要從登錄注冊(cè)模塊、搜索瀏覽模塊、商品模塊、社區(qū)模塊、消息模塊、個(gè)人中心模塊、管理模塊,這七大模塊進(jìn)行系統(tǒng)的詳細(xì)設(shè)計(jì)分析。第六章系統(tǒng)測(cè)試。主要介紹了系統(tǒng)測(cè)試的目的與過(guò)程,分析了此次測(cè)試的結(jié)果。本章小結(jié)本章介紹了當(dāng)前二手手辦交易的現(xiàn)狀和本系統(tǒng)的研究意義,然后分析了國(guó)內(nèi)外的二手手辦交易情況和系統(tǒng)所要使用的技術(shù)的可行性,接著結(jié)合國(guó)內(nèi)外的研究現(xiàn)狀,并從實(shí)際情況和實(shí)際需求出發(fā),介紹了本系統(tǒng)的主要研究?jī)?nèi)容,最后說(shuō)明了本文的結(jié)構(gòu)。第2章需求分析系統(tǒng)需求分析功能需求分析圖2.1功能結(jié)構(gòu)圖系統(tǒng)的功能結(jié)構(gòu)如圖2.1所示,以下對(duì)系統(tǒng)的主要功能進(jìn)行介紹。發(fā)布商品:售賣需要發(fā)布自己閑置的商品或者服務(wù),提供必要的商品信息即可發(fā)布。查看社區(qū):手辦愛(ài)好者們可以查看社區(qū)里的其他用戶分享的動(dòng)態(tài),也可以主動(dòng)發(fā)布自己的動(dòng)態(tài)。對(duì)動(dòng)態(tài)進(jìn)行點(diǎn)贊和評(píng)論,讓愛(ài)好者們更好地交流。查看消息:用戶能查看系統(tǒng)消息、互動(dòng)消息和聯(lián)系人發(fā)來(lái)的新消息。搜索:熱搜榜可以讓用戶了解當(dāng)前流行哪些商品,記住搜索記錄能幫助用戶更快搜地索。查看商品:用戶可對(duì)感興趣的商品收藏,留言。也可以與賣家更詳細(xì)地了解商品,覺(jué)得合適,想要購(gòu)買的話就可以下訂單。信息管理:管理員對(duì)發(fā)布的商品信息進(jìn)行審核,下架違規(guī)的商品。管理員也能對(duì)用戶信息等進(jìn)行管理。查看個(gè)人信息:用戶可修改自己的個(gè)人信息,查看收藏、歷史記錄等,也可以進(jìn)行充值。系統(tǒng)角色權(quán)限分析根據(jù)二手手辦交易系統(tǒng)的需求分析結(jié)合目前二手交易平臺(tái)的問(wèn)題,并從軟件開發(fā)角度出發(fā),本系統(tǒng)的用戶主要分為三大類:登錄用戶,游客用戶和管理員用戶。游客用戶游客用戶即未登錄的用戶,其僅擁有以下的訪問(wèn)權(quán)限。1.首頁(yè)模塊。未登錄的用戶其首頁(yè)將展示系統(tǒng)售賣的手辦信息。2.搜索瀏覽模塊。未登錄的用戶能查看熱搜排行榜以及部分的多條件搜索功能。3.社區(qū)模塊。未登錄的用戶能進(jìn)行查看發(fā)布的社區(qū)動(dòng)態(tài),無(wú)法進(jìn)行評(píng)論和點(diǎn)贊。4.商品模塊。未登錄的用戶能近能查看手辦的詳細(xì)信息,無(wú)法進(jìn)行收藏和留言操作,也不能與賣家交流溝通。5.登錄注冊(cè)模塊。未登錄的用戶能進(jìn)行全部登錄注冊(cè)模塊操作。登錄用戶登錄用戶除了擁有游客用戶能使用的功能外,還在商品模塊,社區(qū)模塊,個(gè)人中心模塊、消息模塊等增加訪問(wèn)的功能權(quán)限1.商品模塊。登錄的用戶可對(duì)手辦進(jìn)行收藏和留言操作,還能夠與賣家進(jìn)行溝通交流,詢問(wèn)詳細(xì)信息。2.社區(qū)模塊。登錄的用戶可在社區(qū)的動(dòng)態(tài)里進(jìn)行評(píng)論和點(diǎn)贊,還能發(fā)布自己的動(dòng)態(tài)。3.個(gè)人中心模塊。登錄的用戶可進(jìn)入個(gè)人中心模塊查看和修改個(gè)人基本資料,如頭像、簡(jiǎn)介等。另外還可查看用戶發(fā)布的手辦信息,查看用戶收藏的手辦,查看用戶已購(gòu)買的手辦和查看用戶已售出的手辦,還有充值服務(wù)。最后便是退出登錄功能。4.消息模塊。用戶登錄后可進(jìn)入消息模塊,查看系統(tǒng)通知,查看互動(dòng)消息以及和買家賣家溝通交流。管理員用戶系統(tǒng)還設(shè)立管理員用戶對(duì)系統(tǒng)進(jìn)行基本的管理,管理員分為兩種,一是系統(tǒng)管理員,二是審核管理員。審核管理員主要的職責(zé)是審核用戶發(fā)布的動(dòng)態(tài),商品以及服務(wù)。1.審核管理員僅能對(duì)用戶發(fā)布的未審核商品和服務(wù)進(jìn)行審核以及修改。通過(guò)商品信息進(jìn)行審核,對(duì)審核不通過(guò)的商品和服務(wù)進(jìn)行下架處理,并告知用戶原因,讓用戶能重新修改商品和服務(wù)信息。2.審核管理員可對(duì)用戶發(fā)布的動(dòng)態(tài)進(jìn)行查看審核,發(fā)現(xiàn)有問(wèn)題的動(dòng)態(tài)可直接刪除,并提醒該用戶注意。系統(tǒng)管理員是擁有全部系統(tǒng)權(quán)限的管理員,能對(duì)用戶進(jìn)行修改和刪除,還能創(chuàng)建用戶,創(chuàng)建審核管理員。對(duì)手辦的分類進(jìn)行操作,添加和刪除分類列表的分類信息。系統(tǒng)管理員能發(fā)送系統(tǒng)消息給所有用戶。角色用例分析購(gòu)買者用例圖STYLEREF1\s2.2購(gòu)買者用例圖購(gòu)買者的主要需求就是購(gòu)買二手手辦,系統(tǒng)展示大量手辦信息,供購(gòu)買者瀏覽。購(gòu)買者也可以通過(guò)搜索功能去找到自己想要的手辦,通過(guò)查看手辦的詳細(xì)信息,確定是否為自己想要的手辦。之后可以跟賣家進(jìn)行交流溝通,詢問(wèn)進(jìn)一步的信息。購(gòu)買者覺(jué)得是自己心儀的手辦后,可以直接下訂單,確認(rèn)好訂單信息后付款,等待手辦的到來(lái),同時(shí)可以隨時(shí)查看訂單信息。售賣者用例圖STYLEREF1\s2.3售賣者核心需求圖售賣者的主要需求就是出售自己閑置不要的手辦。售賣者可以在系統(tǒng)內(nèi)發(fā)布自己的手辦,填寫好相應(yīng)信息,通過(guò)系統(tǒng)驗(yàn)證后就可以上架,等待管理員審核通過(guò)后方可進(jìn)行交易。售賣者可以在個(gè)人中心里修改已發(fā)布的手辦信息,不過(guò)修改后需要重新經(jīng)過(guò)審核才可以交易。然后與買家達(dá)成交易意向,等待買家下訂單和付款。之后可以選擇線上發(fā)貨或線下交易,等待買家確認(rèn)收貨。同時(shí)也可以隨時(shí)查看訂單信息。非功能需求在滿足用戶需求的同時(shí)系統(tǒng)還要滿足的以下需求:1.安全需求。只允許訪問(wèn)該類型的用戶權(quán)限能訪問(wèn)到的功能頁(yè)面。例如:管理員后臺(tái)需要管理員用戶才能進(jìn)行訪問(wèn),交易相關(guān)頁(yè)面需要用戶登入后才能進(jìn)行訪問(wèn)。2.易用性需求。要求系統(tǒng)界面直觀,簡(jiǎn)潔,保持一致。盡可能減小頁(yè)面深度,避免頁(yè)面間多次跳轉(zhuǎn)。3.性能需求。系統(tǒng)的平均響應(yīng)時(shí)間小于3秒,以保證用戶的正常體驗(yàn)。本章小結(jié)本章講述了二手手辦交易系統(tǒng)的功能需求,并對(duì)功能需求進(jìn)行分析,然后介紹了系統(tǒng)角色的權(quán)限,接著分析了系統(tǒng)主要用戶的主要功能用例,并且明確了系統(tǒng)一系列的非功能需求。第3章系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)系統(tǒng)架構(gòu)設(shè)計(jì)本系統(tǒng)的架構(gòu)如圖3.1所示。本系統(tǒng)采用前后端分離的MVC設(shè)計(jì),系統(tǒng)分為View層、Controller層、Model層和DAO層。View層由uView組件和CSS結(jié)合共同展示界面,在要請(qǐng)求數(shù)據(jù)時(shí)由Vue.js進(jìn)行請(qǐng)求處理,通過(guò)Ajax技術(shù)調(diào)用后端提供的API接口[12]。Controller層接收到前端傳過(guò)來(lái)的數(shù)據(jù)后,通過(guò)Autowired注解注入Service層進(jìn)行業(yè)務(wù)邏輯的處理,Service層里的方法是接口,具體業(yè)務(wù)邏輯由ServiceImpl層中方法實(shí)現(xiàn)。ServiceImpl層調(diào)用Mapper層的接口和相關(guān)映射的XML文件進(jìn)行數(shù)據(jù)庫(kù)的增刪改查操作[13],返回JSON形式的數(shù)據(jù)給前端。前端處理完數(shù)據(jù)庫(kù)后通過(guò)雙向綁定,把數(shù)據(jù)傳遞給頁(yè)面,由頁(yè)面展示給用戶。圖STYLEREF1\s3.1系統(tǒng)架構(gòu)圖項(xiàng)目總體結(jié)構(gòu)前端總體結(jié)構(gòu)圖3.2前端總體結(jié)構(gòu)圖項(xiàng)目前端的結(jié)構(gòu)如圖3.2所示,其中uview-ui為框架組件包,page為前端頁(yè)面負(fù)責(zé)各個(gè)模塊前端的界面呈現(xiàn),負(fù)責(zé)菜單的跳轉(zhuǎn)及菜單所需權(quán)限的設(shè)定,store為頁(yè)面底部導(dǎo)航欄配置,static為靜態(tài)資源包,主要負(fù)責(zé)存儲(chǔ)用戶上傳的各種圖片,api為與后端接口交互的封裝文件,config為項(xiàng)目的配置文件,components為頁(yè)面的公共組件包。后端總體結(jié)構(gòu)圖3.3項(xiàng)目后端結(jié)構(gòu)圖項(xiàng)目后端的結(jié)構(gòu)如圖3.3所示,其中config包為項(xiàng)目的配置類,如WebSocket配置類等,controller包是負(fù)責(zé)接收前端發(fā)送的請(qǐng)求,并調(diào)用Service層的代碼進(jìn)行業(yè)務(wù)處理,然后返回JSON數(shù)據(jù)庫(kù)給前端。dto包是前端頁(yè)面展示數(shù)據(jù)的實(shí)體,用于返回前端頁(yè)面所需的數(shù)據(jù)。vo包為接受前端請(qǐng)求參數(shù)里的實(shí)體。entity包為數(shù)據(jù)庫(kù)表對(duì)應(yīng)的實(shí)體,用于接受數(shù)據(jù)庫(kù)查詢的數(shù)據(jù)。service包是接口包,負(fù)責(zé)功能邏輯的處理,具體實(shí)現(xiàn)類在service.impl包。mapper包是dao層,主要用于對(duì)數(shù)據(jù)庫(kù)進(jìn)行CRUD操作。utils為工具包,包含圖片操作類,結(jié)果返回類。src/main/resources下的mapper包是XML文件,與之前提到的mapper包存在映射關(guān)系,主要負(fù)責(zé)較為復(fù)雜的涉及動(dòng)態(tài)SQL處理的數(shù)據(jù)庫(kù)操作,提高SQL靈活性[14]。第3章總體設(shè)計(jì)數(shù)據(jù)庫(kù)實(shí)體聯(lián)系設(shè)計(jì)本系統(tǒng)的涉及的各個(gè)實(shí)體間的聯(lián)系如下圖所示。數(shù)據(jù)庫(kù)實(shí)體主要圍繞用戶實(shí)體展開,所有操作基本都與用戶相關(guān)。用戶實(shí)體與商品實(shí)體、訂單實(shí)體、地址實(shí)體、商品實(shí)體、動(dòng)態(tài)實(shí)體、評(píng)論實(shí)體等存在一對(duì)多的關(guān)系。動(dòng)態(tài)和商品能有多個(gè)評(píng)論,與評(píng)論實(shí)體存在一對(duì)多關(guān)系?;貜?fù)是依附于評(píng)論的,一條評(píng)論擁有多條回復(fù),所以評(píng)論實(shí)體與回復(fù)實(shí)體是一對(duì)多的關(guān)系。一個(gè)商品可以屬于多個(gè)訂單,一個(gè)訂單只能有一個(gè)商品,那么商品實(shí)體與訂單實(shí)體就是一對(duì)多關(guān)系。一個(gè)商品只能屬于一種分類,一種分類可以擁有多個(gè)商品,商品實(shí)體與分類實(shí)體是多對(duì)一關(guān)系。圖STYLEREF1\s4.SEQ圖\*ARABIC\s11系統(tǒng)數(shù)據(jù)庫(kù)E-R圖數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)的數(shù)據(jù)庫(kù)使用InnoDB引擎,以下是主要表的結(jié)構(gòu)設(shè)計(jì)表STYLEREF1\s4.SEQ表\*ARABIC\s11用戶信息表所屬表名字段名字段類型字段說(shuō)明useridint用戶唯一id,主鍵userusernamearchar用戶賬號(hào)userpasswordvarchar用戶密碼usernamevarchar用戶昵稱useravatarvarchar用戶頭像usersexint用戶性別userbirthdayvarchar用戶生日userintroducevarchar用戶簡(jiǎn)介userMoneydouble用戶余額用戶信息表結(jié)構(gòu)如表4.1所示,記錄了用戶的基本信息。其中用戶性別字段中1表示男性,0表示女性。表STYLEREF1\s4.SEQ表\*ARABIC\s12商品信息表所屬表名字段名字段類型字段說(shuō)明itemsidint商品唯一id,主鍵itemsnamevarchar商品的介紹itemspicvarchar商品圖片地址itemspricedouble商品價(jià)格itemsfreightdouble商品運(yùn)費(fèi)itemsaddressvarchar商品發(fā)貨地址itemsipint作品名itemsroleint角色名itemsuser_idint發(fā)布用戶的iditemsstateint狀態(tài)itemsreasonvarchar審核失敗的原因itemstimedatetime發(fā)布時(shí)間itemstypeint商品類型商品信息表結(jié)構(gòu)如表4.2所示,記錄了商品的各個(gè)基本信息以及創(chuàng)建時(shí)間,發(fā)布用戶,發(fā)布時(shí)間,商品狀態(tài)等信息。其中ip和role是分類,狀態(tài)有五種,分別是待審核狀態(tài)、審核失敗狀態(tài)、審核通過(guò)狀態(tài)、下架狀態(tài)、售完?duì)顟B(tài)。type字段是商品的類型,用于區(qū)分是服務(wù)還是商品。表STYLEREF1\s4.SEQ表\*ARABIC\s13訂單記錄表所屬表名字段名字段類型字段說(shuō)明orderidint唯一id,主鍵orderorder_idint訂單號(hào)orderitems_idint商品idorderbuyerint購(gòu)買者orderaddress_idint收貨地址orderpricedouble成交價(jià)ordertimedatetime訂單生成時(shí)間orderstateint訂單狀態(tài)orderreasonvarchar訂單取消原因訂單記錄表結(jié)構(gòu)如表4.3所示,記錄了購(gòu)買者下訂單購(gòu)買的商品、選擇收貨的地址、最終成交價(jià)等信息,其中訂單狀態(tài)有五種,分別是待付款狀態(tài)、付款成功狀態(tài)訂單取消狀態(tài)、交易完成狀態(tài)以及發(fā)貨狀態(tài)。表STYLEREF1\s4.SEQ表\*ARABIC\s14用戶地址信息表所屬表名字段名字段類型字段說(shuō)明addressidint唯一id,主鍵addressnamevarchar收貨人姓名addressphonevarchar收貨人電話addressdetailvarchar收貨人具體地址addressareavarchar收貨人所在地區(qū)addressis_defaultint是否為默認(rèn)addressuser_idint所屬用戶用戶地址信息表結(jié)構(gòu)如表4.4所示,記錄用戶收件地址的基本信息。其中is_default字段1表示為當(dāng)前用戶的默認(rèn)地址,0為非默認(rèn)地址。表STYLEREF1\s4.SEQ表\*ARABIC\s15社區(qū)動(dòng)態(tài)記錄表所屬表名字段名字段類型字段說(shuō)明dynamicidint唯一id,主鍵dynamictextvarchar動(dòng)態(tài)信息dynamiczanint點(diǎn)贊數(shù)dynamicpicvarchar圖片地址dynamicuser_idint用戶iddynamictimedatetime發(fā)布時(shí)間社區(qū)動(dòng)態(tài)記錄表結(jié)構(gòu)如表4.5所示,記錄了用戶發(fā)布的動(dòng)態(tài)信息。表STYLEREF1\s4.SEQ表\*ARABIC\s16動(dòng)態(tài)點(diǎn)贊表所屬表名字段名字段類型字段說(shuō)明likesidint唯一id,主鍵likesuser_idint點(diǎn)贊用戶idlikesdynamic_idint動(dòng)態(tài)idlikesis_deleteint點(diǎn)贊狀態(tài)likesto_user_idint被點(diǎn)贊用戶的id動(dòng)態(tài)點(diǎn)贊信息表結(jié)構(gòu)如表4.6所示,記錄了用戶點(diǎn)贊動(dòng)態(tài)的信息。其中is_delete字段為邏輯刪除,1表示點(diǎn)贊,0表示刪除,也就是取消了點(diǎn)贊。表STYLEREF1\s4.SEQ表\*ARABIC\s17消息表所屬表名字段名字段類型字段說(shuō)明noticeidint唯一id,主鍵noticetitlevarchar消息標(biāo)題noticetextvarchar消息內(nèi)容noticetypeint消息類型noticereceive_userint接收用戶idnoticeis_readint是否已讀noticetimedatetime發(fā)送時(shí)間消息表結(jié)構(gòu)如表4.7所示,記錄了信息的接收人,發(fā)送時(shí)間,信息標(biāo)題,信息內(nèi)容等信息。其中is_read字段為該消息是否已讀,0表示未讀狀態(tài),1表示已讀狀態(tài)。type字段表示消息的類型,1為互動(dòng)消息,0為系統(tǒng)消息。表STYLEREF1\s4.SEQ表\*ARABIC\s18聊天室表所屬表名字段名字段類型字段說(shuō)明chatroomidint唯一id,主鍵chatroomuser_idint聊天用戶chatroomto_user_idint聊天用戶chatroomitem_idint聊天相關(guān)的商品chatroomorder_idint聊天相關(guān)的訂單chatroomtextvarchar最新消息chatroomtimedatetime最新時(shí)間聊天室表結(jié)構(gòu)如表4.8所示,記錄了聊天雙方的用戶,聊天相關(guān)的商品等信息。表STYLEREF1\s4.SEQ表\*ARABIC\s19聊天記錄表所屬表名字段名字段類型字段說(shuō)明chatidint唯一id,主鍵chatsend_userint發(fā)送用戶chatreceive_userint接收用戶chattypeint消息類型chattextvarchar消息內(nèi)容chatpicvarchar圖片chattimedatetime發(fā)送時(shí)間聊天記錄表結(jié)構(gòu)如表4.9所示,記錄了聊天的發(fā)送用戶和接收用戶,消息的內(nèi)容,消息的類型等信息。其中type字段為消息類型,消息類型有三種,0為圖片,1為文字,3為系統(tǒng)發(fā)送的消息。表STYLEREF1\s4.10評(píng)論表所屬表名字段名字段類型字段說(shuō)明chatidint唯一id,主鍵chatuser_idint發(fā)送用戶chattopicint主題chattopic_idint主題idchatcontentvarchar評(píng)論內(nèi)容chattimedatetime發(fā)送時(shí)間評(píng)論表結(jié)構(gòu)如表4.10所示,記錄了評(píng)論的發(fā)送用戶,評(píng)論的內(nèi)容,評(píng)論時(shí)間等信息。其中topic字段為評(píng)論類型,配合topic_id字段使用。當(dāng)topic為0時(shí)表示評(píng)論的是商品,topic_id為商品的id。當(dāng)topic為1時(shí)表示評(píng)論的是動(dòng)態(tài),topic_id為動(dòng)態(tài)的id。當(dāng)topic為2時(shí)表示評(píng)論的是訂單,topic_id為訂單的id。表STYLEREF1\s4.11評(píng)論回復(fù)表所屬表名字段名字段類型字段說(shuō)明chatidint唯一id,主鍵chatuser_idint回復(fù)發(fā)送用戶chatto_user_idint回復(fù)的用戶chatcontentint回復(fù)內(nèi)容chatcomment_idvarchar評(píng)論idchattimedatetime回復(fù)時(shí)間評(píng)論回復(fù)表結(jié)構(gòu)如表4.11所示,記錄了回復(fù)用戶和被回復(fù)用戶,回復(fù)的內(nèi)容,回復(fù)時(shí)間等信息。本章小結(jié)本章主要介紹了系統(tǒng)的總體架構(gòu)設(shè)計(jì)和項(xiàng)目的前后端結(jié)構(gòu),使用E-R圖來(lái)展示各實(shí)體表之間的關(guān)系,然后說(shuō)明主要的數(shù)據(jù)庫(kù)表結(jié)構(gòu)的設(shè)計(jì),為系統(tǒng)的整體框架奠定了基礎(chǔ)。第4章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)登錄注冊(cè)模塊設(shè)計(jì)與實(shí)現(xiàn)登錄功能圖STYLEREF1\s5.1登錄類圖用戶在系統(tǒng)中遇到需要登錄才能使用的功能時(shí),會(huì)提示需要登錄并自動(dòng)跳轉(zhuǎn)到登錄界面。輸入用戶名和密碼后,點(diǎn)擊登錄按鈕前端會(huì)發(fā)送請(qǐng)求,UserController類接收到請(qǐng)求后,會(huì)執(zhí)行該請(qǐng)求對(duì)應(yīng)的方法login方法,login方法將調(diào)用UserService類的login接口進(jìn)行驗(yàn)證,先驗(yàn)證該用戶名對(duì)應(yīng)的賬號(hào)是否存在,若存在再進(jìn)行密碼正確性的驗(yàn)證,如果均驗(yàn)證通過(guò),返回對(duì)應(yīng)的User實(shí)體的JSON數(shù)據(jù)給前端,若有驗(yàn)證未通過(guò)則返回失敗標(biāo)志。前端根據(jù)返回的標(biāo)志進(jìn)行判斷,若成功則進(jìn)入跳轉(zhuǎn)到首頁(yè),若失敗則提示錯(cuò)誤消息。登錄類圖如圖5.1所示。注冊(cè)功能用戶沒(méi)有賬號(hào)時(shí),可以選擇注冊(cè)。用戶進(jìn)入注冊(cè)頁(yè)面,輸入正確格式的賬號(hào)后,Vue.js會(huì)異步發(fā)送請(qǐng)求。后端UserController類接受到請(qǐng)求后,執(zhí)行對(duì)應(yīng)接口的方法exitUser方法,會(huì)判斷賬號(hào)否已存在,然后返回結(jié)果給前端,告知用戶是否已存在,若存在則提示需要用戶重新填寫賬號(hào),直至輸入的賬號(hào)不存在。然后輸入長(zhǎng)度6-20的昵稱,長(zhǎng)度在6-20之間的密碼,并重復(fù)密碼,還有生日、性別和簡(jiǎn)介,其中生日、性別和簡(jiǎn)介不是必填。點(diǎn)擊注冊(cè)按鈕,若信息格式驗(yàn)證通過(guò)則發(fā)送請(qǐng)求。后端的UserController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法register方法,該方法調(diào)用UserService類的register接口,對(duì)密碼進(jìn)行md5+salt加密后,調(diào)用UserMapper類的接口,將信息存進(jìn)數(shù)據(jù)庫(kù)中,返回注冊(cè)成功信息給前端。首頁(yè)模塊設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)首頁(yè)將隨機(jī)展示30條手辦商品信息和已審核的服務(wù)信息,當(dāng)頁(yè)面到底時(shí)會(huì)自動(dòng)加載信息展示給用戶,在進(jìn)入首頁(yè)時(shí)會(huì)自動(dòng)發(fā)送請(qǐng)求,后端的ItemController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法getRandItem方法,getRandItem方法會(huì)調(diào)用ItemService類的getRandItem接口,該接口會(huì)調(diào)用ItemMapper層的randSelect接口和相關(guān)映射的XML文件,執(zhí)行SQL語(yǔ)句獲取數(shù)據(jù)庫(kù)中隨機(jī)的30條手辦商品信息和已審核的服務(wù)信息,然后將數(shù)據(jù)返回給前端,前端通過(guò)雙向綁定,讓頁(yè)面展示最傳遞過(guò)來(lái)的數(shù)據(jù)。由于是隨機(jī)的數(shù)據(jù),不免出現(xiàn)重復(fù)的情況,前端會(huì)對(duì)獲取的信息進(jìn)行過(guò)濾,剔除掉重復(fù)的數(shù)據(jù),使得展示的數(shù)據(jù)不重復(fù)。搜索瀏覽模塊設(shè)計(jì)與實(shí)現(xiàn)保留搜索記錄功能為減少用戶輸入工作量,提高系統(tǒng)可用性,設(shè)計(jì)了歷史搜索記錄功能。用戶在首頁(yè)點(diǎn)擊搜索框時(shí)會(huì)進(jìn)入搜索頁(yè)面,在此頁(yè)面可以看到自己最近搜索過(guò)的十個(gè)詞。點(diǎn)擊詞匯可以進(jìn)行再次搜索,也手動(dòng)清空歷史搜索記錄。當(dāng)用戶輸入搜索詞,點(diǎn)擊搜索按鈕時(shí),從LocalStorage查詢是否有歷史記錄,若已有則取出并解析為JSON格式,判斷是否已經(jīng)有該搜索詞,然后將該詞從歷史記錄里刪除,插入到歷史記錄數(shù)組的頭部,若無(wú)則直接放入數(shù)組中。再判斷當(dāng)前數(shù)組長(zhǎng)度是否大于10,超過(guò)的話刪除一個(gè)。流程如圖5.3所示。圖5.3保存搜索記錄的流程圖熱門搜索功能用戶在進(jìn)入搜索頁(yè)面后不僅能看到歷史搜索記錄,還能看到目前排行前10的熱門搜索。當(dāng)進(jìn)入這個(gè)頁(yè)面時(shí),Vue.js會(huì)發(fā)送請(qǐng)求,后端的ItemController類接受請(qǐng)求,執(zhí)行對(duì)應(yīng)接口的方法getHot方法,getHot方法會(huì)調(diào)用hotService類的get接口。由于這個(gè)功能使用很頻繁,對(duì)數(shù)據(jù)庫(kù)進(jìn)行大量的查詢操作,會(huì)大大影響效率,所以采用Redis緩存中間件,在第一次執(zhí)行時(shí)會(huì)將數(shù)據(jù)庫(kù)的hotsearch表加載進(jìn)Redis中,同時(shí)返回?cái)?shù)據(jù)給前端。之后再次執(zhí)行時(shí)直接從Redis中獲取,因?yàn)镽edis是使用內(nèi)存存儲(chǔ)數(shù)據(jù),所以IO速度快,提高了查詢效率,同時(shí)也減少了數(shù)據(jù)庫(kù)的壓力。如圖5.4所示,顯示出熱度前10的搜索記錄。圖5.4搜索界面多條件查詢商品功能用戶在搜索頁(yè)面輸入關(guān)鍵詞點(diǎn)擊搜索后會(huì)進(jìn)入多條件搜索頁(yè)面,在此頁(yè)面用戶可根據(jù)最近時(shí)間、按價(jià)格升序和按價(jià)格降序?qū)λ阉鹘Y(jié)果進(jìn)行排序,也可按照商品的發(fā)貨地點(diǎn)的省份進(jìn)行過(guò)濾,或者可選擇商品是否包郵、是否免費(fèi)等條件進(jìn)行搜索,還可以對(duì)價(jià)格范圍和時(shí)間范圍進(jìn)行過(guò)濾。在用戶選擇好條件后再次搜索,前端發(fā)送請(qǐng)求到后端,ItemController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法search方法,search方法先會(huì)調(diào)用hotSearchService類的set接口,將搜索關(guān)鍵詞存入數(shù)據(jù)庫(kù)里。然后調(diào)用ItemService類的search接口,search接口會(huì)調(diào)用ItemMapper層的search接口和相關(guān)映射的XML文件,動(dòng)態(tài)拼接SQL語(yǔ)句從數(shù)據(jù)庫(kù)中獲取符合條件的商品信息返回給前端。圖5.5為SQL拼接的流程圖。圖5.5多條件搜索商品的SQL拼接流程圖商品模塊設(shè)計(jì)與實(shí)現(xiàn)商品留言功能用戶點(diǎn)擊商品進(jìn)入商品詳情頁(yè)面時(shí)不僅顯示商品的詳細(xì)信息還會(huì)顯示的留言。已登錄的用戶可在此頁(yè)面留言詢問(wèn)其他用戶或是商品發(fā)布人,還能回復(fù)其他用戶的留言。在進(jìn)入此頁(yè)面時(shí),自動(dòng)發(fā)送請(qǐng)求,后端的CommentController類接口接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法getItemComment方法,getItemComment方法調(diào)用CommentService類的getItemAllComment接口,getItemAllComment接口調(diào)用CommentMapper類的sellectAllCommentByTopicId接口和相關(guān)映射的XML文件,根據(jù)傳遞的參數(shù)執(zhí)行SQL,返回相應(yīng)的評(píng)論數(shù)據(jù)給前端,頁(yè)面展示返回的評(píng)論信息。用戶在輸入留言后發(fā)送,會(huì)發(fā)出請(qǐng)求,后端的控制層接受請(qǐng)求,層層調(diào)用,,根據(jù)傳遞的參數(shù),向數(shù)據(jù)庫(kù)插入留言數(shù)據(jù)。用戶點(diǎn)擊其他用戶的留言后頁(yè)面底部會(huì)彈出輸入框,提示回復(fù)的用戶名,這時(shí)輸入要回復(fù)的內(nèi)容并發(fā)送,就可以回復(fù)這名用戶,如圖5.6所示。發(fā)送后會(huì)發(fā)出請(qǐng)求,后端的控制層接受請(qǐng)求,層層調(diào)用,根據(jù)傳遞的參數(shù),執(zhí)行SQL語(yǔ)句,向數(shù)據(jù)庫(kù)插入數(shù)據(jù)。圖5.6商品頁(yè)面部分頁(yè)面(留言)收藏商品功能在瀏覽商品時(shí),用戶若發(fā)現(xiàn)感興趣的商品,可點(diǎn)擊收藏按鈕,收藏該商品。收藏的商品可在個(gè)人賬戶界面里查看。點(diǎn)擊收藏按鈕時(shí)會(huì)發(fā)送收藏請(qǐng)求,后端的控制層接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)方法changeCollectionState方法,changeCollectionState方法調(diào)用CollectService類的changeState接口,接口會(huì)調(diào)用CollectMappe類中的selectByUserIdAndItemId接口通過(guò)用戶ID和商品ID查詢數(shù)據(jù)庫(kù),判斷有無(wú)該用戶的收藏記錄。若無(wú)記錄則CollectServiceImpl類的changeState方法會(huì)調(diào)用CollectMapper類中的insertCollect接口,向數(shù)據(jù)庫(kù)插入收藏記錄。若有記錄則changeState方法會(huì)調(diào)用CollectMapper類中的updateCollect接口,更新該條記錄的is_delete字段。創(chuàng)建聊天室功能用戶若想要了解某商品的更多信息,可直接去賣家進(jìn)行交流。用戶點(diǎn)擊頁(yè)面底部的我想要按鈕即可進(jìn)入聊天頁(yè)面與賣家溝通交流。當(dāng)用戶點(diǎn)擊我想要按鈕時(shí)將發(fā)送請(qǐng)求,后端的ChatController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法creatRoom方法。creatRoom方法會(huì)調(diào)用兩次Chatervice類的setChatRoom接口,setChatRoom接口會(huì)調(diào)用ChatRoomMapper類的insert接口。向數(shù)據(jù)庫(kù)插入賣家與買家和買家與買家的聊天室記錄。聊天室在消息頁(yè)面可查看。社區(qū)模塊設(shè)計(jì)與實(shí)現(xiàn)社區(qū)動(dòng)態(tài)信息顯示功能用戶進(jìn)入社區(qū)頁(yè)面時(shí)會(huì)自動(dòng)發(fā)送請(qǐng)求,后端的DynamicController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法getRandDynamic方法,getRandDynamic方法將會(huì)調(diào)用DynamicService類的getRand接口,getRand接口會(huì)調(diào)用DynamicMapper類的selectALLRand接口,從數(shù)據(jù)庫(kù)獲取30條隨機(jī)的動(dòng)態(tài)信息。getRandDynamic方法還會(huì)調(diào)用LikesService類的getOneUserLike接口,getOneUserLike接口調(diào)用LikesMapper類的selectByUserId接口,獲取當(dāng)前登入用戶的點(diǎn)贊情況,對(duì)獲取到的動(dòng)態(tài)信息進(jìn)行點(diǎn)贊設(shè)置,然后返回給前端。動(dòng)態(tài)點(diǎn)贊功能功能用戶若發(fā)現(xiàn)感興趣是覺(jué)得很贊的動(dòng)態(tài)的可以對(duì)該條動(dòng)態(tài)進(jìn)行點(diǎn)贊,可以在社區(qū)頁(yè)面點(diǎn)贊,也可以進(jìn)入動(dòng)態(tài)詳情頁(yè)面點(diǎn)贊。當(dāng)用戶點(diǎn)擊點(diǎn)贊按鈕時(shí),前端發(fā)出請(qǐng)求,后端的DynamicController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法changLike方法,changLike方法會(huì)調(diào)用LikesService類的updateLike接口,updateLike接口先調(diào)用LikesMapper類的selectByUserIdAndDynamicId接口,獲取點(diǎn)贊情況的記錄,若無(wú)記錄,則調(diào)用LikesMapper類的insertLike接口,向數(shù)據(jù)庫(kù)插入點(diǎn)贊記錄。若存在點(diǎn)贊記錄,則調(diào)用LikesMapper類的updateByUserIdAndDynamicId接口,更新該條記錄的點(diǎn)贊情況。動(dòng)態(tài)評(píng)論功能用戶點(diǎn)擊某一條動(dòng)態(tài)進(jìn)入動(dòng)態(tài)詳情頁(yè)面時(shí)不僅顯示動(dòng)態(tài)的全部信息還會(huì)顯示其他用戶的評(píng)論。已登錄的用戶可在此頁(yè)面評(píng)論,還能回復(fù)其他用戶的評(píng)論。在進(jìn)入此頁(yè)面會(huì)自動(dòng)發(fā)出請(qǐng)求,后端的CommentController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法getDynamicComment方法,getDynamicComment方法調(diào)用CommentService類中的getDynamicAllComment接口,getDynamicAllComment接口調(diào)用CommentMapper類的selectAllCommentByTopicId接口,根據(jù)傳遞的參數(shù)執(zhí)行方法,返回相應(yīng)的評(píng)論數(shù)據(jù)。前端展示返回的評(píng)論信息。該功能與5.1.1的商品留言功能是差不多的,復(fù)用了同一個(gè)CommentMapper的接口,評(píng)論和回復(fù)也是使用了同一個(gè)接口,提高了開發(fā)效率。消息模塊設(shè)計(jì)與實(shí)現(xiàn)未讀通知功能用戶進(jìn)入消息頁(yè)面時(shí)自動(dòng)發(fā)出請(qǐng)求,從后端獲取通知數(shù)據(jù),若有新通知,會(huì)在頁(yè)面中的通知模塊提示用戶有多少條未讀通知。點(diǎn)擊進(jìn)入通知消息,查看新通知后,會(huì)將未讀消息的狀態(tài)變?yōu)橐炎x。聯(lián)系人展示功能在消息頁(yè)面除了會(huì)有通知消息外,還可以看到有聯(lián)系人,不僅有顯示最新的一條聊天記錄和時(shí)間,還有當(dāng)前正在與賣家溝通交流的商品。進(jìn)入消息頁(yè)面上時(shí)會(huì)自動(dòng)發(fā)出請(qǐng)求,后端的ChatController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法getChatRoom方法,getChatRoom方法調(diào)用ChatService類的getChatRoom接口,getChatRoom接口調(diào)用ChatRoomMapper類中的selectById接口,從數(shù)據(jù)庫(kù)里獲取當(dāng)前用戶的所有聯(lián)系人,然后返回給前端。聊天功能用戶點(diǎn)擊某個(gè)聯(lián)系人會(huì)進(jìn)入聊天室,可以與該聯(lián)系人進(jìn)行實(shí)時(shí)聊天,前提是對(duì)方在線。若對(duì)方不在線,也不影響與賣家的交流溝通,發(fā)送的信息會(huì)存到數(shù)據(jù)庫(kù)里,等待對(duì)方上線時(shí)也能看到。聊天能發(fā)送文字和圖片,圖片只能發(fā)送一張。輸入發(fā)送文字消息點(diǎn)擊發(fā)送后,將發(fā)出請(qǐng)求,后端的ChatController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法sendMSG方法,該方法通過(guò)接受到請(qǐng)求參數(shù)生成相應(yīng)的Chat實(shí)體類,然后調(diào)用ChatService類的insert接口,進(jìn)而調(diào)用ChatMapper類的insert接口,向數(shù)據(jù)庫(kù)插入數(shù)據(jù)。endMSG方法還會(huì)調(diào)用ChatService類中的setChatRoomTimeAndText接口,setChatRoomTimeAndText接口會(huì)調(diào)用ChatRoomMapper類中的updateTimeAndTextByUserIdAndToUserId接口,對(duì)聊天室的信息進(jìn)行更新。最后調(diào)用websocket類的sendMessageTo方法,將消息通過(guò)websocket協(xié)議發(fā)送至前端。發(fā)送圖片與發(fā)送消息處理邏輯類似,不同的是,還需要調(diào)用FileUtils圖片工具類對(duì)圖片進(jìn)行處理。個(gè)人中心模塊設(shè)計(jì)與實(shí)現(xiàn)個(gè)人資料展示與修改功能用戶登錄后的頁(yè)面如圖5.13所示,進(jìn)入個(gè)人中心界面點(diǎn)擊頁(yè)面右上角的設(shè)置按鈕,可查看個(gè)人基本資料,進(jìn)入設(shè)置界面時(shí)會(huì)自動(dòng)發(fā)送請(qǐng)求,后端的UserController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法getOneUser方法,getOneUser方法調(diào)用UserService類的getOneUser接口,getOneUser接口會(huì)調(diào)用UserMapper類的getUserById接口獲取用戶的基本信息,返回?cái)?shù)據(jù)到前端進(jìn)行展示。用戶也可輸入正確格式的用戶昵稱、性別、生日、簡(jiǎn)介以及頭像進(jìn)行個(gè)人信息的修改。還可以管理用戶自己的收貨地址,添加、刪除和修改地址,設(shè)置默認(rèn)地址。充值功能用戶登錄后即可在進(jìn)入個(gè)人中心界面看到用戶的余額,余額不足時(shí)無(wú)法購(gòu)買商品。點(diǎn)擊充值按鈕,進(jìn)入充值頁(yè)面,在此頁(yè)面輸入要充值的金額,點(diǎn)擊充值按鈕,即可進(jìn)行充值。查看歷史瀏覽功能用戶登錄后進(jìn)入個(gè)人中心界面可以看到歷史瀏覽數(shù)量,點(diǎn)擊后查看歷史瀏覽,歷史瀏覽記錄按照時(shí)間進(jìn)行分類。進(jìn)入該頁(yè)面時(shí)會(huì)到LocalStorage里去取得歷史瀏覽記錄,然后解析為列表,顯示在頁(yè)面。查看我的收藏功能用戶登錄后進(jìn)入個(gè)人中心可以看到收藏?cái)?shù)量,點(diǎn)擊后查看我的收藏,進(jìn)入界面時(shí)會(huì)發(fā)送請(qǐng)求獲取我的收藏。后端的ItemController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法getCollectItem方法,該方法調(diào)用CollectService類中的getItem接口,getItem接口會(huì)調(diào)用CollectMapper類的selectByUserId接口和相對(duì)應(yīng)的XML文件,獲取數(shù)據(jù)后返回到前端進(jìn)行展示。查看我的發(fā)布功能用戶登錄后進(jìn)入個(gè)人中心界面可以看到用戶發(fā)布商品數(shù)量,點(diǎn)擊后查看我發(fā)布的商品,進(jìn)入界面時(shí)會(huì)自動(dòng)發(fā)送請(qǐng)求,后端的UserController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法userRel方法,userRel方法會(huì)調(diào)用itemsServiceget類的UserRel接口,通過(guò)用戶id獲取數(shù)據(jù)庫(kù)中該用戶發(fā)布的商品信息,然后返回信息到前端進(jìn)行展示。此界面提供刪除和下架按鈕,點(diǎn)擊刪除按鈕會(huì)發(fā)送刪除請(qǐng)求,后端的ItemController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)對(duì)應(yīng)方法deleteItem方法,該方法會(huì)調(diào)用itemsService類里的deleteItem接口,通過(guò)商品id刪除該商品。點(diǎn)擊下架后會(huì)發(fā)送請(qǐng)求,后端的ItemController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法itemShelves方法,更新該商品的狀態(tài)為下架狀態(tài),并生成原因。下架的商品可在頁(yè)面的右上角的下架寶貝里查看,包括主動(dòng)下架的和審核失敗被管理員下架的。點(diǎn)擊下架寶貝按鈕之后,進(jìn)入下架頁(yè)面,進(jìn)入界面時(shí)會(huì)自動(dòng)發(fā)送請(qǐng)求,后端的ItemController類接受請(qǐng)求,到數(shù)據(jù)庫(kù)里查詢狀態(tài)為主動(dòng)下架的和審核失敗的商品信息,然后返回?cái)?shù)據(jù)庫(kù)到前端進(jìn)行顯示。頁(yè)面會(huì)顯示每個(gè)下架商品被下架的原因,還提供了重新發(fā)布、刪除和編輯按鈕。重新發(fā)布的商品其狀態(tài)會(huì)設(shè)置為待審核狀態(tài),點(diǎn)擊編輯按鈕,進(jìn)入編輯頁(yè)面,可對(duì)商品的所有信息編輯,包括價(jià)格、運(yùn)費(fèi)、圖片和分類等。查看我的購(gòu)買功能用戶登錄后進(jìn)入個(gè)人中心界面可以看到我購(gòu)買的數(shù)量,點(diǎn)擊后查看我購(gòu)買的商品,進(jìn)入界面時(shí)自動(dòng)發(fā)出請(qǐng)求,后端的UserController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法userBuy方法,該方法會(huì)調(diào)用orderService類中的getUserBuy接口,根據(jù)用戶Id獲取已下訂單的商品,返回?cái)?shù)據(jù)到前端顯示。頁(yè)面會(huì)顯示出訂單的狀態(tài),還提供聯(lián)系賣家和評(píng)價(jià)按鈕,點(diǎn)擊聯(lián)系賣家按鈕即可與賣家交流溝通,點(diǎn)擊評(píng)價(jià)按鈕進(jìn)入評(píng)價(jià)頁(yè)面,可對(duì)訂單進(jìn)行評(píng)價(jià)。查看我的賣出功能用戶登錄后進(jìn)入個(gè)人中心界面可以看到我賣出的數(shù)量,點(diǎn)擊后查看我賣出的商品,進(jìn)入界面時(shí)會(huì)自動(dòng)發(fā)送請(qǐng)求,后端的UserController類接受請(qǐng)求,執(zhí)行接口對(duì)應(yīng)的方法userSell方法,該方法會(huì)調(diào)用orderService類中的getUserSell接口,根據(jù)用戶Id獲取其他用戶下了該用戶擁有的商品訂單,返回?cái)?shù)據(jù)到前端顯示。頁(yè)面會(huì)顯示出訂單的狀態(tài),還提供聯(lián)系買家和評(píng)價(jià)按鈕,點(diǎn)擊聯(lián)系買家按鈕即可與買家交流溝通,點(diǎn)擊評(píng)價(jià)按鈕進(jìn)入評(píng)價(jià)頁(yè)面,可對(duì)訂單進(jìn)行評(píng)價(jià)。管理模塊設(shè)計(jì)與實(shí)現(xiàn)商品和動(dòng)態(tài)信息管理功能管理員在進(jìn)入商品管理頁(yè)面時(shí)會(huì)進(jìn)行權(quán)限的判斷,如果是系統(tǒng)管理員,則將顯示全部的商品和全部的功能按鈕,而審核管理員只能查看待審核的商品,且無(wú)法修改、增加和刪除商品。如圖5.14,所示為系統(tǒng)管理員登錄時(shí)的商品管理頁(yè)面。管理員在進(jìn)入商品管理頁(yè)面時(shí)會(huì)進(jìn)行權(quán)限的判斷,如果是系統(tǒng)管理員,則將顯示全部的功能按鈕,而審核管理員無(wú)法修改和增加動(dòng)態(tài),對(duì)審核不通過(guò)的動(dòng)態(tài)需要?jiǎng)h除,且要給出違規(guī)理由告訴該用戶,系統(tǒng)管理員不需要該操作。圖5.14商品管理頁(yè)面消息管理功能系統(tǒng)管理員可進(jìn)入管理界面進(jìn)行通知消息的發(fā)布,對(duì)所有用戶或者單一用戶發(fā)出系統(tǒng)通知。用戶管理功能只有系統(tǒng)管理員能進(jìn)入用戶管理界面,可以對(duì)用戶和審核管理員的進(jìn)行管理。進(jìn)入用戶管理界面時(shí)和搜索時(shí)將發(fā)送請(qǐng)求,后端的UserController類接受請(qǐng)求,執(zhí)行接口相對(duì)應(yīng)的方法getAllUser方法,該方法將調(diào)用UserService類的getAllUser接口,getAllUser接口調(diào)用UserMapper類的selectAllUser接口和相對(duì)應(yīng)的XML文件,獲取指定條件的用戶信息和管理員信息,返回所有獲取的信息到前端進(jìn)行展示,前端還提供查看、刪除和修改按鈕用于管理員查看該用戶的詳細(xì)信息、刪除該用戶和修改該用戶的信息。商品分類管理功能系統(tǒng)管理員可進(jìn)入管理界面進(jìn)行商品分類的管理的管理。商品分為兩大類,一是按作品名稱分類,二是按角色名分類。系統(tǒng)管理員可在兩大類別里分別設(shè)置具體要顯示哪些作品名稱和角色名,也可進(jìn)行修改,新增和刪除以及上傳分類需要顯示的圖片。本章小結(jié)本章主要詳細(xì)分析了系統(tǒng)重要模塊的主要功能,并結(jié)合頁(yè)面、類圖和代碼來(lái)剖析主要功能,讓本研究課題所要實(shí)現(xiàn)的系統(tǒng)的設(shè)計(jì)思路更加直觀,更加清晰。第5章系統(tǒng)測(cè)試系統(tǒng)測(cè)試測(cè)試目的為確保系統(tǒng)功能的準(zhǔn)確性以及提高用戶在使用本系統(tǒng)時(shí)的體驗(yàn)[15],在系統(tǒng)開發(fā)完成后,對(duì)系統(tǒng)功能進(jìn)行黑盒測(cè)試。由于本系統(tǒng)功能較多,限于篇幅,僅對(duì)用戶經(jīng)常使用的主要功能設(shè)計(jì)測(cè)試用例,檢查是否能夠正常運(yùn)行并達(dá)到預(yù)期效果。系統(tǒng)主要功能測(cè)試用例表STYLEREF1\s6.SEQ表\*ARABIC\s11發(fā)布商品測(cè)試用例表用例名稱發(fā)布商品功能用例描述測(cè)試發(fā)布商品的信息,驗(yàn)證是否能正確發(fā)布前置條件用戶已登入,進(jìn)入發(fā)布商品界面測(cè)試用例ID測(cè)試步驟預(yù)期結(jié)果實(shí)際結(jié)果P/FFb001輸入商品信息后直接點(diǎn)擊發(fā)布無(wú)法發(fā)布,并有提示信息提示未上傳圖片,發(fā)布未成功。PFb002上傳圖片后點(diǎn)擊發(fā)布無(wú)法發(fā)布,并有提示信息提示未描述商品,發(fā)布未成功。PFb003輸入商品信息,上傳圖片后,點(diǎn)擊發(fā)布無(wú)法發(fā)布,并有提示信息提示未選擇發(fā)貨地址,發(fā)布未成功。PFb004在價(jià)格或運(yùn)費(fèi)的輸入框中輸入非負(fù)數(shù)或非數(shù)字無(wú)法輸入無(wú)法輸入PFb005輸入商品信息,上傳圖片后,選擇發(fā)貨地后點(diǎn)擊發(fā)布無(wú)法發(fā)布,并有提示信息提示未輸入類別,發(fā)布未成功。P表STYLEREF1\s6.2搜索商品測(cè)試用例表用例名稱搜索商品功能用例描述選擇條件進(jìn)行搜索,驗(yàn)證是否能按條件搜索前置條件進(jìn)入多條件搜索頁(yè)面測(cè)試用例ID測(cè)試步驟預(yù)期結(jié)果實(shí)際結(jié)果P/FS001輸入關(guān)鍵字,點(diǎn)擊搜索顯示包含關(guān)鍵字商品的搜索結(jié)果顯示包含關(guān)鍵字商品的搜索結(jié)果PS002選擇按價(jià)格降序?qū)λ阉鹘Y(jié)果進(jìn)行價(jià)格降序的排序?qū)λ阉鹘Y(jié)果進(jìn)行價(jià)格降序的排序PS003選擇地區(qū)將搜索結(jié)果按地區(qū)篩選將搜索結(jié)果按地區(qū)篩選。PS004清空關(guān)鍵字后點(diǎn)擊搜索搜索出全部商品搜索出全部商品P表STYLEREF1\s6.3購(gòu)買商品測(cè)試用例表用例名稱購(gòu)買商品功能用例描述對(duì)下訂單等進(jìn)行測(cè)試,驗(yàn)證特殊情況下購(gòu)買商品是否正確前置條件需要兩個(gè)用戶,一個(gè)為購(gòu)買者,但余額為0,另一個(gè)是售賣者,測(cè)試用例ID測(cè)試步驟預(yù)期結(jié)果實(shí)際結(jié)果P/FB001購(gòu)買者在商品詳情頁(yè)面點(diǎn)擊我想要按鈕進(jìn)入聊天頁(yè)面,在頁(yè)面上方顯示當(dāng)前準(zhǔn)備購(gòu)買的商品進(jìn)入聊天頁(yè)面,在頁(yè)面上方顯示當(dāng)前準(zhǔn)備購(gòu)買的商品PB002購(gòu)買者在聊天頁(yè)面點(diǎn)擊下單跳轉(zhuǎn)至訂單頁(yè)面,顯示正確的信息跳轉(zhuǎn)至訂單頁(yè)面,顯示正確的信息PB003購(gòu)買者在訂單頁(yè)面點(diǎn)擊付款顯示購(gòu)買失敗的頁(yè)面顯示購(gòu)買失敗的頁(yè)面PB004售賣者將商品下架,購(gòu)買者從個(gè)人中心頁(yè)面點(diǎn)擊我購(gòu)買能看到剛剛支付失敗的訂單顯示商品下架的狀態(tài)能看到剛剛支付失敗的訂單顯示未支付的狀態(tài)FB005購(gòu)買者點(diǎn)擊進(jìn)入剛剛支付失敗的訂單訂單頁(yè)面已不顯示取消訂單和立即付款的按鈕,無(wú)法對(duì)該訂單進(jìn)行操作訂單頁(yè)面仍然顯示取消訂單和立即付款的按鈕,能繼續(xù)交易F以上三個(gè)測(cè)試用例中,搜索功能的測(cè)試用例和發(fā)布商品功能的測(cè)試用例是用戶經(jīng)常使用的,發(fā)生問(wèn)題后會(huì)讓用戶體驗(yàn)下降。而購(gòu)買商品功能的測(cè)試用例是對(duì)商品操作后,可能會(huì)引起訂單狀態(tài)的異常,導(dǎo)致系統(tǒng)出錯(cuò)。本章小結(jié)本章說(shuō)明了系統(tǒng)測(cè)試的目的,對(duì)系統(tǒng)主要功能進(jìn)行測(cè)試。測(cè)試過(guò)程中發(fā)現(xiàn)了系統(tǒng)的問(wèn)題,對(duì)代碼進(jìn)行走讀,通過(guò)設(shè)置斷點(diǎn)的方式,對(duì)代碼效果進(jìn)行展示,隨后發(fā)現(xiàn)了問(wèn)題的所在。修改過(guò)后,可以通過(guò)測(cè)試。第6章總結(jié)總結(jié)與展望總結(jié)近年來(lái),隨著手辦的不斷發(fā)展,越來(lái)越多的年輕人加入到
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能電網(wǎng)建設(shè)規(guī)劃及技術(shù)發(fā)展建議
- 2025-2030光纖測(cè)試設(shè)備智能化升級(jí)與運(yùn)維效率提升方案研究
- 2025-2030光纖放大器非線性效應(yīng)抑制技術(shù)與傳輸性能優(yōu)化方案分析報(bào)告
- 2025-2030光纖分布式聲波傳感在地質(zhì)勘探中的創(chuàng)新應(yīng)用報(bào)告
- 2025-2030光模塊功耗優(yōu)化技術(shù)路線對(duì)比與散熱解決方案評(píng)估
- 2025-2030光器件行業(yè)資本運(yùn)作模式創(chuàng)新與投融資熱點(diǎn)分析報(bào)告
- 2025-2030光器件渠道分銷模式變革及電商平臺(tái)滲透率提升策略效果評(píng)估
- 2025-2030光伏跟蹤支架算法控制精度與地形適應(yīng)能力比較研究報(bào)告
- 2025-2030光伏組件回收產(chǎn)業(yè)政策環(huán)境與價(jià)值鏈分析白皮書
- 醫(yī)療機(jī)構(gòu)感染控制管理方案詳解
- 車位退還協(xié)議書
- 手榴彈教學(xué)課件
- 工廠臨時(shí)用工方案(3篇)
- 監(jiān)理整改措施方案(3篇)
- 景區(qū)酒店融資方案(3篇)
- GB/T 9948-2025石化和化工裝置用無(wú)縫鋼管
- 下肢靜脈血栓疑難病例護(hù)理討論
- 黑色素瘤病理診斷
- 農(nóng)行柔性團(tuán)隊(duì)管理辦法
- 預(yù)防性維護(hù)與預(yù)測(cè)分析
- 重心的講課課件
評(píng)論
0/150
提交評(píng)論