| | |
| | | |
| | | 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; |
| | |
| | | |
| | | @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("更新评论点赞状态失败"); |
| | | } |
| | | } |