NewsLikeService.java 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package com.izouma.nineth.service;
  2. import com.izouma.nineth.domain.NewsLike;
  3. import com.izouma.nineth.dto.PageQuery;
  4. import com.izouma.nineth.repo.AuctionActivityRepo;
  5. import com.izouma.nineth.repo.NewsLikeRepo;
  6. import com.izouma.nineth.repo.NewsRepo;
  7. import com.izouma.nineth.repo.ShowroomRepo;
  8. import com.izouma.nineth.utils.JpaUtils;
  9. import lombok.AllArgsConstructor;
  10. import org.springframework.data.domain.Page;
  11. import org.springframework.stereotype.Service;
  12. import java.util.List;
  13. @Service
  14. @AllArgsConstructor
  15. public class NewsLikeService {
  16. private NewsLikeRepo newsLikeRepo;
  17. private NewsRepo newsRepo;
  18. private ShowroomRepo showroomRepo;
  19. private AuctionActivityRepo auctionActivityRepo;
  20. public Page<NewsLike> all(PageQuery pageQuery) {
  21. return newsLikeRepo
  22. .findAll(JpaUtils.toSpecification(pageQuery, NewsLike.class), JpaUtils.toPageRequest(pageQuery));
  23. }
  24. public void like(Long userId, Long newsId) {
  25. List<NewsLike> list = newsLikeRepo.findByUserIdAndNewsId(userId, newsId);
  26. if (!list.isEmpty()) return;
  27. newsLikeRepo.save(NewsLike.builder()
  28. .userId(userId)
  29. .newsId(newsId)
  30. .build());
  31. newsRepo.addLike(newsId, 1);
  32. }
  33. public void unlike(Long userId, Long newsId) {
  34. List<NewsLike> list = newsLikeRepo.findByUserIdAndNewsId(userId, newsId);
  35. if (!list.isEmpty()) {
  36. newsLikeRepo.deleteAll(list);
  37. newsRepo.addLike(newsId, -list.size());
  38. }
  39. }
  40. public void likeRoom(Long userId, Long roomId) {
  41. List<NewsLike> list = newsLikeRepo.findByUserIdAndShowroomId(userId, roomId);
  42. if (!list.isEmpty()) return;
  43. newsLikeRepo.save(NewsLike.builder()
  44. .userId(userId)
  45. .showroomId(roomId)
  46. .build());
  47. showroomRepo.addLike(roomId, 1);
  48. }
  49. public void unlikeRoom(Long userId, Long roomId) {
  50. List<NewsLike> list = newsLikeRepo.findByUserIdAndShowroomId(userId, roomId);
  51. if (!list.isEmpty()) {
  52. newsLikeRepo.deleteAll(list);
  53. showroomRepo.addLike(roomId, -list.size());
  54. }
  55. }
  56. public void likeAuction(Long userId, Long auctionId) {
  57. List<NewsLike> list = newsLikeRepo.findByUserIdAndAuctionId(userId, auctionId);
  58. if (!list.isEmpty()) return;
  59. newsLikeRepo.save(NewsLike.builder()
  60. .userId(userId)
  61. .auctionId(auctionId)
  62. .build());
  63. auctionActivityRepo.addLike(auctionId, 1);
  64. }
  65. public void unlikeAuction(Long userId, Long auctionId) {
  66. List<NewsLike> list = newsLikeRepo.findByUserIdAndAuctionId(userId, auctionId);
  67. if (!list.isEmpty()) {
  68. newsLikeRepo.deleteAll(list);
  69. auctionActivityRepo.addLike(auctionId, -list.size());
  70. }
  71. }
  72. }