Vue+SpringBoot打造音乐偏好度推荐系统

在这里插入图片描述

目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、系统设计
    • 2.1 功能模块设计
      • 2.1.1 音乐档案模块
      • 2.1.2 我的喜好模块
      • 2.1.3 每日推荐模块
      • 2.1.4 通知公告模块
    • 2.2 用例图设计
    • 2.3 实体类设计
    • 2.4 数据库设计
  • 三、系统展示
    • 3.1 登录注册
    • 3.2 音乐档案模块
    • 3.3 音乐每日推荐模块
    • 3.4 通知公告模块
    • 3.5 系统基础模块
  • 四、样例代码
    • 4.1 修改单条歌曲喜爱配置
    • 4.2 音乐推荐
    • 4.3 通知查询
  • 五、免责说明


一、摘要

1.1 项目介绍

基于Vue+SpringBoot+MySQL 的音乐偏好度推荐系统,包含了音乐档案模块、我的喜爱配置模块、每日推荐模块和通知公告模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,音乐偏好度推荐系统基于角色的访问控制,给普通用户、音乐管理员使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

互联网的高速发展下,人民群众下载网络资源更加方便,不同类型的音乐在网络上得到广泛传播。与此同时人们想在网络上找到自己喜欢的歌曲,也变得困难。旧的音乐推荐系统以天为单位进行推荐,无法高效率地根据偏好度为用户推荐音乐。本文主要研究的是网络音乐的偏好度推荐系统,使用 Vue 开发前端部分,使用Spring Boot开发后端部分,使用MySQL作为数据库。本系统使用字符串来仿真模拟音乐数据,运用算法,根据用户在不同时间段的音乐喜好配置来推荐相应类型的音乐数据,达到网络音乐的偏好度推荐功能。

1.2 项目录屏


二、系统设计

2.1 功能模块设计

2.1.1 音乐档案模块

音乐档案模块是对音乐相关的信息进行管理,其中包括音乐名称、轻音乐值、摇滚音乐值、流行音乐值、爵士乐值、古典乐值、创建人、创建时间等,可以通过此模块对音乐档案进行添加、编辑更新、删除、查询操作。

2.1.2 我的喜好模块

我的喜好模块是用于用户配置自己的预约喜好,实现更精确的音乐推荐。我的喜好模块分为早中晚三个时间段,字段包括用户ID、用户姓名、早上喜爱、下午喜爱、晚上喜爱、备注、创建人、创建时间等,用户可以在此模块配置自己的音乐喜好。

2.1.3 每日推荐模块

每日推荐模块是网络音乐的偏好度推荐系统的核心,系统会根据用户的喜好配置,在不同时间段推荐用户相应的音乐,每日推荐数据由系统实时生成,不做数据持久化存储,所以没有数据库表。

2.1.4 通知公告模块

网络音乐的偏好度推荐系统中设计了通知公告模块,用于向用户推送一些通知,如系统停服维护、推荐算法公示、系统使用说明等信息,能够让用户更容易的使用该系统。通知公告的字段包括通知ID、通知标题、通知内容、附件、发布人、发布时间、备注、发布状态等,系统管理员可以发布通知公告,普通用户可以浏览查询通知公告信息。

2.2 用例图设计

用户角色用例图如下图所示。
在这里插入图片描述

管理员角色的用例图如下图所示。

在这里插入图片描述

2.3 实体类设计

在这里插入图片描述
在这里插入图片描述

2.4 数据库设计

在这里插入图片描述
在这里插入图片描述

三、系统展示

3.1 登录注册

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 音乐档案模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 音乐每日推荐模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.4 通知公告模块

在这里插入图片描述
在这里插入图片描述

3.5 系统基础模块

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四、样例代码

4.1 修改单条歌曲喜爱配置

@RequestMapping(value = "/setMySetting", method = RequestMethod.POST)
@ApiOperation(value = "修改单条歌曲喜爱配置")
public Result<MusicSetting> setMySetting(@RequestParam String like1,@RequestParam String like2,@RequestParam String like3){User currUser = securityUtil.getCurrUser();MusicSetting setting = iMusicSettingService.getById(currUser.getId());if(setting == null) {return ResultUtil.error("配置不存在");}setting.setLike1(like1);setting.setLike2(like2);setting.setLike3(like3);iMusicSettingService.saveOrUpdate(setting);return ResultUtil.success();
}

4.2 音乐推荐

