From b06162b2966eea4f092b3edf3032de843059af4b Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期四, 12 六月 2025 18:16:10 +0800 Subject: [PATCH] add: 评论开发 --- src/main/java/com/mzl/flower/service/film/impl/FilmLikesServiceImpl.java | 27 ++++++++++++++++++++------- 1 files changed, 20 insertions(+), 7 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..c7d9eba 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,21 +41,33 @@ @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("添加评论点赞失败"); + throw new ValidationException("添加作品点赞失败"); } } else { // 状态取反 - filmLikesDTO.setStatus(!filmLikesDTO.getStatus()); - if (filmLikesMapper.updateById(filmLikes) <= 0) { - throw new ValidationException("更新评论点赞状态失败"); + 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("更新作品点赞状态失败"); } } return true; -- Gitblit v1.9.3