当前位置: 首页 > news >正文

【开源】基于Vue+SpringBoot的音乐平台

在这里插入图片描述

项目编号: S 055 ,文末获取源码。 \color{red}{项目编号:S055,文末获取源码。} 项目编号:S055,文末获取源码。


目录

  • 一、摘要
    • 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. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

相关文章:

【开源】基于Vue+SpringBoot的音乐平台

项目编号&#xff1a; S 055 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S055&#xff0c;文末获取源码。} 项目编号&#xff1a;S055&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示 四、核心代码4.1 查询单首…...

20、Resnet 为什么这么重要

(本文已加入“计算机视觉入门与调优”专栏,点击专栏查看更多文章信息)r esnet 这一网络的重要性,上一节大概介绍了一下,可以从以下两个方面来有所体现:第一是 resnet 广泛的作为其他神经网络的 back bone;第二是 resnet 是 AI 芯片厂家对标性能时,在视觉领域尤其是图像…...

Git Bash环境下用perl脚本获取uuid值

在Linux环境下&#xff0c;比如在ubuntu就直接有uuidgen命令直接获取uuid值。在Windows环境下常用的git bash中没有对应的命令&#xff0c;略有不便。这里用脚本写一个uuidgen&#xff0c;模拟Linux环境下的uuidgen命令。 #! /usr/bin/perl use v5.14; use Win32;sub uuidGen {…...

linux安装部署redis

1、下载redis包2、解压3、进入解压路径编译安装4、修改配置文件使redis后台运行5、启动 1、下载redis包 https://redis.io/download/ 2、解压 tar -zxvf redis-7.2.3.tar.gz3、进入解压路径编译安装 cd redis-7.2.3 make && make install默认安装路径&#xff1a; …...

Redis 数据结构详解

分类 编程技术 Redis 数据类型分为&#xff1a;字符串类型、散列类型、列表类型、集合类型、有序集合类型。 Redis 这么火&#xff0c;它运行有多块&#xff1f;一台普通的笔记本电脑&#xff0c;可以在1秒钟内完成十万次的读写操作。 原子操作&#xff1a;最小的操作单位&a…...

03-IDEA集成Git,初始化本地库,添加远程仓库,提交,拉取,推送,分支的快捷操作

IDEA集成Git 创建Git忽略文件 不同的IDE开发工具有不同的特点文件,这些文件与项目的实际功能无关且不参与服务器上的部署运行, 把它们忽略掉能够屏蔽之间的差异 局部忽略配置文件: 在本地仓库的根目录即项目根目录下直接创建.gitignore文件, 以文件后缀或目录名的方式忽略指定…...

Python---格式化输出与%百分号----涉及转义符 \ 反斜杠的使用

相关链接Python--格式化输出中的转义符号----\t 制表符&#xff08;空格的&#xff09;和\n&#xff08;换行的&#xff09;_唯元素的博客-CSDN博客 Python---字符串&#xff08;用单、双引号、 三单/双引号定义。反斜杠 \ 转义&#xff0c;单在双内/双在单内 &#xff09;-CS…...

大华技术GIS开发工程师24届秋招三场面试Offer面经

本文介绍2024届秋招中&#xff0c;大华技术股份有限公司的GIS开发工程师岗位的3场面试基本情况、提问问题等。 10月投递了大华技术股份有限公司的GIS开发工程师岗位&#xff0c;所在部门为研发中心。目前完成了一面、二面与三面等全部流程&#xff0c;并有幸获得Offer&#xff…...

前端三大MV*模式:MVC、mvvm、mvp模式介绍

MVC&#xff08;同步通信为主&#xff09;&#xff1a;Model、View、Controller MVP(异步通信为主)&#xff1a;Model、View、Presenter MVVM(异步通信为主)&#xff1a;Model、View、ViewModel mvc模式介绍 MVC&#xff08;Model–View–Controller&#xff09;模式是软件…...

分享一些Git的常用命令

常用命令 命令名称作git config —global user.name 用户名设置用户签名git config —global user.email 邮箱设置用户签名git init初始化本地库git status查看本地库状态git add 文件名添加到暂存区git commit -m “日志信息” 文件名提交到本地库git reflog查看历史记录git r…...