@RequestMapping(value = "/getList", method = RequestMethod.GET)
@ApiOperation(value = "推荐10首歌")
public Result<List<Music>> getList(@RequestParam int h){User currUser = securityUtil.getCurrUser();MusicSetting setting = iMusicSettingService.getById(currUser.getId());if(setting == null) {return ResultUtil.error("你的配置不存在");}int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);String likeStr = "";if(h > 0) {hour = h;}if(hour > 5 && hour < 11) {// 6点到11点likeStr = setting.getLike1();} else if(hour > 10 && hour < 18) {// 11点到18点likeStr = setting.getLike2();} else {likeStr = setting.getLike3();}QueryWrapper<Music> qw = new QueryWrapper<>();if(Objects.equals("轻音乐",likeStr)) {qw.orderByDesc("value1");} else if(Objects.equals("摇滚音乐",likeStr)) {qw.orderByDesc("value2");} else if(Objects.equals("流行音乐",likeStr)) {qw.orderByDesc("value3");} else if(Objects.equals("爵士乐",likeStr)) {qw.orderByDesc("value4");} else if(Objects.equals("古典乐",likeStr)) {qw.orderByDesc("value5");}qw.last("limit 10");return new ResultUtil<List<Music>>().setData(iMusicService.list(qw));
}

4.3 通知查询

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询通知")
public Result<IPage<Message>> getByPage(@ModelAttribute Message message ,@ModelAttribute PageVo page){QueryWrapper<Message> qw = new QueryWrapper<>();if(!ZwzNullUtils.isNull(message.getTitle())) {qw.like("title",message.getTitle());}if(!ZwzNullUtils.isNull(message.getContent())) {qw.like("content",message.getContent());}if(!ZwzNullUtils.isNull(message.getUserName())) {qw.like("user_name",message.getUserName());}IPage<Message> data = iMessageService.page(PageUtil.initMpPage(page),qw);return new ResultUtil<IPage<Message>>().setData(data);
}

五、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/709415.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外包干了6个月,技术退步明显。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;2019年我通过校招踏入了重庆一家软件公司&#xff0c;开始了我的职业生涯。那时的我&#xff0c;满怀热血和憧憬&#xff0c;期待着在这个行业中闯出一片天地。然而&#xff0c;随着时间的推移&#xff0c;我发现自己逐渐陷入…

Dockerfile(1) - FROM 指令详解

FROM 指明当前的镜像基于哪个镜像构建dockerfile 必须以 FROM 开头&#xff0c;除了 ARG 命令可以在 FROM 前面 FROM [--platform<platform>] <image> [AS <name>]FROM [--platform<platform>] <image>[:<tag>] [AS <name>]FROM […

Java+SpringBoot+Vue+MySQL:员工健康管理技术新组合

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

TCP的三次握手和四次挥手 | 查看网络状态

三次握手和四次挥手是在计算机网络中用于建立和终止TCP连接的协议。这两个过程是TCP协议的重要组成部分&#xff0c;确保数据的可靠传输。 三次握手指的是在客户端和服务器之间建立连接时的步骤。具体流程如下&#xff1a; 客户端向服务器发送一个连接请求报文段&#xff08;…

Git教程-Git的基本使用

Git是一个强大的分布式版本控制系统&#xff0c;它不仅用于跟踪代码的变化&#xff0c;还能够协调多个开发者之间的工作。在软件开发过程中&#xff0c;Git被广泛应用于协作开发、版本管理和代码追踪等方面。以下是一个详细的Git教程&#xff0c;我们将深入探讨Git的基本概念和…

数据结构——lesson4带头双向循环链表实现

前言✨✨ &#x1f4a5;个人主页&#xff1a;大耳朵土土垚-CSDN博客 &#x1f4a5; 所属专栏&#xff1a;数据结构学习笔记​​​​​​ &#x1f4a5;双链表与单链表的区分&#xff1a;单链表介绍与实现 &#x1f4a5;对于malloc函数有疑问的:动态内存函数介绍 感谢大家的观看…

tomcat安装步骤流程

安装tomcat是基于安装java的基础上的 JAVA 举例说明&#xff1a; 关闭防火墙 下载java [rootlocalhost ~]#yum install java -y rootlocalhost ~]#yum install epel-release.noarch -y [rootlocalhost ~]#yum provides */javac [rootlocalhost data]#yum install java-1.8.0-o…

6.1 deeplabv3+的pth模型转换为rknn模型

和yolov5的pth模型转换为rknn模型类似&#xff0c;deeplabv3的pth模型转为rknn模型的步骤是&#xff1a; pth------>onnx-------->rknn 1.pth转为onnx 代码如下&#xff1a; #!/usr/bin/env python3 # -*- coding: utf-8 -*- # by [jackhanyuan](https://github.com/…

