项目7-音乐播放器4

1.喜欢/收藏音乐模块设计

1.1 请求响应模块设计

请求:
{
        post,
        /lovemusic/likeMusic
        data: id//音乐id
}
响应:
{
        "status": 0,
        "message": "点赞音乐成功",
        "data": true
}

1.2.后端代码

 步骤:

1.查询是否已经收藏过(收藏过返回false)

2.插入成功(true)

3.插入失败(false)

数据库

MAPPER

Service

Controller

2.查询喜欢的音乐模块设计

2.1 请求响应设计

此处查询需要满足几个功能:
1. 支持模糊查询
2. 支持传入参数为空

2.2 前端代码 

mapper

service

controller

2.3 后端接口测试

3. SECTION1和SECTION2的前端代码 

 

 

音乐播放与之前的一样 

4.移除喜欢的音乐模块设计

请求:
{
        post,
        /lovemusic/deletelovemusic,
        data:{id:id}
}
响应:
{
        "status": 0,
        "message": "取消收藏成功!",
        "data": true
}

4.1 后端代码 

 public Boolean deleteLikeMusic(Integer likeuserId,Integer likemusicId){
        if(loveMusicMapper.deleteLikeMusic(likeuserId,likemusicId)<1){
            return false;
        }
        return true;
    }
@RequestMapping("/deletelovemusic")
    public Result deleteLikeMusic(@RequestParam(required = false) Integer musicId,HttpSession httpSession){
        if(musicId==null){
            return Result.fail(Constant.RESULT_CODE_FAIL,"你没有选中任何音乐取消收藏");
        }
        User user=(User) httpSession.getAttribute(Constant.USERINFO_SESSION_KEY);
        Integer userId=user.getUserId();
        if(loveMusicService.deleteLikeMusic(userId,musicId)){
            return Result.success(true);
        }
        return Result.fail(Constant.RESULT_CODE_FAIL,"删除失败");
    }

4.2 后端接口测试

4.3 前后端交互 

5.修改后端代码,当删除音乐时lovemusic表中有关该音乐的也需要删除

待完善!!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣:120. 三角形最小路径和

力扣&#xff1a;120. 三角形最小路径和 给定一个三角形 triangle &#xff0c;找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 1 的两个结点。也就是说&#xff0c;如果正…

特殊文件-XML文件

简介 XML全称&#xff1a;Etensible Markup Language&#xff0c;可扩展标记语言 特点 标签都是成对出现的&#xff0c;一个标签就是一个元素一个xml文件中有且只有一个根标签标签也是可以携带属性的 IDEA创建XML 简单示例 必须有抬头标签是可以携带属性的&#xff0c;但是属性…

c++程序员简历中项目怎么写?避免踩坑!

C开发 9 年&#xff0c;目前人在大厂&#xff0c;做 C 相关的开发&#xff0c;作为资深 C 面试官&#xff0c;我来聊聊面试官眼中的校招简历中的 C 项目吧&#xff0c;希望对各位学弟学妹有帮助。 1. 简历中如何介绍自己的项目&#xff1f; 从面试官的角度来说&#xff0c;我…

QAnything部署Mac m1环境

本次安装时Qanything已经更新到了v1.3.3&#xff0c;支持纯python安装。安装过程比较简单&#xff0c;如下&#xff1a; QAnything/README_zh.md at qanything-python-v1.3.1 netease-youdao/QAnything GitHub 首先需要用Anaconda3创建隔离环境&#xff0c;简要说明下Anaco…

中型企业用CRM管理软件,求推荐?

中型企业是指哪些企业呢&#xff1f; 指的是员工人数在数百至数千人之间&#xff0c;年营业额在几千万至数亿元之间的企业。这些企业通常已经形成了较为稳定的业务模式和市场定位&#xff0c;有一定的市场份额和客户基础&#xff0c;同时也在积极拓展新的业务领域和市场空间。…

工业控制(ICS)---OMRON

OMRON FINS 欧姆龙厂商 命令代码(Command CODE)特别多&#xff0c;主要关注读写相关&#xff0c;如&#xff1a; Memory Area Read (0x0101) Memory Area Write (0x0102) Multiple Memory Area Read (0x0104) Memory Area Transfer (0x0105) Parameter Area Read (0x0201) Pa…

搜维尔科技:【工业仿真】煤矿安全知识基础学习VR系统

产品概述 煤矿安全知识基础学习VR系统 系统内容&#xff1a; 煤矿安全知识基础学习VR系统内容包括&#xff1a;下井流程&#xff08;正确乘坐罐笼、班前会、井下行走注意事项、工作服穿戴、入井检身及人员清点、下井前准备工作、提升运输安全&#xff09;&#xff1b;运煤流程…

Windows平台RTMP推送|轻量级RTSP服务如何实现摄像头叠加到屏幕输出

