基于SSM微信小程序的網(wǎng)易云音樂
?
摘 ?要
隨著我國(guó)經(jīng)濟(jì)迅速發(fā)展,人們對(duì)手機(jī)的需求越來越大,各種手機(jī)軟件也都在被廣泛應(yīng)用,但是對(duì)于手機(jī)進(jìn)行數(shù)據(jù)信息管理,對(duì)于手機(jī)的各種軟件也是備受用戶的喜愛,微信小程序的網(wǎng)易云音樂系統(tǒng)被用戶普遍使用,為方便用戶能夠可以隨時(shí)進(jìn)行微信小程序的網(wǎng)易云音樂系統(tǒng)的數(shù)據(jù)信息管理,特開發(fā)了基于微信小程序的網(wǎng)易云音樂系統(tǒng)的管理系統(tǒng)。
微信小程序的網(wǎng)易云音樂系統(tǒng)主要是對(duì)系統(tǒng)所要實(shí)現(xiàn)的功能進(jìn)行詳細(xì)考慮,確定所要實(shí)現(xiàn)的功能后進(jìn)行界面的設(shè)計(jì),在這中間還要考慮如何可以更好的將功能及頁(yè)面進(jìn)行很好的結(jié)合,方便用戶可以很容易明了的找到自己所需要的信息,還有系統(tǒng)平臺(tái)后期的可操作性,通過對(duì)信息內(nèi)容的詳細(xì)了解進(jìn)行技術(shù)的開發(fā)。
微信小程序的網(wǎng)易云音樂系統(tǒng)的開發(fā)利用現(xiàn)有的成熟技術(shù)參考,以源代碼為模板,分析功能調(diào)整與微信小程序的網(wǎng)易云音樂系統(tǒng)管理的實(shí)際需求相結(jié)合,討論了基于微信小程序的網(wǎng)易云音樂系統(tǒng)管理的使用。?
關(guān)鍵詞:微信小程序的網(wǎng)易云音樂系統(tǒng);JAVA
Netease cloud music based on SSM wechat applet
Abstract
With the rapid development of China's economy, people's demand for mobile phones is increasing, and various mobile phone software are also widely used. However, for data information management of mobile phones, various mobile phone software are also loved by users. Netease cloud music system of wechat applet is widely used by users. In order to facilitate users to manage the data information of Netease cloud music system of wechat applet at any time, The management system of Netease cloud music system based on wechat applet is developed.
The Netease cloud music system of wechat applet mainly considers the functions to be realized by the system in detail, and designs the interface after determining the functions to be realized. In the middle, it also considers how to better combine the functions and pages, so that users can easily and clearly find the information they need, as well as the operability of the system platform in the later stage, Develop technology through detailed understanding of information content.
The development of Netease cloud music system of wechat applet makes use of the existing mature technology reference, takes the source code as the template, analyzes the combination of function adjustment and the actual needs of Netease cloud music system management of wechat applet, and discusses the use of Netease cloud music system management based on wechat applet. ?
Key words:?Netease cloud music system of wechat applet; JAVA
目???錄
基于SSM微信小程序的網(wǎng)易云音樂
摘 ?要
Netease cloud music based on SSM wechat applet
Abstract
第一章 緒 論
1.1選題背景
1.2研究現(xiàn)狀
1.3研究?jī)?nèi)容
第二章 開發(fā)工具及關(guān)鍵技術(shù)介紹
2.1微信開發(fā)者工具
2.2小程序框架以及目錄結(jié)構(gòu)介紹
2.3 JAVA技術(shù)
2.4 ?Mysql數(shù)據(jù)庫(kù)
2.5?SSM框架介紹
第三章 系統(tǒng)分析
3.1需求分析
3.2可行性分析
3.2.1技術(shù)可行性:技術(shù)背景?????
3.2.2經(jīng)濟(jì)可行性
3.2.3操作可行性:?
3.3性能分析
3.4系統(tǒng)操作流程
3.4.1用戶登錄流程
3.4.2信息添加流程
3.4.3信息刪除流程
第四章 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
4.1系統(tǒng)架構(gòu)設(shè)計(jì)
4.2開發(fā)流程設(shè)計(jì)
4.3數(shù)據(jù)庫(kù)設(shè)計(jì)
4.3.1實(shí)體ER圖
4.3.2數(shù)據(jù)表
第五章 系統(tǒng)實(shí)現(xiàn)
5.1用戶前臺(tái)功能模塊(前端)
5.2管理員功能模塊(后端)
第六章 ?系統(tǒng)的測(cè)試
6.1 測(cè)試目的
6.2?測(cè)試方案設(shè)計(jì)
6.2.1 測(cè)試策略
6.2.2 測(cè)試分析
6.3?測(cè)試結(jié)果
結(jié) ?論
參考文獻(xiàn)
致 ?謝
第一章 緒 論
1.1選題背景
隨著網(wǎng)絡(luò)時(shí)代的到來,互聯(lián)網(wǎng)的優(yōu)勢(shì)和普及時(shí)刻影響并改變著人們的生活方式。在信息技術(shù)迅速發(fā)展的今天,計(jì)算機(jī)技術(shù)已經(jīng)遍及全球,使社會(huì)發(fā)生了巨大的變革。
為了不受時(shí)間和地點(diǎn)的限制,智能手機(jī)用戶可以通過移動(dòng)網(wǎng)絡(luò)訪問網(wǎng)站和處理各種業(yè)務(wù)和互聯(lián)網(wǎng),這是一個(gè)有效的將應(yīng)用系統(tǒng)的功能擴(kuò)展到手機(jī)終端的方法。現(xiàn)今各種智能手機(jī)層出不窮,各類基于手機(jī)平臺(tái)的軟件應(yīng)運(yùn)而生,其中,在眾多交流軟件中,微信備受人們青睞。近年來,微信發(fā)展規(guī)模越來越大,越來越多的人開始使用微信,目前隨著智能手機(jī)系統(tǒng)的普及,人人手機(jī)上基本都有了微信。
所以,微信推出小程序廣告支持公眾號(hào)關(guān)注,而這就意味著小程序跟公眾號(hào)之間的通道被徹底打通了。本論文微信小程序的網(wǎng)易云音樂系統(tǒng)主要牽扯到的程序,數(shù)據(jù)庫(kù)與計(jì)算機(jī)技術(shù)等。覆蓋知識(shí)面大,可以大大的提高系統(tǒng)人員工作效率。
1.2研究現(xiàn)狀
隨著社會(huì)的發(fā)展和科學(xué)技術(shù)的進(jìn)步,互聯(lián)網(wǎng)技術(shù)越來越受歡迎。網(wǎng)絡(luò)傳播的生活方式逐漸受到廣大人民群眾的喜愛。越來越多的互聯(lián)網(wǎng)愛好者開始在互聯(lián)網(wǎng)上滿足他們的基本需求,同時(shí)逐漸進(jìn)入各個(gè)用戶的生活起居?;ヂ?lián)網(wǎng)具有許多優(yōu)點(diǎn),例如便利性,速度,高效率和低成本。因此,類似于微信小程序的網(wǎng)易云音樂系統(tǒng),滿足用戶工作繁忙的需求,不僅是方便用戶隨時(shí)查看信息的途徑,而且還能提高管理效率。
本文首先以微信小程序的網(wǎng)易云音樂系統(tǒng)過程的基本問題作為研究對(duì)象。在開發(fā)系統(tǒng)之前,我們對(duì)現(xiàn)有狀況進(jìn)行了詳細(xì)的調(diào)查和分析。最后,我們利用計(jì)算機(jī)技術(shù)開發(fā)了一套完整合適的微信小程序的網(wǎng)易云音樂系統(tǒng)。該系統(tǒng)的實(shí)現(xiàn)主要優(yōu)勢(shì)是:該系統(tǒng)主要采用計(jì)算機(jī)技術(shù)開發(fā),它方便快捷;系統(tǒng)可以通過管理員界面查看用戶的所有信息管理。
微信小程序的網(wǎng)易云音樂系統(tǒng)管理系統(tǒng)軟件是一款方便、快捷、實(shí)用的信息服務(wù)查詢軟件。隨著智能網(wǎng)絡(luò)在全球市場(chǎng)的不斷普及以及各種智能平臺(tái)的使用,系統(tǒng)的開發(fā)與人們的日常需求相關(guān),作為中國(guó)主流智能的技術(shù)開發(fā)系統(tǒng),自然需要這樣的軟件來滿足更多用戶的需求和體驗(yàn)。
1.3研究?jī)?nèi)容
微信小程序的網(wǎng)易云音樂系統(tǒng)的開發(fā)及實(shí)現(xiàn),所需要的工作內(nèi)容:
(1)首先是確定選題,確定好所要做的系統(tǒng),并對(duì)系統(tǒng)的背景及現(xiàn)在面臨的一些問題等進(jìn)行系統(tǒng)的初步確認(rèn)。
(2)系統(tǒng)確認(rèn)完成后,結(jié)合系統(tǒng)開發(fā)的需求進(jìn)行確認(rèn)系統(tǒng)開發(fā)所使用的技術(shù),本微信小程序的網(wǎng)易云音樂系統(tǒng)的開發(fā)使用JAVA技術(shù),數(shù)據(jù)庫(kù)進(jìn)行平臺(tái)的搭建開發(fā),確認(rèn)好使用的技術(shù)進(jìn)行技術(shù)分析,所使用的技術(shù)是否可以完成微信小程序的網(wǎng)易云音樂系統(tǒng)的實(shí)現(xiàn)。
(3)確定好系統(tǒng)使用的技術(shù),進(jìn)行在線確認(rèn)系統(tǒng)所劃分的用戶角色,并且根據(jù)用戶角色劃分確定所要設(shè)計(jì)的功能模塊,對(duì)于微信小程序的網(wǎng)易云音樂系統(tǒng)系統(tǒng)的設(shè)計(jì)主要?jiǎng)澐謩e為管理員和用戶角色,并所使用的功能模塊也相應(yīng)不同,但是系統(tǒng)的數(shù)據(jù)庫(kù)實(shí)現(xiàn)的內(nèi)容是交互的,用戶可以隨時(shí)根據(jù)自己的需求進(jìn)行課程信息,對(duì)于系統(tǒng)工作人員可以根據(jù)自己的分管內(nèi)容進(jìn)行在線信息的處理及操作,管理員獲取到所有用戶的詳細(xì)數(shù)據(jù)信息,并根據(jù)需求進(jìn)行第一時(shí)間處理解決。
(4)系統(tǒng)的功能模塊確認(rèn)完成后進(jìn)行程序及界面的設(shè)計(jì),設(shè)計(jì)完成后,并且通過測(cè)試來判斷程序是否完善,對(duì)于系統(tǒng)測(cè)試,需要不同的用戶進(jìn)行不同的內(nèi)容編輯及提交,及使用不同的測(cè)試方式找出程序中存在的漏洞,并對(duì)程序出現(xiàn)的漏洞問題進(jìn)行在線解決處理,如果測(cè)試系統(tǒng)沒有任何問題時(shí),可以將系統(tǒng)上傳進(jìn)行正式操作使用。
- 開發(fā)工具及關(guān)鍵技術(shù)介紹
2.1微信開發(fā)者工具
微信開發(fā)者工具現(xiàn)在已經(jīng)被小程序開發(fā)團(tuán)隊(duì)開發(fā)運(yùn)行,目前微信開發(fā)者工具任然在不斷的完善中,在開發(fā)小程序時(shí)經(jīng)常要不斷的更新。可以使用微信掃碼登陸開發(fā)者工具,開發(fā)者工具將使用這個(gè)微信帳號(hào)的信息進(jìn)行小程序的開發(fā)和調(diào)試。
機(jī)型選擇:小程序以智能手機(jī)的屏幕尺寸為設(shè)計(jì)標(biāo)準(zhǔn),進(jìn)行切圖。
預(yù)覽界面:寫好視圖布局后點(diǎn)擊編譯,用來刷新視圖界面。
控制臺(tái):方便調(diào)試打印輸出信息。
上傳代碼:上傳到騰訊服務(wù)器,提交審核必經(jīng)步驟。上傳代碼時(shí)可以填寫版本號(hào)和備注信息。
資源文件:一般可以在資源文件進(jìn)行對(duì)應(yīng)項(xiàng)目的文件目錄的斷點(diǎn)調(diào)試。
顯示遠(yuǎn)程調(diào)試:手機(jī)端和PC端開發(fā)工具聯(lián)調(diào)對(duì)用戶而言是非常實(shí)用的。
本地?cái)?shù)據(jù)存儲(chǔ):顯示的是本地存儲(chǔ)的數(shù)據(jù)。
視圖調(diào)試:標(biāo)組件以子父層級(jí)結(jié)構(gòu)呈現(xiàn),方便調(diào)試。
微信限制在2M 以內(nèi)的代碼體積;開發(fā)中一般不校驗(yàn)合法域名信息;小程序后臺(tái)要做配置服務(wù)器域名。
以上就是在開發(fā)過程中微信開發(fā)者工具常用到的功能,微信開發(fā)者工具也在不斷的完善。
2.2小程序框架以及目錄結(jié)構(gòu)介紹
整個(gè)小程序框架系統(tǒng)分為兩部分:邏輯層和視圖層。小程序開發(fā)框架的目標(biāo)是通過盡可能簡(jiǎn)單、高效的方式讓開發(fā)者可以在微信中開發(fā)具有原生 小程序 體驗(yàn)的服務(wù)。小程序在視圖層與邏輯層間提供了數(shù)據(jù)傳輸和事件系統(tǒng),提供了自己的視圖層以及邏輯層框架,讓開發(fā)者能夠?qū)W⒂跀?shù)據(jù)與邏輯。框架的核心是一個(gè)響應(yīng)的數(shù)據(jù)綁定系統(tǒng),可以讓數(shù)據(jù)與視圖非常簡(jiǎn)單地保持同步。在邏輯層做數(shù)據(jù)修改,在視圖層就會(huì)做相應(yīng)的更新??蚣芴峁┝艘惶谆A(chǔ)的組件,這些組件自帶微信風(fēng)格的樣式以及特殊的邏輯,開發(fā)者可以通過組合基礎(chǔ)組件,創(chuàng)建出強(qiáng)大的微信小程序 。
2.3 JAVA技術(shù)
Java主要采用CORBA技術(shù)和安全模型,可以在互聯(lián)網(wǎng)應(yīng)用的數(shù)據(jù)保護(hù)。它還提供了對(duì)EJB(Enterprise JavaBeans)的全面支持,java servlet API,SSM(java server pages),和XML技術(shù)。
JAVA語(yǔ)言功能:
面向?qū)ο螅好嫦驅(qū)ο笫荍ava編程語(yǔ)言的標(biāo)志之一,是一種軟件開發(fā)方法。最重要的是將所有東西變成對(duì)象,然后以某種方式編程。編程時(shí),代碼和數(shù)據(jù)寫在每個(gè)對(duì)象上。 面向?qū)ο缶幊谭椒ǖ某霈F(xiàn)使得人們?cè)诰幊踢^程中的設(shè)計(jì)思考和操作變得非常簡(jiǎn)單,同時(shí)也提高了程序的安全性。
跨平臺(tái):Java流行的一個(gè)關(guān)鍵特性是它的跨平臺(tái)特性,這使得用Java編程變得容易。您可以用Java編寫程序并在其他地方運(yùn)行它,而無需在編譯后更改它。
垃圾回收機(jī)制:用來將那些在程序不操作時(shí)無用的對(duì)象所占用的內(nèi)存空間釋放掉,C ++最被人厭惡的就是因?yàn)槠洳荒軐⒃诰幊痰倪^程中所占用的內(nèi)存空間進(jìn)行及時(shí)的釋放,導(dǎo)致隨著編程時(shí)間的變長(zhǎng)所占用的內(nèi)存空間越來越多。對(duì)于一些編程高手而言,他們會(huì)在剛開始編程的時(shí)候配置一塊內(nèi)存地址放在堆棧上,然后在不需要的時(shí)候會(huì)對(duì)其進(jìn)行釋放,而一些新手和菜鳥在很多的時(shí)候會(huì)忘記刪除這個(gè)內(nèi)存地址,從而導(dǎo)致程序在運(yùn)行的過程中會(huì)變得十分的不穩(wěn)定,最終有可能會(huì)導(dǎo)致程序崩潰。所以很多C ++的高手在編寫程序時(shí)往往都會(huì)將刪除后的指針的值設(shè)置為NULL,然后在刪除之前確定一個(gè)指針的值是否為NULL。
2.4 ?Mysql數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)是系統(tǒng)開發(fā)過程中不可或缺的一部分。 在WEB應(yīng)用方面,MySQL AB開發(fā)了一個(gè)具有很大優(yōu)勢(shì)的MySQL關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。 MySQL可以將數(shù)據(jù)存儲(chǔ)在不同的表中,這非常靈活,并且還可以提高系統(tǒng)在實(shí)際應(yīng)用中的速度。 數(shù)據(jù)庫(kù)訪問最常用于標(biāo)準(zhǔn)SQL語(yǔ)言,MySQL用于SQL語(yǔ)言,因此它具有高度兼容性。數(shù)據(jù)庫(kù)的操作是必不可少的,包括對(duì)數(shù)據(jù)庫(kù)表的增加、刪除、修改、查詢等功能?,F(xiàn)如今,數(shù)據(jù)庫(kù)可以分為關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù),Mysql屬于關(guān)系性數(shù)據(jù)庫(kù),Mysql數(shù)據(jù)庫(kù)是一款小型的關(guān)系型數(shù)據(jù)庫(kù),它以其自身特點(diǎn):體積小、速度快、成本低等,Mysql數(shù)據(jù)庫(kù)是目前最受歡迎的開源數(shù)據(jù)庫(kù)。
在WEB應(yīng)用技術(shù)中, Mysql數(shù)據(jù)庫(kù)支持不同的操作系統(tǒng)平臺(tái),雖然在不同平臺(tái)下的安裝和配置都不相同,但是差別也不是很大,Mysql在Windows平臺(tái)下兩種安裝方式,二進(jìn)制版和免安裝版。安裝完Mysql數(shù)據(jù)庫(kù)之后,需要啟動(dòng)服務(wù)進(jìn)程,相應(yīng)的客戶端就可以連接數(shù)據(jù)庫(kù),客戶端可通過命令行或者圖形界面工具登錄數(shù)據(jù)庫(kù)。
2.5?SSM框架介紹
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis兩個(gè)開源框架整合而成(SpringMVC是Spring中的部分內(nèi)容)。常作為數(shù)據(jù)源較簡(jiǎn)單的web項(xiàng)目的框架。
?Spring
Spring就像是整個(gè)項(xiàng)目中裝配bean的大工廠,在配置文件中可以指定使用特定的參數(shù)去調(diào)用實(shí)體類的構(gòu)造方法來實(shí)例化對(duì)象。也可以稱之為項(xiàng)目中的粘合劑。
Spring的核心思想是IoC(控制反轉(zhuǎn)),即不再需要程序員去顯式地`new`一個(gè)對(duì)象,而是讓Spring框架幫你來完成這一切。
SpringMVC
SpringMVC在項(xiàng)目中攔截用戶請(qǐng)求,它的核心Servlet即DispatcherServlet承擔(dān)中介或是前臺(tái)這樣的職責(zé),將用戶請(qǐng)求通過HandlerMapping去匹配Controller,Controller就是具體對(duì)應(yīng)請(qǐng)求所執(zhí)行的操作。SpringMVC相當(dāng)于SSH框架中struts。
?mybatis
mybatis是對(duì)jdbc的封裝,它讓數(shù)據(jù)庫(kù)底層操作變的透明。mybatis的操作都是圍繞一個(gè)sqlSessionFactory實(shí)例展開的。mybatis通過配置文件關(guān)聯(lián)到各實(shí)體類的Mapper文件,Mapper文件中配置了每個(gè)類對(duì)數(shù)據(jù)庫(kù)所需進(jìn)行的sql語(yǔ)句映射。在每次與數(shù)據(jù)庫(kù)交互時(shí),通過sqlSessionFactory拿到一個(gè)sqlSession,再執(zhí)行sql命令。
頁(yè)面發(fā)送請(qǐng)求給控制器,控制器調(diào)用業(yè)務(wù)層處理邏輯,邏輯層向持久層發(fā)送請(qǐng)求,持久層與數(shù)據(jù)庫(kù)交互,后將結(jié)果返回給業(yè)務(wù)層,業(yè)務(wù)層將處理邏輯發(fā)送給控制器,控制器再調(diào)用視圖展現(xiàn)數(shù)據(jù)。
第三章 系統(tǒng)分析
3.1需求分析
任何一個(gè)項(xiàng)目在開發(fā)研究前,都需要對(duì)研發(fā)系統(tǒng)本身的需求做一個(gè)認(rèn)真的分析,市場(chǎng)的調(diào)研是不可忽視的,從實(shí)際場(chǎng)景中確定使用人員的功能需求,從而明確目標(biāo),對(duì)整個(gè)系統(tǒng)的開發(fā)有一個(gè)更加準(zhǔn)確的定位,在這個(gè)章節(jié),需要對(duì)系統(tǒng)的性能分析,業(yè)務(wù)流程分析,和數(shù)據(jù)等進(jìn)行分析,微信小程序的網(wǎng)易云音樂系統(tǒng)的整體界面簡(jiǎn)單,功能完善。
需求的可行性是分析和討論發(fā)達(dá)的系統(tǒng)能達(dá)到什么樣的要求。開發(fā)的系統(tǒng)平臺(tái)是否符合之前的要求。只有在預(yù)先評(píng)估系統(tǒng)的開發(fā)中,才能在系統(tǒng)開發(fā)和實(shí)施之前完成需求。如果您不具備開發(fā)一個(gè)功能不合格的系統(tǒng)的可行性,那就是開發(fā)失敗。開發(fā)系統(tǒng)是否有用,可以完成之前討論過的需求,以下分析了微信小程序的網(wǎng)易云音樂系統(tǒng)的實(shí)際需求。
系統(tǒng)設(shè)計(jì)需要從用戶和管理員的實(shí)際需求開始,以了解他們需要實(shí)施哪些功能以及他們可以包括哪些管理工作。
考慮到微信小程序的網(wǎng)易云音樂系統(tǒng)系統(tǒng)設(shè)計(jì)的特點(diǎn),應(yīng)滿足幾個(gè)要求:
(1)它可以通過網(wǎng)絡(luò)開展微信小程序的網(wǎng)易云音樂系統(tǒng)信息管理工作,促進(jìn)對(duì)微信小程序的網(wǎng)易云音樂系統(tǒng)信息管理。
(2)學(xué)習(xí)方法變得更加多樣化,管理更加標(biāo)準(zhǔn)化;
(3)它提供了一個(gè)免費(fèi)的渠道,以確保數(shù)據(jù)的實(shí)時(shí)有效溝通。
3.2可行性分析
3.2.1技術(shù)可行性:技術(shù)背景?????
微信小程序的網(wǎng)易云音樂系統(tǒng)采用了JAVA技術(shù),開發(fā)了功能完備、使用簡(jiǎn)單的前端應(yīng)用程序,并建立、維護(hù)了一個(gè)數(shù)據(jù)完整、安全、穩(wěn)定性強(qiáng)的后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)。
系統(tǒng)使用JAVA技術(shù)和Mysql數(shù)據(jù)庫(kù)作為設(shè)計(jì)工具,可簡(jiǎn)單易行地學(xué)習(xí)操作。用戶角色之間的相結(jié)合開發(fā)一套微信小程序的網(wǎng)易云音樂系統(tǒng)是值得嘗試的,數(shù)據(jù)完整性和許多品質(zhì)為數(shù)據(jù)的功能分配和管理提供了依據(jù)。它也是數(shù)據(jù)庫(kù)安全平臺(tái)的重要組成部分,是提高和增強(qiáng)數(shù)據(jù)安全性的重要手段。此外,為了提供更平滑,更智能和更有效的基本控制方法,定義了同時(shí)構(gòu)建對(duì)安全計(jì)算環(huán)境的支持所需的步驟,并幫助維護(hù)安全性。因?yàn)樵谶@兩種開發(fā)工具中,功能強(qiáng)大且免費(fèi)且界面良好,所以微信小程序的網(wǎng)易云音樂系統(tǒng)在技術(shù)方面是可行的。
3.2.2經(jīng)濟(jì)可行性
桌面微信小程序的網(wǎng)易云音樂系統(tǒng)管理的開發(fā)是由開發(fā)者自己開發(fā),不需要購(gòu)買其他軟件或者端口之類的,而且在微信小程序的網(wǎng)易云音樂系統(tǒng)管理的開發(fā)之前所做的市場(chǎng)調(diào)研及其他的微信小程序的網(wǎng)易云音樂系統(tǒng),都是沒有任何費(fèi)用的,通過開發(fā)者自己的努力,所有的工作的都是自己親力親為,在碰到自己比較難以解決的問題,大多是通過同學(xué)和指導(dǎo)老師的幫助進(jìn)行相關(guān)信息的解決,所以對(duì)于微信小程序的網(wǎng)易云音樂系統(tǒng)的開發(fā)在經(jīng)濟(jì)上是完全可行的,沒有任何費(fèi)用支出的。
使用JAVA技術(shù)是比較成熟的技術(shù),所以微信小程序的網(wǎng)易云音樂系統(tǒng)的開發(fā)在經(jīng)濟(jì)上是沒有問題的。
3.2.3操作可行性:?
可操作性主要是對(duì)微信小程序的網(wǎng)易云音樂系統(tǒng)系統(tǒng)設(shè)計(jì)完成后,用戶的使用體驗(yàn)度,對(duì)于管理員可以通過系統(tǒng)隨時(shí)管理相關(guān)的數(shù)據(jù)信息,并且對(duì)于管理員、用戶二個(gè)用戶角色,都可以簡(jiǎn)單明了的進(jìn)入到自己的系統(tǒng)界面,通過界面導(dǎo)航菜單可以簡(jiǎn)單明了地操作功能模塊,方便用戶信息需求和課程信息管理數(shù)據(jù)信息,對(duì)于系統(tǒng)的操作,不需要專業(yè)人員都可以直接進(jìn)行功能模塊的操作管理,所以在系統(tǒng)的可操作性是完全可以的。本系統(tǒng)的操作使用的也是界面窗口進(jìn)行登錄,所以操作人員只要會(huì)簡(jiǎn)單的電腦操作就完全可以的。
3.3性能分析
對(duì)于性能分析,與傳統(tǒng)的管理方式相比,傳統(tǒng)的管理方式是使用人工通過用紙和筆進(jìn)行數(shù)據(jù)信息的統(tǒng)計(jì)和管理,并且這種方式對(duì)于存儲(chǔ)和查找某一數(shù)據(jù)信息都比較麻煩,隨著計(jì)算機(jī)網(wǎng)絡(luò)的到來,這種傳統(tǒng)的方法很難適應(yīng)當(dāng)下社會(huì)的發(fā)展,不僅降低人們的辦事效率,而且還需要很多的人力和物力,對(duì)于使用的時(shí)間和所要花費(fèi)的費(fèi)用都是比較高的,為了降低成本費(fèi)用,提高用戶的工作效率,進(jìn)行開發(fā)一套基于計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的微信小程序的網(wǎng)易云音樂系統(tǒng)。
微信小程序的網(wǎng)易云音樂系統(tǒng)的開發(fā)設(shè)計(jì)時(shí)一個(gè)獨(dú)立的系統(tǒng),以流行數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的存儲(chǔ)開發(fā),主要是為了實(shí)現(xiàn)微信小程序的網(wǎng)易云音樂系統(tǒng)的用戶角色及相對(duì)應(yīng)的功能模塊,讓微信小程序的網(wǎng)易云音樂系統(tǒng)的管理不會(huì)存在管理差異、低效率,而是跟傳統(tǒng)的管理信息恰好相反,微信小程序的網(wǎng)易云音樂系統(tǒng)的實(shí)現(xiàn)可以節(jié)約資源,并且對(duì)于業(yè)務(wù)的處理速度也提高,速度快、效率高,功能性強(qiáng)大。
3.4系統(tǒng)操作流程
3.4.1用戶登錄流程
對(duì)于系統(tǒng)的安全性的第一關(guān),就是用戶想要進(jìn)入系統(tǒng),必須通過登錄窗口,輸入自己的登錄信息才可以進(jìn)行登錄,用戶輸入的信息準(zhǔn)確無誤后才可以進(jìn)入到操作系統(tǒng)界面,進(jìn)行功能模塊的相對(duì)應(yīng)操作,如果用戶輸入的信息不正確,則窗口出現(xiàn)提示框,用戶登錄失敗,返回到第一步進(jìn)行重新輸入,如圖3-1所示。
圖3-1登錄操作流程圖
3.4.2信息添加流程
對(duì)于微信小程序的網(wǎng)易云音樂系統(tǒng),需要隨時(shí)添加所需要的數(shù)據(jù)信息,對(duì)于用戶添加信息,需要根據(jù)添加界面,根據(jù)選框的內(nèi)容進(jìn)行填寫所要添加的數(shù)據(jù)信息,信息輸入完成后判斷數(shù)據(jù)信息是否符合要求,符合要求則添加完成,用戶所添加的信息不符合要求,則需要返回到第一步,重新輸入數(shù)據(jù)信息,再進(jìn)行判斷操作,如圖3-2所示。
圖3-2 信息添加流程圖
3.4.3信息刪除流程
不管是哪個(gè)用戶角色進(jìn)入到不通的系統(tǒng)操作界面,都可以進(jìn)行不同的信息內(nèi)容的操作功能,對(duì)用系統(tǒng)數(shù)據(jù)信息的刪除,用戶一旦將信息刪除,那么該刪除的數(shù)據(jù)信息將無法恢復(fù),所以用戶在對(duì)數(shù)據(jù)刪除事,一定判斷刪除的內(nèi)容是否是確定要?jiǎng)h除的,確定無誤后選擇確定刪除操作,如圖3-3所示。
圖3-3?信息刪除流程圖
第四章 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
4.1系統(tǒng)架構(gòu)設(shè)計(jì)
微信小程序的網(wǎng)易云音樂系統(tǒng)的系統(tǒng)項(xiàng)目的概述設(shè)計(jì)分析,主要內(nèi)容有學(xué)習(xí)平臺(tái)的具體分析,進(jìn)行數(shù)據(jù)庫(kù)的是設(shè)計(jì),數(shù)據(jù)采用mysql數(shù)據(jù)庫(kù),并且對(duì)于系統(tǒng)的設(shè)計(jì)采用比較人性化的操作設(shè)計(jì),對(duì)于系統(tǒng)出現(xiàn)的錯(cuò)誤信息可以及時(shí)做出處理及反饋。
基于微信小程序的網(wǎng)易云音樂系統(tǒng)基于現(xiàn)有的手機(jī),可以實(shí)現(xiàn)管理員,首頁(yè)、站點(diǎn)管理(輪播圖、公告欄)用戶管理(管理員、普通用戶)內(nèi)容管理(音樂資訊、資訊分類)更多管理(音樂庫(kù)、歌單分類、云音樂熱歌榜)等詳細(xì)的了解及統(tǒng)計(jì)分析。根據(jù)系統(tǒng)功能需求建立的模塊關(guān)系圖如下圖:
圖4-1管理員功能模塊圖
4.2開發(fā)流程設(shè)計(jì)
微信小程序的網(wǎng)易云音樂系統(tǒng)的開發(fā)對(duì)管理模塊和系統(tǒng)使用的數(shù)據(jù)庫(kù)進(jìn)行分析,編寫代開發(fā),規(guī)劃和操作是構(gòu)建信息管理應(yīng)用程序的必要三步曲,它決定了系統(tǒng)是否能夠真正實(shí)現(xiàn)預(yù)設(shè)功能以及是否可以在成功設(shè)計(jì)后實(shí)施。在開發(fā)過程中,每個(gè)階段必須嚴(yán)格按照線性順序進(jìn)行開發(fā),并且在相應(yīng)階段生成的每個(gè)工作都可以通過技術(shù)進(jìn)行驗(yàn)證和檢查。確保一個(gè)階段完成后是正確的,不會(huì)造成下一階段拖拽現(xiàn)象,使系統(tǒng)完成設(shè)計(jì)功能后得到保證。
從微信小程序的網(wǎng)易云音樂系統(tǒng)的成功開發(fā)經(jīng)驗(yàn)來看,上述方法效果最為明顯,最大程度地降低了系統(tǒng)開發(fā)的復(fù)雜性。如圖4-2所示。
圖4-2開發(fā)系統(tǒng)流程圖
4.3數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)是信息系統(tǒng)的基礎(chǔ)和核心。數(shù)據(jù)庫(kù)設(shè)計(jì)的好壞直接影響到信息系統(tǒng)開發(fā)的成敗。創(chuàng)建數(shù)據(jù)庫(kù)表首先確定實(shí)體的屬性和實(shí)體之間的關(guān)系。根據(jù)關(guān)系創(chuàng)建一個(gè)數(shù)據(jù)表。
4.3.1實(shí)體ER圖
數(shù)據(jù)庫(kù)是整個(gè)軟件編程中最重要的一個(gè)步驟,對(duì)于數(shù)據(jù)庫(kù)問題主要是判定數(shù)據(jù)庫(kù)的數(shù)量和結(jié)構(gòu)公式的創(chuàng)建。展示系統(tǒng)使用的是Mysql進(jìn)行對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理,進(jìn)行保證數(shù)據(jù)的安全性、穩(wěn)定性等。
概念模型的設(shè)計(jì)是為了抽象真實(shí)世界的信息,并對(duì)信息世界進(jìn)行建模。它是數(shù)據(jù)庫(kù)設(shè)計(jì)的強(qiáng)大工具。數(shù)據(jù)庫(kù)概念模型設(shè)計(jì)可以通過E-R圖描述現(xiàn)實(shí)世界的概念模型。系統(tǒng)的E-R圖顯示了系統(tǒng)中實(shí)體之間的鏈接。而且Mysql數(shù)據(jù)庫(kù)是自我保護(hù)能力比較強(qiáng)的數(shù)據(jù)庫(kù),下圖主要是對(duì)數(shù)據(jù)庫(kù)實(shí)體的E-R圖:
(1) ?網(wǎng)易云音樂管理E-R圖,如圖4-3所示:
圖4-3音樂庫(kù)管理實(shí)體屬性圖
?(2)?用戶注冊(cè)管理E-R圖如圖4-4所示:
圖4-4用戶信息管理實(shí)體圖
這些功能可以充分滿足微信小程序的網(wǎng)易云音樂系統(tǒng)的需求。此系統(tǒng)功能較為全面如下圖系統(tǒng)功能結(jié)構(gòu)如圖4-5所示。
圖4-5系統(tǒng)功能結(jié)構(gòu)圖
4.3.2數(shù)據(jù)表
我們可以根據(jù)數(shù)據(jù)結(jié)構(gòu)的詳細(xì)分析要求,我們根據(jù)輸入和輸出數(shù)據(jù)量的要求進(jìn)行分析,確定什么表表,結(jié)構(gòu)之間的關(guān)系,我們可以驗(yàn)證,調(diào)整和完善,查詢和瀏覽過程,可以實(shí)現(xiàn)數(shù)據(jù)庫(kù),以使用戶對(duì)數(shù)據(jù)和功能有更多要求。
基于系統(tǒng)使用的數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn),對(duì)數(shù)據(jù)庫(kù)的概念模型進(jìn)行了轉(zhuǎn)換和構(gòu)建。但是,這個(gè)系統(tǒng)只需要充分考慮微信小程序的網(wǎng)易云音樂系統(tǒng)的功能,而且組織比較清晰。
cloud_music_hot_song_list |
|||||
字段名稱 |
類型 |
長(zhǎng)度 |
不是null |
主鍵 |
字段說明 |
cloud_music_hot_song_list_id |
int |
11 |
否 |
主鍵 |
云音樂熱歌榜ID |
song_title |
varchar |
64 |
是 |
歌名 |
|
singer |
varchar |
64 |
是 |
歌手 |
|
cover |
varchar |
255 |
是 |
封面 |
|
album |
varchar |
64 |
是 |
專輯 |
|
song_introduction |
varchar |
64 |
是 |
歌曲介紹 |
|
audio_frequency |
varchar |
255 |
是 |
音頻 |
|
download |
varchar |
255 |
是 |
下載 |
|
song_list |
varchar |
64 |
是 |
所屬歌單 |
|
hits |
int |
11 |
否 |
點(diǎn)擊數(shù) |
|
praise_len |
int |
11 |
否 |
點(diǎn)贊數(shù) |
|
recommend |
int |
11 |
否 |
智能推薦 |
|
create_time |
datetime |
0 |
否 |
創(chuàng)建時(shí)間 |
|
update_time |
timestamp |
0 |
否 |
更新時(shí)間 |
|
collect |
|||||
字段名稱 |
類型 |
長(zhǎng)度 |
不是null |
主鍵 |
字段說明 |
collect_id |
int |
10 |
否 |
主鍵 |
收藏ID |
user_id |
int |
10 |
否 |
收藏人ID |
|
source_table |
varchar |
255 |
是 |
來源表 |
|
source_field |
varchar |
255 |
是 |
來源字段 |
|
source_id |
int |
10 |
否 |
來源ID |
|
title |
varchar |
255 |
是 |
標(biāo)題 |
|
img |
varchar |
255 |
是 |
封面 |
|
create_time |
timestamp |
0 |
否 |
創(chuàng)建時(shí)間 |
|
update_time |
timestamp |
0 |
否 |
更新時(shí)間 |
|
comment |
|||||
字段名稱 |
類型 |
長(zhǎng)度 |
不是null |
主鍵 |
字段說明 |
comment_id |
int |
11 |
否 |
主鍵 |
評(píng)論ID |
user_id |
int |
11 |
否 |
評(píng)論人ID |
|
reply_to_id |
int |
11 |
否 |
回復(fù)評(píng)論ID空為0 |
|
content |
longtext |
0 |
是 |
內(nèi)容 |
|
nickname |
varchar |
255 |
是 |
昵稱 |
|
avatar |
varchar |
255 |
是 |
頭像地址[0,255] |
|
create_time |
timestamp |
0 |
否 |
創(chuàng)建時(shí)間 |
|
update_time |
timestamp |
0 |
否 |
更新時(shí)間 |
|
source_table |
varchar |
255 |
是 |
來源表 |
|
source_field |
varchar |
255 |
是 |
來源字段 |
|
source_id |
int |
10 |
否 |
來源ID |
|
music_library |
|||||
字段名稱 |
類型 |
長(zhǎng)度 |
不是null |
主鍵 |
字段說明 |
music_library_id |
int |
11 |
否 |
主鍵 |
音樂庫(kù)ID |
song_title |
varchar |
64 |
是 |
歌名 |
|
singer |
varchar |
64 |
是 |
歌手 |
|
cover |
varchar |
255 |
是 |
封面 |
|
album |
varchar |
64 |
是 |
專輯 |
|
song_introduction |
varchar |
64 |
是 |
歌曲介紹 |
|
audio_frequency |
varchar |
255 |
是 |
音頻 |
|
download |
varchar |
255 |
是 |
下載 |
|
song_list |
varchar |
64 |
是 |
所屬歌單 |
|
hits |
int |
11 |
否 |
點(diǎn)擊數(shù) |
|
praise_len |
int |
11 |
否 |
點(diǎn)贊數(shù) |
|
recommend |
int |
11 |
否 |
智能推薦 |
|
create_time |
datetime |
0 |
否 |
創(chuàng)建時(shí)間 |
|
update_time |
timestamp |
0 |
否 |
更新時(shí)間 |
|
notice |
|||||
字段名稱 |
類型 |
長(zhǎng)度 |
不是null |
主鍵 |
字段說明 |
notice_id |
mediumint |
8 |
否 |
主鍵 |
公告id |
title |
varchar |
125 |
否 |
標(biāo)題 |
|
content |
longtext |
0 |
是 |
正文 |
|
create_time |
timestamp |
0 |
否 |
創(chuàng)建時(shí)間 |
|
update_time |
timestamp |
0 |
否 |
更新時(shí)間 |
|
ordinary_users |
|||||
字段名稱 |
類型 |
長(zhǎng)度 |
不是null |
主鍵 |
字段說明 |
ordinary_users_id |
int |
11 |
否 |
主鍵 |
普通用戶ID |
user_number |
varchar |
64 |
是 |
用戶編號(hào) |
|
user_name |
varchar |
64 |
是 |
用戶姓名 |
|
gender |
varchar |
64 |
是 |
性別 |
|
age |
varchar |
64 |
是 |
年齡 |
|
examine_state |
varchar |
16 |
否 |
審核狀態(tài) |
|
recommend |
int |
11 |
否 |
智能推薦 |
|
user_id |
int |
11 |
否 |
用戶ID |
|
create_time |
datetime |
0 |
否 |
創(chuàng)建時(shí)間 |
|
update_time |
timestamp |
0 |
否 |
更新時(shí)間 |
|
slides |
|||||
字段名稱 |
類型 |
長(zhǎng)度 |
不是null |
主鍵 |
字段說明 |
slides_id |
int |
10 |
否 |
主鍵 |
輪播圖ID |
title |
varchar |
64 |
是 |
標(biāo)題 |
|
content |
varchar |
255 |
是 |
內(nèi)容 |
|
url |
varchar |
255 |
是 |
鏈接 |
|
img |
varchar |
255 |
是 |
輪播圖 |
|
hits |
int |
10 |
否 |
點(diǎn)擊量 |
|
create_time |
timestamp |
0 |
否 |
創(chuàng)建時(shí)間 |
|
update_time |
timestamp |
0 |
否 |
更新時(shí)間 |
|
song_list_classification |
|||||
字段名稱 |
類型 |
長(zhǎng)度 |
不是null |
主鍵 |
字段說明 |
song_list_classification_id |
int |
11 |
否 |
主鍵 |
歌單分類ID |
song_list |
varchar |
64 |
是 |
所屬歌單 |
|
recommend |
int |
11 |
否 |
智能推薦 |
|
create_time |
datetime |
0 |
否 |
創(chuàng)建時(shí)間 |
|
update_time |
timestamp |
0 |
否 |
更新時(shí)間 |
第五章 系統(tǒng)實(shí)現(xiàn)
5.1用戶前臺(tái)功能模塊(前端)?
微信小程序的網(wǎng)易云音樂系統(tǒng)登錄界面,通過填寫賬號(hào)、密碼、等信息進(jìn)行登錄,如圖5-1所示。
圖5-1登錄界面圖
登錄代碼如下:
@Slf4j
public class LoginInterceptor implements HandlerInterceptor {
????private String tokenName = "x-auth-token";
????@Override
????public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
????????String token = request.getHeader(this.tokenName);
????????setHeader(request, response);
????????log.info("[請(qǐng)求接口] - {} , [請(qǐng)求類型] - {}",request.getRequestURL().toString(),request.getMethod());
????????if (request.getRequestURL().toString().contains("/api/user/login")){
????????????return true;
????????}
????????else if (request.getRequestURL().toString().contains("/api/user/state")){
????????????return true;
????????}
????????else if (request.getRequestURL().toString().contains("/api/user/register")){
????????????return true;
????????}
????????if (token == null || "".equals(token)){
????????????if ("POST".equals(request.getMethod())){
????????????????return false;
????????????}else {
????????????????return true;
????????????}
????????}else {
????????????return true;
????????}
}
????private void setHeader(HttpServletRequest request, HttpServletResponse response) {
????????//跨域的header設(shè)置
????????response.setHeader("Access-control-Allow-Origin", request.getHeader("Origin"));
????????response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH");
????????response.setHeader("Access-Control-Allow-Credentials", "true");
????????response.setHeader("Access-Control-Allow-Headers", request.getHeader("Access-Control-Request-Headers"));
????????response.setHeader("Access-Control-Max-Age", "1800");
????????//防止亂碼,適用于傳輸JSON數(shù)據(jù)
????????response.setHeader("Content-Type", "application/json;charset=UTF-8");
????????response.setStatus
注冊(cè),通過填寫賬號(hào)、密碼、昵稱、手機(jī)、、郵箱、簡(jiǎn)介等信息,輸入完成后選擇提交即可注冊(cè)成功,如圖5-2所示。
圖5-2注冊(cè)界面圖
注冊(cè)代碼如下:
???/**
?????* 注冊(cè)
?????* @return
?????*/
????@PostMapping("register")
????public Map<String, Object> signUp(HttpServletRequest request) throws IOException {
????????// 查詢用戶
????????Map<String, String> query = new HashMap<>();
????????Map<String,Object> map = service.readBody(request.getReader());
????????query.put("username",String.valueOf(map.get("username")));
????????List list = service.selectBaseList(service.select(query, new HashMap<>()));
????????if (list.size()>0){
????????????return error(30000, "用戶已存在");
????????}
????????map.put("password",service.encryption(String.valueOf(map.get("password"))));
????????service.insert(map);
????????return success(1);
}
????public Map<String,Object> readBody(BufferedReader reader){
????????BufferedReader br = null;
????????StringBuilder sb = new StringBuilder("");
????????try{
????????????br = reader;
????????????String str;
????????????while ((str = br.readLine()) != null){
????????????????sb.append(str);
????????????}
????????????br.close();
????????????String json = sb.toString();
????????????return JSONObject.parseObject(json, Map.class);
????????}catch (IOException e){
????????????e.printStackTrace();
????????}finally{
????????????if (null != br){
????????????????try{
????????????????????br.close();
????????????????}catch (IOException e){
????????????????????e.printStackTrace();
????????????????}
????????????}
????????}
????????return null;
????}
????public void insert(Map<String,Object> body){
????????E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
????????baseMapper.insert(entity);
????????log.info("[{}] - 插入操作:{}",entity);
}
首頁(yè),可以進(jìn)行首頁(yè)、音樂資訊、我的(音樂庫(kù)、云音樂熱歌榜)等功能模塊的查看與操作,如圖5-3所示。
圖5-3系統(tǒng)首頁(yè)界面圖
首頁(yè)代碼如下:
?public Map<String, Object> success(Object o) {
????????Map<String, Object> map = new HashMap<>();
????????if (o == null) {
????????????map.put("result", null);
????????????return map;
????????}
????????if (o instanceof List) {
????????????if (((List) o).size() == 1) {
???????????????o = ?((List) o).get(0);
????????????????map.put("result", o);
????????????}else {
????????????????String jsonString = JSONObject.toJSONString(o);
????????????????JSONArray objects = service.covertArray(JSONObject.parseArray(jsonString));
????????????????map.put("result", objects);
????????????}
????????} else if (o instanceof Integer || o instanceof String) {
????????????map.put("result", o);
????????} else {
????????????String jsonString = JSONObject.toJSONString(o);
????????????JSONObject jsonObject = JSONObject.parseObject(jsonString);
????????????JSONObject j = service.covertObject(jsonObject);
????????????map.put("result", j);
????????}
????????return map;
}
公告列表列表頁(yè)面可以查看展示的公告詳情等信息,并可通過關(guān)鍵詞搜索公告,并對(duì)公告點(diǎn)贊、評(píng)論、收藏等操作。如圖5-4所示。
圖5-4公告列表界面圖
公告列表代碼如下:
?@PostMapping("/upload")
????public Map<String, Object> upload(@RequestParam(value = "file",required=false) MultipartFile file,HttpServletRequest request) {
????????log.info("進(jìn)入方法");
????????if (file.isEmpty()) {
????????????return error(30000, "沒有選擇文件");
????????}
????????try {
????????????//判斷有沒路徑,沒有則創(chuàng)建
????????????String filePath = request.getSession().getServletContext().getRealPath("\\") +"upload\\";
// ???????????String filePath = System.getProperty("user.dir") + "\\target\\classes\\static\\upload\\";
????????????File targetDir = new File(filePath);
????????????if (!targetDir.exists() && !targetDir.isDirectory()) {
????????????????if (targetDir.mkdirs()) {
????????????????????log.info("創(chuàng)建目錄成功");
????????????????} else {
????????????????????log.error("創(chuàng)建目錄失敗");
????????????????}
????????????}
// ???????????String path = ResourceUtils.getURL("classpath:").getPath() + "static/upload/";
// ???????????String filePath = path.replace('/', '\\').substring(1, path.length());
????????????String fileName = file.getOriginalFilename();
????????????int lastIndexOf = fileName.lastIndexOf(".");
????????????//獲取文件的后綴名 .jpg
????????????String suffix = fileName.substring(lastIndexOf);
????????????fileName = IdWorker.getId()+suffix;
????????????File dest = new File(filePath + fileName);
????????????log.info("文件路徑:{}", dest.getPath());
????????????log.info("文件名:{}", dest.getName());
????????????file.transferTo(dest);
????????????JSONObject jsonObject = new JSONObject();
????????????jsonObject.put("url", "/api/upload/" + fileName);
????????????return success(jsonObject);
????????} catch (IOException e) {
????????????log.info("上傳失?。簕}", e.getMessage());
????????}
????????return error(30000, "上傳失敗");
}
我的,在我的頁(yè)面可以查看圖像、昵稱、并可對(duì)個(gè)人信息進(jìn)行修改,如圖5-5所示。
圖5-5我的界面圖
5.2管理員功能模塊(后端)??
輪播圖展示,管理員通過輸入標(biāo)題、內(nèi)容、鏈接、輪播圖、點(diǎn)擊量等操作提交,如圖5-6所示。
圖5-6輪播圖界圖面
輪播圖代碼如下:
??@RequestMapping("/get_obj")
????public Map<String, Object> obj(HttpServletRequest request) {
????????List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
????????if (resultList.size() > 0) {
????????????JSONObject jsonObject = new JSONObject();
????????????jsonObject.put("obj",resultList.get(0));
????????????return success(jsonObject);
????????} else {
????????????return success(null);
????????}
}
在管理員功能頁(yè)面可以首頁(yè)、站點(diǎn)管理(輪播圖、公告欄)用戶管理(管理員、普通用戶)內(nèi)容管理(音樂資訊、資訊分類)更多管理(音樂、歌單分類、云音樂熱歌榜)等內(nèi)容進(jìn)行相對(duì)應(yīng)操作,如圖5-7所示。
圖5-7管理員功能界面圖
管理員功能代碼如下:
???public Map<String, Object> success(Object o) {
????????Map<String, Object> map = new HashMap<>();
????????if (o == null) {
????????????map.put("result", null);
????????????return map;
????????}
????????if (o instanceof List) {
????????????if (((List) o).size() == 1) {
???????????????o = ?((List) o).get(0);
????????????????map.put("result", o);
????????????}else {
????????????????String jsonString = JSONObject.toJSONString(o);
????????????????JSONArray objects = service.covertArray(JSONObject.parseArray(jsonString));
????????????????map.put("result", objects);
????????????}
????????} else if (o instanceof Integer || o instanceof String) {
????????????map.put("result", o);
????????} else {
????????????String jsonString = JSONObject.toJSONString(o);
????????????JSONObject jsonObject = JSONObject.parseObject(jsonString);
????????????JSONObject j = service.covertObject(jsonObject);
????????????map.put("result", j);
????????}
????????return map;
}
用戶管理,在用戶管理頁(yè)面可以編輯用戶昵稱、用戶名、姓名、性別、等內(nèi)容,并可根據(jù)需要進(jìn)行修改或刪除操作,如圖5-8所示。
圖5-8用戶管理界面圖
用戶管理代碼如下:
/**
?* 用戶組:用于用戶前端身份和鑒權(quán)(UserGroup)表實(shí)體類
?*
?* @author xxx
?*@since 202X-XX-XX
?*/
@TableName("user_group")
@Data
@EqualsAndHashCode(callSuper = false)
public class UserGroup implements Serializable {
????private static final long serialVersionUID = 968356951391304707L;
????/**
?????* 用戶組ID:[0,8388607]
?????*/
????@TableId(value = "group_id", type = IdType.AUTO)
????private Integer groupId;
????/**
?????* 顯示順序:[0,1000]
?????*/
????@TableField(value = "display")
????private Integer display;
????/**
?????* 名稱:[0,16]
?????*/
????@TableField(value = "name")
????private String name;
????/**
?????* 描述:[0,255]描述該用戶組的特點(diǎn)或權(quán)限范圍
?????*/
????@TableField(value = "description")
????private String description;
????/**
?????* 來源表:
?????*/
????@TableField(value = "source_table")
????private String sourceTable;
????/**
?????* 來源字段:
?????*/
????@TableField(value = "source_field")
????private String sourceField;
????/**
?????* 注冊(cè)位置:
?????*/
????@TableField(value = "register")
????private String register;
????/**
?????* 創(chuàng)建時(shí)間:
?????*/
????@TableField(value = "create_time")
????private Timestamp createTime;
????/**
?????* 更新時(shí)間:
?????*/
????@TableField(value = "update_time")
????private Timestamp updateTime;
}
????/**
?????* 所在用戶組:[0,32767]決定用戶身份和權(quán)限
?????*/
????@TableField(value = "user_group")
private String userGroup;
/**
?* 用戶組:用于用戶前端身份和鑒權(quán)(UserGroup)表控制層
?*
?*/
@RestController
@RequestMapping("user_group")
public class UserGroupController extends BaseController<UserGroup, UserGroupService> {
????/**
?????* 服務(wù)對(duì)象
?????*/
????@Autowired
????public UserGroupController(UserGroupService service) {
????????setService(service);
????}
}
音樂資訊,在音樂資訊頁(yè)面可以查看標(biāo)題、封面圖、分類、標(biāo)簽等內(nèi)容,并可根據(jù)需要進(jìn)行修改或刪除操作,如圖5-9所示。
圖5-9音樂資訊界面圖
音樂資訊代碼如下:
@PostMapping("/add")
????@Transactional
????public Map<String, Object> add(HttpServletRequest request) throws IOException {
????????Map<String,Object> paramMap = service.readBody(request.getReader());
????????this.addMap(paramMap);
????????return success(1);
}
????@Transactional
????public Map<String, Object> addMap(Map<String,Object> map){
????????service.insert(map);
????????return success(1);
}
音樂庫(kù),在音樂庫(kù)頁(yè)面可以查看歌名、歌手、封面、專輯、歌曲介紹、音頻、下載、所屬歌單等內(nèi)容,并可根據(jù)需要進(jìn)行修改或刪除操作,如圖5-10所示。
圖5-10音樂庫(kù)展示界面圖
音樂庫(kù)代碼如下:
?public List selectBaseList(String select) {
????????List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
????????List<E> list = new ArrayList<>();
????????for (Map<String,Object> map:mapList) {
????????????list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
????????}
????????return list;
}
第六章 ?系統(tǒng)的測(cè)試
6.1 測(cè)試目的
程序設(shè)計(jì)不能保證沒有錯(cuò)誤,這是一個(gè)開發(fā)過程,在錯(cuò)誤或錯(cuò)誤的過程中難以避免,這是不可避免的,但我們不能使這些錯(cuò)誤始終存在于系統(tǒng)中,錯(cuò)誤可能會(huì)造成無法估量的后果 如系統(tǒng)崩潰,安全信息,系統(tǒng)無法正常啟動(dòng),導(dǎo)致安裝用戶手機(jī)屏幕等,為了避免這些問題,我們需要測(cè)試程序,并發(fā)現(xiàn)這些問題,并糾正它們 ,并使系統(tǒng)更長(zhǎng)時(shí)間穩(wěn)定成熟,本章的作用是發(fā)現(xiàn)這些問題,并對(duì)其進(jìn)行修改,雖然耗時(shí)費(fèi)力,但長(zhǎng)期非常重要和必要 系統(tǒng)的開發(fā)。
軟件測(cè)試與開發(fā)過程是一樣的,都必須按照軟件工程的正規(guī)原理進(jìn)行,遵守管理學(xué)理論。不過,目前國(guó)內(nèi)的軟件測(cè)試已經(jīng)積累了大量經(jīng)驗(yàn)和方法,步驟相對(duì)成熟,軟件測(cè)試的效率也越來越高。
微信小程序的網(wǎng)易云音樂系統(tǒng)的實(shí)現(xiàn),對(duì)于系統(tǒng)中功能模塊的實(shí)現(xiàn)及操作都必須通過測(cè)試進(jìn)行來評(píng)判系統(tǒng)是否可以準(zhǔn)確的實(shí)現(xiàn)。在微信小程序的網(wǎng)易云音樂系統(tǒng)正式上傳使用之前必須做的一步就是系統(tǒng)測(cè)試,對(duì)于測(cè)試發(fā)現(xiàn)的錯(cuò)誤及時(shí)修改處理,保證系統(tǒng)準(zhǔn)確無誤的供給用戶使用。
6.2?測(cè)試方案設(shè)計(jì)
6.2.1 測(cè)試策略
1、功能測(cè)試
從用戶的角度來看,測(cè)試時(shí)不了解新開發(fā)軟件的內(nèi)部結(jié)構(gòu),因此可以將系統(tǒng)與黑匣子進(jìn)行比較,盲目輸入后可以查看系統(tǒng)給出的反饋。這種測(cè)試屬于黑盒測(cè)試,在測(cè)試中如果輸入錯(cuò)誤信息系統(tǒng)會(huì)報(bào)錯(cuò)。
2、性能測(cè)試
測(cè)試軟件程序的整體狀況(稱為性能測(cè)試)通常使用自動(dòng)化測(cè)試工具來檢測(cè)系統(tǒng)的整體功能,在負(fù)載測(cè)試和壓力測(cè)試之間進(jìn)行分配,在某些情況下,將這兩種情況結(jié)合起來。雖然壓力測(cè)試可以檢測(cè)到系統(tǒng)可以提供的最高級(jí)別的服務(wù),但負(fù)載測(cè)試可以測(cè)試系統(tǒng)如何響應(yīng)增加的負(fù)載。
6.2.2 測(cè)試分析
測(cè)試評(píng)估系統(tǒng)質(zhì)量的方法不局限于系統(tǒng)編碼和過程,應(yīng)該與軟件設(shè)計(jì)工作和歷史需求分析密切相關(guān)。
軟件測(cè)試應(yīng)遵循以下原則:
(1)軟件測(cè)試應(yīng)盡快進(jìn)行,整個(gè)測(cè)試部分應(yīng)在軟件開發(fā)和設(shè)計(jì)的整個(gè)過程中進(jìn)行。如發(fā)現(xiàn)錯(cuò)誤,立即處理,將大大減少軟件開發(fā)的時(shí)間,并提高軟件的質(zhì)量。
(2)在軟件的各種測(cè)試中,測(cè)試過程中使用的計(jì)劃、報(bào)告等應(yīng)妥善處理和存儲(chǔ)。其主要目的是為了便于以后系統(tǒng)的維護(hù)。
(3)軟件測(cè)試整個(gè)過程中的聚類現(xiàn)象應(yīng)優(yōu)先考慮。
(4)對(duì)于軟件測(cè)試,我們應(yīng)該盡量不去和自己設(shè)計(jì)的系統(tǒng)進(jìn)行參考,而是要測(cè)試對(duì)方的程序,以確保軟件測(cè)試結(jié)果的客觀性和公平性。
(5)整個(gè)測(cè)試計(jì)劃嚴(yán)格按照軟件測(cè)試的具體實(shí)施細(xì)則進(jìn)行。
(6)對(duì)整個(gè)測(cè)試結(jié)果進(jìn)行綜合檢查,盡量避免重復(fù)錯(cuò)誤。
本微信小程序的網(wǎng)易云音樂系統(tǒng)滿足用戶的要求和需求,本微信小程序的網(wǎng)易云音樂系統(tǒng)的使用能夠有效的提高用戶的使用率。
6.3?測(cè)試結(jié)果
測(cè)試后得到的性能和用例,系統(tǒng)具有足夠的正確性、可靠性、穩(wěn)定性,并且可以對(duì)輸入數(shù)據(jù)進(jìn)行準(zhǔn)確的點(diǎn)擊操作處理和響應(yīng)測(cè)試用戶的體驗(yàn)也得到了很好的反饋和響應(yīng)時(shí)間。合理的范圍,可以兼容所有主流瀏覽器,設(shè)計(jì)所需的效果。
結(jié) ?論
在這個(gè)設(shè)計(jì)中,我花了大量的時(shí)間去理解系統(tǒng)開發(fā)中使用的知識(shí),經(jīng)過這段時(shí)間的努力工作最終完成了系統(tǒng)設(shè)計(jì)。通過這一階段的學(xué)習(xí),我發(fā)現(xiàn)了自己的不足,充分掌握了必要的應(yīng)用技能,進(jìn)一步的學(xué)習(xí)使我充實(shí)了自己的知識(shí)基礎(chǔ),完成了這個(gè)艱巨的任務(wù)。當(dāng)遇到問題時(shí),我很及時(shí)的尋求老師的幫助,通過專業(yè)的網(wǎng)站和論壇來解決,他們的幫助讓我一步一步的成功克服了困難的問題。系統(tǒng)設(shè)計(jì)過程不容易,你需要不斷充實(shí)自己,有勇氣克服困難。系統(tǒng)開發(fā)的一些功能還不完善,需要繼續(xù)改善后,通過用戶體驗(yàn)來修改設(shè)計(jì)完美的系統(tǒng),讓用戶得到更好的體驗(yàn),我覺得很高興,因?yàn)檫@是我第一次通過自己的努力實(shí)現(xiàn)這個(gè)系統(tǒng),但絕不是我的最后一個(gè),在未來我將努力實(shí)現(xiàn)更多的優(yōu)秀的系統(tǒng)。
在一些編程語(yǔ)言的系統(tǒng)實(shí)現(xiàn)中,對(duì)詞匯表不太熟悉,導(dǎo)致了開發(fā)的困難,但是我通過了合適的字典軟件來解決這個(gè)大問題。由此,我學(xué)會(huì)了自己的英語(yǔ)缺陷。在那之后,我不斷地提高自己的英語(yǔ)知識(shí),這樣我就不會(huì)有任何未來的工作和生活。畢業(yè)設(shè)計(jì)過程我感覺很深刻,從一開始就不熟悉開發(fā)技術(shù),一步一步的使用,接觸到文獻(xiàn)和信息,不難理解,系統(tǒng)是一次又一次的實(shí)現(xiàn),系統(tǒng)本身對(duì)于在線學(xué)習(xí)是有用的。我從這個(gè)設(shè)計(jì)中獲益良多,論文的編寫需要有自己的意愿去實(shí)現(xiàn)一點(diǎn),學(xué)習(xí)生活中所有的問題的勇氣,學(xué)習(xí)的過程就是學(xué)習(xí)的過程。畢業(yè)設(shè)計(jì),我學(xué)會(huì)了將理論知識(shí)應(yīng)用于實(shí)踐。讓我知道該怎么做,我們必須認(rèn)真對(duì)待。勇于克服困難,相信未來,我會(huì)做得更好。
參考文獻(xiàn)
[1]耿祥義,張躍平.《JSP實(shí)用教程》. 清華大學(xué)出版社,2019年5月
[2]Brown等.《JSP編程指南(第二版)》. 電子工業(yè)出版社 ,2019年3月
[3]BruceEckel.《Java編程思想》. 機(jī)械工業(yè)出版社,2019年10月
[4]孫一林,彭波.《Java數(shù)據(jù)庫(kù)編程實(shí)例》. 清華大學(xué)出版社,2018年8月
[5]FLANAGAN.《Java技術(shù)手冊(cè)》. 中國(guó)電力出版社,2017年6月
[6] David L.Anderson.Managing ?Information Systems.清華大學(xué)出版社,2018:16
[7]孫衛(wèi)琴,李洪成.《Tomcat 與 Java Web 開發(fā)技術(shù)詳解》.電子工業(yè)出版社,2019年6月
[8]孫涌.《現(xiàn)代軟件工程》.北京希望電子出版社,2019年8月
[9](美)額爾曼.(美)威多姆.數(shù)據(jù)庫(kù)系統(tǒng)基礎(chǔ)教程.清華大學(xué)出版社,2019:5
[10]飛思科技產(chǎn)品研發(fā)中心.《JSP應(yīng)用開發(fā)詳解》.電子工業(yè)出版社,2019年9月
[11] 張曉東. MySOL數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)與實(shí)例[M].北京:人民郵電出版社,2018:179
[12] 王家華.軟件工程[M],沈陽(yáng):東北大學(xué)出版社,2018:46.
[13]何渺渺,李騰躍,程付超.高校綜合服務(wù)平臺(tái)小程序的設(shè)計(jì)與實(shí)現(xiàn)[J].福建電腦,2021,37(12):91-94.DOI:10.16707/j.cnki.fjpc.2021.12.020.
[14]李偉.基于微信小程序的雙屏融合電視產(chǎn)品的思考[J].廣播電視網(wǎng)絡(luò),2021,28(11):51-52.DOI:10.16045/j.cnki.catvtec.2021.11.013.
[15]柳葉.基于微信小程序的校園導(dǎo)航系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪與空間地理信息,2021,44(11):84-86.
[16]張文,方巍,賈雪磊.基于SSM框架的合租系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2021,31(11):159-164.
[17]侯佳麗,付麗琴,邢亞英.基于小程序的師生管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子測(cè)試,2021(21):85-87.DOI:10.16520/j.cnki.1000-8519.2021.21.029.
[18]Ravishankar B. T.,Vaishali S.,Bhattacharya D.,Ramadevi M. C.,Sarwade Abhilash,Seetha S.. AstroSat/SSM data pipeline[J]. Journal of Astrophysics and Astronomy,2021,42(2):
[19]Huang Zijie,Zhao Hongzhou,Lin Jianhui,Liu Minling,Zheng Huanxin. SSM-based Intelligent WeChat Applet for Pick-up[J]. Journal of Physics: Conference Series,2021,1883(1):
[20]蔡進(jìn). 面向中小學(xué)生的古圖書學(xué)習(xí)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].中央民族大學(xué),2020.DOI:10.27667/d.cnki.gzymu.2020.000229.
致 ?謝
微信小程序的網(wǎng)易云音樂系統(tǒng)的完成,如何實(shí)現(xiàn)的更好,其中付出的努力是很大的,這段時(shí)光將會(huì)終身難忘。
微信小程序的網(wǎng)易云音樂系統(tǒng)可以順利完成,首先,我要感謝我的指導(dǎo)老師,他在我遇到設(shè)計(jì)問題時(shí)及時(shí)幫助了我,并在我對(duì)設(shè)計(jì)感到困惑時(shí)給了我充分的指導(dǎo)。在他的幫助下,我可以完成高質(zhì)量的畢業(yè)設(shè)計(jì)。在微信小程序的網(wǎng)易云音樂系統(tǒng)和開發(fā)中,指導(dǎo)老師提出了許多實(shí)用的意見和建議,并為我提供了大量相關(guān)的研究資料,使我對(duì)設(shè)計(jì)有了更深入的了解。只有在老師的指導(dǎo)下,才能在畢業(yè)設(shè)計(jì)中取得成功。在此,我要向指導(dǎo)老師表示深深的謝意。
在此,我還要感謝我的同學(xué)們,他們?yōu)槲业脑O(shè)計(jì)提供了許多參考意見,并與我討論了設(shè)計(jì)中的問題,從而使我的設(shè)計(jì)一步一步走向成熟。 ?文章來源:http://www.zghlxwxcb.cn/news/detail-497085.html
?點(diǎn)贊+收藏+關(guān)注 ?→ ?私信領(lǐng)取本源代碼、數(shù)據(jù)庫(kù)文章來源地址http://www.zghlxwxcb.cn/news/detail-497085.html
到了這里,關(guān)于SSM+微信小程序網(wǎng)易云音樂設(shè)計(jì)與實(shí)現(xiàn) 畢業(yè)設(shè)計(jì)-附源碼261620的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!