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;
}
}