《基于SpringCloud微服務(wù)框架的電影點(diǎn)評(píng)系統(tǒng)設(shè)計(jì)》13000字(論文)_第1頁(yè)
《基于SpringCloud微服務(wù)框架的電影點(diǎn)評(píng)系統(tǒng)設(shè)計(jì)》13000字(論文)_第2頁(yè)
《基于SpringCloud微服務(wù)框架的電影點(diǎn)評(píng)系統(tǒng)設(shè)計(jì)》13000字(論文)_第3頁(yè)
《基于SpringCloud微服務(wù)框架的電影點(diǎn)評(píng)系統(tǒng)設(shè)計(jì)》13000字(論文)_第4頁(yè)
《基于SpringCloud微服務(wù)框架的電影點(diǎn)評(píng)系統(tǒng)設(shè)計(jì)》13000字(論文)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGEI基于SpringCloud微服務(wù)框架的電影點(diǎn)評(píng)系統(tǒng)設(shè)計(jì)目錄TOC\o"1-4"\u1引言 11.1目的 11.2范圍 11.3背景 11.4術(shù)語(yǔ) 22需求分析 22.1業(yè)務(wù)建模 22.2用例建模 42.3功能需求 52.4界面需求 52.5非功能性需求 63概要設(shè)計(jì) 63.1第零層設(shè)計(jì)描述 53.2設(shè)計(jì)思路 53.3第一層設(shè)計(jì)描述 63.3.1注冊(cè)登錄管理描述 73.3.2電影排行榜管理描述 73.3.3電影管理描述 73.3.4評(píng)論管理描述 83.3.5公告管理描述 83.4數(shù)據(jù)庫(kù) 103.5.1實(shí)體、屬性和關(guān)系 103.5.2實(shí)體關(guān)系圖 114詳細(xì)設(shè)計(jì)及實(shí)現(xiàn) 124.1注冊(cè)登錄模塊 124.1.1數(shù)據(jù)描述 124.1.2函數(shù)描述 124.1.3功能實(shí)現(xiàn) 134.2電影排行榜模塊 154.3電影模塊 154.4評(píng)論模塊 184.5公告模塊 204.8數(shù)據(jù)庫(kù)的實(shí)現(xiàn) 244.9錯(cuò)誤處理 245軟件測(cè)試 255.1測(cè)試環(huán)境 255.2功能測(cè)試 256軟件使用說(shuō)明 256.1軟件安裝與配置 256.2電影功能的使用方法 266.3評(píng)論更改的使用方法 266.4公告操作的使用方法 266.5管理員操作的使用方法 266.6普通用戶(hù)登錄的使用方法 266.7忘記密碼的使用方法 27參考文獻(xiàn) 281引言電影點(diǎn)評(píng)系統(tǒng)是切合生活實(shí)際的一個(gè)項(xiàng)目,隨著人們物質(zhì)水平不斷的改善,人們對(duì)生活品質(zhì)的追求越來(lái)越多種多樣,很多人選擇多種消遣方式。其中,電影院看電影就是很重要的消遣方式??措娪暗娜藬?shù)大量增多,電影質(zhì)量也是參差不齊,為此,影視評(píng)論網(wǎng)站可以讓用戶(hù)在觀(guān)看影片前了解影片的受寵情況,方便用戶(hù)更加準(zhǔn)確的選擇觀(guān)看的影片。本次課題設(shè)計(jì)主要圍繞這一需求展開(kāi),構(gòu)建較為合理的電影點(diǎn)評(píng)系統(tǒng),為觀(guān)眾選擇評(píng)論電影通過(guò)服務(wù)。對(duì)影視排行模塊,電影管理信息,評(píng)論管理,影片管理,統(tǒng)計(jì)管理等功能做實(shí)現(xiàn),這些模塊基本滿(mǎn)足用戶(hù)的根本需求,我們?cè)诖烁鶕?jù)所學(xué)知識(shí),結(jié)合實(shí)際中需要的業(yè)務(wù),了解其他類(lèi)似系統(tǒng)的優(yōu)缺點(diǎn),避開(kāi)不足,分析用戶(hù)的需求,完成電影點(diǎn)評(píng)系統(tǒng)的項(xiàng)目,在此基礎(chǔ)上,讓其運(yùn)行速度更快,統(tǒng)計(jì)更加準(zhǔn)確。1.2范圍電影點(diǎn)評(píng)系統(tǒng)是通過(guò)網(wǎng)站上全民性參與,多角度分析,集合盡可能多的電影評(píng)論為廣大用戶(hù)進(jìn)行電影篩選所用。大家通過(guò)更加客觀(guān)的影評(píng)擇選出自己喜歡的電影,降低了篩選影片的時(shí)間,提升了擇影效率。此系統(tǒng)通過(guò)NodeJS、HTML、CSS及JavaScript的綜合運(yùn)用實(shí)現(xiàn)界面友好。運(yùn)用SpringCloud微服務(wù)框架為系統(tǒng)提供了一種簡(jiǎn)單且易于接受的編程模型,通過(guò)MyBatis框架,避免了幾乎所有的JDBC代碼和手動(dòng)設(shè)置參數(shù)以及獲取結(jié)果集,使開(kāi)發(fā)者只需要關(guān)注sql語(yǔ)句本身。通過(guò)這些技術(shù)的應(yīng)用系統(tǒng)最終能夠使用戶(hù)能夠準(zhǔn)確評(píng)判出電影的受歡迎程度,對(duì)電影以及電影的評(píng)論進(jìn)行收藏和刪除操作,能夠修改用戶(hù)自己的信息,查看公告;管理員則可以發(fā)布電影相關(guān)信息包括演員,發(fā)布公告,添加管理員,為用戶(hù)隨機(jī)生成密碼的功能。1.3背景電影點(diǎn)評(píng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)是為用戶(hù)更好的選擇觀(guān)影而設(shè)計(jì)的,電影從剛開(kāi)始的簡(jiǎn)單幾部影片到現(xiàn)在的百萬(wàn)部影片,用戶(hù)對(duì)其影片的質(zhì)量要求越來(lái)越高。因此本課題對(duì)其需求和現(xiàn)實(shí)情況進(jìn)行分析,根據(jù)前人所設(shè)計(jì)系統(tǒng)電影點(diǎn)評(píng)系統(tǒng)的缺陷如:只能一些專(zhuān)業(yè)人士在網(wǎng)站上發(fā)布評(píng)價(jià),觀(guān)眾只能登錄網(wǎng)頁(yè)看電影和評(píng)論,而不能暢所欲言自己的觀(guān)影感受更無(wú)法收藏自己喜歡的電影。現(xiàn)在伴隨著互聯(lián)網(wǎng)時(shí)代大眾的消費(fèi)升級(jí),之前的很多問(wèn)題如電影信息不完善、影評(píng)只能專(zhuān)業(yè)人士發(fā)表完成、發(fā)表客觀(guān)性和實(shí)時(shí)性不夠、評(píng)價(jià)方式單一、觀(guān)影人無(wú)法收藏和發(fā)表自己看法等。這些問(wèn)題現(xiàn)在都是迫切需要解決的。隨著電影評(píng)分社區(qū)呈現(xiàn)出民主化、高時(shí)效、全民化的趨勢(shì),對(duì)于之前所出現(xiàn)如對(duì)電影信息的顯示不全、無(wú)法對(duì)電影的收藏和評(píng)論以及個(gè)人信息無(wú)法維護(hù)的問(wèn)題在此系統(tǒng)上幾乎都可以實(shí)現(xiàn)。本系統(tǒng)采用SpringCloud作為框架,MyBatis承接數(shù)據(jù),用JavaScript寫(xiě)界面,給用戶(hù)更好的交互效果。隨著信息技術(shù)水平的發(fā)展和觀(guān)眾對(duì)影評(píng)方式要求的提高,將來(lái)會(huì)實(shí)現(xiàn)界面更優(yōu)、速度更快和統(tǒng)計(jì)更準(zhǔn)確的影視點(diǎn)評(píng)系統(tǒng)。1.4術(shù)語(yǔ)本課題所涉及的專(zhuān)業(yè)術(shù)語(yǔ)比較多,在本論文中反復(fù)使用,為了便于閱讀,特給出術(shù)語(yǔ)表如表1-1所示。表1-1術(shù)語(yǔ)表術(shù)語(yǔ)解釋NodeJSNodeJs是一個(gè)基于ChromeV8引擎的JavaScript運(yùn)行環(huán)境,使用了一個(gè)事件驅(qū)動(dòng)、非阻塞式I/O模型,讓JavaScript運(yùn)行在服務(wù)端的開(kāi)發(fā)平臺(tái),它讓JavaScript成為與PHP、Python、Perl、Ruby等服務(wù)端語(yǔ)言平起平坐的腳本語(yǔ)言。

