From fb514e661e644bc40dba3d2413a64ff5e86bf6be Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期三, 11 六月 2025 11:02:29 +0800 Subject: [PATCH] add: 点赞、收藏功能补充 --- src/main/java/com/mzl/flower/service/film/impl/FilmLikesServiceImpl.java | 23 ++++++++++++++++++----- 1 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/mzl/flower/service/film/impl/FilmLikesServiceImpl.java b/src/main/java/com/mzl/flower/service/film/impl/FilmLikesServiceImpl.java index 6a511bb..e9aa6df 100644 --- a/src/main/java/com/mzl/flower/service/film/impl/FilmLikesServiceImpl.java +++ b/src/main/java/com/mzl/flower/service/film/impl/FilmLikesServiceImpl.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzl.flower.config.exception.ValidationException; +import com.mzl.flower.config.security.SecurityUtils; import com.mzl.flower.dto.request.film.FilmLikesDTO; import com.mzl.flower.dto.request.film.FilmLikesQueryDTO; import com.mzl.flower.dto.response.film.FilmLikesVO; @@ -40,20 +41,32 @@ @Override public Boolean updateFilmLikes(FilmLikesDTO filmLikesDTO) { - LocalDateTime now = LocalDateTime.now(); + // 没有,新增 - FilmLikes filmLikes = null; - if (filmLikesDTO == null) { + FilmLikes filmLikes = filmLikesMapper.getFilmLikesByfilmIdAndCreateBy(filmLikesDTO.getFilmId(), SecurityUtils.getUserId()); + if (filmLikes == null) { filmLikes = new FilmLikes(); filmLikes.setFilmId(filmLikesDTO.getFilmId()); filmLikes.setStatus(true); + filmLikes.setCreateBy(SecurityUtils.getUserId()); if (filmLikesMapper.insert(filmLikes) <= 0) { throw new ValidationException("添加评论点赞失败"); } } else { // 状态取反 - filmLikesDTO.setStatus(!filmLikesDTO.getStatus()); - if (filmLikesMapper.updateById(filmLikes) <= 0) { + filmLikes.setStatus(!filmLikes.getStatus()); + filmLikes.update(SecurityUtils.getUserId()); + + // 校验主键是否存在 + if (filmLikes.getId() == null) { + throw new ValidationException("主键 ID 不能为空"); + } + int affectedRows = filmLikesMapper.updateStatusById( + filmLikes.getId(), // 确保 id 是 Long 类型 + filmLikes.getStatus(), + SecurityUtils.getUserId() // 更新人 + ); + if (affectedRows <= 0) { throw new ValidationException("更新评论点赞状态失败"); } } -- Gitblit v1.9.3