Compare commits

...

2 Commits

Author SHA1 Message Date
ac5741b9af 크리에이터 프로필 라이브 성별 제한 적용 2026-02-02 17:51:05 +09:00
04a4b362da 본인 방 성별 제한 예외 적용 2026-02-02 17:22:09 +09:00
2 changed files with 44 additions and 24 deletions

View File

@@ -22,11 +22,13 @@ import kr.co.vividnext.sodalive.explorer.profile.TimeDifferenceResult
import kr.co.vividnext.sodalive.i18n.Lang
import kr.co.vividnext.sodalive.i18n.LangContext
import kr.co.vividnext.sodalive.i18n.SodaMessageSource
import kr.co.vividnext.sodalive.live.room.GenderRestriction
import kr.co.vividnext.sodalive.live.room.LiveRoom
import kr.co.vividnext.sodalive.live.room.LiveRoomType
import kr.co.vividnext.sodalive.live.room.QLiveRoom.liveRoom
import kr.co.vividnext.sodalive.live.room.cancel.QLiveRoomCancel.liveRoomCancel
import kr.co.vividnext.sodalive.live.room.visit.QLiveRoomVisit.liveRoomVisit
import kr.co.vividnext.sodalive.member.Gender
import kr.co.vividnext.sodalive.member.Member
import kr.co.vividnext.sodalive.member.MemberRole
import kr.co.vividnext.sodalive.member.QMember
@@ -342,6 +344,21 @@ class ExplorerQueryRepository(
.and(liveRoom.cancel.id.isNull)
.and(liveRoom.isActive.isTrue)
val effectiveGender = if (userMember.auth != null) {
if (userMember.auth!!.gender == 1) Gender.MALE else Gender.FEMALE
} else {
userMember.gender
}
if (effectiveGender != Gender.NONE) {
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 = where.and(genderCondition.or(liveRoom.member.id.eq(userMember.id)))
}
if (userMember.auth == null) {
where = where.and(liveRoom.isAdult.isFalse)
}

View File

@@ -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)
}
}