携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情
查询喜欢的音乐列表
这里的查询喜欢列表和查询音乐模块类似!
-
未给定歌曲名称
查询该用户所有收藏歌曲
-
给定歌曲名称参数
查询歌曲名称含有该参数的歌曲
请求和响应设计
请求:
{
get
/lovemusic/findloveMusic
data:{musicName:musicName}
}
响应:
{
status:0,
message:"查询到收藏的音乐",
data:
{
{
id:1,
title:"隆里电丝",
singer:"大傻",
time:"2022年8月2日",
url:"/music/get?path=隆里电丝",
user_id:2
}
...
}
}
代码实现
LoveMusicMapper接口新增方法
/**
* 查询该用户所有的收藏歌曲
* @param user_id
* @return
*/
List<Music> findLoveMusic(int user_id);
/**
* 通过用户id和歌曲名称查询收藏歌曲支持模糊匹配
* @param user_id
* @param musicName
* @return
*/
List<Music> findLoveMusicByUidAndMusicName(int user_id,String musicName);
xml实现接口方法
<!--在该用户id下通过歌曲名称查询歌曲(支持模糊查询)-->
<select id="findLoveMusicByUidAndMusicName" resultType="com.example.onlinemusic.model.Music">
select m.* from music as m, lovemusic as lm where m.id = lm.music_id
and lm.user_id = #{user_id} and m.title like concat('%',#{musicName},'%')
</select>
<!--通过id查询收藏列表-->
<select id="findLoveMusicById" resultType="com.example.onlinemusic.model.LoveMusic">
select * from lovemusic where id = #{id}
</select>
LoveMusicController代码实现
//通过音乐名称查询收藏列表
@RequestMapping("/findloveMusic")
public ResponseBodyMessage<List<Music>>
findLoveMusicByUidAndMusicName(@RequestParam(required = false) String musicName,
HttpServletRequest request){
//1.检查登入状态,未登入不创建回话
HttpSession session = request.getSession(false);
if(session==null||null==request.getSession().getAttribute(Contant.USERINFO_SESSION_KEY)){
//未登入状态
return new ResponseBodyMessage<>(-1,"请登入用户",null);
}
//登入状态,进行音乐查询
//1.获取到用户id
User user = (User)session.getAttribute(Contant.USERINFO_SESSION_KEY);
int user_id = user.getId();
System.out.println("user_id:"+user_id+" musicName:"+musicName);
//2.查询收藏列表
List<Music> musicList = null;
if(musicName==null){
//2.1歌曲名称为空,查询该用户所有收藏歌曲!
musicList = loveMusicMapper.findLoveMusic(user_id);
return new ResponseBodyMessage<>(0,"查询到收藏列表",musicList);
}
//2.2 歌曲名称不为空,模糊查询
musicList = loveMusicMapper.findLoveMusicByUidAndMusicName(user_id,musicName);
return new ResponseBodyMessage<>(0,"查询收藏列表成功",musicList);
}
验证结果
数据库信息:
登入user_di=10的用户
- 查询该用户所有收藏歌曲
- 模糊匹配查询指定歌曲