MyBatisMyBatis是一款優(yōu)秀的持久層框架,它支持自定義SQL、存儲(chǔ)過(guò)程以及高級(jí)映射。MyBatis免除了幾乎所有的JDBC代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。MyBatis可以通過(guò)簡(jiǎn)單的XML或注解來(lái)配置和映射原始類(lèi)型、接口和JavaPOJO(PlainOldJavaObjects,普通老式Java對(duì)象)為數(shù)據(jù)庫(kù)中的記錄。SpringCloudSpringCloud是分布式系統(tǒng)模式,提供了一種簡(jiǎn)單且易于接受的編程模型,幫助開(kāi)發(fā)人員構(gòu)建有彈性的、可靠的、協(xié)調(diào)的應(yīng)用程序。2需求分析2.1業(yè)務(wù)建模2.1.1數(shù)據(jù)流圖此電影點(diǎn)評(píng)系統(tǒng)的數(shù)據(jù)流圖如圖2-1所示。圖2-1數(shù)據(jù)流圖2.1.2對(duì)象本節(jié)主要介紹系統(tǒng)涉及到的具體對(duì)象的主要屬性:1.User對(duì)象:uid為用戶(hù)的全局唯一索引,在用戶(hù)收藏、評(píng)論、存入數(shù)據(jù)庫(kù)關(guān)系表中時(shí)都是通過(guò)uid來(lái)進(jìn)行存儲(chǔ)的,這樣保證數(shù)據(jù)不會(huì)重復(fù);uname是用戶(hù)的昵稱(chēng),系統(tǒng)會(huì)自動(dòng)幫用戶(hù)設(shè)置一個(gè)隨機(jī)的昵稱(chēng),若用戶(hù)之后想要修改用戶(hù)昵稱(chēng),則可以在用戶(hù)中心修改自己的昵稱(chēng);utel是用戶(hù)的電話(huà),此系統(tǒng)用戶(hù)登錄注冊(cè)是通過(guò)用戶(hù)電話(huà)登錄的,同時(shí)utel做為本系統(tǒng)第二個(gè)唯一索引,一個(gè)電話(huà)只能注冊(cè)一個(gè)用戶(hù)信息。User對(duì)象屬性如表2-1所示:表2-1user對(duì)象屬性表屬性名屬性類(lèi)型屬性介紹uidint用戶(hù)自增的唯一idunameString用戶(hù)昵稱(chēng)續(xù)表2-1user對(duì)象屬性表屬性名屬性類(lèi)型屬性介紹utelString用戶(hù)電話(huà)Film對(duì)象:fid為電影的全局唯一索引,在用戶(hù)收藏、評(píng)論該電影時(shí),存入數(shù)據(jù)庫(kù)關(guān)系表中都是通過(guò)fid來(lái)進(jìn)行存儲(chǔ)的,這樣保證數(shù)據(jù)不會(huì)重復(fù);fchecktime為該電影的點(diǎn)擊量,當(dāng)用戶(hù)點(diǎn)入該電影的詳細(xì)界面,則這個(gè)數(shù)字就會(huì)+1,為在此系統(tǒng)主頁(yè)做一個(gè)電影點(diǎn)擊量的排行榜而使用。Film對(duì)象屬性如表2-2所示:表2-2Film對(duì)象屬性表屬性名屬性類(lèi)型屬性介紹fidint電影的唯一idfnameString電影名fcompanyString電影出品公司fdirectorString電影的導(dǎo)演ftimeTimestamp電影上映時(shí)間fmsgString電影簡(jiǎn)介furlString電影觀(guān)看地址fcheckTimeint電影點(diǎn)擊量Performer對(duì)象:pid在此表中只是做為一個(gè)主鍵,沒(méi)有其他的作用;pfid與films表相關(guān)聯(lián),從而得知這個(gè)演員演的哪一部電影;pername展示演員的姓名;pmain表示該演員是否為主演。Performer對(duì)象屬性如表2-3所示:表2-3Performer對(duì)象屬性表屬性名屬性類(lèi)型屬性介紹pidint關(guān)系idpfidint電影idpernameString演員名稱(chēng)pmianboolean演員是否為主演Comment對(duì)象:cid為評(píng)論的唯一id,收藏評(píng)論等操作通過(guò)存儲(chǔ)cid來(lái)存儲(chǔ)信息;cuid和cfid為最基本的用戶(hù)評(píng)論電影id,不可缺少;ctime為評(píng)論時(shí)間,cmsg為具體用戶(hù)評(píng)論的內(nèi)容;cchecktime為評(píng)論被收藏的次數(shù),次數(shù)越多,在電影詳情界面評(píng)論越向上;cstatus為電影的狀態(tài),用戶(hù)發(fā)布評(píng)論時(shí)默認(rèn)為true及其他用戶(hù)可見(jiàn),在用戶(hù)刪除評(píng)論時(shí)改為false及其他用戶(hù)不可見(jiàn),但是互聯(lián)網(wǎng)是有記憶的,為了防止某些用戶(hù)發(fā)布一些不當(dāng)評(píng)論,會(huì)在數(shù)據(jù)庫(kù)有留存該評(píng)論。Comment對(duì)象屬性如表2-4所示:表2-4Comment對(duì)象屬性表屬性名屬性類(lèi)型屬性介紹cidint自增idcuidint評(píng)論用戶(hù)idcfidint評(píng)論的電影idctimeTimestamp評(píng)論的時(shí)間cmsgString評(píng)論內(nèi)容ccheckTimeint評(píng)論被收藏次數(shù)cstatusboolean評(píng)論狀態(tài)Notice對(duì)象:nid為評(píng)論的唯一id,管理員通過(guò)此id來(lái)對(duì)公告進(jìn)行操作;naid為發(fā)布管理員的id;ntime為公告的發(fā)布時(shí)間;nmsg為公告的具體內(nèi)容;npush為公告是否展示,及用戶(hù)可不可以在系統(tǒng)主頁(yè)看到此公告。Notice對(duì)象屬性如表2-5所示:表2-5Notice對(duì)象屬性表屬性名屬性類(lèi)型屬性介紹nidint自增idnaidint管理員idntimeTimestamp公告時(shí)間nmsgString公告內(nèi)容npushboolean公告是否上傳Collection_f/c對(duì)象:cfid/ccid為評(píng)論表的自增id,對(duì)評(píng)論的操作都要通過(guò)此id進(jìn)行操作;cfuid/ccuid為收藏的用戶(hù)的id;cffid、cccid為收藏的電影或者評(píng)論的id;cftime/cctime為收藏的時(shí)間。Collection_f/c對(duì)象屬性如表2-6所示:表2-6Collection_f/c對(duì)象屬性表屬性名屬性類(lèi)型屬性介紹cfid/ccidint自增idcfuid/ccuidint用戶(hù)idcffid/cccidint電影id/評(píng)論idcftime/cctimeTimestamp收藏時(shí)間Admin對(duì)象:aid為管理員的全局自增id,管理員的操作都要通過(guò)此id進(jìn)行操作auname和apwd分別為管理員的用戶(hù)名和管理員的密碼,管理員通過(guò)用戶(hù)名及密碼進(jìn)入管理員系統(tǒng),對(duì)系統(tǒng)的元數(shù)據(jù)進(jìn)行操作,如電影、評(píng)論、用戶(hù)的增刪改查;還可以幫用戶(hù)重新設(shè)置密碼。Admin對(duì)象屬性如表2-7所示:表2-7Admin對(duì)象屬性表屬性名屬性類(lèi)型屬性介紹aidint自增idaunameString管理員用戶(hù)名apwdString管理員密碼2.2用例建模電影點(diǎn)評(píng)系統(tǒng)的參與者有兩個(gè)角色分別是普通用戶(hù)和管理員,普通用戶(hù)與用例之間的關(guān)系如圖2-2所示,管理員與用例之間的關(guān)系如圖2-3所示。2.3功能需求分析此系統(tǒng)的功能需求如下:1、用戶(hù)管理:普通用戶(hù)通過(guò)注冊(cè)獲得賬號(hào),接下來(lái)可以登錄,進(jìn)入頁(yè)面可以修改個(gè)人信息,并可以找回密碼;管理員可以添加管理員,當(dāng)用戶(hù)忘記密碼后可以為其重新隨機(jī)生成一個(gè)密碼。2、電影管理:普通用戶(hù)可以查看電影點(diǎn)擊量排行榜,查看電影詳細(xì)信息包括演員、導(dǎo)演、上映時(shí)間等;管理員對(duì)電影可以進(jìn)行上架下架操作并可編輯電影的詳細(xì)信息。3、評(píng)論管理:普通用戶(hù)可以查看電影的評(píng)論、發(fā)布評(píng)論、收藏評(píng)論、刪除評(píng)論和查看自己評(píng)論的所有內(nèi)容;管理員可以看到所有評(píng)論,并可以對(duì)不良評(píng)論進(jìn)行刪除操作。4、收藏管理:普通用戶(hù)可以收藏電影和評(píng)論、查看所有內(nèi)容同時(shí)可以根據(jù)自己的喜好進(jìn)行刪除操作。5、公告管理:普通用戶(hù)可以在頁(yè)面上看到公告的內(nèi)容;管理員可以對(duì)公告進(jìn)行發(fā)布和刪除功能。圖2-2普通用戶(hù)和用例之間的關(guān)系圖2-3管理員與用例之間的關(guān)系2.3功能需求分析此系統(tǒng)的功能需求如下:1、用戶(hù)管理:普通用戶(hù)通過(guò)注冊(cè)獲得賬號(hào),接下來(lái)可以登錄,進(jìn)入頁(yè)面可以修改個(gè)人信息,并可以找回密碼;管理員可以添加管理員,當(dāng)用戶(hù)忘記密碼后可以為其重新隨機(jī)生成一個(gè)密碼。2、電影管理:普通用戶(hù)可以查看電影點(diǎn)擊量排行榜,查看電影詳細(xì)信息包括演員、導(dǎo)演、上映時(shí)間等;管理員對(duì)電影可以進(jìn)行上架下架操作并可編輯電影的詳細(xì)信息。3、評(píng)論管理:普通用戶(hù)可以查看電影的評(píng)論、發(fā)布評(píng)論、收藏評(píng)論、刪除評(píng)論和查看自己評(píng)論的所有內(nèi)容;管理員可以看到所有評(píng)論,并可以對(duì)不良評(píng)論進(jìn)行刪除操作。4、收藏管理:普通用戶(hù)可以收藏電影和評(píng)論、查看所有內(nèi)容同時(shí)可以根據(jù)自己的喜好進(jìn)行刪除操作。5、公告管理:普通用戶(hù)可以在頁(yè)面上看到公告的內(nèi)容;管理員可以對(duì)公告進(jìn)行發(fā)布和刪除功能。2.4界面需求此系統(tǒng)分為用戶(hù)界面和管理員界面,其中用戶(hù)界面設(shè)計(jì)是四個(gè)部分構(gòu)成,第一部分是包含登錄,注冊(cè)和忘記密碼的菜單項(xiàng);第二部分是主體部分包含退出登錄、用戶(hù)中心、發(fā)布的公告、發(fā)布的電影和熱門(mén)電影排行的模塊;第三部分包括對(duì)發(fā)表的電影進(jìn)行收藏、評(píng)論和收藏其他人評(píng)論的菜單項(xiàng);第四部分是用戶(hù)信息的具體內(nèi)容:顯示用戶(hù)的名字、電話(huà)號(hào)碼,用戶(hù)可以修改昵稱(chēng)、電話(huà)、密碼,查看收藏的電影和評(píng)論并可以查看自己所發(fā)表的評(píng)論。本系統(tǒng)的管理員界面設(shè)計(jì)是有兩大部分組成,第一部分是管理員進(jìn)入系統(tǒng)的常規(guī)操作,第二部分是主體部分上面是管理員添加電影、管理用戶(hù)信息等模塊,下方是管理員對(duì)電影管理相關(guān)操作的模塊,其他是管理員對(duì)電影評(píng)論管理和公告發(fā)布管理的模塊。整個(gè)系統(tǒng)的交互界面設(shè)計(jì)的原則是讓用戶(hù)可以迅速找到想要看的電影,并進(jìn)行實(shí)時(shí)評(píng)論,網(wǎng)頁(yè)設(shè)計(jì)的色調(diào)和形式簡(jiǎn)約明了,方便上手。2.5非功能性需求易用性:用戶(hù)操作簡(jiǎn)單明了,容易上手不用翻閱手冊(cè)即可使用此系統(tǒng)??蓴U(kuò)展性:系統(tǒng)面對(duì)較多網(wǎng)絡(luò)響應(yīng)、任務(wù)處理、數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)和文件系統(tǒng)資源需求時(shí)可輕松應(yīng)對(duì)??删S護(hù)性:本系統(tǒng)采用模塊化和組件化的開(kāi)發(fā)方式,故系統(tǒng)發(fā)生故障后能夠快速排除故障并予以修復(fù)。可靠性:系統(tǒng)在一定時(shí)間和條件下,有穩(wěn)定的運(yùn)行能力,無(wú)錯(cuò)運(yùn)行要達(dá)到99.99%,能夠?qū)浖谐霈F(xiàn)的錯(cuò)誤進(jìn)行處理的能力,以及程序在崩了之后,多長(zhǎng)時(shí)間能夠進(jìn)行更改使其恢復(fù)。3概要設(shè)計(jì)3.1第零層設(shè)計(jì)描述此系統(tǒng)用Java語(yǔ)言編寫(xiě),支持跨平臺(tái)操作,系統(tǒng)運(yùn)行在windows下,所用硬件處理器采用i7-9700K,固態(tài)硬盤(pán)16G,CUP架構(gòu)是x86系統(tǒng)架構(gòu),服務(wù)端采用筆記本電腦,客戶(hù)端也是使用筆記本。服務(wù)端使用SpringCloud框架運(yùn)行,前端服務(wù)使用NodeJS,客戶(hù)端通過(guò)訪(fǎng)問(wèn)網(wǎng)址進(jìn)入系統(tǒng)。3.2設(shè)計(jì)思路此系統(tǒng)開(kāi)發(fā)使用面向?qū)ο蠓?,通過(guò)對(duì)用戶(hù)的需求進(jìn)行分析,確立解決問(wèn)題的核心。每次解決完一個(gè)問(wèn)題就可以形成一個(gè)可交付的小版本,通過(guò)快速發(fā)布測(cè)試構(gòu)建的方式,驗(yàn)證開(kāi)發(fā)完的新功能是否符合要求,最終實(shí)現(xiàn)系統(tǒng)完美運(yùn)行。在整個(gè)問(wèn)題解決過(guò)程中所用時(shí)間大概分為五個(gè)階段進(jìn)行,在第一個(gè)階段進(jìn)行調(diào)研、需求分析、功能需求和模塊數(shù)量的確定;第二個(gè)階段實(shí)現(xiàn)用戶(hù)的登錄和對(duì)自己基本信息進(jìn)行操作的模塊;在第三個(gè)階段進(jìn)行管理員的登錄和和對(duì)管理用戶(hù)和電影的基本操作模塊;第四個(gè)階段完成所有基本功能設(shè)計(jì),包括電影的詳細(xì)信息、用戶(hù)評(píng)論、收藏和刪除等模塊;在最后一個(gè)階段完善部分小的功能需求,美化前端頁(yè)面讓布局更加通俗易懂,完善數(shù)據(jù)庫(kù)的信息,最終完成系統(tǒng)的實(shí)現(xiàn)。大約所用時(shí)間五個(gè)月,此代碼不開(kāi)源??傮w系統(tǒng)后端使用技術(shù)框架Spring、SpringCloud和MyBatis,前端界面使用的是HTML、CSS、JavaScript、Ajax等;采用前后端分離技術(shù),使系統(tǒng)的可維護(hù)性大大提高。前期可以先專(zhuān)心開(kāi)發(fā)后端應(yīng)用,在后端完成后進(jìn)行前端頁(yè)面上設(shè)計(jì),進(jìn)而可以進(jìn)行測(cè)試連接交互。3.3第一層設(shè)計(jì)描述根據(jù)對(duì)電影點(diǎn)評(píng)系統(tǒng)的功能需求分析,此系統(tǒng)分為以下幾個(gè)模塊:注冊(cè)登錄模塊、影視排行模塊、電影管理模塊、評(píng)論模塊、公告模塊,如總體結(jié)構(gòu)圖3-1所示。3.3.1注冊(cè)登錄模塊目的:能夠讓用戶(hù)通過(guò)注冊(cè)獲取賬號(hào)密碼登錄。功能:用戶(hù)注冊(cè)登錄進(jìn)入用戶(hù)首頁(yè),管理員登錄進(jìn)入管理員首頁(yè),用戶(hù)找會(huì)密碼。接口1:名稱(chēng):用戶(hù)注冊(cè)URL:http://localhost:9998/#/register參數(shù):用戶(hù)實(shí)體類(lèi)返回值:JSON格式,用戶(hù)是否注冊(cè)成功接口2:名稱(chēng):用戶(hù)登錄URL:http://localhost:9998/#/login參數(shù):用戶(hù)實(shí)體類(lèi)返回值:JSON格式,用戶(hù)是否登錄成功,若登錄成功則返回用戶(hù)信息以及登錄驗(yàn)證的token接口3:名稱(chēng):管理員登錄URL:http://localhost:9998/#/loginadmin參數(shù):用戶(hù)實(shí)體類(lèi)返回值:JSON格式,管理員是否登錄成功,登錄成功則返回驗(yàn)證登錄token接口4:名稱(chēng):用戶(hù)找回密碼URL:http://localhost:9998/#/forget參數(shù):用戶(hù)的電話(huà)返回值:JSON格式,該用戶(hù)存不存在圖3-1總體結(jié)構(gòu)圖3.3.2影視排行榜模塊目的:能夠讓用戶(hù)準(zhǔn)確看到最斤最受歡迎的電影。功能:獲取點(diǎn)加量最高的電影。接口1:名稱(chēng):獲取電影點(diǎn)擊量URL:http://localhost:9998/#/usercenter參數(shù):無(wú)返回值:JSON格式,電影點(diǎn)擊量排名前十的電影信息list3.3.3電影管理模塊目的:管理員對(duì)電影信息的輸入,對(duì)電影進(jìn)行上下架工能,使得用戶(hù)能夠訪(fǎng)問(wèn)到所有電影,并能夠?qū)﹄娪斑M(jìn)行進(jìn)行收藏或刪除操作。功能:管理員對(duì)電影信息進(jìn)行輸入;管理員上下架電影;普通用戶(hù)查看電影詳情;普通用戶(hù)對(duì)電影信息進(jìn)行收藏;普通用戶(hù)對(duì)收藏的電影進(jìn)行刪除。接口1:名稱(chēng):管理員對(duì)電影信息進(jìn)行輸入U(xiǎn)RL:http://localhost:3233/#/addfilm參數(shù):JSON格式,電影的基本信息返回值:JSON格式,成功或失敗接口2:名稱(chēng):管理員上下架電影URL:http://localhost:3233/#/adminhome參數(shù):JSON格式,電影的唯一id(fid)返回值:JSON格式,成功或失敗接口3:名稱(chēng):普通用戶(hù)查看電影詳情URL:http://localhost:9998/#/detail參數(shù):JSON格式,電影的唯一id(fid)返回值:JSON格式,電影的全部數(shù)據(jù)接口4:名稱(chēng):普通用戶(hù)對(duì)電影信息進(jìn)行收藏URL:http://localhost:9998/#/detail參數(shù):JSON格式,電影的唯一id(fid)返回值:JSON格式,成功或失敗接口5:名稱(chēng):普通用戶(hù)對(duì)電影信息進(jìn)行收藏URL:http://localhost:9998/#/collection參數(shù):JSON格式,電影收藏信息的唯一id(cfid)返回值:JSON格式,成功或失敗3.3.4評(píng)論模塊目的:能夠讓用戶(hù)根據(jù)評(píng)論了解電影的受歡迎程度。功能:用戶(hù)對(duì)電影進(jìn)行評(píng)論;用戶(hù)對(duì)評(píng)論進(jìn)行收藏;用戶(hù)對(duì)收藏的評(píng)論刪除;用戶(hù)查看自己的所有評(píng)論;用戶(hù)刪除自己的評(píng)論。接口1:名稱(chēng):用戶(hù)對(duì)電影進(jìn)行評(píng)論URL:http://localhost:9998/#/detail參數(shù):JSON格式,評(píng)論的內(nèi)容以及評(píng)論電影的id返回值:JSON格式,成功或失敗及該電影所有評(píng)論的list接口2:名稱(chēng):用戶(hù)對(duì)評(píng)論進(jìn)行收藏URL:http://localhost:9998/#/detail參數(shù):JSON格式,評(píng)論的唯一id(cid)返回值:JSON格式,成功或失敗接口3:名稱(chēng):用戶(hù)對(duì)收藏的評(píng)論刪除URL:http://localhost:9998/#/collection參數(shù):JSON格式,收藏評(píng)論的id(ccid)返回值:JSON格式,成功或失敗接口4:名稱(chēng):用戶(hù)查看自己的所有評(píng)論URL:http://localhost:9998/#/collection參數(shù):無(wú)返回值:JSON格式,該用戶(hù)所有評(píng)論的list接口5:名稱(chēng):用戶(hù)刪除自己的評(píng)論URL:http://localhost:9998/#/collection參數(shù):JSON格式,評(píng)論的唯一id(cid)返回值:JSON格式,成功或失敗及該用戶(hù)所有未被刪除的評(píng)論的list3.3.5公告模塊目的:讓用戶(hù)了解到關(guān)于電影點(diǎn)評(píng)系統(tǒng)相關(guān)的最新消息。功能:管理員對(duì)公共進(jìn)行發(fā)布和刪除;用戶(hù)查看公告。接口1:名稱(chēng):管理員對(duì)公共進(jìn)行發(fā)布和刪除URL:http://localhost:3233/#/noticemanage參數(shù):JSON格式,公告的唯一id(nid)返回值:JSON格式,成功或失敗接口2:名稱(chēng):用戶(hù)查看公告URL:http://localhost:9998/#/usercenter參數(shù):無(wú)返回值:JSON格式,所有未被刪除的公告的list3.4數(shù)據(jù)庫(kù)3.4.1實(shí)體、屬性和關(guān)系此系統(tǒng)中所用到數(shù)據(jù)庫(kù)實(shí)體有用戶(hù)、電影信息、電影-演員信息、評(píng)論信息、公告信息、電影收藏評(píng)論信息、評(píng)論收藏信息和管理員信息,其中用戶(hù)-評(píng)論為多對(duì)多關(guān)系;用戶(hù)-收藏為多對(duì)多關(guān)系;電影-演員為多對(duì)多關(guān)系;管理員-公告為一對(duì)多關(guān)系;以下是實(shí)體的屬性。用戶(hù)實(shí)體及屬性關(guān)系如圖3-2所示。圖3-2用戶(hù)實(shí)體屬性圖電影信息實(shí)體及屬性關(guān)系如圖3-3所示。圖3-3電影信息實(shí)體屬性圖電影-演員信息實(shí)體及屬性如圖3-4所示。圖3-4電影-演員信息實(shí)體屬性圖評(píng)論表信息實(shí)體及屬性如圖3-5所示。圖3-5評(píng)論表實(shí)體屬性圖公告表信息實(shí)體及屬性如圖3-6所示。電影收藏信息實(shí)體及屬性如圖3-7所示。評(píng)論信息實(shí)體及屬性如圖3-8所示。管理員信息實(shí)體及屬性如圖3-9所示。圖3-6公告表實(shí)體屬性圖圖3-7電影收藏實(shí)體屬性圖圖3-8評(píng)論信息實(shí)體屬性圖圖3-9管理員實(shí)體屬性圖3.4.2實(shí)體關(guān)系圖根據(jù)所展示的實(shí)體以及介紹各個(gè)實(shí)體之間的關(guān)系,系統(tǒng)的完整E-R圖如圖3-10所示。圖3-10系統(tǒng)E-R圖4詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)表4-1屬性表數(shù)據(jù)名數(shù)據(jù)類(lèi)型數(shù)據(jù)描述aunameString管理員賬號(hào)apwdString管理員密碼unameString用戶(hù)名utelString用戶(hù)電話(huà)upwdString用戶(hù)密碼(1)publicResultDataregister(@RequestBodyUseruser)//通過(guò)此方法獲取客戶(hù)數(shù)據(jù),返回值為JSON格式;(2)userService.insertUser(user)//通過(guò)此方法將數(shù)據(jù)傳給業(yè)務(wù)邏輯層;(3)publicbooleaninsertUser(Useruser)//獲取控制層傳過(guò)來(lái)的數(shù)據(jù);(4)userMapper.insertUser(user)//將數(shù)據(jù)傳送至持久化層;Insert("insertointousers(uname,utel,upwd)values(#{uname},#{utel}, #{upwd})")intinsertUser(Useruser)//完成對(duì)數(shù)據(jù)的存儲(chǔ);用戶(hù)登錄:(1)publicResultDatalogin(@RequestBodyUseruser)//獲取客戶(hù)端傳來(lái)的賬號(hào)密碼;(2)userService.getUserByUtelAndUpwd(user.getUtel(),user.getUpwd())//通過(guò)本次調(diào)用獲取業(yè)務(wù)邏輯層數(shù)據(jù);(3)userMapper.getUserByUtelAndUpwd(utel,upwd)//從數(shù)據(jù)庫(kù)中拿到信息返回至控制層,與客戶(hù)端的數(shù)據(jù)做驗(yàn)證,判斷是否登錄成功;管理員登錄:(1)publicResultDatalogin(@RequestBodyAdminadmin)//獲取客戶(hù)端傳來(lái)的賬號(hào)密碼;(2)adminService.getAidByAnameAndAPwd(admin.getAuname(),admin.getApwd//通過(guò)本次調(diào)用業(yè)務(wù)邏輯層查詢(xún)數(shù)據(jù),返回信息到控制層做判斷;普通用戶(hù)注冊(cè):通過(guò)注解設(shè)置路徑,前端根據(jù)路徑發(fā)送請(qǐng)求,將注冊(cè)的信息傳到controller控制層,控制層定義接口將數(shù)據(jù)傳到業(yè)務(wù)邏輯層,通過(guò)調(diào)用業(yè)務(wù)邏輯層上的信息,調(diào)用持久化,將從數(shù)據(jù)中查到的信息進(jìn)行驗(yàn)證。如果已經(jīng)注冊(cè),注冊(cè)失敗則返回-1,成功則返回1,控制層將獲取到的信息傳送到前端,注冊(cè)關(guān)鍵代碼如圖4-1所示。圖4-1注冊(cè)關(guān)鍵代碼普通用戶(hù)登錄,通過(guò)userService.getUserByUtelAndUpwd()方法調(diào)用service層,業(yè)務(wù)邏輯層調(diào)用userMapper.getUserUtel(utel)從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù),如驗(yàn)證成功返回獲取的信息,失敗則返回null,最終返回給前段頁(yè)面,用戶(hù)登錄關(guān)鍵代碼如圖4-2所示。圖4-2用戶(hù)登錄關(guān)鍵代碼管理員登錄,與普通用戶(hù)登錄基本相同,調(diào)用業(yè)務(wù)邏輯層,從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)返回與前端傳過(guò)來(lái)的數(shù)據(jù)做驗(yàn)證,成功給前端頁(yè)面返回1,失敗則返回-1,管理員登錄關(guān)鍵代碼如圖4-3所示。圖4-3管理員登錄關(guān)鍵代碼4.2影視排行榜模塊詳細(xì)設(shè)計(jì)普通用戶(hù)進(jìn)入首頁(yè)可以看到電影排行榜的模塊,通過(guò)其他用戶(hù)對(duì)電影點(diǎn)擊量的統(tǒng)計(jì),根據(jù)點(diǎn)擊量由多到少進(jìn)行排序,讓用戶(hù)一目了然的知道哪一部影片最受歡迎。4.2.1數(shù)據(jù)描述當(dāng)用戶(hù)獲取電影點(diǎn)擊量排行榜時(shí),通過(guò)這些屬性獲取前端傳送的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的存儲(chǔ)和獲?。凰脤傩匀绫?-2所示。表4-2屬性表數(shù)據(jù)名數(shù)據(jù)類(lèi)型數(shù)據(jù)描述fnameString電影名fcompanyString電影出品公司fdirectorString電影導(dǎo)演ftimeTimestamp電影上映時(shí)間fcheckTimeInt電影點(diǎn)擊量furlString電影觀(guān)看地址fmsgString電影簡(jiǎn)介4.2.2函數(shù)描述獲取電影點(diǎn)擊量排行榜:(1)publicResultDatagetChecks()//此方法實(shí)現(xiàn)獲取到所用電影,根據(jù)屬性點(diǎn)擊量進(jìn)行排序,返回給客戶(hù)端;(2)filmService.getAllFilms()//調(diào)用數(shù)據(jù)庫(kù)拿到所有電影l(fā)ist;(3)filmMapper.getAllFilms()//從數(shù)據(jù)庫(kù)中獲取所有電影,返會(huì)list;4.2.3功能實(shí)現(xiàn)電影點(diǎn)擊量的實(shí)現(xiàn),通過(guò)filmService.getFilmVuFid()方法到service層,在調(diào)用flimMapper.updateFCheckTimeByFid(),使電影表中的點(diǎn)擊量加一,在獲取電影點(diǎn)擊量排行的同時(shí)通過(guò)service層中的publicFilmgetAllFilms()方法中從數(shù)據(jù)庫(kù)中獲取list返回給控制層,控制層排序之后返回給前端顯示,影點(diǎn)擊量關(guān)鍵代碼代碼如圖4-4顯示。4.2.4電影管理模塊詳細(xì)設(shè)計(jì)普通用戶(hù)可以對(duì)自己喜歡的電影進(jìn)行收藏操作、查看,并根據(jù)喜好可對(duì)其進(jìn)行刪除操作;管理員可以對(duì)電影進(jìn)行上架和下架操作,讓普通用戶(hù)能看到當(dāng)前上架的電影。4.3.1數(shù)據(jù)描述當(dāng)用戶(hù)進(jìn)行登錄或注冊(cè)時(shí),通過(guò)這些屬性獲取前端傳送的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的存儲(chǔ)和獲取;所用屬性如表4-3所示。圖4-4電影點(diǎn)擊量關(guān)鍵代碼表4-3屬性表數(shù)據(jù)名數(shù)據(jù)類(lèi)型數(shù)據(jù)描述fnameString電影名fcompanyString電影出品公司fdirectorString電影導(dǎo)演ftimeTimestamp電影上映時(shí)間fmsgString電影簡(jiǎn)介furlString電影觀(guān)看地址fcheckTimeint電影點(diǎn)擊量pfidint電影idpernameString演員名稱(chēng)pmianboolean是否為主演cfuidint收藏電影用戶(hù)idcftimeTimestamp收藏電影時(shí)間4.3.2函數(shù)描述管理員對(duì)電影進(jìn)行數(shù)據(jù)輸入:(1)publicResultDataaddFilm(@RequestBodyFilmfilm)//接受客戶(hù)端傳來(lái)的數(shù)據(jù);(2)filmService.insertFilm(film)//通過(guò)一下函數(shù)發(fā)送至業(yè)務(wù)邏輯層;(3)filmMapper.insertFilm(film)//將數(shù)據(jù)傳給數(shù)據(jù)庫(kù);(4)intinsertFilm(Filmfilm)//將數(shù)據(jù)存入數(shù)據(jù)庫(kù)中;普通用戶(hù)獲取電影的詳細(xì)信息:(1)publicResultDatagetFilm(@RequestBodyFilmfilm)//接收客戶(hù)端傳來(lái)的數(shù)據(jù);(2)filmService.getFilmByFid(film.getFid()//將獲取到到id作為參數(shù)傳到service層;(3)filmMapper.getFilmByFid(fid)//service調(diào)用函數(shù)到持久化層,將電影id作用條件;(4)FilmgetFilmByFid(intfid)//從數(shù)據(jù)庫(kù)中查出所用電影信息,返回實(shí)體對(duì)象;管理員獲取所有電影:(1)publicResultDatagetAllFilm()//接收客戶(hù)端發(fā)過(guò)來(lái)的請(qǐng)求;(2)filmService.getAllFilms()//通過(guò)此函數(shù)到業(yè)務(wù)邏輯層;(3)filmMapper.getAllFilms()//用此函數(shù)來(lái)從數(shù)據(jù)庫(kù)中拿到所有電影的list;(4)List<Film>getAllFilms()//查出數(shù)據(jù)返回list;普通用戶(hù)對(duì)電影收藏:(1)publicResultDatacollectionFilm(@RequestBodyCollection_fcollection_f)//獲取客戶(hù)端傳過(guò)來(lái)的數(shù)據(jù);(2)filmService.getFilmByFid(collection_f.getCffid())//通過(guò)此方到業(yè)務(wù)邏輯層;