技术背景 我们在用Windows平台RTMP推送、轻量级RTSP服务实现无纸化同屏、智慧教室等场景的时候&#xff0c;有个需求是&#xff0c;需要主讲人&#xff08;或老师&#xff09;的摄像头数据&#xff0c;叠加到屏幕上输出出去&#xff0c;这就是今天我们需要讲的视频视频叠加。 …

appium2报错:Failed to create session. ‘automationName‘ can‘t be blank

1、问题概述&#xff1f; 今天在window环境中安装了appium2.5.2版本&#xff0c;通过appium inspector连接真机的时候报错如下&#xff1a; Failed to create session. automationName cant be blank 原因分析&#xff1a;这是因为appium2的比appium1有了很大的改进&#xff…

C++ 类和对象(二)

目录 1.前言 2.类的六个默认成员函数 3.构造函数 3.1概念 3.2特性 3.2.1 函数名与类名相同 3.2.2 无返回值 3.2.3对象实例化时自动调用 3.2.4 构造函数可以重载 3.2.5 默认构造函数的自动生成 3.2.6 默认构造函数对内置类型成员的初始化 3.2.7 默认构造函数的定义 4…

小红书app缓存清除

1.背景 小伙伴们&#xff0c;手机app运行产生的缓存在不断侵占着我们的收集的内存&#xff0c;运行个半年发现内存不足20%。其实很多情况我们通过各个手机自带的缓存清除功能&#xff0c;就可以把app运行过程中产生的内存清除掉&#xff0c;节省我们不少的空间。想一想手机上a…

二分查找的时间复杂度的讲解

二分查找的代码&#xff1a; 二分查找的时间复杂度&#xff1a; 最坏的情况&#xff1a; 就是找不到和查找区间只剩一个值的时候&#xff0c;这两种都是最坏的结果&#xff0c;假设查找了x次&#xff0c;达到了最坏的结果&#xff1a; N代表每一次折半区间数据的个数&#xf…

当你拥有Xbox-GamePass就能更快体验NewGame

如果你有游戏通行证终极通行证&#xff0c;那么你就可以看到很多预售的游戏&#xff0c;以及更多游戏内容。 Shadow of the Tomb Raider: Definitive Edition《古墓丽影:暗影&#xff08;终极版&#xff09;》 征服残酷无情的丛林&#xff0c;并活着走出来。探索充满裂隙和幽深…

I2C,UART,SPI(STM32、51单片机)

目录 基本理论知识&#xff1a; 并行通信/串行通信&#xff1a; 异步通信/同步通信&#xff1a; 半双工通信/全双工通信: UART串口&#xff1a; I2C串口&#xff1a; SPI串口&#xff1a; I2C在单片机中的应用&#xff1a; 软件模拟&#xff1a; 51单片机&#xff1a;…

Linux的进程管理

进程 程序运行在操作系统中&#xff0c;是被操作系统所管理的。 为管理运行的程序&#xff0c;每一个程序在运行的时候&#xff0c;便被操作系统注册为系统中的一个&#xff1a;进程 并会为每一个进程都分配一个独有的&#xff1a;进程ID&#xff08;进程号&#xff09; 查看…

C++进阶——继承

前言&#xff1a;从这篇文章开始&#xff0c;我们进入C进阶知识的分享&#xff0c;在此之前&#xff0c;我们需要先来回顾一个知识&#xff1a; C语言有三大特性&#xff0c;分别是封装、继承和多态&#xff0c;而我们前边所分享的各种容器类&#xff0c;迭代器等&#xff0c;…

基于SpringBoot的“线上教学平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“线上教学平台”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 线上教学平台结构图 管理员登录界面图 学员管理界…

网络工程师-----第一天

线缆与进制转换 进制转换: 1.十进制&#xff1a; 都是以0-9这九个数字组成&#xff0c;不能以0开头。 2.二进制&#xff1a; 由0和1两个数字组成。 3.八进制&#xff1a; 由0-7数字组成&#xff0c;为了区分与其他进制的数字区别&#xff0c;开头都是以0开始。 4.十六进制…

Python数据结构【二】查找

前言 可私聊进一千多人Python全栈交流群&#xff08;手把手教学&#xff0c;问题解答&#xff09; 进群可领取Python全栈教程视频 多得数不过来的计算机书籍&#xff1a;基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。 &#x1f680;&a…

手动实现简易版RPC(下)

手动实现简易版RPC(下) 前言 什么是RPC&#xff1f;它的原理是什么&#xff1f;它有什么特点&#xff1f;如果让你实现一个RPC框架&#xff0c;你会如何是实现&#xff1f;带着这些问题&#xff0c;开始今天的学习。 接上一篇博客 手动实现简易版RPC&#xff08;上&#xff…