package com.mzl.flower.service.film.impl; 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; import com.mzl.flower.entity.film.FilmLikes; import com.mzl.flower.mapper.film.FilmLikesMapper; import com.mzl.flower.service.film.FilmLikesService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDateTime; /** *

* 影视作品点赞表 服务实现类 *

* * @author generator@Fang * @since 2025-05-29 */ @Service public class FilmLikesServiceImpl extends ServiceImpl implements FilmLikesService { @Resource private FilmLikesMapper filmLikesMapper; @Override public void saveFilmLikes(FilmLikesDTO filmLikesDTO) { FilmLikes filmLikes = new FilmLikes(); filmLikes.setFilmId(filmLikesDTO.getFilmId()); filmLikes.setStatus(true); if (filmLikesMapper.insert(filmLikes) <= 0) { throw new ValidationException("添加评论点赞失败"); } } @Override public Boolean updateFilmLikes(FilmLikesDTO filmLikesDTO) { // 没有,新增 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 { // 状态取反 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; } @Override public void deleteFilmLikes(String id) { } @Override public Page queryPage(FilmLikesQueryDTO filmLikesQueryDTO, Page page) { return null; } }