【開源】SpringBoot框架開發音樂平臺

在這里插入圖片描述


目錄

  • 一、摘要
    • 1.1 項目介紹
    • 1.2 項目錄屏
  • 二、功能模塊
    • 三、系統展示
  • 四、核心代碼
    • 4.1 查詢單首音樂
    • 4.2 新增音樂
    • 4.3 新增音樂訂單
    • 4.4 查詢音樂訂單
    • 4.5 新增音樂收藏
  • 五、免責說明


一、摘要

1.1 項目介紹

基于微信小程序+JAVA+Vue+SpringBoot+MySQL的音樂平臺,包含了音樂檔案模塊、音樂收藏模塊、音樂訂單模塊,支持PC后臺和微信小程序用戶端使用,還包含系統自帶的用戶管理、部門管理、角色管理、菜單管理、日志管理、數據字典管理、文件管理、圖表展示等基礎模塊,基于微信小程序的音樂平臺基于角色的訪問控制,給音樂管理員、音樂用戶角色使用,可將權限精確到按鈕級別,您可以自定義角色并分配權限,系統適合設計精確的權限約束需求。

1.2 項目錄屏


二、功能模塊

隨著當今世界網絡和計算機的飛速發展以及智能手機的普及,人們的生活從過去的必須使用計算機進行工作、娛樂、信息獲取轉變為通過使用更加便利的移動設備去代替。小程序是一種全新的連接用戶與服務的方式,它可以在微信內被便捷地獲取和傳播,同時具有出色的使用體驗。在微信作為不可或缺的工具當下,微信小程序作為內置于微信內的功能平臺,能夠給絕大多數人帶來對于他們自己而言更簡易方便的使用感受及體驗。

同時,在如今的時代背景下,音樂對于大多數人來說亦是不可或缺的元素。從商場、超市、餐廳等等舒緩的背景音樂包括現在可以說是如日中天的抖音也是結合了音樂與短視頻,由此可見音樂的覆蓋面,將音樂與微信小程序相結合,相信是一種有可能性的研究內容。

  1. 前臺功能可含包用戶登錄注冊、搜索、播放按鈕、收藏列表等。
  2. 后臺功能用戶管理、音樂上傳、付費管理等。
  3. 網站前臺要求導航清晰、圖文并茂、風格統一,后臺要求功能完善、操作便捷。
  4. 系統代碼規范、運行穩定、安全性高,無明顯BUG。

三、系統展示

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述


四、核心代碼

4.1 查詢單首音樂

@RequestMapping(value = "/getOne", method = RequestMethod.GET)
@ApiOperation(value = "查詢單首音樂")
public Result<Music> get(@RequestParam String id){User currUser = securityUtil.getCurrUser();Music music = iMusicService.getById(id);if(music == null) {return ResultUtil.error("音樂不存在");}// 收藏QueryWrapper<MusicCollect> mc = new QueryWrapper<>();mc.eq("music_id",music.getId());mc.eq("user_id",currUser.getId());music.setCollectFlag(iMusicCollectService.count(mc));// 下單QueryWrapper<MusicOrder> mo = new QueryWrapper<>();mo.eq("music_id",music.getId());mo.eq("user_id",currUser.getId());music.setOrderFlag(iMusicOrderService.count(mo));return new ResultUtil<Music>().setData(music);
}

4.2 新增音樂

@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增音樂")
public Result<Music> insert(Music music){iMusicService.saveOrUpdate(music);return new ResultUtil<Music>().setData(music);
}

4.3 新增音樂訂單

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增單條音樂訂單")
public Result<MusicOrder> addOne(@RequestParam String id){Music music = iMusicService.getById(id);if(music == null) {return ResultUtil.error("音樂不存在");}User currUser = securityUtil.getCurrUser();QueryWrapper<MusicOrder> moQw = new QueryWrapper<>();moQw.eq("music_id",music.getId());moQw.eq("user_id",currUser.getId());if(iMusicOrderService.count(moQw) < 1L) {MusicOrder mo = new MusicOrder();mo.setMusicId(music.getId());mo.setTitle(music.getTitle());mo.setOwner(music.getOwner());mo.setFileUrl(music.getFileUrl());mo.setPrice(music.getPrice());mo.setStatus("未付款");mo.setUserId(currUser.getId());mo.setUserName(currUser.getNickname());iMusicOrderService.saveOrUpdate(mo);}return ResultUtil.success();
}

