王宇哲 楊陽 楊立倫 顧鑫 林志芳
武漢東湖學院計算機科學學院
前言:現階段,隨著短視頻的興起,視頻行業已成為生活中必不可少的一部分。例如時下熱度較高的抖音短視頻,人們總是可以在其中找到屬于自己的一份快樂。而作為互聯網的一部分,視頻分享就顯得尤為重要,本網站將獎勵制和積分制融合為激勵制,用戶可以在該平臺上分享資源獲取積分,也可以使用積分查看其他用戶分享的資源,能在增加資源互動的同時又鼓勵創作。并且每個資源都附帶評論系統,形成一個視頻分享社區。
界面采用jsp,結合JQuery第三方js庫,bootstrap響應式布局框架,AJAX異步請求,JAVACV部分技術,并結合MySQL、Druid連接池、騰訊云短信API等技術。
使用java作為開發語言,SSM為基本的開發架構,通過Maven對項目依賴包進行管理,Git控制開發進度與更新。
結合功能分析用例為三個:視頻資源,用戶,評論。
設計如下:
資源表(資源id,圖片路徑,視頻路徑,價格,用戶id,資源名,上傳時間)。
用戶表(用戶id,頭像路徑,用戶名,密碼,電話,余額,權限)。
評論表(評論id,資源id,用戶id,評論內容,評論時間)。
物理設計:
Resource(rid,imgurl,videourl,price,ui d,rname,uptime)。
User(uid,imgurl,username,password,tel,money,level)。
Chat(cid,rid,uid,words,time)。
1.登錄操作/ login (user,request)。
2.注冊操作/ reg(user,驗證碼,request,resources)。
3.發送驗證碼/sendyzm(user,response)。
4.注冊驗證/validate(user,手機驗證碼,隨機數,response)。
5.根據用戶名獲取用戶json /getbyusername(username)。
6.分頁查詢用戶/getUserByPage(pagenow,pagesize)。
7.用戶注銷/logout(request)。
1.分頁獲取資源/getResourceByPag e。
2.獲取所有資源/getAllResource。
3.上傳資源/upload。
4.播放資源/play。
用戶觀看視頻必須先登錄,并消耗視頻所需要的積分。用戶注冊時需要經過兩個驗證(圖形驗證碼,短信驗證碼),圖形驗證碼Vcode經過后臺生成后直接以IO流傳遞給前端顯示到IMG標簽中。
為了防止惡意小號注冊,注冊需要使用驗證碼,綁定手機號(后臺生成驗證碼之后,通過調用騰訊短信api接口,講驗證碼發送至用戶手機)。設置密碼(password)之后下次登錄使用手機號作為賬號(username)。
本研究根據廣西地不容轉錄組測序的結果開發SSR引物,在此基礎上對廣西地不容5個居群的63個樣品進行遺傳分析,以揭示廣西地不容在物種水平和居群水平的遺傳多樣性以及居群間的遺傳關系,為其野生資源的保護和分子標記輔助育種等方面提供理論依據。
通過AJAX異步請求技術,根據頁碼請求數據庫中視頻的JSON數據,然后通過jquery將數據渲染成一個個html標簽,追加到指定的div中。
每頁設置顯示20個視頻,用戶下滑到底之后會出現繼續加載按鈕,點擊按鈕,即可在次發送AJAX請求,頁碼自加1頁即可。
用戶登陸之后,會在session中存儲當前用戶User對象,主頁會從session域中獲取當前用戶對象,如果存在該對象,則右上角會出現分享視頻,以及個人中心的按鈕。
用戶點擊上傳視頻之后,會跳轉到上傳視頻界面。會提示用戶選擇視頻,設置視頻的標題以及查看所需要的積分。
用戶點擊開始上傳后,服務器通過HttpServletRequest對象獲取到輸入流,后臺生成UUID全球唯一識別碼,和用戶設置的視頻標題(title),價格(price),文件路徑(path)一并存入MySQL數據庫。
如果主頁預覽的都是單個完整視頻的話,會極大地占用服務器帶寬,這個時候就要求上傳視頻的時候,自動生成縮略圖(imgurl),會和視頻在數據庫中共同存儲。
想要查看其他用戶上傳的視頻時,需要消耗相應的積分。扣除成功后,會在該用戶的消費記錄中新增本視頻的ID以判斷該用戶已經購買本視頻,可以查看。
同時這樣也防止了部分用戶惡意使用工具跳過支付。因為每次查看視頻就會檢測當前登錄用戶User的消費記錄是否包含該視頻。
用戶購買視頻之后,調用減少積分接口(buyVideo),將當前用戶的用戶id(uid),當前視頻的id(vid)傳遞到后臺。后臺解析視頻的視頻主(uid),價格(price)。給當前用戶扣除相應的積分,給視頻主增加積分的90%,10%歸平臺,最后在用戶的購買記錄上增加購買視頻的id即可完成一次視頻的購買。
新用戶初始會贈送10積分(1元),用戶使用完之后可以進行積分充值。點擊右上角充值中心之后,會跳轉到充值界面,選擇相應的充值套餐,會跳轉到支付寶收款接口,付款后會根據當前記錄用戶id(uid)增加相應的積分。
所有登錄用戶都可以對某個視頻進行舉報,舉報分類存在服務器本地json文件中,用戶舉報時,會記錄舉報用戶id(uid),視頻id(vid),以及違規類型(wtype)。后臺管理員可以在違規處理頁面對舉報視頻進行違規篩查。
用戶點擊退出登錄時,后臺直接從session中刪除當前用戶的對象即可,如不手動退出,用戶也會在半個小時后自動退出(session生命周期半個小時)。
登錄用戶查看視頻之后,進入視頻界面,下方有評論區。視頻的評論單獨作為一個數據庫表(chat)。通過視頻id(vid)和評論id(cid)進行綁定。一個視頻可以有多個評論,同時記錄評論用戶id。
本系統基于使用SSM(Spring+Spring MVC+MyBatis)作為基礎架構。而其中的Spring-MVC又是經典的MVC(模型-視圖-控制器)模型。這兩個框架能夠極大地提高開發的效率和維護能力。
其中Spring-MVC的作用如下:
Model(模型)表示應用程序核心(數據庫實體類對象)。
View(視圖)顯示數據,也就是web前端頁面。
Controller(控制器)處理輸入(負責接口的跳轉)。
MyBatis則可以將sql語句寫在XML文件中,便于統一管理和優化,解除sql和程序代碼的耦合。并且提供映射標簽,支持對象和和數據庫orm字段關系的映射,支持對象關系映射標簽,支持對象關系的組建。還可以提供XML標簽,支持編寫動態sql。
而Spring-core核心提供了通過Spring的IOC特性,將對象之間的依賴關系交給了Spring控制,方便解耦,簡化了開發。還可以利用AOP(面向切面編程)特性,很容易實現事務,日志,權限的控制。
系統基于JAVA開發,可以在各類服務器環境上運行,只需要安裝java虛擬機即可,個人站長能夠輕松地完成服務器的后臺配置。
本視頻網站的視頻全部都是由用戶自行上傳,沒有官方發布的公共視頻,用戶可以進行自行交易。
網站的視頻分類豐富,涵蓋各類短視頻,基本滿足各類用戶的需求。
維護成本低,只需要對違規的視頻,用戶交易問題進行管理即可。用戶交易時可以提取少量的積分即可盈利。也就是成本只有服務器的維護,以及少量人力費用即可運營。
網站不經營官方視頻,不會引進需要版權的電影電視劇,主要交易的是個人制作的短視頻,以及視頻素材等等,所以不會有版權糾紛的問題。如果涉及到侵權,維護人員對舉報視頻進行及時處理下架即可。