메시지 보내기 유저 검색 #91
| @@ -165,7 +165,7 @@ class MemberController(private val service: MemberService) { | ||||
|     ) = run { | ||||
|         if (member == null) throw SodaException("로그인 정보를 확인해주세요.") | ||||
|  | ||||
|         ApiResponse.ok(service.searchMember(nickname = nickname, memberId = member.id!!)) | ||||
|         ApiResponse.ok(service.searchMember(nickname = nickname, member = member)) | ||||
|     } | ||||
|  | ||||
|     @PostMapping("/sign_out") | ||||
|   | ||||
| @@ -23,7 +23,7 @@ interface MemberRepository : JpaRepository<Member, Long>, MemberQueryRepository | ||||
|  | ||||
| interface MemberQueryRepository { | ||||
|     fun findByPushToken(pushToken: String): List<Member> | ||||
|     fun findByNicknameAndOtherCondition(nickname: String, memberId: Long): List<Member> | ||||
|     fun findByNicknameAndOtherCondition(nickname: String, member: Member): List<Member> | ||||
|     fun findCreatorByIdOrNull(memberId: Long): Member? | ||||
|     fun getAllRecipientPushTokens(isAuth: Boolean, container: String): List<List<String>> | ||||
|     fun getCreateLiveRoomNotificationRecipientPushTokens( | ||||
| @@ -66,15 +66,19 @@ class MemberQueryRepositoryImpl( | ||||
|             .fetch() | ||||
|     } | ||||
|  | ||||
|     override fun findByNicknameAndOtherCondition(nickname: String, memberId: Long): List<Member> { | ||||
|     override fun findByNicknameAndOtherCondition(nickname: String, member: Member): List<Member> { | ||||
|         var where = QMember.member.nickname.containsIgnoreCase(nickname) | ||||
|             .and(QMember.member.id.ne(member.id)) | ||||
|             .and(QMember.member.role.ne(MemberRole.ADMIN)) | ||||
|             .and(QMember.member.role.ne(MemberRole.AGENT)) | ||||
|  | ||||
|         if (member.role == MemberRole.USER) { | ||||
|             where = where.and(QMember.member.role.ne(MemberRole.USER)) | ||||
|         } | ||||
|  | ||||
|         return queryFactory | ||||
|             .selectFrom(member) | ||||
|             .where( | ||||
|                 member.nickname.containsIgnoreCase(nickname) | ||||
|                     .and(member.id.ne(memberId)) | ||||
|                     .and(member.role.ne(MemberRole.ADMIN)) | ||||
|                     .and(member.role.ne(MemberRole.AGENT)) | ||||
|             ) | ||||
|             .selectFrom(QMember.member) | ||||
|             .where(where) | ||||
|             .fetch() | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -382,14 +382,14 @@ class MemberService( | ||||
|  | ||||
|     fun isBlocked(blockedMemberId: Long, memberId: Long) = blockMemberRepository.isBlocked(blockedMemberId, memberId) | ||||
|  | ||||
|     fun searchMember(nickname: String, memberId: Long): List<GetRoomDetailUser> { | ||||
|     fun searchMember(nickname: String, member: Member): List<GetRoomDetailUser> { | ||||
|         if (nickname.length < 2) { | ||||
|             throw SodaException("두 글자 이상 입력 하셔야 합니다.") | ||||
|         } | ||||
|  | ||||
|         return repository.findByNicknameAndOtherCondition(nickname, memberId) | ||||
|         return repository.findByNicknameAndOtherCondition(nickname, member) | ||||
|             .asSequence() | ||||
|             .filter { !blockMemberRepository.isBlocked(blockedMemberId = memberId, memberId = it.id!!) } | ||||
|             .filter { !blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = it.id!!) } | ||||
|             .map { | ||||
|                 GetRoomDetailUser(it, cloudFrontHost) | ||||
|             } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user