4.4 查詢音樂訂單

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查詢音樂訂單")
public Result<IPage<MusicOrder>> getByPage(@ModelAttribute MusicOrder musicOrder ,@ModelAttribute PageVo page){QueryWrapper<MusicOrder> qw = new QueryWrapper<>();User currUser = securityUtil.getCurrUser();QueryWrapper<User> userQw = new QueryWrapper<>();userQw.eq("id",currUser.getId());userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 AND role_id = '1536606659751841799'");if(iUserService.count(userQw) < 1L) {qw.eq("user_id",currUser.getId());}if(!ZwzNullUtils.isNull(musicOrder.getTitle())) {qw.like("title",musicOrder.getTitle());}if(!ZwzNullUtils.isNull(musicOrder.getUserName())) {qw.like("user_name",musicOrder.getUserName());}IPage<MusicOrder> data = iMusicOrderService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<MusicOrder>>().setData(data);
}

4.5 新增音樂收藏

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增單條音樂收藏")
public Result<Object> addOne(@RequestParam String id){Music music = iMusicService.getById(id);if(music == null) {return ResultUtil.error("音樂不存在");}User currUser = securityUtil.getCurrUser();QueryWrapper<MusicCollect> mcQw = new QueryWrapper<>();mcQw.eq("music_id",music.getId());mcQw.eq("user_id",currUser.getId());if(iMusicCollectService.count(mcQw) < 1L) {MusicCollect mc = new MusicCollect();mc.setMusicId(music.getId());mc.setTitle(music.getTitle());mc.setOwner(music.getOwner());mc.setFileUrl(music.getFileUrl());mc.setUserId(currUser.getId());mc.setUserName(currUser.getNickname());iMusicCollectService.saveOrUpdate(mc);}return ResultUtil.success();
}

五、免責說明

  • 本項目僅供個人學習使用,商用授權請聯系博主,否則后果自負。
  • 博主擁有本軟件構建后的應用系統全部內容所有權及獨立的知識產權,擁有最終解釋權。
  • 如有問題,歡迎在倉庫 Issue 留言,看到后會第一時間回復,相關意見會酌情考慮,但沒有一定被采納的承諾或保證。

下載本系統代碼或使用本系統的用戶,必須同意以下內容,否則請勿下載!

  1. 出于自愿而使用/開發本軟件,了解使用本軟件的風險,且同意自己承擔使用本軟件的風險。
  2. 利用本軟件構建的網站的任何信息內容以及導致的任何版權糾紛和法律爭議及后果和博主無關,博主對此不承擔任何責任。
  3. 在任何情況下,對于因使用或無法使用本軟件而導致的任何難以合理預估的損失(包括但不僅限于商業利潤損失、業務中斷與業務信息丟失),博主概不承擔任何責任。
  4. 必須了解使用本軟件的風險,博主不承諾提供一對一的技術支持、使用擔保,也不承擔任何因本軟件而產生的難以預料的問題的相關責任。

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/697455.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/697455.shtml
英文地址,請注明出處:http://en.pswp.cn/news/697455.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python 類型提示(Type Hinting)及typing庫

目錄 為什么要進行類型提示變量添加靜態類型注釋函數參數的類型注釋**基本類型注釋****基于`typing`庫**其他高級用法注意事項特殊情況類引用自身實例作為形參時的類型注釋參數要求為一個函數為什么要進行類型提示 從 Python 3.5 開始引入,類型提示允許程序員為變量、函數參數…

【ctfshow—web】——信息搜集篇1(web1~20詳解)

