From 790d073559bfc15e9d1130fb9d51e9d673985cc7 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期五, 13 六月 2025 13:45:47 +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