package com.hollywood.applet.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.hollywood.applet.service.TMusicService; import com.hollywood.applet.utils.LoginInfoUtil; import com.hollywood.common.basic.ApiResult; import com.hollywood.common.model.TMusic; import com.hollywood.common.redis.RedisAutoTemplate; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; import java.util.Set; /** *

* 前端控制器 *

* * @author luodangjia * @since 2024-11-20 */ @Api(tags = "音乐管理") @RestController @RequestMapping("/t-music") public class TMusicController { @Resource private TMusicService musicService; @Autowired private LoginInfoUtil loginInfoUtil; @Autowired private RedisAutoTemplate redisAutoTemplate; @ApiOperation(value = "点赞") @PutMapping("/good") public ApiResult good(Integer id) { Long userId = loginInfoUtil.getUserId(); redisAutoTemplate.addSet("MUSIC"+userId+":user:good:",id); redisAutoTemplate.addSet("MUSIC"+id+":video:good:",userId); return ApiResult.success(); } @ApiOperation(value = "取消点赞") @PutMapping("/cancelgood") public ApiResult cancelgood(Integer id) { Long userId = loginInfoUtil.getUserId(); // redisAutoTemplate.removeZSet(userId+":user:good:",videoId); redisAutoTemplate.setRemove("MUSIC"+userId+":user:good:",id); // redisAutoTemplate.removeZSet(videoId+":video:good:",userId); redisAutoTemplate.setRemove("MUSIC"+id+":video:good:",userId); return ApiResult.success(); } @ApiOperation(value = "获取音乐列表") @PutMapping("/get") public ApiResult> get() { Long userId = loginInfoUtil.getUserId(); List vedios = musicService.list(); //获取用户的点赞记录 Set goods = redisAutoTemplate.getSet(userId+":user:good:"); for (TMusic vedio : vedios) { //获取该视频的点赞用户 Set goodsUser = redisAutoTemplate.getSet("MUSIC"+vedio.getId()+":video:good:"); vedio.setLikeCount(goodsUser.size()); //判断当前用户是否点赞该视频 if (goods!=null&&goods.contains(vedio.getId().intValue())){ vedio.setIsGood(1); }else { vedio.setIsGood(0); } } return ApiResult.success(vedios); } }