C语言第四十二弹---使用多种方法实现字符串左旋转

使用多种方法实现字符串左旋转 一、 左移法 思路&#xff1a;每一次通过移动第一个字符&#xff0c;然后把后面的字符前移&#xff0c;然后再进行移动第一个字符再前移。故需要使用嵌套循环&#xff0c;外层循环控制移动第一个字符的次数&#xff0c;第二个循环进行字符前移 …...

REST-Assured--JAVA REST服务自动化测试的Swiss Army Knife

什么是REST-Assured REST Assured是一套基于 Java 语言实现的开源 REST API 测试框架 Testing and validation of REST services in Java is harder than in dynamic languages such as Ruby and Groovy. REST Assured brings the simplicity of using these languages into t…...

docker中的网络不通问题

前言 有时候在使用docker时&#xff0c;会莫名其妙docker内部与外网网络不通 docker与防火墙 docker内部的网络与宿主机的防火墙有千丝万缕的联系&#xff0c;docker启动的那一刻如果防火墙是启动的&#xff0c;docker内部与外部就会走防火墙转发策略&#xff0c;这个时候&a…...

Android 12.0 修改Android系统的通知自动成组的数量

场景: Android 系统对显示在通知列表中的同一个应用的通知进行分组管理,即相同的packageName中,当通知数量达到系统默认指定的数量时,会自动成一组. Android 12.0 中系统默认的自动成组数如下所示: 核心路径 : frameworks/base/core/res/res/values/config.xml<!-- 来自同…...

Debian12配置ssh服务器

Debian12配置ssh服务器 安装ssh-server sudo apt install openssh-server启动ssh sudo systemctl start ssh启用ssh sudo systemctl enable ssh查看ssh状态 sudo systemctl status ssh可以看到有enabled和running字样 说明ssh启用成功 连接到服务器 # username是你的用…...

飞天使-elk搭建补充

文章目录 es 集群创建密码kibana 配置文件以及和nginx配置pm2 安装定期清理索引以及告警logstash 配置filebeat 配置文件nginx 的日志索引 es 集群创建密码 参考这篇博文进行设置&#xff1a;https://juejin.cn/post/7079955586330132487 最后的效果 #curl -XGET http://127.0…...

YOLOv7+姿态估计Pose+tensort部署加速

YOLOv7-Pose YOLOv7是一种高效的目标检测算法&#xff0c;用于实时物体检测。姿态估计Pose是一种用于识别和跟踪人体关键点的技术。TensorRT是一个针对深度学习推理任务进行加速的高性能推理引擎。 将YOLOv7和姿态估计Pose与TensorRT结合可以实现快速而准确的目标检测和姿态估…...

Java数据结构 之 包装类简单认识泛类

生命不息&#xff0c;奋斗不止 目录 1. 什么是包装类&#xff1f; 1.1 装箱和拆箱 1.2 自动装箱和自动拆箱 2. 什么是泛型 3. 引出泛型 3.1 语法 4 泛型类的使用 4.1 语法 4.2 示例 4.3 类型推导(Type Inference) 5. 裸类型(Raw Type) &#xff08;了解&#xff09…...

人工智能 - 人脸识别:发展历史、技术全解与实战

目录 一、人脸识别技术的发展历程早期探索&#xff1a;20世纪60至80年代技术价值点&#xff1a; 自动化与算法化&#xff1a;20世纪90年代技术价值点&#xff1a; 深度学习的革命&#xff1a;21世纪初至今技术价值点&#xff1a; 二、几何特征方法详解与实战几何特征方法的原理…...

多元排列熵 Multivariate Permutation Entropy

熵(Entropy) 信息论中熵的概念首次被香农提出&#xff0c;目的是寻找一种高效/无损地编码信息的方法&#xff1a;以编码后数据的平均长度来衡量高效性&#xff0c;平均长度越小越高效&#xff1b;同时还需满足“无损”的条件&#xff0c;即编码后不能有原始信息的丢失。这样&a…...

