59b6b251db137360ec9ca1c3b9b4079205768aa1
- 引入 Optional 类以提高代码的可读性和健壮性 - 使用 countByTargetIdAndTargetType 方法直接统计评论数量,避免不必要的更新操作 - 添加类型判断,确保只处理音乐类型的评论
音乐播放应用系统
项目概述
这是一个功能完整的音乐播放应用系统,包含前后端两部分。系统支持用户注册登录、音乐播放、歌单管理、歌手管理、评论互动等功能,为用户提供全面的音乐体验。
系统架构
本项目采用前后端分离架构:
- 前端:基于Vue 3的单页面应用
- 后端:基于Spring Boot的RESTful API服务
- 数据库:MySQL关系型数据库
- 缓存:Redis缓存服务
技术栈
后端技术栈
- 核心框架:Spring Boot 3.x
- ORM框架:Spring Data JPA + Hibernate
- 安全认证:Sa-Token
- 数据库:MySQL 8.x
- 缓存:Redis
- API文档:Knife4j/Swagger
- 文件处理:自定义文件上传服务
前端技术栈
- 核心框架:Vue 3 (组合式API)
- 构建工具:Vite
- 状态管理:Pinia
- UI组件:Element Plus
- 路由管理:Vue Router
- HTTP请求:Axios
- 音频处理:Web Audio API
功能模块
1. 用户系统
- 用户注册与登录
- 个人信息管理
- 收藏管理(音乐、歌单、歌手)
- 播放历史记录
- 权限控制(普通用户/管理员)
2. 音乐播放系统
- 音乐播放、暂停、上一首、下一首
- 播放列表管理
- 播放模式(顺序播放、单曲循环、列表循环)
- 歌词同步显示
- 进度控制与音量调节
- 播放统计
3. 音乐管理系统
- 音乐上传与编辑
- 音乐分类管理
- 音乐搜索
- 热门音乐推荐
- 最新音乐展示
4. 歌手管理系统
- 歌手信息管理
- 歌手分类
- 歌手音乐关联
- 歌手搜索
5. 歌单管理系统
- 歌单创建与编辑
- 歌单分类
- 歌单音乐管理
- 歌单收藏
- 官方推荐歌单
6. 评论系统
- 发表评论
- 回复评论
- 评论管理
7. 首页推荐系统
- 轮播图展示
- 热门音乐推荐
- 最新音乐展示
- 推荐歌单
- 热门歌手
数据模型
核心实体
- 用户(User):用户基本信息
- 音乐(Music):音乐信息、文件路径、歌词
- 歌手(Singer):歌手信息
- 歌单(Playlist):歌单信息
- 评论(Comment):评论内容
- 类型(Type):音乐类型、歌手类型、歌单类型
- 轮播图(Banner):首页轮播图
核心关系
- 用户-音乐:收藏关系、播放历史
- 用户-歌单:创建关系、收藏关系
- 用户-歌手:收藏关系
- 音乐-歌手:多对多关系
- 音乐-类型:多对多关系
- 歌单-音乐:多对多关系
- 歌手-类型:多对一关系
- 歌单-类型:多对一关系
部署指南
环境要求
- JDK 17+
- Node.js 16+
- MySQL 8.x
- Redis 6.x
后端部署
-
配置数据库
CREATE DATABASE music_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -
修改配置文件
- 编辑
music-houduan/src/main/resources/application.yml - 配置数据库连接信息
- 配置Redis连接信息
- 配置文件上传路径
- 编辑
-
构建项目
cd music-houduan mvn clean package -DskipTests -
运行项目
java -jar target/music-houduan-1.0.0.jar
前端部署
-
安装依赖
cd music-qianduan npm install -
修改配置
- 编辑
.env文件,配置API地址
- 编辑
-
构建项目
npm run build -
部署静态资源
- 将
dist目录下的文件部署到Web服务器
- 将
使用说明
管理员账号
- 用户名:admin
- 密码:123456
普通用户
- 可以自行注册或使用以下测试账号:
- 用户名:test
- 密码:123456
基本操作流程
-
音乐播放
- 在首页或音乐列表页选择音乐
- 点击播放按钮开始播放
- 使用播放器控制播放进度、音量等
-
歌单管理
- 登录后可创建个人歌单
- 添加音乐到歌单
- 收藏其他用户的歌单
-
音乐上传(管理员)
- 登录管理员账号
- 进入后台管理
- 上传音乐文件和封面
-
评论互动
- 在音乐、歌单、歌手详情页发表评论
- 回复其他用户的评论
系统截图
(此处可添加系统主要页面的截图)
开发团队
- 前端开发:XXX
- 后端开发:XXX
- 产品设计:XXX
- 测试:XXX
版权声明
本项目仅用于学习和演示目的,不得用于商业用途。音乐文件版权归原作者所有。
联系方式
如有问题或建议,请联系:example@example.com
Description
Languages
Vue
53.8%
Java
38.2%
JavaScript
7.6%
CSS
0.4%