




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGEI基于SpringCloud微服務框架的電影點評系統設計目錄TOC\o"1-4"\u1引言 11.1目的 11.2范圍 11.3背景 11.4術語 22需求分析 22.1業務建模 22.2用例建模 42.3功能需求 52.4界面需求 52.5非功能性需求 63概要設計 63.1第零層設計描述 53.2設計思路 53.3第一層設計描述 63.3.1注冊登錄管理描述 73.3.2電影排行榜管理描述 73.3.3電影管理描述 73.3.4評論管理描述 83.3.5公告管理描述 83.4數據庫 103.5.1實體、屬性和關系 103.5.2實體關系圖 114詳細設計及實現 124.1注冊登錄模塊 124.1.1數據描述 124.1.2函數描述 124.1.3功能實現 134.2電影排行榜模塊 154.3電影模塊 154.4評論模塊 184.5公告模塊 204.8數據庫的實現 244.9錯誤處理 245軟件測試 255.1測試環境 255.2功能測試 256軟件使用說明 256.1軟件安裝與配置 256.2電影功能的使用方法 266.3評論更改的使用方法 266.4公告操作的使用方法 266.5管理員操作的使用方法 266.6普通用戶登錄的使用方法 266.7忘記密碼的使用方法 27參考文獻 281引言電影點評系統是切合生活實際的一個項目,隨著人們物質水平不斷的改善,人們對生活品質的追求越來越多種多樣,很多人選擇多種消遣方式。其中,電影院看電影就是很重要的消遣方式。看電影的人數大量增多,電影質量也是參差不齊,為此,影視評論網站可以讓用戶在觀看影片前了解影片的受寵情況,方便用戶更加準確的選擇觀看的影片。本次課題設計主要圍繞這一需求展開,構建較為合理的電影點評系統,為觀眾選擇評論電影通過服務。對影視排行模塊,電影管理信息,評論管理,影片管理,統計管理等功能做實現,這些模塊基本滿足用戶的根本需求,我們在此根據所學知識,結合實際中需要的業務,了解其他類似系統的優缺點,避開不足,分析用戶的需求,完成電影點評系統的項目,在此基礎上,讓其運行速度更快,統計更加準確。1.2范圍電影點評系統是通過網站上全民性參與,多角度分析,集合盡可能多的電影評論為廣大用戶進行電影篩選所用。大家通過更加客觀的影評擇選出自己喜歡的電影,降低了篩選影片的時間,提升了擇影效率。此系統通過NodeJS、HTML、CSS及JavaScript的綜合運用實現界面友好。運用SpringCloud微服務框架為系統提供了一種簡單且易于接受的編程模型,通過MyBatis框架,避免了幾乎所有的JDBC代碼和手動設置參數以及獲取結果集,使開發者只需要關注sql語句本身。通過這些技術的應用系統最終能夠使用戶能夠準確評判出電影的受歡迎程度,對電影以及電影的評論進行收藏和刪除操作,能夠修改用戶自己的信息,查看公告;管理員則可以發布電影相關信息包括演員,發布公告,添加管理員,為用戶隨機生成密碼的功能。1.3背景電影點評系統的設計與實現是為用戶更好的選擇觀影而設計的,電影從剛開始的簡單幾部影片到現在的百萬部影片,用戶對其影片的質量要求越來越高。因此本課題對其需求和現實情況進行分析,根據前人所設計系統電影點評系統的缺陷如:只能一些專業人士在網站上發布評價,觀眾只能登錄網頁看電影和評論,而不能暢所欲言自己的觀影感受更無法收藏自己喜歡的電影。現在伴隨著互聯網時代大眾的消費升級,之前的很多問題如電影信息不完善、影評只能專業人士發表完成、發表客觀性和實時性不夠、評價方式單一、觀影人無法收藏和發表自己看法等。這些問題現在都是迫切需要解決的。隨著電影評分社區呈現出民主化、高時效、全民化的趨勢,對于之前所出現如對電影信息的顯示不全、無法對電影的收藏和評論以及個人信息無法維護的問題在此系統上幾乎都可以實現。本系統采用SpringCloud作為框架,MyBatis承接數據,用JavaScript寫界面,給用戶更好的交互效果。隨著信息技術水平的發展和觀眾對影評方式要求的提高,將來會實現界面更優、速度更快和統計更準確的影視點評系統。1.4術語本課題所涉及的專業術語比較多,在本論文中反復使用,為了便于閱讀,特給出術語表如表1-1所示。表1-1術語表術語解釋NodeJSNodeJs是一個基于ChromeV8引擎的JavaScript運行環境,使用了一個事件驅動、非阻塞式I/O模型,讓JavaScript運行在服務端的開發平臺,它讓JavaScript成為與PHP、Python、Perl、Ruby等服務端語言平起平坐的腳本語言。
MyBatisMyBatis是一款優秀的持久層框架,它支持自定義SQL、存儲過程以及高級映射。MyBatis免除了幾乎所有的JDBC代碼以及設置參數和獲取結果集的工作。MyBatis可以通過簡單的XML或注解來配置和映射原始類型、接口和JavaPOJO(PlainOldJavaObjects,普通老式Java對象)為數據庫中的記錄。SpringCloudSpringCloud是分布式系統模式,提供了一種簡單且易于接受的編程模型,幫助開發人員構建有彈性的、可靠的、協調的應用程序。2需求分析2.1業務建模2.1.1數據流圖此電影點評系統的數據流圖如圖2-1所示。圖2-1數據流圖2.1.2對象本節主要介紹系統涉及到的具體對象的主要屬性:1.User對象:uid為用戶的全局唯一索引,在用戶收藏、評論、存入數據庫關系表中時都是通過uid來進行存儲的,這樣保證數據不會重復;uname是用戶的昵稱,系統會自動幫用戶設置一個隨機的昵稱,若用戶之后想要修改用戶昵稱,則可以在用戶中心修改自己的昵稱;utel是用戶的電話,此系統用戶登錄注冊是通過用戶電話登錄的,同時utel做為本系統第二個唯一索引,一個電話只能注冊一個用戶信息。User對象屬性如表2-1所示:表2-1user對象屬性表屬性名屬性類型屬性介紹uidint用戶自增的唯一idunameString用戶昵稱續表2-1user對象屬性表屬性名屬性類型屬性介紹utelString用戶電話Film對象:fid為電影的全局唯一索引,在用戶收藏、評論該電影時,存入數據庫關系表中都是通過fid來進行存儲的,這樣保證數據不會重復;fchecktime為該電影的點擊量,當用戶點入該電影的詳細界面,則這個數字就會+1,為在此系統主頁做一個電影點擊量的排行榜而使用。Film對象屬性如表2-2所示:表2-2Film對象屬性表屬性名屬性類型屬性介紹fidint電影的唯一idfnameString電影名fcompanyString電影出品公司fdirectorString電影的導演ftimeTimestamp電影上映時間fmsgString電影簡介furlString電影觀看地址fcheckTimeint電影點擊量Performer對象:pid在此表中只是做為一個主鍵,沒有其他的作用;pfid與films表相關聯,從而得知這個演員演的哪一部電影;pername展示演員的姓名;pmain表示該演員是否為主演。Performer對象屬性如表2-3所示:表2-3Performer對象屬性表屬性名屬性類型屬性介紹pidint關系idpfidint電影idpernameString演員名稱pmianboolean演員是否為主演Comment對象:cid為評論的唯一id,收藏評論等操作通過存儲cid來存儲信息;cuid和cfid為最基本的用戶評論電影id,不可缺少;ctime為評論時間,cmsg為具體用戶評論的內容;cchecktime為評論被收藏的次數,次數越多,在電影詳情界面評論越向上;cstatus為電影的狀態,用戶發布評論時默認為true及其他用戶可見,在用戶刪除評論時改為false及其他用戶不可見,但是互聯網是有記憶的,為了防止某些用戶發布一些不當評論,會在數據庫有留存該評論。Comment對象屬性如表2-4所示:表2-4Comment對象屬性表屬性名屬性類型屬性介紹cidint自增idcuidint評論用戶idcfidint評論的電影idctimeTimestamp評論的時間cmsgString評論內容ccheckTimeint評論被收藏次數cstatusboolean評論狀態Notice對象:nid為評論的唯一id,管理員通過此id來對公告進行操作;naid為發布管理員的id;ntime為公告的發布時間;nmsg為公告的具體內容;npush為公告是否展示,及用戶可不可以在系統主頁看到此公告。Notice對象屬性如表2-5所示:表2-5Notice對象屬性表屬性名屬性類型屬性介紹nidint自增idnaidint管理員idntimeTimestamp公告時間nmsgString公告內容npushboolean公告是否上傳Collection_f/c對象:cfid/ccid為評論表的自增id,對評論的操作都要通過此id進行操作;cfuid/ccuid為收藏的用戶的id;cffid、cccid為收藏的電影或者評論的id;cftime/cctime為收藏的時間。Collection_f/c對象屬性如表2-6所示:表2-6Collection_f/c對象屬性表屬性名屬性類型屬性介紹cfid/ccidint自增idcfuid/ccuidint用戶idcffid/cccidint電影id/評論idcftime/cctimeTimestamp收藏時間Admin對象:aid為管理員的全局自增id,管理員的操作都要通過此id進行操作auname和apwd分別為管理員的用戶名和管理員的密碼,管理員通過用戶名及密碼進入管理員系統,對系統的元數據進行操作,如電影、評論、用戶的增刪改查;還可以幫用戶重新設置密碼。Admin對象屬性如表2-7所示:表2-7Admin對象屬性表屬性名屬性類型屬性介紹aidint自增idaunameString管理員用戶名apwdString管理員密碼2.2用例建模電影點評系統的參與者有兩個角色分別是普通用戶和管理員,普通用戶與用例之間的關系如圖2-2所示,管理員與用例之間的關系如圖2-3所示。2.3功能需求分析此系統的功能需求如下:1、用戶管理:普通用戶通過注冊獲得賬號,接下來可以登錄,進入頁面可以修改個人信息,并可以找回密碼;管理員可以添加管理員,當用戶忘記密碼后可以為其重新隨機生成一個密碼。2、電影管理:普通用戶可以查看電影點擊量排行榜,查看電影詳細信息包括演員、導演、上映時間等;管理員對電影可以進行上架下架操作并可編輯電影的詳細信息。3、評論管理:普通用戶可以查看電影的評論、發布評論、收藏評論、刪除評論和查看自己評論的所有內容;管理員可以看到所有評論,并可以對不良評論進行刪除操作。4、收藏管理:普通用戶可以收藏電影和評論、查看所有內容同時可以根據自己的喜好進行刪除操作。5、公告管理:普通用戶可以在頁面上看到公告的內容;管理員可以對公告進行發布和刪除功能。圖2-2普通用戶和用例之間的關系圖2-3管理員與用例之間的關系2.3功能需求分析此系統的功能需求如下:1、用戶管理:普通用戶通過注冊獲得賬號,接下來可以登錄,進入頁面可以修改個人信息,并可以找回密碼;管理員可以添加管理員,當用戶忘記密碼后可以為其重新隨機生成一個密碼。2、電影管理:普通用戶可以查看電影點擊量排行榜,查看電影詳細信息包括演員、導演、上映時間等;管理員對電影可以進行上架下架操作并可編輯電影的詳細信息。3、評論管理:普通用戶可以查看電影的評論、發布評論、收藏評論、刪除評論和查看自己評論的所有內容;管理員可以看到所有評論,并可以對不良評論進行刪除操作。4、收藏管理:普通用戶可以收藏電影和評論、查看所有內容同時可以根據自己的喜好進行刪除操作。5、公告管理:普通用戶可以在頁面上看到公告的內容;管理員可以對公告進行發布和刪除功能。2.4界面需求此系統分為用戶界面和管理員界面,其中用戶界面設計是四個部分構成,第一部分是包含登錄,注冊和忘記密碼的菜單項;第二部分是主體部分包含退出登錄、用戶中心、發布的公告、發布的電影和熱門電影排行的模塊;第三部分包括對發表的電影進行收藏、評論和收藏其他人評論的菜單項;第四部分是用戶信息的具體內容:顯示用戶的名字、電話號碼,用戶可以修改昵稱、電話、密碼,查看收藏的電影和評論并可以查看自己所發表的評論。本系統的管理員界面設計是有兩大部分組成,第一部分是管理員進入系統的常規操作,第二部分是主體部分上面是管理員添加電影、管理用戶信息等模塊,下方是管理員對電影管理相關操作的模塊,其他是管理員對電影評論管理和公告發布管理的模塊。整個系統的交互界面設計的原則是讓用戶可以迅速找到想要看的電影,并進行實時評論,網頁設計的色調和形式簡約明了,方便上手。2.5非功能性需求易用性:用戶操作簡單明了,容易上手不用翻閱手冊即可使用此系統。可擴展性:系統面對較多網絡響應、任務處理、數據庫訪問和文件系統資源需求時可輕松應對。可維護性:本系統采用模塊化和組件化的開發方式,故系統發生故障后能夠快速排除故障并予以修復。可靠性:系統在一定時間和條件下,有穩定的運行能力,無錯運行要達到99.99%,能夠對軟件中出現的錯誤進行處理的能力,以及程序在崩了之后,多長時間能夠進行更改使其恢復。3概要設計3.1第零層設計描述此系統用Java語言編寫,支持跨平臺操作,系統運行在windows下,所用硬件處理器采用i7-9700K,固態硬盤16G,CUP架構是x86系統架構,服務端采用筆記本電腦,客戶端也是使用筆記本。服務端使用SpringCloud框架運行,前端服務使用NodeJS,客戶端通過訪問網址進入系統。3.2設計思路此系統開發使用面向對象法,通過對用戶的需求進行分析,確立解決問題的核心。每次解決完一個問題就可以形成一個可交付的小版本,通過快速發布測試構建的方式,驗證開發完的新功能是否符合要求,最終實現系統完美運行。在整個問題解決過程中所用時間大概分為五個階段進行,在第一個階段進行調研、需求分析、功能需求和模塊數量的確定;第二個階段實現用戶的登錄和對自己基本信息進行操作的模塊;在第三個階段進行管理員的登錄和和對管理用戶和電影的基本操作模塊;第四個階段完成所有基本功能設計,包括電影的詳細信息、用戶評論、收藏和刪除等模塊;在最后一個階段完善部分小的功能需求,美化前端頁面讓布局更加通俗易懂,完善數據庫的信息,最終完成系統的實現。大約所用時間五個月,此代碼不開源。總體系統后端使用技術框架Spring、SpringCloud和MyBatis,前端界面使用的是HTML、CSS、JavaScript、Ajax等;采用前后端分離技術,使系統的可維護性大大提高。前期可以先專心開發后端應用,在后端完成后進行前端頁面上設計,進而可以進行測試連接交互。3.3第一層設計描述根據對電影點評系統的功能需求分析,此系統分為以下幾個模塊:注冊登錄模塊、影視排行模塊、電影管理模塊、評論模塊、公告模塊,如總體結構圖3-1所示。3.3.1注冊登錄模塊目的:能夠讓用戶通過注冊獲取賬號密碼登錄。功能:用戶注冊登錄進入用戶首頁,管理員登錄進入管理員首頁,用戶找會密碼。接口1:名稱:用戶注冊URL:http://localhost:9998/#/register參數:用戶實體類返回值:JSON格式,用戶是否注冊成功接口2:名稱:用戶登錄URL:http://localhost:9998/#/login參數:用戶實體類返回值:JSON格式,用戶是否登錄成功,若登錄成功則返回用戶信息以及登錄驗證的token接口3:名稱:管理員登錄URL:http://localhost:9998/#/loginadmin參數:用戶實體類返回值:JSON格式,管理員是否登錄成功,登錄成功則返回驗證登錄token接口4:名稱:用戶找回密碼URL:http://localhost:9998/#/forget參數:用戶的電話返回值:JSON格式,該用戶存不存在圖3-1總體結構圖3.3.2影視排行榜模塊目的:能夠讓用戶準確看到最斤最受歡迎的電影。功能:獲取點加量最高的電影。接口1:名稱:獲取電影點擊量URL:http://localhost:9998/#/usercenter參數:無返回值:JSON格式,電影點擊量排名前十的電影信息list3.3.3電影管理模塊目的:管理員對電影信息的輸入,對電影進行上下架工能,使得用戶能夠訪問到所有電影,并能夠對電影進行進行收藏或刪除操作。功能:管理員對電影信息進行輸入;管理員上下架電影;普通用戶查看電影詳情;普通用戶對電影信息進行收藏;普通用戶對收藏的電影進行刪除。接口1:名稱:管理員對電影信息進行輸入URL:http://localhost:3233/#/addfilm參數:JSON格式,電影的基本信息返回值:JSON格式,成功或失敗接口2:名稱:管理員上下架電影URL:http://localhost:3233/#/adminhome參數:JSON格式,電影的唯一id(fid)返回值:JSON格式,成功或失敗接口3:名稱:普通用戶查看電影詳情URL:http://localhost:9998/#/detail參數:JSON格式,電影的唯一id(fid)返回值:JSON格式,電影的全部數據接口4:名稱:普通用戶對電影信息進行收藏URL:http://localhost:9998/#/detail參數:JSON格式,電影的唯一id(fid)返回值:JSON格式,成功或失敗接口5:名稱:普通用戶對電影信息進行收藏URL:http://localhost:9998/#/collection參數:JSON格式,電影收藏信息的唯一id(cfid)返回值:JSON格式,成功或失敗3.3.4評論模塊目的:能夠讓用戶根據評論了解電影的受歡迎程度。功能:用戶對電影進行評論;用戶對評論進行收藏;用戶對收藏的評論刪除;用戶查看自己的所有評論;用戶刪除自己的評論。接口1:名稱:用戶對電影進行評論URL:http://localhost:9998/#/detail參數:JSON格式,評論的內容以及評論電影的id返回值:JSON格式,成功或失敗及該電影所有評論的list接口2:名稱:用戶對評論進行收藏URL:http://localhost:9998/#/detail參數:JSON格式,評論的唯一id(cid)返回值:JSON格式,成功或失敗接口3:名稱:用戶對收藏的評論刪除URL:http://localhost:9998/#/collection參數:JSON格式,收藏評論的id(ccid)返回值:JSON格式,成功或失敗接口4:名稱:用戶查看自己的所有評論URL:http://localhost:9998/#/collection參數:無返回值:JSON格式,該用戶所有評論的list接口5:名稱:用戶刪除自己的評論URL:http://localhost:9998/#/collection參數:JSON格式,評論的唯一id(cid)返回值:JSON格式,成功或失敗及該用戶所有未被刪除的評論的list3.3.5公告模塊目的:讓用戶了解到關于電影點評系統相關的最新消息。功能:管理員對公共進行發布和刪除;用戶查看公告。接口1:名稱:管理員對公共進行發布和刪除URL:http://localhost:3233/#/noticemanage參數:JSON格式,公告的唯一id(nid)返回值:JSON格式,成功或失敗接口2:名稱:用戶查看公告URL:http://localhost:9998/#/usercenter參數:無返回值:JSON格式,所有未被刪除的公告的list3.4數據庫3.4.1實體、屬性和關系此系統中所用到數據庫實體有用戶、電影信息、電影-演員信息、評論信息、公告信息、電影收藏評論信息、評論收藏信息和管理員信息,其中用戶-評論為多對多關系;用戶-收藏為多對多關系;電影-演員為多對多關系;管理員-公告為一對多關系;以下是實體的屬性。用戶實體及屬性關系如圖3-2所示。圖3-2用戶實體屬性圖電影信息實體及屬性關系如圖3-3所示。圖3-3電影信息實體屬性圖電影-演員信息實體及屬性如圖3-4所示。圖3-4電影-演員信息實體屬性圖評論表信息實體及屬性如圖3-5所示。圖3-5評論表實體屬性圖公告表信息實體及屬性如圖3-6所示。電影收藏信息實體及屬性如圖3-7所示。評論信息實體及屬性如圖3-8所示。管理員信息實體及屬性如圖3-9所示。圖3-6公告表實體屬性圖圖3-7電影收藏實體屬性圖圖3-8評論信息實體屬性圖圖3-9管理員實體屬性圖3.4.2實體關系圖根據所展示的實體以及介紹各個實體之間的關系,系統的完整E-R圖如圖3-10所示。圖3-10系統E-R圖4詳細設計及實現表4-1屬性表數據名數據類型數據描述aunameString管理員賬號apwdString管理員密碼unameString用戶名utelString用戶電話upwdString用戶密碼(1)publicResultDataregister(@RequestBodyUseruser)//通過此方法獲取客戶數據,返回值為JSON格式;(2)userService.insertUser(user)//通過此方法將數據傳給業務邏輯層;(3)publicbooleaninsertUser(Useruser)//獲取控制層傳過來的數據;(4)userMapper.insertUser(user)//將數據傳送至持久化層;Insert("insertointousers(uname,utel,upwd)values(#{uname},#{utel}, #{upwd})")intinsertUser(Useruser)//完成對數據的存儲;用戶登錄:(1)publicResultDatalogin(@RequestBodyUseruser)//獲取客戶端傳來的賬號密碼;(2)userService.getUserByUtelAndUpwd(user.getUtel(),user.getUpwd())//通過本次調用獲取業務邏輯層數據;(3)userMapper.getUserByUtelAndUpwd(utel,upwd)//從數據庫中拿到信息返回至控制層,與客戶端的數據做驗證,判斷是否登錄成功;管理員登錄:(1)publicResultDatalogin(@RequestBodyAdminadmin)//獲取客戶端傳來的賬號密碼;(2)adminService.getAidByAnameAndAPwd(admin.getAuname(),admin.getApwd//通過本次調用業務邏輯層查詢數據,返回信息到控制層做判斷;普通用戶注冊:通過注解設置路徑,前端根據路徑發送請求,將注冊的信息傳到controller控制層,控制層定義接口將數據傳到業務邏輯層,通過調用業務邏輯層上的信息,調用持久化,將從數據中查到的信息進行驗證。如果已經注冊,注冊失敗則返回-1,成功則返回1,控制層將獲取到的信息傳送到前端,注冊關鍵代碼如圖4-1所示。圖4-1注冊關鍵代碼普通用戶登錄,通過userService.getUserByUtelAndUpwd()方法調用service層,業務邏輯層調用userMapper.getUserUtel(utel)從數據庫中獲取數據,如驗證成功返回獲取的信息,失敗則返回null,最終返回給前段頁面,用戶登錄關鍵代碼如圖4-2所示。圖4-2用戶登錄關鍵代碼管理員登錄,與普通用戶登錄基本相同,調用業務邏輯層,從數據庫中獲取數據返回與前端傳過來的數據做驗證,成功給前端頁面返回1,失敗則返回-1,管理員登錄關鍵代碼如圖4-3所示。圖4-3管理員登錄關鍵代碼4.2影視排行榜模塊詳細設計普通用戶進入首頁可以看到電影排行榜的模塊,通過其他用戶對電影點擊量的統計,根據點擊量由多到少進行排序,讓用戶一目了然的知道哪一部影片最受歡迎。4.2.1數據描述當用戶獲取電影點擊量排行榜時,通過這些屬性獲取前端傳送的數據,實現數據庫對數據的存儲和獲取;所用屬性如表4-2所示。表4-2屬性表數據名數據類型數據描述fnameString電影名fcompanyString電影出品公司fdirectorString電影導演ftimeTimestamp電影上映時間fcheckTimeInt電影點擊量furlString電影觀看地址fmsgString電影簡介4.2.2函數描述獲取電影點擊量排行榜:(1)publicResultDatagetChecks()//此方法實現獲取到所用電影,根據屬性點擊量進行排序,返回給客戶端;(2)filmService.getAllFilms()//調用數據庫拿到所有電影list;(3)filmMapper.getAllFilms()//從數據庫中獲取所有電影,返會list;4.2.3功能實現電影點擊量的實現,通過filmService.getFilmVuFid()方法到service層,在調用flimMapper.updateFCheckTimeByFid(),使電影表中的點擊量加一,在獲取電影點擊量排行的同時通過service層中的publicFilmgetAllFilms()方法中從數據庫中獲取list返回給控制層,控制層排序之后返回給前端顯示,影點擊量關鍵代碼代碼如圖4-4顯示。4.2.4電影管理模塊詳細設計普通用戶可以對自己喜歡的電影進行收藏操作、查看,并根據喜好可對其進行刪除操作;管理員可以對電影進行上架和下架操作,讓普通用戶能看到當前上架的電影。4.3.1數據描述當用戶進行登錄或注冊時,通過這些屬性獲取前端傳送的數據,實現數據庫對數據的存儲和獲取;所用屬性如表4-3所示。圖4-4電影點擊量關鍵代碼表4-3屬性表數據名數據類型數據描述fnameString電影名fcompanyString電影出品公司fdirectorString電影導演ftimeTimestamp電影上映時間fmsgString電影簡介furlString電影觀看地址fcheckTimeint電影點擊量pfidint電影idpernameString演員名稱pmianboolean是否為主演cfuidint收藏電影用戶idcftimeTimestamp收藏電影時間4.3.2函數描述管理員對電影進行數據輸入:(1)publicResultDataaddFilm(@RequestBodyFilmfilm)//接受客戶端傳來的數據;(2)filmService.insertFilm(film)//通過一下函數發送至業務邏輯層;(3)filmMapper.insertFilm(film)//將數據傳給數據庫;(4)intinsertFilm(Filmfilm)//將數據存入數據庫中;普通用戶獲取電影的詳細信息:(1)publicResultDatagetFilm(@RequestBodyFilmfilm)//接收客戶端傳來的數據;(2)filmService.getFilmByFid(film.getFid()//將獲取到到id作為參數傳到service層;(3)filmMapper.getFilmByFid(fid)//service調用函數到持久化層,將電影id作用條件;(4)FilmgetFilmByFid(intfid)//從數據庫中查出所用電影信息,返回實體對象;管理員獲取所有電影:(1)publicResultDatagetAllFilm()//接收客戶端發過來的請求;(2)filmService.getAllFilms()//通過此函數到業務邏輯層;(3)filmMapper.getAllFilms()//用此函數來從數據庫中拿到所有電影的list;(4)List<Film>getAllFilms()//查出數據返回list;普通用戶對電影收藏:(1)publicResultDatacollectionFilm(@RequestBodyCollection_fcollection_f)//獲取客戶端傳過來的數據;(2)filmService.getFilmByFid(collection_f.getCffid())//通過此方到業務邏輯層;
(3)filmMapper.getFilmByFid(fid)//獲取電影id;(4)collectionService.insertCollection_F(collection_f)//將數據全部數據傳入持久化層;(5)intinsertComment(Commentcomment)//將數據存入數據庫;4.3.3功能實現管理員對電影數據進行輸入,數據拿到傳入業務邏輯層,將數據存入后成功返回1,失敗返回-1,電影信息輸入關鍵代碼如圖4-5所示。圖4-5上架電影關鍵代碼普通用戶獲取電影詳細信息,通過客戶端傳來的電影id,將數據傳送至業務邏輯層,再調用數據庫,查詢返回所用電影的list,電影獲取詳細信息關鍵代碼如圖4-6所示。圖4-6電影獲取取詳細信息關鍵代碼管理員獲取所有電影,通過客戶端傳過來的id,調用函數到業務邏輯層,從數據庫中拿到數據放入list返回,電影獲取關鍵代碼如圖4-7所示。圖4-7電影獲取關鍵代碼用戶收藏電影功能實現,前端根據路徑發送請求到控制層collectionFilm首先判斷數據是否存在,再通過filmService.getFilmByFid()查看電影id是否存在,通過TlUser.getThreadLocal().getUid(),獲取到當前用戶的id,在將所有數據存入收藏電影表中,電影收藏詳細代碼如圖4-8所示。圖4-8電影收藏詳細代碼4.4評論模塊詳細設計普通用戶可以對電影進行評論,并能看到所有評論的內容,可以對其進行收藏的功能,并且之后能夠查看所有收藏的評論和自己的所有評論,并可根據個人喜好對其進行刪除操作;管理員可以顯示所有用戶的評論,可以對不良評論進行刪除,普通用戶頁面也隨之刪除。4.4.1數據描述當用戶進行登錄或注冊時,通過這些屬性獲取前端傳送的數據,實現數據庫對數據的存儲和獲取。所用屬性如表4-4所示。4.4.2函數描述用戶對電影進行評論:publicResultDatapushData(@RequestBodyCommentcomment)//前端將評論id傳入后端,返回成功或失敗;commentService.insertComment(comment)//controller層將評論id傳給service層進行數據處理;intinsertComment(Commentcomment)//將數據存入數據庫;返回成功或失敗;表4-4屬性表數據名數據類型數據描述cuidint評論用戶idcfidint評論的電影idcmsgString評論內容ccheckTimeint評論被收藏次數cstatusboolean評論狀態ccuidint收藏評論的用戶idcccidint收藏評論idcctimeTimestamp收藏評論時間cftimeTimestamp收藏電影時間用戶對評論進行收藏(1)publicResultDatacollectionComment(@RequestBodyCollection_ccollection_c)//前段評論id傳給后端;返回成功或失敗;(2)commentService.getCommentByCid(collection_c.getCccid())//對數據進行處理;返回成功或失敗;(3)commentMapper.getCommentByCid(cccid)//將數據存入數據庫;返回成功或失敗;用戶對收藏的評論刪除(1)publicResultDatadeleteCcomment(@RequestBodyCollection_ccollection_c)//前段評論id傳給后端;若成功則返回該用戶未刪除的評論收藏的list;(2)publicbooleandeleteCollection_cByCcid(intccid)//處理數據,返回是否成功;(3)intdeleteCollection_cByCcid(intccid)//將數據存入數據庫判斷是否入庫成功并返回;4.4.3功能實現用戶對電影進行評論,首先在控制層前端傳來的評論具體內容不能為空;再通過TlUser.getThreadLocal().getUid(),獲取到當前用戶的id,再調用函數到持久化層,獲取當前時間;最后調用數據層方法nsertComment(Commentcomment);將數據存入數據庫;最后返回給前端是否成功,并返回該電影所有未被刪除的評論給前端進行展示。用戶評論關鍵代碼如圖4-9所示。圖4-9用戶評論關鍵代碼用戶對評論進行收藏,從前端傳來需要收藏評論的id并且判斷不能為空,再判斷該評論是否存在,若不存在直接返回;再通過函數獲取到當前用戶的id;然后通過持久化層commentService.getCommentByCid(collection_c.getCccid()),將數據傳給數據層。通過調用該方法getCommentByCid(cccid)將數據存入數據庫,最后返回給前端是否收藏成功。用戶評論收藏關鍵代碼如圖4-10所示。用戶對收藏的評論刪除,從前端傳來需要收藏的評論id并且判斷不能為空,再通過TlUser.getThreadLocal().getUid(),獲取到當前用戶的id;然后通過持久化層deleteCollection_cByCcid(intccid)將數據傳給數據層通過調用方法將數據存入數據庫,若成功則將該用戶沒有刪除的所有收藏發送給前端進行展示。用戶刪除收藏評論關鍵代碼如圖4-11所示。用戶查看自己的所有評論,通過TlUser.getThreadLocal().getUid(),獲取到當前用戶的id;然后通過持久化層commentService.getCommentsByCuid(uid,true)調用數據層commentMapper.getCommentByCuidAndCstatus(cuid,cstatus)獲取數據并返回給前端進行展示。查看自己評論關鍵代碼如圖4-12所示。圖4-10用戶評論收藏關鍵代碼圖4-11用戶刪除評論收藏關鍵代碼4.5公告模塊詳細設計普通用戶登錄首頁可以看到管理員所發布的所有公告信息;管理員可以發布公告信息供普通用戶查看,也可以對公告進行刪除操作。圖4-12查看自己評論關鍵代碼4.5.1數據描述當用戶進行登錄或注冊時,通過這些屬性獲取前端傳送的數據,實現數據庫對數據的存儲和獲取;所用屬性如表4-5所示。數據名數據類型數據描述naidint管理員idntimeTimestam公告時間nmsgString公告內容npushboolean公告是否上傳表4-5屬性表4.5.2函數描述管理員對公告進行發布:(1)publicResultDatapushNotice(@RequestBodyNoticenotice)//從客戶端獲取公告內容;(2)noticeService.insertNotice(notice)//將實體類信息傳入業務邏輯層;(3)noticeMapper.insertNotice(notice)//業務邏輯層將數據存入數據庫中;用戶獲取公告信息:publicResultDatagetAllNotices()//此函數接收前端請求,調用下面函數;(2)noticeService.getNoticeByNpush(true)//將請求發送至業務邏輯層;(3)noticeMapper.getAllNoticesByNpush(npush)//此函數調用持久化層獲取數據返回給控制層;4.5.3功能實現管理員發布公告,在控制層調用noticeService.inisertNotice()到持久化層,在調用noticeMapper.getAllNoticesByNpush(npush),將公告存入數據庫中,發布公告關鍵代碼如圖4-13所示。圖4-13發布公告關鍵代碼用戶獲取公告信息,接收到客戶端請求,直接通過JSON格式返回,里面包括調用service層從數據中獲取的數據,獲取公告關鍵代碼如圖4-14所示。圖4-14獲取公告關鍵代碼4.8數據庫的實現根據第三章對數據庫的描述,對數據庫表的詳細設計如下所示:用戶詳細信息,用戶信息如表4-6所示。4-6用戶信息表字段名字段類型字段說明uidint用戶的唯一idunamevarchar用戶的昵稱utelvarchar用戶的電話upasswordvarchar用戶的密碼管理員詳細信息,管理員信息如表4-7所示。4-7管理員信息表字段名字段類型字段說明aidint自增idaunamevarchar管理員用戶名apwdvarchar管理員密碼電影-演員詳細信息,電影-演員信息如表4-8所示。 4-8電影-演員信息表字段名字段類型字段說明pidint關系idpfidint電影idpernamevarchar演員名稱pmianbool是否為主演電影詳細信息,電影信息如表4-9所示。字段名字段類型字段說明fnamevarchar電影名fcompanyvarchar電影出品公司fdirectorvarchar電影導演ftimetimestamp電影上映時間fmsgvarchar電影簡介fcheckTimeint電影點擊量4-9電影信息表公告詳細信息,公告信息如表4-10所示。4-10公告信息表字段名字段類型字段說明nidint自增idnaidint管理員idntimetimestamp公告時間nmsgvarchar公告內容npushbool公告是否上傳評論詳細信息,評論信息如表圖4-11所示。4-11評論信息表字段名字段類型字段說明cidint自增idcuidint評論用戶idcfidint評論的電影idctimetimestamp評論的時間cmsgvarchar評論內容ccheckTimeint評論被收藏次數cstatusbool評論狀態收藏詳細信息,收藏信息如表4-12所示。4-12收藏信息表字段名字段類型字段說明cfid/ccidint自增idcfuid/ccuidint用戶idcffid/cccidint電影id/評論idcftime/cctimetimestamp收藏時間5軟件測試5.1測試環境windows下運行數據庫:MySQL服務器:Apache-Tomcat瀏覽器:Edge、Chrome數據庫管理工具:MySQL5.2功能測試進入系統會后,首先進行普通用戶的注冊,根據賬號密碼可以登錄到首頁,再進行管理員登錄,可以進入管理員首頁。其次管理員對公告進行發布和刪除工作,用戶可以看到首頁發布的公告,測試無誤;對管理員的添加,添加后能夠成功登錄;對電影進行上架和下架,普通用戶界面會出現相關電影數據,增刪數據后能夠準確顯示;普通用戶能夠對電影進行準確的查看;管理員對用戶修改密碼,用戶能夠根據新密碼重新進行登錄,測試無誤;根據管理員對基礎數據的輸入,用戶可以準確顯示所有電影名稱,并能無誤顯示電影點擊量排行榜。進入用戶中心,可以查看用戶的信息并可以對其修改操作;可以對自己收藏的電影進行查看并刪除,可以查看和刪除自己的評論,測試無誤。用戶忘記密碼對其找回密碼能夠完成登錄,測試無誤。詳細測試如測試數據圖5-1、測試數據圖5-2所示。圖5-1測試數據圖5-2測試數據6軟件使用說明此系統運行在windows操作系統上,運行時需要運行程序主函數進行啟動,用戶根據ip地址找到系統頁面,用戶和管理員進行注冊登錄,實現自己所要的需求。管理員可以進行登錄注冊,進入到主頁面對電影進行上下架,以及對評論進行刪除操作,并可以進行添加管理員和電影演員的操作,當用戶忘記密碼時可以隨機生成一個新密碼,可以對公告進行發布和刪除操作。普通用戶方面,用戶可以進行注冊登錄操作,進入首頁,有公告欄顯示公告,顯示所有電影的名稱以及電影點擊量的排行榜;進入用戶中心可以顯示用戶所有的信息,并可對用戶信息進行修改,可以查看自己的評論并對其進行刪除操作,查看自己所收藏的電影并對其進行刪除操作,可以查看收藏的評論并對其進行刪除操作。其功能使用方法大致分為對電影的相關操作;對評論的相關操作;對公告的相關操作;管理員操作;用戶操作以及忘記密碼時的操作。忘記密碼操作時系統是由本人所完成,未經允許不得盜用。6.2普通用戶登錄使用方法普通用戶的相關操作,可以進行注冊登錄的操作,登錄界面如圖6-1所示,當忘記密碼時候可以對其找回密碼,找回密碼界面如圖6-2所示,登錄后進入首頁可以完成自己想要實現的事情。圖6-1登錄界面圖6-2找回密碼界面6.3電影功能的使用方法對電影的一些
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網紅特色飲品區域代理權合作協議書
- 服裝品牌區域代理銷售合同及品牌授權及售后服務體系協議
- 抖音團購運營系統培訓及團隊建設協議
- 2025年中國半導體高溫計市場前景預測及投資價值評估分析報告
- 短視頻平臺抖音獨家創意火花保險代理合作框架協議
- 特殊原因離婚雙方共同財產分割合同
- 影視動畫色彩管理軟件租賃與升級服務協議
- 快遞公司末端網點區域承包合同
- 教育培訓機構品牌合作與市場推廣合同
- 靈活用工平臺企業員工離職與轉正服務合同
- 煤化工工藝學教材課件匯總完整版ppt全套課件最全教學教程整本書電子教案全書教案課件合集
- 銀行全國科技周活動宣傳總結
- 景觀園林設計收費的標準
- SCL-90量表詳細
- 公路工程項目環境保護措施及其可行性論證
- 普通車床的主軸箱設計機械外文文獻翻譯、中英文翻譯、外文翻譯
- 神經外科各種引流管的護理精品課件
- 隧道CRD法施工工法
- 腦損傷病情觀察意識狀態的分級
- 請假通用員工請假單模板
- 八年級音樂下冊 第7單元《當兵的人》好男兒就是要當兵課件1 湘教版
評論
0/150
提交評論