ctfshow—web題解 web1web2web3web4web5web6web7web8web9web10web11web12web13web14web15web16web17web18web19web20 web1 題目提示 開發注釋未及時刪除 那就找開發注釋咯&#xff0c;可以用F12來查看&#xff0c;也可以CtrlU直接查看源代碼呢 就拿到flag了 web2 題目提示 j…

第3.5章:StarRocks數據導入——Broker Load

注&#xff1a;本篇文章闡述的是StarRocks-3.2版本的Broker Load導入機制 一、概述 Broker Load導入方式支持從HDFS類的外部存儲系統&#xff08;例如&#xff1a;HDFS、阿里OSS、騰訊COS、華為云OBS等&#xff09;&#xff0c;支持Parquet、ORC、CSV、及 JSON 四種文件格式&a…

vue里echarts的使用:畫餅圖和面積折線圖

vue里echarts的使用,我們要先安裝echarts,然后在main.js里引入: //命令安裝echarts npm i echarts//main.js里引入掛載到原型上 import echarts from echarts Vue.prototype.$echarts = echarts最終我們實現的效果如下: 頭部標題這里我們封裝了一個全局公共組件common-he…

qt 軟件發布(Windows)

1. 開發環境 QtCreator MSVC編譯器 2. 源碼編譯 生成release或者debug版本的exe可執行文件(x64或x86) 3. windeployqt 打包 ①左下角開始菜單欄找到QT的命令交互對話框&#xff0c;如下圖MSVC 2017 64-bit(根據第二步編譯的類型選擇64位或者32位)。 ②cd 切換到第二步可…

TCP/IP協議詳解

文章目錄 TCP/IP協議概述基于TCP/IP協議的應用工具協議協議的必要性 TCP/IP協議TCP/IP協議族協議的分層 傳輸方式的分類報文、幀、數據包等的區別TCP 和 UDP的區別 TCP/IP協議概述 TCP/IP&#xff08;Transmission Control Protocol/Internet Protocol&#xff09;是一組通信協…

《圖解HTTP》筆記2:http的構成

1&#xff0c;查看瀏覽器上面一個具體的http請求 瀏覽器地址欄輸入網址&#xff1a;https://news.baidu.com/ 使用瀏覽器的開發者工具&#xff0c;查看網絡中發送和接受的數據。 可以看到輸入一個網址&#xff0c;瀏覽器和服務器進行了很多的交互。&#xff08;綠色部分&#…

python + selenium/appnium

Selenium 的自動化原理: selenium 自動化流程: 自動化程序調用Selenium 客戶端庫函數&#xff08;比如點擊按鈕元素&#xff09;客戶端庫會發送Selenium 命令 給瀏覽器的驅動程序瀏覽器驅動程序接收到命令后 ,驅動瀏覽器去執行命令瀏覽器執行命令瀏覽器驅動程序獲取命令執行的…

ubuntu環境下openssl庫的簡單使用

安裝 sudo apt-get install libssl-devaes算法demo 編譯&#xff1a;gcc aes.c -lssl -lcrypto -o aes 運行&#xff1a;./aes #include<stdio.h> #include<stdlib.h> #include<string.h> #include<openssl/aes.h>#define AES_KEY_SIZE 128 // AES密…

UNI-APP_app跳轉企業微信客服對話

uniapp打包app&#xff0c;app里點擊客服&#xff0c;跳轉企業微信客服對話。為什么是企業微信&#xff1f;因為只有微信小程序才可以通過 button 的 open-type‘share’ 打開微信客服對話框&#xff08;微信客服要在公眾號平臺配置&#xff09; 1、appId獲取 &#xff08;1&a…

OJAC近嶼智能張立賽博士揭秘GPT Store:技術創新、商業模式與未來趨勢

