diff --git a/src/main/java/com/DecodEat/domain/products/service/ProductService.java b/src/main/java/com/DecodEat/domain/products/service/ProductService.java index 1e92ce5..ee47daa 100644 --- a/src/main/java/com/DecodEat/domain/products/service/ProductService.java +++ b/src/main/java/com/DecodEat/domain/products/service/ProductService.java @@ -365,6 +365,8 @@ public ProductLikeResponseDTO addOrUpdateLike(Long userId, Long productId) { // 이미 눌렀으면 → 좋아요 취소 productLikeRepository.delete(existingLike.get()); isLiked = false; + userBehaviorService.deleteUserBehavior(user,product, Behavior.LIKE); + } else { // 처음 누르면 → 좋아요 추가 ProductLike productLike = ProductLike.builder() @@ -373,6 +375,7 @@ public ProductLikeResponseDTO addOrUpdateLike(Long userId, Long productId) { .build(); productLikeRepository.save(productLike); isLiked = true; + userBehaviorService.saveUserBehavior(user,product, Behavior.LIKE); } return ProductConverter.toProductLikeDTO(productId, isLiked); } diff --git a/src/main/java/com/DecodEat/domain/users/repository/UserBehaviorRepository.java b/src/main/java/com/DecodEat/domain/users/repository/UserBehaviorRepository.java index 8de1d52..4f9b9db 100644 --- a/src/main/java/com/DecodEat/domain/users/repository/UserBehaviorRepository.java +++ b/src/main/java/com/DecodEat/domain/users/repository/UserBehaviorRepository.java @@ -1,7 +1,13 @@ package com.DecodEat.domain.users.repository; +import com.DecodEat.domain.products.entity.Product; +import com.DecodEat.domain.users.entity.Behavior; +import com.DecodEat.domain.users.entity.User; import com.DecodEat.domain.users.entity.UserBehavior; import org.springframework.data.jpa.repository.JpaRepository; public interface UserBehaviorRepository extends JpaRepository { + + void deleteByUserAndProductAndBehavior(User user, Product product, Behavior behavior); + } diff --git a/src/main/java/com/DecodEat/domain/users/service/UserBehaviorService.java b/src/main/java/com/DecodEat/domain/users/service/UserBehaviorService.java index 1ccd996..8db2371 100644 --- a/src/main/java/com/DecodEat/domain/users/service/UserBehaviorService.java +++ b/src/main/java/com/DecodEat/domain/users/service/UserBehaviorService.java @@ -12,7 +12,9 @@ @Service @RequiredArgsConstructor public class UserBehaviorService { + private final UserBehaviorRepository userBehaviorRepository; + @Transactional public void saveUserBehavior(User user, Product product, Behavior behavior) { UserBehavior userBehavior = UserBehavior.builder() @@ -22,4 +24,10 @@ public void saveUserBehavior(User user, Product product, Behavior behavior) { .build(); userBehaviorRepository.save(userBehavior); } + + @Transactional + public void deleteUserBehavior(User user, Product product, Behavior behavior) { + userBehaviorRepository.deleteByUserAndProductAndBehavior(user, product, behavior); + } + }