修复收藏等问题

This commit is contained in:
menxipeng
2025-09-07 19:21:00 +08:00
parent efeaec3708
commit 69ff450a57
9 changed files with 57 additions and 19 deletions

View File

@@ -75,15 +75,15 @@ public class FileController extends BaseController {
return;
}
if (musicInfo.getVip() != null && musicInfo.getVip() == 1) {
// 判断用户vip
if (!MusicUtil.getShopIsVip(shopUser)) {
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
response.setContentType("application/json;charset=UTF-8");
response.getWriter().write("{\"code\":403,\"msg\":\"该音乐为VIP专享请升级VIP后下载\"}");
return;
}
}
// if (musicInfo.getVip() != null && musicInfo.getVip() == 1) {
// // 判断用户vip
// if (!MusicUtil.getShopIsVip(shopUser)) {
// response.setStatus(HttpServletResponse.SC_FORBIDDEN);
// response.setContentType("application/json;charset=UTF-8");
// response.getWriter().write("{\"code\":403,\"msg\":\"该音乐为VIP专享请升级VIP后下载\"}");
// return;
// }
// }
}
}

View File

@@ -50,9 +50,11 @@ public class MusicController extends BaseController {
// 添加我喜欢的音乐
@RequestMapping("/like/music/{musicId}")
public AjaxResult addLikeMusic(@PathVariable String musicId){
musicService.addLikeMusic(musicId);
if (musicService.addLikeMusic(musicId) > 0){
return AjaxResult.success();
}
return AjaxResult.error("添加失败");
}
// 获取我喜欢的音乐 TODO: 喜欢播放
@RequestMapping("/like/music")
@@ -82,7 +84,7 @@ public class MusicController extends BaseController {
// 删除我喜欢的音乐 cancel/like
@RequestMapping("/cancel/like/{musicId}")
public AjaxResult cancelLikeMusic(@PathVariable String musicId){
public AjaxResult cancelLikeMusic(@PathVariable String[] musicId){
musicService.cancelLikeMusic(musicId);
return AjaxResult.success();
}

View File

@@ -104,7 +104,7 @@ public class SysLoginController
public AjaxResult getRouters()
{
Long userId = SecurityUtils.getUserId();
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
List<SysMenu> menus = menuService.selectMenuTreeByUserId(1L);
return AjaxResult.success(menuService.buildMenus(menus));
}

View File

@@ -1,16 +1,20 @@
package com.ruoyi.common.core.domain.entity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import java.util.List;
/**
* 【请填写功能名称】对象 music_collect
*
* @author ruoyi
* @date 2025-07-18
*/
@Data
public class MusicCollect extends BaseEntity
{
private static final long serialVersionUID = 1L;
@@ -22,6 +26,10 @@ public class MusicCollect extends BaseEntity
@Excel(name = "音乐ID")
private Long musicId;
/** 音乐ID */
@Excel(name = "音乐ID")
private List<Long> musicIds;
/** 收藏id */
@Excel(name = "收藏id")
private Long collectId;

View File

@@ -2,6 +2,7 @@ package com.ruoyi.system.mapper;
import com.ruoyi.common.core.domain.entity.CategoryInfo;
import com.ruoyi.common.core.domain.entity.MusicInfo;
import com.ruoyi.common.core.domain.entity.UserLikeMusic;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -78,7 +79,7 @@ public interface MusicInfoMapper
List<MusicInfo> selectLikeMusicByUser(Long userId);
int delLikeMusic(@Param("userId") Long userId,@Param("musicId") String musicId);
int delLikeMusic(@Param("userId") Long userId,@Param("musicId") String[] musicId);
int insertHistory(@Param("userId") Long userId,@Param("musicId") String musicId);
@@ -107,4 +108,8 @@ public interface MusicInfoMapper
* @return 音乐信息列表
*/
List<MusicInfo> selectMusicInfoBySearch(@Param("search") String search);
String selectListRandomMusic(String currentMusicId);
UserLikeMusic selectMusicAndUserLike(@Param("userId") Long userId,@Param("musicId") String musicId);
}

View File

@@ -74,7 +74,7 @@ public interface IMusicInfoService
List<MusicInfo> findLikeMusicByUser(Long userId);
int cancelLikeMusic(String musicId);
int cancelLikeMusic(String[] musicId);
int addHistoryMusic(String musicId);

View File

@@ -137,6 +137,11 @@ public class MusicInfoServiceImpl implements IMusicInfoService
@Override
public int addLikeMusic(String musicId) {
Long userId = SecurityUtils.getUserId();
//查找是否已经存在我喜欢的音乐
UserLikeMusic userLikeMusic = musicInfoMapper.selectMusicAndUserLike(userId,musicId);
if (userLikeMusic != null){
return 1;
}
return musicInfoMapper.insertLikeMusic(userId,musicId);
}
@@ -146,7 +151,7 @@ public class MusicInfoServiceImpl implements IMusicInfoService
}
@Override
public int cancelLikeMusic(String musicId) {
public int cancelLikeMusic(String[] musicId) {
Long userId = SecurityUtils.getUserId();
return musicInfoMapper.delLikeMusic(userId,musicId);
}
@@ -298,6 +303,8 @@ public class MusicInfoServiceImpl implements IMusicInfoService
case 5: // 喜欢播放
musicList = musicInfoMapper.selectLikeMusicByUser(userId);
break;
case 6: // 喜欢播放
return musicInfoMapper.selectListRandomMusic(currentMusicId);
default:
return null;
}
@@ -357,7 +364,7 @@ public class MusicInfoServiceImpl implements IMusicInfoService
*
* @param userId 用户ID
* @param playMode 播放模式1-顺序播放2-随机播放
* @param playlistType 播放列表类型1-历史播放2-分类播放3-推荐播放4-收藏播放5-喜欢播放
* @param playlistType 播放列表类型1-历史播放2-分类播放3-推荐播放4-收藏播放5-喜欢播放 6-列表随机
* @param categoryId 分类ID当playlistType=2时必填
* @param collectId 收藏ID当playlistType=4时必填
* @param currentMusicId 当前播放的音乐ID用于顺序播放时获取下一首
@@ -393,6 +400,8 @@ public class MusicInfoServiceImpl implements IMusicInfoService
case 5: // 喜欢播放
musicList = musicInfoMapper.selectLikeMusicByUser(userId);
break;
case 6: // 喜欢播放
return musicInfoMapper.selectListRandomMusic(currentMusicId);
default:
return null;
}

View File

@@ -60,6 +60,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="delBindMusic">
delete from music_collect where music_id= #{musicId} and collect_id=#{collectId}
delete from music_collect where collect_id=#{collectId} and music_id in
<foreach collection="musicIds" item="musicId" open="(" close=")" separator=",">
#{musicId}
</foreach>
</delete>
</mapper>

View File

@@ -156,7 +156,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<delete id="delLikeMusic">
DELETE FROM user_like_music where music_id=#{musicId} and user_id=#{userId}
DELETE FROM user_like_music where user_id=#{userId} and music_id in
<foreach collection="musicId" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>
<insert id="insertHistory">
@@ -202,4 +205,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE (name LIKE concat(#{search}, '%') OR author LIKE concat(#{search}, '%'))
AND is_del = 0 AND shelf = 1
</select>
<select id="selectListRandomMusic" resultType="java.lang.String">
SELECT music_info.music_id from music_info where music_id != #{currentMusicId} ORDER BY RAND() LIMIT 1
</select>
<select id="selectMusicAndUserLike" resultType="com.ruoyi.common.core.domain.entity.UserLikeMusic">
SELECT user_id as userId , music_id as musicId FROm user_like_music where user_id=#{userId} and music_id=#{musicId} limit 1
</select>
</mapper>