> - [Look&#xff01;&#x1f440;我們的大模型商業化落地產品](https://www.airecruitas.com/aigc) >- &#x1f4d6;更多AI資訊請&#x1f449;&#x1f3fe;[關注](https://mp.weixin.qq.com/s/85qwuIydaaydMQz2g0rgMA) >- [Free三天集訓營助教在線為您火熱答疑…

C#_各式各樣的參數(引用參數、輸出參數、數組參數、具名參數、可選參數)

引用參數 值參數和引用參數的區別在于傳參時是否會創建參數副本&#xff1a;值參數不會創建副本&#xff0c;而引用參數會創建副本。 換言之&#xff0c;值類型參數的參數與實體之間無直接關聯&#xff0c;修改參數不會對實體產生影響&#xff1b;引用類型參數的參數與實體可視…

6.微格式

微格式 經典真題 知道什么是微格式嗎&#xff1f;談談理解。在前端構建中應該考慮微格式嗎&#xff1f; 微格式介紹 所謂微格式&#xff0c;是建立在已有的、被廣泛采用的標準基礎之上的一組簡單的、開放的數據格式。 具體表現是把語義嵌入到 HTML 中&#xff0c;以便有助…

通過SSH 可以訪問Ubuntu Desktop嗎?

你可以在 Ubuntu Desktop 上開啟 SSH 服務&#xff0c;以便其他機器可以通過 SSH 連接到你的服務器。以下是在 Ubuntu Desktop 上開啟 SSH 服務的步驟&#xff1a; 打開終端 (Terminal) 應用程序。 輸入以下命令安裝 OpenSSH 服務器&#xff1a; sudo apt-get update sudo ap…

多任務爬蟲(多線程和多進程)

在一臺計算機中&#xff0c;我們可以同時打開多個軟件&#xff0c;例如同時瀏覽網頁、聽音樂、打字等&#xff0c;這是再正常不過的事情。但仔細想想&#xff0c;為什么計算機可以同時運行這么多軟件呢? 這就涉及計算機中的兩個名詞&#xff1a;多進程和多線程。 同樣&#xf…

通信入門系列——鎖相環、平方環、Costas環

微信公眾號上線&#xff0c;搜索公眾號小灰灰的FPGA,關注可獲取相關源碼&#xff0c;定期更新有關FPGA的項目以及開源項目源碼&#xff0c;包括但不限于各類檢測芯片驅動、低速接口驅動、高速接口驅動、數據信號處理、圖像處理以及AXI總線等 本節目錄 一、鎖相環 1、壓控振蕩…

重磅!MongoDB推出Atlas Stream Processing公共預覽版

日前&#xff0c;MongoDB宣布推出Atlas Stream Processing公共預覽版。 在Atlas平臺上有興趣嘗試這項功能的開發者都享有完全的訪問權限&#xff0c;可前往“閱讀原文”鏈接點擊了解更多詳細信息或立即開始使用。 開發者喜歡文檔型數據庫的靈活性、易用性以及Query API查詢方…

使用k-近鄰算法改進約會網站的配對效果(kNN)

目錄 谷歌筆記本&#xff08;可選&#xff09; 準備數據&#xff1a;從文本文件中解析數據 編寫算法&#xff1a;編寫kNN算法 分析數據&#xff1a;使用Matplotlib創建散點圖 準備數據&#xff1a;歸一化數值 測試算法&#xff1a;作為完整程序驗證分類器 使用算法&…

js過濾取出對象中改變的屬性和值

朋友公司的面試題 &#xff0c;取出對象中被改變的屬性和值 const obj1 { a: 1, b: 2, c: 4 }; const obj2 { a: 1, b: 2, c: 5 }; 方法1 function testFun(obj1, obj2) {const diff {};const keys1 Object.keys(obj1);const keys2 Object.keys(obj2);const allKyes keys…

【深度學習】Gemini 1.0 Pro 如何讓chatGPT扮演stable diffusion的提示詞工程師

google也出了一個chatGPT&#xff0c;免費申請使用&#xff1a; https://aistudio.google.com/app/prompts/new_chat https://github.com/google/generative-ai-docs/blob/main/site/en/tutorials/rest_quickstart.ipynb 模型信息&#xff1a; $ curl https://generativelan…