云计算百科
云计算领域专业知识百科平台

Spring Boot音乐服务器项目-喜欢/收藏音乐模块

接口设计

包括添加收藏、查询收藏和移除收藏三个主要操作。

请求格式

{
"method": "post",
"url": "/lovemusic/likeMusic",
"data": {
"id": // 音乐id
}
}

响应格式

{
"status": 0,
"message": "点赞音乐成功",
"data": true
}


三、Mapper层(数据访问层)

收藏/喜欢⾳乐处理逻辑:

1、需要查询此次收藏⾳乐是否之前收藏过,收藏过则不能添加 

2、没有收藏过,插⼊数据库中⼀条记录

1. LoveMusicMapper

/**
* 检查是否已经收藏过该⾳乐
* @param userId
* @param musicId
* @return
*/
Music findLoveMusicByMusicIdAndUserId(int userId, int musicId);

/**
* 点赞/收藏⾳乐
* @param userId
* @param musicId
* @return
*/
boolean insertLoveMusic(int userId, int musicId);

2. XML映射(LoveMusicMapper.xml)

<!–根据⽤⼾ID和⾳乐ID查询收藏的⾳乐 –>
<select id="findLoveMusicByMusicIdAndUserId" resultType="com.example.musicserver.model.Music">
select * from lovemusic where user_id=#{userId} and music_id=#{musicId}
</select>
<insert id="insertLoveMusic">
insert into lovemusic(user_id,music_id) values(#{userId},#{musicId})
</insert>


四、实现LoveMusicController类
1. 添加收藏(/lovemusic/likeMusic)

@RestController
@RequestMapping("/lovemusic")

public class LoveMusicController {
@Resource
private LoveMusicMapper loveMusicMapper;

@RequestMapping("/likeMusic")
public ResponseBodyMessage<Boolean> likeMusic(@RequestParam String id,
HttpServletRequest req) {
int musicId = Integer.parseInt(id);
System.out.println("likeMusic->musicId: "+musicId);
//没有session不创建
HttpSession httpSession = req.getSession(false);
if(httpSession == null ||
httpSession.getAttribute(Constant.USERINFO_SESSION_KEY) == null) {
System.out.println("没有登录!");
return new ResponseBodyMessage<>(-1,"没有登录",false);
}
User user =
(User)httpSession.getAttribute(Constant.USERINFO_SESSION_KEY);
int userId = user.getId();
System.out.println("likeMusic->userID: "+userId);
//查询当前⽤⼾是否点赞过该⾳乐
Music music =
loveMusicMapper.findLoveMusicByMusicIdAndUserId(userId,musicId);
if(music!=null) {
return new ResponseBodyMessage<>(-1,"该⽤⼾点赞过该⾳乐",false);
}else {
boolean effect = loveMusicMapper.insertLoveMusic(userId,musicId);
if(effect) {
return new ResponseBodyMessage<>(0,"点赞⾳乐成功",true);
}else {
return new ResponseBodyMessage<>(-1,"点赞⾳乐失败",false);
}
}
}
}

测试的时候注意路径名,后面一个likeMusic的M是大写的。

重复点击会显示↓


总结:模块三层架构实现:
  • 实体层定义数据结构

  • Mapper层操作数据库关系

  • Controller层处理业务逻辑和会话验证

  • 关键点在于通过user_id+music_id维护用户与音乐的收藏关系,并在操作前进行严格的会话验证,确保系统安全性。

    代码仓库:

    喜欢/收藏⾳乐模块设计 2025.7.25/音乐服务器 – Gitee.com

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Spring Boot音乐服务器项目-喜欢/收藏音乐模块
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!