(3)filmMapper.getFilmByFid(fid)//獲取電影id;(4)collectionService.insertCollection_F(collection_f)//將數(shù)據(jù)全部數(shù)據(jù)傳入持久化層;(5)intinsertComment(Commentcomment)//將數(shù)據(jù)存入數(shù)據(jù)庫(kù);4.3.3功能實(shí)現(xiàn)管理員對(duì)電影數(shù)據(jù)進(jìn)行輸入,數(shù)據(jù)拿到傳入業(yè)務(wù)邏輯層,將數(shù)據(jù)存入后成功返回1,失敗返回-1,電影信息輸入關(guān)鍵代碼如圖4-5所示。圖4-5上架電影關(guān)鍵代碼普通用戶(hù)獲取電影詳細(xì)信息,通過(guò)客戶(hù)端傳來(lái)的電影id,將數(shù)據(jù)傳送至業(yè)務(wù)邏輯層,再調(diào)用數(shù)據(jù)庫(kù),查詢(xún)返回所用電影的list,電影獲取詳細(xì)信息關(guān)鍵代碼如圖4-6所示。圖4-6電影獲取取詳細(xì)信息關(guān)鍵代碼管理員獲取所有電影,通過(guò)客戶(hù)端傳過(guò)來(lái)的id,調(diào)用函數(shù)到業(yè)務(wù)邏輯層,從數(shù)據(jù)庫(kù)中拿到數(shù)據(jù)放入list返回,電影獲取關(guān)鍵代碼如圖4-7所示。圖4-7電影獲取關(guān)鍵代碼用戶(hù)收藏電影功能實(shí)現(xiàn),前端根據(jù)路徑發(fā)送請(qǐng)求到控制層collectionFilm首先判斷數(shù)據(jù)是否存在,再通過(guò)filmService.getFilmByFid()查看電影id是否存在,通過(guò)TlUser.getThreadLocal().getUid(),獲取到當(dāng)前用戶(hù)的id,在將所有數(shù)據(jù)存入收藏電影表中,電影收藏詳細(xì)代碼如圖4-8所示。圖4-8電影收藏詳細(xì)代碼4.4評(píng)論模塊詳細(xì)設(shè)計(jì)普通用戶(hù)可以對(duì)電影進(jìn)行評(píng)論,并能看到所有評(píng)論的內(nèi)容,可以對(duì)其進(jìn)行收藏的功能,并且之后能夠查看所有收藏的評(píng)論和自己的所有評(píng)論,并可根據(jù)個(gè)人喜好對(duì)其進(jìn)行刪除操作;管理員可以顯示所有用戶(hù)的評(píng)論,可以對(duì)不良評(píng)論進(jìn)行刪除,普通用戶(hù)頁(yè)面也隨之刪除。4.4.1數(shù)據(jù)描述當(dāng)用戶(hù)進(jìn)行登錄或注冊(cè)時(shí),通過(guò)這些屬性獲取前端傳送的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的存儲(chǔ)和獲取。所用屬性如表4-4所示。4.4.2函數(shù)描述用戶(hù)對(duì)電影進(jìn)行評(píng)論:publicResultDatapushData(@RequestBodyCommentcomment)//前端將評(píng)論id傳入后端,返回成功或失??;commentService.insertComment(comment)//controller層將評(píng)論id傳給service層進(jìn)行數(shù)據(jù)處理;intinsertComment(Commentcomment)//將數(shù)據(jù)存入數(shù)據(jù)庫(kù);返回成功或失??;表4-4屬性表數(shù)據(jù)名數(shù)據(jù)類(lèi)型數(shù)據(jù)描述cuidint評(píng)論用戶(hù)idcfidint評(píng)論的電影idcmsgString評(píng)論內(nèi)容ccheckTimeint評(píng)論被收藏次數(shù)cstatusboolean評(píng)論狀態(tài)ccuidint收藏評(píng)論的用戶(hù)idcccidint收藏評(píng)論idcctimeTimestamp收藏評(píng)論時(shí)間cftimeTimestamp收藏電影時(shí)間用戶(hù)對(duì)評(píng)論進(jìn)行收藏(1)publicResultDatacollectionComment(@RequestBodyCollection_ccollection_c)//前段評(píng)論id傳給后端;返回成功或失??;(2)commentService.getCommentByCid(collection_c.getCccid())//對(duì)數(shù)據(jù)進(jìn)行處理;返回成功或失?。唬?)commentMapper.getCommentByCid(cccid)//將數(shù)據(jù)存入數(shù)據(jù)庫(kù);返回成功或失??;用戶(hù)對(duì)收藏的評(píng)論刪除(1)publicResultDatadeleteCcomment(@RequestBodyCollection_ccollection_c)//前段評(píng)論id傳給后端;若成功則返回該用戶(hù)未刪除的評(píng)論收藏的list;(2)publicbooleandeleteCollection_cByCcid(intccid)//處理數(shù)據(jù),返回是否成功;(3)intdeleteCollection_cByCcid(intccid)//將數(shù)據(jù)存入數(shù)據(jù)庫(kù)判斷是否入庫(kù)成功并返回;4.4.3功能實(shí)現(xiàn)用戶(hù)對(duì)電影進(jìn)行評(píng)論,首先在控制層前端傳來(lái)的評(píng)論具體內(nèi)容不能為空;再通過(guò)TlUser.getThreadLocal().getUid(),獲取到當(dāng)前用戶(hù)的id,再調(diào)用函數(shù)到持久化層,獲取當(dāng)前時(shí)間;最后調(diào)用數(shù)據(jù)層方法nsertComment(Commentcomment);將數(shù)據(jù)存入數(shù)據(jù)庫(kù);最后返回給前端是否成功,并返回該電影所有未被刪除的評(píng)論給前端進(jìn)行展示。用戶(hù)評(píng)論關(guān)鍵代碼如圖4-9所示。圖4-9用戶(hù)評(píng)論關(guān)鍵代碼用戶(hù)對(duì)評(píng)論進(jìn)行收藏,從前端傳來(lái)需要收藏評(píng)論的id并且判斷不能為空,再判斷該評(píng)論是否存在,若不存在直接返回;再通過(guò)函數(shù)獲取到當(dāng)前用戶(hù)的id;然后通過(guò)持久化層commentService.getCommentByCid(collection_c.getCccid()),將數(shù)據(jù)傳給數(shù)據(jù)層。通過(guò)調(diào)用該方法getCommentByCid(cccid)將數(shù)據(jù)存入數(shù)據(jù)庫(kù),最后返回給前端是否收藏成功。用戶(hù)評(píng)論收藏關(guān)鍵代碼如圖4-10所示。用戶(hù)對(duì)收藏的評(píng)論刪除,從前端傳來(lái)需要收藏的評(píng)論id并且判斷不能為空,再通過(guò)TlUser.getThreadLocal().getUid(),獲取到當(dāng)前用戶(hù)的id;然后通過(guò)持久化層deleteCollection_cByCcid(intccid)將數(shù)據(jù)傳給數(shù)據(jù)層通過(guò)調(diào)用方法將數(shù)據(jù)存入數(shù)據(jù)庫(kù),若成功則將該用戶(hù)沒(méi)有刪除的所有收藏發(fā)送給前端進(jìn)行展示。用戶(hù)刪除收藏評(píng)論關(guān)鍵代碼如圖4-11所示。用戶(hù)查看自己的所有評(píng)論,通過(guò)TlUser.getThreadLocal().getUid(),獲取到當(dāng)前用戶(hù)的id;然后通過(guò)持久化層commentService.getCommentsByCuid(uid,true)調(diào)用數(shù)據(jù)層commentMapper.getCommentByCuidAndCstatus(cuid,cstatus)獲取數(shù)據(jù)并返回給前端進(jìn)行展示。查看自己評(píng)論關(guān)鍵代碼如圖4-12所示。圖4-10用戶(hù)評(píng)論收藏關(guān)鍵代碼圖4-11用戶(hù)刪除評(píng)論收藏關(guān)鍵代碼4.5公告模塊詳細(xì)設(shè)計(jì)普通用戶(hù)登錄首頁(yè)可以看到管理員所發(fā)布的所有公告信息;管理員可以發(fā)布公告信息供普通用戶(hù)查看,也可以對(duì)公告進(jìn)行刪除操作。圖4-12查看自己評(píng)論關(guān)鍵代碼4.5.1數(shù)據(jù)描述當(dāng)用戶(hù)進(jìn)行登錄或注冊(cè)時(shí),通過(guò)這些屬性獲取前端傳送的數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的存儲(chǔ)和獲?。凰脤傩匀绫?-5所示。數(shù)據(jù)名數(shù)據(jù)類(lèi)型數(shù)據(jù)描述naidint管理員idntimeTimestam公告時(shí)間nmsgString公告內(nèi)容npushboolean公告是否上傳表4-5屬性表4.5.2函數(shù)描述管理員對(duì)公告進(jìn)行發(fā)布:(1)publicResultDatapushNotice(@RequestBodyNoticenotice)//從客戶(hù)端獲取公告內(nèi)容;(2)noticeService.insertNotice(notice)//將實(shí)體類(lèi)信息傳入業(yè)務(wù)邏輯層;(3)noticeMapper.insertNotice(notice)//業(yè)務(wù)邏輯層將數(shù)據(jù)存入數(shù)據(jù)庫(kù)中;用戶(hù)獲取公告信息:publicResultDatagetAllNotices()//此函數(shù)接收前端請(qǐng)求,調(diào)用下面函數(shù);(2)noticeService.getNoticeByNpush(true)//將請(qǐng)求發(fā)送至業(yè)務(wù)邏輯層;(3)noticeMapper.getAllNoticesByNpush(npush)//此函數(shù)調(diào)用持久化層獲取數(shù)據(jù)返回給控制層;4.5.3功能實(shí)現(xiàn)管理員發(fā)布公告,在控制層調(diào)用noticeService.inisertNotice()到持久化層,在調(diào)用noticeMapper.getAllNoticesByNpush(npush),將公告存入數(shù)據(jù)庫(kù)中,發(fā)布公告關(guān)鍵代碼如圖4-13所示。圖4-13發(fā)布公告關(guān)鍵代碼用戶(hù)獲取公告信息,接收到客戶(hù)端請(qǐng)求,直接通過(guò)JSON格式返回,里面包括調(diào)用service層從數(shù)據(jù)中獲取的數(shù)據(jù),獲取公告關(guān)鍵代碼如圖4-14所示。圖4-14獲取公告關(guān)鍵代碼4.8數(shù)據(jù)庫(kù)的實(shí)現(xiàn)根據(jù)第三章對(duì)數(shù)據(jù)庫(kù)的描述,對(duì)數(shù)據(jù)庫(kù)表的詳細(xì)設(shè)計(jì)如下所示:用戶(hù)詳細(xì)信息,用戶(hù)信息如表4-6所示。4-6用戶(hù)信息表字段名字段類(lèi)型字段說(shuō)明uidint用戶(hù)的唯一idunamevarchar用戶(hù)的昵稱(chēng)utelvarchar用戶(hù)的電話(huà)upasswordvarchar用戶(hù)的密碼管理員詳細(xì)信息,管理員信息如表4-7所示。4-7管理員信息表字段名字段類(lèi)型字段說(shuō)明aidint自增idaunamevarchar管理員用戶(hù)名apwdvarchar管理員密碼電影-演員詳細(xì)信息,電影-演員信息如表4-8所示。 4-8電影-演員信息表字段名字段類(lèi)型字段說(shuō)明pidint關(guān)系idpfidint電影idpernamevarchar演員名稱(chēng)pmianbool是否為主演電影詳細(xì)信息,電影信息如表4-9所示。字段名字段類(lèi)型字段說(shuō)明fnamevarchar電影名fcompanyvarchar電影出品公司fdirectorvarchar電影導(dǎo)演ftimetimestamp電影上映時(shí)間fmsgvarchar電影簡(jiǎn)介fcheckTimeint電影點(diǎn)擊量4-9電影信息表公告詳細(xì)信息,公告信息如表4-10所示。4-10公告信息表字段名字段類(lèi)型字段說(shuō)明nidint自增idnaidint管理員idntimetimestamp公告時(shí)間nmsgvarchar公告內(nèi)容npushbool公告是否上傳評(píng)論詳細(xì)信息,評(píng)論信息如表圖4-11所示。4-11評(píng)論信息表字段名字段類(lèi)型字段說(shuō)明cidint自增idcuidint評(píng)論用戶(hù)idcfidint評(píng)論的電影idctimetimestamp評(píng)論的時(shí)間cmsgvarchar評(píng)論內(nèi)容ccheckTimeint評(píng)論被收藏次數(shù)cstatusbool評(píng)論狀態(tài)收藏詳細(xì)信息,收藏信息如表4-12所示。4-12收藏信息表字段名字段類(lèi)型字段說(shuō)明cfid/ccidint自增idcfuid/ccuidint用戶(hù)idcffid/cccidint電影id/評(píng)論idcftime/cctimetimestamp收藏時(shí)間5軟件測(cè)試5.1測(cè)試環(huán)境windows下運(yùn)行數(shù)據(jù)庫(kù):MySQL服務(wù)器:Apache-Tomcat瀏覽器:Edge、Chrome數(shù)據(jù)庫(kù)管理工具:MySQL5.2功能測(cè)試進(jìn)入系統(tǒng)會(huì)后,首先進(jìn)行普通用戶(hù)的注冊(cè),根據(jù)賬號(hào)密碼可以登錄到首頁(yè),再進(jìn)行管理員登錄,可以進(jìn)入管理員首頁(yè)。其次管理員對(duì)公告進(jìn)行發(fā)布和刪除工作,用戶(hù)可以看到首頁(yè)發(fā)布的公告,測(cè)試無(wú)誤;對(duì)管理員的添加,添加后能夠成功登錄;對(duì)電影進(jìn)行上架和下架,普通用戶(hù)界面會(huì)出現(xiàn)相關(guān)電影數(shù)據(jù),增刪數(shù)據(jù)后能夠準(zhǔn)確顯示;普通用戶(hù)能夠?qū)﹄娪斑M(jìn)行準(zhǔn)確的查看;管理員對(duì)用戶(hù)修改密碼,用戶(hù)能夠根據(jù)新密碼重新進(jìn)行登錄,測(cè)試無(wú)誤;根據(jù)管理員對(duì)基礎(chǔ)數(shù)據(jù)的輸入,用戶(hù)可以準(zhǔn)確顯示所有電影名稱(chēng),并能無(wú)誤顯示電影點(diǎn)擊量排行榜。進(jìn)入用戶(hù)中心,可以查看用戶(hù)的信息并可以對(duì)其修改操作;可以對(duì)自己收藏的電影進(jìn)行查看并刪除,可以查看和刪除自己的評(píng)論,測(cè)試無(wú)誤。用戶(hù)忘記密碼對(duì)其找回密碼能夠完成登錄,測(cè)試無(wú)誤。詳細(xì)測(cè)試如測(cè)試數(shù)據(jù)圖5-1、測(cè)試數(shù)據(jù)圖5-2所示。圖5-1測(cè)試數(shù)據(jù)圖5-2測(cè)試數(shù)據(jù)6軟件使用說(shuō)明此系統(tǒng)運(yùn)行在windows操作系統(tǒng)上,運(yùn)行時(shí)需要運(yùn)行程序主函數(shù)進(jìn)行啟動(dòng),用戶(hù)根據(jù)ip地址找到系統(tǒng)頁(yè)面,用戶(hù)和管理員進(jìn)行注冊(cè)登錄,實(shí)現(xiàn)自己所要的需求。管理員可以進(jìn)行登錄注冊(cè),進(jìn)入到主頁(yè)面對(duì)電影進(jìn)行上下架,以及對(duì)評(píng)論進(jìn)行刪除操作,并可以進(jìn)行添加管理員和電影演員的操作,當(dāng)用戶(hù)忘記密碼時(shí)可以隨機(jī)生成一個(gè)新密碼,可以對(duì)公告進(jìn)行發(fā)布和刪除操作。普通用戶(hù)方面,用戶(hù)可以進(jìn)行注冊(cè)登錄操作,進(jìn)入首頁(yè),有公告欄顯示公告,顯示所有電影的名稱(chēng)以及電影點(diǎn)擊量的排行榜;進(jìn)入用戶(hù)中心可以顯示用戶(hù)所有的信息,并可對(duì)用戶(hù)信息進(jìn)行修改,可以查看自己的評(píng)論并對(duì)其進(jìn)行刪除操作,查看自己所收藏的電影并對(duì)其進(jìn)行刪除操作,可以查看收藏的評(píng)論并對(duì)其進(jìn)行刪除操作。其功能使用方法大致分為對(duì)電影的相關(guān)操作;對(duì)評(píng)論的相關(guān)操作;對(duì)公告的相關(guān)操作;管理員操作;用戶(hù)操作以及忘記密碼時(shí)的操作。忘記密碼操作時(shí)系統(tǒng)是由本人所完成,未經(jīng)允許不得盜用。6.2普通用戶(hù)登錄使用方法普通用戶(hù)的相關(guān)操作,可以進(jìn)行注冊(cè)登錄的操作,登錄界面如圖6-1所示,當(dāng)忘記密碼時(shí)候可以對(duì)其找回密碼,找回密碼界面如圖6-2所示,登錄后進(jìn)入首頁(yè)可以完成自己想要實(shí)現(xiàn)的事情。圖6-1登錄界面圖6-2找回密碼界面6.3電影功能的使用方法對(duì)電影的一些

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論