diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt index 435e568e..9fbac274 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/room/LiveRoomRepository.kt @@ -101,14 +101,15 @@ class LiveRoomQueryRepositoryImpl( } if (effectiveGender != null && effectiveGender != Gender.NONE) { - where = when (effectiveGender) { - Gender.MALE -> where.and( - liveRoom.genderRestriction.`in`(GenderRestriction.ALL, GenderRestriction.MALE_ONLY) - ) - Gender.FEMALE -> where.and( - liveRoom.genderRestriction.`in`(GenderRestriction.ALL, GenderRestriction.FEMALE_ONLY) - ) - Gender.NONE -> where + val genderCondition = when (effectiveGender) { + Gender.MALE -> liveRoom.genderRestriction.`in`(GenderRestriction.ALL, GenderRestriction.MALE_ONLY) + Gender.FEMALE -> liveRoom.genderRestriction.`in`(GenderRestriction.ALL, GenderRestriction.FEMALE_ONLY) + Gender.NONE -> liveRoom.genderRestriction.isNotNull + } + where = if (memberId != null) { + where.and(genderCondition.or(liveRoom.member.id.eq(memberId))) + } else { + where.and(genderCondition) } } @@ -169,14 +170,15 @@ class LiveRoomQueryRepositoryImpl( } if (effectiveGender != null && effectiveGender != Gender.NONE) { - where = when (effectiveGender) { - Gender.MALE -> where.and( - liveRoom.genderRestriction.`in`(GenderRestriction.ALL, GenderRestriction.MALE_ONLY) - ) - Gender.FEMALE -> where.and( - liveRoom.genderRestriction.`in`(GenderRestriction.ALL, GenderRestriction.FEMALE_ONLY) - ) - Gender.NONE -> where + val genderCondition = when (effectiveGender) { + Gender.MALE -> liveRoom.genderRestriction.`in`(GenderRestriction.ALL, GenderRestriction.MALE_ONLY) + Gender.FEMALE -> liveRoom.genderRestriction.`in`(GenderRestriction.ALL, GenderRestriction.FEMALE_ONLY) + Gender.NONE -> liveRoom.genderRestriction.isNotNull + } + where = if (memberId != null) { + where.and(genderCondition.or(liveRoom.member.id.eq(memberId))) + } else { + where.and(genderCondition) } } @@ -233,14 +235,15 @@ class LiveRoomQueryRepositoryImpl( } if (effectiveGender != null && effectiveGender != Gender.NONE) { - where = when (effectiveGender) { - Gender.MALE -> where.and( - liveRoom.genderRestriction.`in`(GenderRestriction.ALL, GenderRestriction.MALE_ONLY) - ) - Gender.FEMALE -> where.and( - liveRoom.genderRestriction.`in`(GenderRestriction.ALL, GenderRestriction.FEMALE_ONLY) - ) - Gender.NONE -> where + val genderCondition = when (effectiveGender) { + Gender.MALE -> liveRoom.genderRestriction.`in`(GenderRestriction.ALL, GenderRestriction.MALE_ONLY) + Gender.FEMALE -> liveRoom.genderRestriction.`in`(GenderRestriction.ALL, GenderRestriction.FEMALE_ONLY) + Gender.NONE -> liveRoom.genderRestriction.isNotNull + } + where = if (memberId != null) { + where.and(genderCondition.or(liveRoom.member.id.eq(memberId))) + } else { + where.and(genderCondition) } }