# 音渊APP-java **Repository Path**: weng23/music-java ## Basic Information - **Project Name**: 音渊APP-java - **Description**: 音渊APP后端api - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-24 - **Last Updated**: 2025-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 音乐平台后端服务 ## 项目简介 这是一个基于Spring Boot开发的音乐平台后端服务,提供用户管理、音乐管理、歌单管理、评论系统等功能。 ## 技术栈 ### 核心框架 - Spring Boot 2.7.6 - 主框架 - Spring MVC - Web开发框架 ### 数据访问 - MyBatis 2.3.0 - ORM框架 - PageHelper 1.4.2 - MyBatis分页插件 - MySQL 8.0 - 关系型数据库 ### 工具库 - Lombok - 简化对象封装 - Maven - 项目构建管理 ## 系统架构 ### 核心功能模块 - 用户管理模块 - 音乐管理模块 - 歌单管理模块 - 收藏管理模块 - 评论管理模块 - 文件上传模块 ### 封装设计 - 全局异常捕获处理 (GlobalExceptionHandler) - 统一处理系统异常 - 自定义业务异常处理 - 业务异常 (BizException) - 自定义业务异常类 - 支持错误码和错误信息 - 异常枚举 (ErrorCode) - 统一定义系统错误码 - 规范错误信息管理 - 统一返回结果 (Result) - 规范化接口响应格式 - 支持成功/失败状态 - 支持数据封装 - 分页功能 (Page) - 支持列表数据分页 - 支持动态排序 ## 详细功能说明 ### 文件管理 - 支持音频文件(MP3)上传 - 支持图片文件上传 - 文件服务器统一管理 ### 用户管理 - 用户的增删改查 - 删除用户时自动处理关联数据: - 删除相关收藏记录 - 将关联歌单作者改为"佚名" - 分页查询支持多条件筛选: - 支持按ID筛选 - 支持按性别筛选 - 支持用户名模糊查询 ### 音乐管理 - 歌曲的增删改查 - 查询支持多维度筛选: - 支持按ID查询 - 支持按歌名查询 - 支持按歌手查询 - 支持按热度排序 - 使用分页查询优化大数据量场景 ### 歌单管理 - 歌单的增删改查 - 创建/修改歌单时自动校验用户是否存在 - 支持歌单与歌曲的关联管理 - 查询支持多条件筛选: - 支持按ID查询 - 支持按名称模糊查询 - 支持按用户ID筛选 - 支持按时间范围筛选 ### 收藏管理 - 支持歌曲收藏功能 - 收藏时自动校验歌曲是否存在 - 防止重复收藏同一首歌 - 记录收藏时间 ### 评论系统 - 评论的增删改查 - 支持多级评论(递归查询子评论) - 评论关联用户信息,查询时自动隐藏用户密码 ### 查询优化 - 时间范围查询支持: - 可仅指定起始时间 - 可仅指定终止时间 - 可同时指定起止时间 - 支持模糊查询: - 用户名模糊查询 - 歌单名模糊查询 - 歌曲名模糊查询 - 数据更新: - 支持部分字段更新 - 支持批量操作 ## 技术实现特点 - 采用Spring Boot框架开发,提供高效的开发体验 - 使用MyBatis实现数据持久化,优化SQL执行效率 - 实现统一异常处理机制(BizException),规范化异常处理流程 - 使用PageHelper实现分页查询,优化大数据量查询性能 - 采用事务管理确保数据一致性,保障业务操作的原子性 - 实现统一的响应格式和错误码管理,提升接口规范性 ### 数据校验和业务规则 - 外键关联校验: - 用户存在性校验 - 歌曲存在性校验 - 歌单存在性校验 - 重复数据校验: - 收藏重复校验 - 用户名重复校验 - 数据完整性: - 级联删除(如用户删除时处理关联数据) - 级联更新(如用户信息变更影响关联数据) ## 开发环境 - JDK 1.8+ - Maven 3.6+ - MySQL 5.7+