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://xiahunao.cn/news/2805124.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

模型 KISS复盘法

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_总纲目录。重在提升认知。反思过去&#xff0c;不断进步。 1 KISS复盘法的应用 1.1 团队项目复盘 在一个团队项目结束后&#xff0c;团队成员可以使用KISS模型进行复盘&#xff0c;以总结经验教训并改进未来的工作…

linux服务器tomcat日志中文出现问号乱码

目录 一、场景二、排查三、原因四、解决 一、场景 tomcat日志的中文出现问号乱码 乱码示例 ??[377995738417729536]????????? ac??????????????message:二、排查 1、使用locale命令查看服务器当前使用的语言包 发现只用的语言包为utf-8&#xff0…

安全生产:AI视频智能分析网关V4如何应用在企业安全生产场景中?

随着科技的不断进步&#xff0c;视频智能分析技术在安全生产领域中的应用越来越广泛。这种技术通过计算机视觉和人工智能算法&#xff0c;可以对监控视频进行自动分析和处理&#xff0c;以实现多种功能&#xff0c;如目标检测、行为识别、异常预警等。今天我们以TSINGSEE青犀AI…

QPaint绘制自定义仪表盘组件02

网上视频抄的&#xff0c;用来自己看一下&#xff0c;看完就删掉 最终效果 ui&#xff0c;创建一个空的widget widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPainter> #include <QTimer>QT_BEGIN_NAMESPACE namespace Ui { c…

金蝶字段添加过滤条件

金蝶字段加过滤条件 F_PLDE_Date<GetValue(FDate) and F_PLDE_Date1>GetValue(FDate)

vue video 多个视频切换后视频不显示的解决方法

先说一下我这边的需求是视频需要轮播&#xff0c;一个人员有多个视频&#xff0c;左右轮播是轮播某个人员下的视频&#xff0c;上下切换是切换人员。 vue 代码 <el-carouselindicator-position"none"ref"carousel"arrow"always":interval&qu…

Java设计模式 | 简介

设计模式的重要性&#xff1a; 软件工程中&#xff0c;设计模式&#xff08;design pattern&#xff09;是对软件设计中普遍存在&#xff08;反复出现&#xff09;的各种问题&#xff0c;所提出的解决方案。 这个术语由埃里希 伽玛&#xff08;Erich Gamma&#xff09;等人在1…

六、Vuex

六、Vuex 6.1 Vuex是什么 概念&#xff1a;专门在 Vue 中实现集中式状态&#xff08;数据&#xff09;管理的一个 Vue 插件&#xff0c;对 vue 应 用中多个组件的共享状态进行集中式的管理&#xff08;读/写&#xff09;&#xff0c;也是一种组件间通信的方 式&#xff0c;且…

猜字谜|构建生成式 AI 应用实践(一)

在 2023 亚马逊云科技 re:Invent 之后&#xff0c;细心的开发者们也许已经发现有一个很有趣的动手实验&#xff1a;开发一款可部署的基于大语言模型的字谜游戏&#xff1a; 该款游戏使用了文生图模型为玩家提供一个未知的提示词&#xff0c;玩家需要根据模型生成的图像来猜测该…

Rust通用代码生成器莲花发布红莲尝鲜版二十一发布介绍视频,前端代码生成物大翻新

Rust通用代码生成器莲花发布红莲尝鲜版二十一发布介绍视频&#xff0c;前端代码生成物大翻新 Rust通用代码生成器发布了红莲尝鲜版二十一的最新介绍视频&#xff0c;前端代码生成物大翻新。视频请见&#xff1a; Rust通用代码生成器&#xff1a;莲花&#xff0c;红莲尝鲜版二…

ShardingSphere 5.x 系列【15】分布式主键生成器

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列ShardingSphere 版本 5.4.0 源码地址:https://gitee.com/pearl-organization/study-sharding-sphere-demo 文章目录 1. 概述2. 配置3. 内置算法3.1 UUID3.2 Snowflake3.3 NanoId3.4 CosId3.5 Co…

【软考高项】【计算专题】- 3 - 进度类 - 双代号网络图

目录 一、知识点 1、画图 基本概念 作图流程 2 关键术语 &#xff08;1&#xff09;箭线 ​编辑&#xff08;2&#xff09;虚箭线 &#xff08;3&#xff09;节点 &#xff08;4&#xff09;起始节点 &#xff08;5&#xff09;终点节点 &#xff08;6&#xff09;中…

nginx-------- 高性能的 Web服务端 (三) 验证模块 页面配置

一、http设置 1.1 验证模块 需要输入用户名和密码 htpasswd 此命令来自于 httpd-tools 包&#xff0c;如果没有安装 安装一下即可 也可以安装httpd 直接yum install httpd -y 也一样 第一次生成文件htpasswd -c 文件路径 姓名 交互式生成密码 htpasswd -bc 文…

解决Maven爆红以及解决 Idea 卡在 Resolving问题

关于 Idea 卡在 Resolving&#xff08;前提是Maven的setting.xml中配置好了阿里云和仓库&#xff09; 参考文章https://blog.csdn.net/jiangyu1013/article/details/95042611 解决Maven爆红参考文章https://devpress.csdn.net/beijing/656d993b76f0791b6eca7bb0.html?dp_toke…

无人机的视频图传技术

在操控无人机时&#xff0c;视频图传技术显得尤为关键。通过这项技术&#xff0c;无人机的摄像头所捕捉的画面能实时回传至遥控器&#xff0c;使操作者全面掌握无人机的拍摄情况。同时&#xff0c;无人机图传技术也是衡量无人机性能的重要标准&#xff0c;它关乎飞行距离与时间…

TensorFlow2.x 精选笔记(1)数据基本操作与线性代数

学习参考&#xff1a; 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning 一、数组与张量 虽然张量看起来是复杂的对象&#xff0c;但它们可以理解为向量和矩阵的集合。理解向量和矩阵对于理解张量至关重要。 向量是元素的一维列表&#xff0c;向量是一…

MATLAB环境下基于NLEO的算法的脑电EEG信号自发活动瞬态检测

自发脑电信号是一种非平稳性很强的随机信号。在传统的脑电信号处理中&#xff0c;较公认的处理方法大多是建立在假设脑电图是准平稳信号的基础上&#xff0c;即认为它可以分成若干段&#xff0c;每一段的过程基本平稳&#xff0c;但段上叠加着瞬态。瞬态信号是有别于背景节率&a…

PNPM 批量检查和更新项目依赖

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

C++奇怪的 ::template

答疑解惑 怎么会有::template的写法 起初 在阅读stl的源码的时候&#xff0c;发现了一条诡异的代码 // ALIAS TEMPLATE _Rebind_alloc_t template<class _Alloc,class _Value_type> using _Rebind_alloc_t typename allocator_traits<_Alloc>::template rebind…

重大更新:GPT-4 API 现全面向公众开放!

重大更新&#xff1a;GPT-4 API 现全面向公众开放&#xff01; 在 AIGC&#xff08;人工智能生成内容&#xff09;领域内&#xff0c;我们一直致力于跟踪和分析如 OpenAI、百度文心一言等大型语言模型&#xff08;LLM&#xff09;的进展及其在实际应用中的落地情况。我们还专注…