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;
|
|
/**
|
* <p>
|
* 影视作品点赞表 服务实现类
|
* </p>
|
*
|
* @author generator@Fang
|
* @since 2025-05-29
|
*/
|
@Service
|
public class FilmLikesServiceImpl extends ServiceImpl<FilmLikesMapper, FilmLikes> 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<FilmLikesVO> queryPage(FilmLikesQueryDTO filmLikesQueryDTO, Page page) {
|
return null;
|
}
|
}
|