From fbedd6c503b25bfd9bee3fe4859e4f120ede7a61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=95=88=EC=A0=95=ED=9B=84?= Date: Tue, 20 Aug 2024 15:19:19 +0900 Subject: [PATCH] feat: friend search core-module --- .../service/ChallengeQueryService.java | 23 +++++++++++++ .../community/service/FriendQueryService.java | 30 ++++++++++++++++ .../user/repository/UserRepository.java | 3 ++ .../user/service/UserQueryService.java | 34 +++++++++++-------- 4 files changed, 75 insertions(+), 15 deletions(-) create mode 100644 core-module/src/main/java/com/foodgo/coremodule/community/service/ChallengeQueryService.java create mode 100644 core-module/src/main/java/com/foodgo/coremodule/community/service/FriendQueryService.java diff --git a/core-module/src/main/java/com/foodgo/coremodule/community/service/ChallengeQueryService.java b/core-module/src/main/java/com/foodgo/coremodule/community/service/ChallengeQueryService.java new file mode 100644 index 0000000..9d526ff --- /dev/null +++ b/core-module/src/main/java/com/foodgo/coremodule/community/service/ChallengeQueryService.java @@ -0,0 +1,23 @@ +package com.foodgo.coremodule.community.service; + +import com.foodgo.coremodule.community.domain.Challenge; +import com.foodgo.coremodule.community.repository.ChallengeDetailRepository; +import com.foodgo.coremodule.community.repository.ChallengeRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class ChallengeQueryService { + + private final ChallengeRepository challengeRepository; + private final ChallengeDetailRepository challengeDetailRepository; + + public Challenge findRecentChallenge(Long userId) { + return challengeRepository.findTopByFriendshipUserIdOrderByCreatedAtDesc(userId); + } + + public Boolean checkChallengeYn(Long friendshipId) { + return challengeRepository.existsChallengeByFriendshipId(friendshipId); + } +} diff --git a/core-module/src/main/java/com/foodgo/coremodule/community/service/FriendQueryService.java b/core-module/src/main/java/com/foodgo/coremodule/community/service/FriendQueryService.java new file mode 100644 index 0000000..70e68f8 --- /dev/null +++ b/core-module/src/main/java/com/foodgo/coremodule/community/service/FriendQueryService.java @@ -0,0 +1,30 @@ +package com.foodgo.coremodule.community.service; + +import com.foodgo.coremodule.community.domain.Friendship; +import com.foodgo.coremodule.community.repository.FriendShipRepository; +import com.foodgo.coremodule.user.domain.User; +import com.foodgo.coremodule.user.repository.UserRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@RequiredArgsConstructor +public class FriendQueryService { + + private final FriendShipRepository friendShipRepository; + private final UserRepository userRepository; + + public List findFriendWithNickname(String nickname) { + return userRepository.findAllByNicknameContaining(nickname); + } + + public Boolean checkFriendShipYn(Long userId, Long friendId) { + return friendShipRepository.existsFriendshipByUserIdAndFriendId(userId, friendId); + } + + public Friendship findByUserIdAndFriendId(Long userId, Long friendId) { + return friendShipRepository.findFriendshipByUserIdAndFriendId(userId, friendId); + } +} diff --git a/core-module/src/main/java/com/foodgo/coremodule/user/repository/UserRepository.java b/core-module/src/main/java/com/foodgo/coremodule/user/repository/UserRepository.java index b040c85..cc0f2d8 100644 --- a/core-module/src/main/java/com/foodgo/coremodule/user/repository/UserRepository.java +++ b/core-module/src/main/java/com/foodgo/coremodule/user/repository/UserRepository.java @@ -1,5 +1,6 @@ package com.foodgo.coremodule.user.repository; +import java.util.List; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; @@ -15,4 +16,6 @@ public interface UserRepository extends JpaRepository, UserRepositor Boolean existsByNickname(String nickname); User save(User user); + + List findAllByNicknameContaining(String nickname); } diff --git a/core-module/src/main/java/com/foodgo/coremodule/user/service/UserQueryService.java b/core-module/src/main/java/com/foodgo/coremodule/user/service/UserQueryService.java index 67dafb2..b074326 100644 --- a/core-module/src/main/java/com/foodgo/coremodule/user/service/UserQueryService.java +++ b/core-module/src/main/java/com/foodgo/coremodule/user/service/UserQueryService.java @@ -1,32 +1,36 @@ package com.foodgo.coremodule.user.service; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - import com.foodgo.commonmodule.user.exception.UserErrorCode; import com.foodgo.commonmodule.user.exception.UserExceptionHandler; import com.foodgo.coremodule.user.domain.User; import com.foodgo.coremodule.user.repository.UserRepository; - import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; @RequiredArgsConstructor @Transactional(readOnly = true) @Service public class UserQueryService { - private final UserRepository userRepository; + private final UserRepository userRepository; + + public Boolean checkUsername(String username) { + return userRepository.existsByUsername(username); + } - public Boolean checkUsername(String username) { - return userRepository.existsByUsername(username); - } + public Boolean checkNickname(String nickname) { + return userRepository.existsByNickname(nickname); + } - public Boolean checkNickname(String nickname) { - return userRepository.existsByNickname(nickname); - } + public User findByUserName(String username) { + return userRepository.findByUsername(username) + .orElseThrow(() -> new UserExceptionHandler(UserErrorCode.USER_NOT_FOUND)); + } - public User findByUserName(String username) { - return userRepository.findByUsername(username) - .orElseThrow(() -> new UserExceptionHandler(UserErrorCode.USER_NOT_FOUND)); - } + public List findAllUsers() { + return userRepository.findAll(); + } }