Windows安装MySQL8.2

Windows安装MySQL8.2 三种安装模式 默认自定义完整 本案例选择自定义 选择安装目录 勾选 Run MySQL Configurator 配置MYSQL 默认为开发者模式 在 Config Type 下拉列表中选择数据中心 设置 root 账号密码...

Windows下安全认证机制

NTLM&#xff08;NT LAN Manager&#xff09; NTLM协议是在Microsoft环境中使用的一种身份验证协议&#xff0c;它允许用户向服务器证明自己是谁&#xff08;挑战&#xff08;Chalenge&#xff09;/响应&#xff08;Response&#xff09;认证机制&#xff09;&#xff0c;以便…...

(学习笔记)Xposed模块编写(一)

前提&#xff1a;需要已经安装Xposed Installer 1. 新建一个AS项目 并把MainActvity和activity_main.xml这两个文件删掉&#xff0c;然后在AndriodManifest.xml中去掉这个Activity的声明 2. 在settings.gralde文件中加上阿里云的仓库地址&#xff0c;否则Xposed依赖无法下载 m…...

SSM框架(五):Maven进阶

文章目录 一、分模块开发1.1 分模块开发的意义1.2 步骤 二、依赖管理2.1 依赖传递2.2 可选依赖和排除依赖 三、继承与聚合3.1 聚合3.2 继承3.3 聚合和继承区别 四、属性4.1 pom文件的依赖使用属性4.2 资源文件使用属性 五、多环境开发六、跳过测试七、私服7.1 下载与使用7.2 私…...

【计算机视觉】基于OpenCV计算机视觉的摄像头测距技术设计与实现

基于计算机视觉的摄像头测距技术 文章目录 基于计算机视觉的摄像头测距技术导读引入技术实现原理技术实现细节Python-opencv实现方案获取目标轮廓步骤 1&#xff1a;图像处理步骤 2&#xff1a;找到轮廓步骤完整代码 计算图像距离前置技术背景与原理步骤 1&#xff1a;定义距离…...

Java项目实战《苍穹外卖》 四、Swagger接口文档

以铜为镜&#xff0c;可以正衣冠&#xff1b;以人为镜&#xff0c;可以明得失&#xff1b;以史为镜&#xff0c;可以知兴替。 - - - 李世民 系列文章目录 苍穹外卖是黑马程序员2023年的Java实战项目&#xff0c;作为业余练手用&#xff0c;需要源码或者课程的可以找我&#xff…...

深度学习——第03章 Python程序设计语言(3.1 Python语言基础)

无论是在机器学习还是深度学习中&#xff0c;Python已经成为主导性的编程语言。而且&#xff0c;现在许多主流的深度学习框架&#xff0c;例如PyTorch、TensorFlow也都是基于Python。本课程主要是围绕“理论实战”同时进行&#xff0c;所以本章将重点介绍深度学习中Python的必备…...

【人工智能Ⅰ】实验6:回归预测实验

实验6 回归预测实验 一、实验目的 1&#xff1a;了解机器学习中数据集的常用划分方法以及划分比例&#xff0c;并学习数据集划分后训练集、验证集及测试集的作用。 2&#xff1a;了解降维方法和回归模型的应用。 二、实验要求 数据集&#xff08;LUCAS.SOIL_corr-实验6数据…...

前端下载文件的方法-blob下载

前端经常会遇到下载文件的需求&#xff0c;后端一般提供的以下两种方法&#xff1a; 文件地址。后端直接提供要下载的文件地址&#xff0c;常用于图片、音视频等静态文件文件流。后端返回文件流&#xff0c;常用于excel等动态文件 一、a 标签下载 1、直接html使用a标签下载 …...

zookeeper+kafka+ELK+filebeat集群

目录 一、zookeeper概述&#xff1a; 1、zookeeper工作机制&#xff1a; 2、zookeeper主要作用&#xff1a; 3、zookeeper特性&#xff1a; 4、zookeeper的应用场景&#xff1a; 5、领导者和追随者&#xff1a;zookeeper的选举机制 二、zookeeper安装部署&#xff1a; 三…...