/**
* {@inheritDoc}
*/
@Override
public void saveRating(
@NotNull @Valid final Rate rate,
@Min(1) final Long movieId,
@NotBlank final String userId
) throws ResourceNotFoundException, ResourceConflictException {
log.info("Called with rate {}, movieId {}, userId {}", rate, movieId, userId);
final UserEntity user = this.findUser(userId);
final MovieEntity movie = this.findMovie(movieId, DataStatus.ACCEPTED);
final List<MovieReleaseDateEntity> releaseDates = movie.getReleaseDates();
Lists.newArrayList(releaseDates).sort(Comparator.comparing(MovieReleaseDateEntity::getDate));
if(!releaseDates.isEmpty()
&& new Date().before(releaseDates.iterator().next().getDate())) {
throw new ResourceConflictException("The movie with id " + movieId + " had no premiere");
}
boolean rated = false;
final List<MovieRateEntity> ratings = movie.getRatings();
for(final MovieRateEntity mRate : ratings) {
if(mRate.getUser().getUniqueId().equals(userId)) {
mRate.setRate(rate.getRate());
movie.setRating(this.calculationRating(ratings));
rated = true;
break;
}
}
if(!rated) {
final MovieRateEntity movieRate = new MovieRateEntity();
movieRate.setRate(rate.getRate());
movieRate.setMovie(movie);
movieRate.setUser(user);
movie.getRatings().add(movieRate);
movie.setRating(this.calculationRating(movie.getRatings()));
}
}
MoviePersistenceServiceImpl.java 文件源码
java
阅读 31
收藏 0
点赞 0
评论 0
项目:REST-Web-Services
作者:
评论列表
文章目录