实现一个线程安全的单例模式

单例模式 单例模式能保证某个类在程序中只存在唯⼀⼀份实例,⽽不会创建出多个实例 某个类,在一个类,只应该创建出一个实例,使用单例模式,就可以对咱们的代码进行一个更严格的校验和检查 单例模式具体的实现⽅式有很多.最常⻅的是"饿汉"和"懒汉"两种单例…

DevEco Studio下载与安装(Windows)

下载地址&#xff1a; HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 安装时直接点击 next 即可。 运⾏已安装的DevEco Studio&#xff0c;⾸次使⽤&#xff0c;请选择Do not import settings&#xff0c;单击OK。 1.安装Node.js 如果本地有下载&#xff0c;可以…

前端JS 时间复杂度和空间复杂度

时间复杂度 BigO 算法的时间复杂度通常用大 O 符号表述&#xff0c;定义为 T(n) O(f(n)) 实际就是计算当一个一个问题量级&#xff08;n&#xff09;增加的时候&#xff0c;时间T增加的一个趋势 T(n)&#xff1a;时间的复杂度&#xff0c;也就相当于所消耗的时长 O&#xff1…

乐吾乐Web可视化RTSP播放

背景 乐吾乐致力于物联网和智能制造等场景的Web可视化平台和解决方案&#xff0c;其中摄像头播放必不可少。 当前国内摄像头都以RTSP协议为主&#xff0c;而HTML不能直接读取RTSP协议&#xff0c;因此需要一个转流服务。乐吾乐Web可视化播放RTSP也是如此&#xff1a; RTSP协…

理解计算着色器中glsl语言的内置变量

概要 本文通过示例的方式&#xff0c;着重解释以下几个内置变量&#xff1a; gl_WorkGroupSizegl_NumWorkGroupsgl_LocalInvocationIDgl_WorkGroupIDgl_GlobalInvocationID 基本概念 局部工作组与工作项 一个3x2x1的局部工作组示例如下&#xff0c;每个小篮格子表示一个工作项…

Vulnhub靶机:basic_pentesting_1

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;10.0.2.4&#xff09; 靶机&#xff1a;basic_pentesting_1&#xff08;10.0.2.6&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1a;https://www.vulnhub.com/en…

TCP缓存

TCP缓存是指TCP协议在数据传输过程中使用的一种机制&#xff0c;用于临时存储和管理数据包。它主要有三个作用&#xff1a;提高网络性能、保证数据的可靠性和实现流量控制。 首先&#xff0c;TCP缓存可以提高网络性能。当发送端发送数据时&#xff0c;TCP协议会将数据分割成若…

如何实现无公网ip远程访问本地安卓Termux部署的MySQL数据库【内网穿透】

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备&#xff0c;尽管最初并非设计为服务器&#xff0c;但是随着技术的进步我们可以将Android配置为生产力工具&#xff0c;变成一个随身…

VR危险环境模拟介绍|VR虚拟现实设备

VR危险环境模拟是指利用虚拟现实技术来模拟和展现各种危险环境&#xff0c;以便训练人员应对紧急情况、提高安全意识和应急反应能力。这种模拟可以涉及到工业、医疗、紧急救援等多个领域&#xff0c;旨在帮助人们在真实环境中面对危险时能够做出正确的应对和决策。 VR危险环境…

Linux alias命令(为复杂命令创建别名,其中命令可带选项或参数)

文章目录 Mastering the Linux alias Command&#xff08;精通Linux的alias命令&#xff09;1. Understanding the alias Command&#xff08;理解alias命令&#xff09;示例Ubuntu20.04 arm操作系统OpenEuler20.03 arm操作系统 2. Basic Usage of alias&#xff08;alias的基本…

AMEYA360:广和通5G智能模组SC171支持Android、Linux和Windows系统,拓宽智能物联网应用

世界移动通信大会2024期间&#xff0c;广和通宣布&#xff1a;5G智能模组SC171除支持Android操作系统外&#xff0c;还兼容Linux和Windows系统&#xff0c;帮助更多智能终端客户快速迭代产品&#xff0c;拓宽智能化应用覆盖范围。 广和通SC171系列基于高通QCM6490物联网解决方案…

基于Python3的数据结构与算法 - 07 归并排序

一、归并 引入 假设现在的列表分两段有序&#xff0c;如何将其合并成为一个有序列表。 这种操作成为一次归并。 归并的思路 分别对两个列表进行遍历&#xff0c;比较两个列表中的最小值&#xff0c;将更小的取出来。取出后一次进行上操作&#xff0c;直到其中一个列表中的元…