Compare commits

..

2 Commits

Author SHA1 Message Date
Klaus b556219e36 라이브 입장 - 퇴장 횟수 체크, 차단된 유저 체크 2023-08-07 14:47:00 +09:00
Klaus 6ff38decab account -> member 2023-08-07 14:46:31 +09:00
6 changed files with 19 additions and 11 deletions

View File

@ -85,7 +85,7 @@ class AdminChargeStatusService(val repository: AdminChargeStatusQueryRepository)
} }
.map { .map {
GetChargeStatusDetailResponse( GetChargeStatusDetailResponse(
accountId = it.accountId, memberId = it.memberId,
nickname = it.nickname, nickname = it.nickname,
method = it.method, method = it.method,
amount = if (paymentGateway == PaymentGateway.APPLE_IAP) { amount = if (paymentGateway == PaymentGateway.APPLE_IAP) {

View File

@ -3,7 +3,7 @@ package kr.co.vividnext.sodalive.admin.charge
import com.querydsl.core.annotations.QueryProjection import com.querydsl.core.annotations.QueryProjection
data class GetChargeStatusDetailQueryDto @QueryProjection constructor( data class GetChargeStatusDetailQueryDto @QueryProjection constructor(
val accountId: Long, val memberId: Long,
val nickname: String, val nickname: String,
val method: String, val method: String,
val appleChargeAmount: Double, val appleChargeAmount: Double,

View File

@ -1,7 +1,7 @@
package kr.co.vividnext.sodalive.admin.charge package kr.co.vividnext.sodalive.admin.charge
data class GetChargeStatusDetailResponse( data class GetChargeStatusDetailResponse(
val accountId: Long, val memberId: Long,
val nickname: String, val nickname: String,
val method: String, val method: String,
val amount: Int, val amount: Int,

View File

@ -149,12 +149,12 @@ class ExplorerQueryRepository(
.distinct() .distinct()
} }
fun getSearchChannel(channel: String, accountId: Long): List<Member> { fun getSearchChannel(channel: String, memberId: Long): List<Member> {
return queryFactory.selectFrom(member) return queryFactory.selectFrom(member)
.where( .where(
member.nickname.containsIgnoreCase(channel) member.nickname.containsIgnoreCase(channel)
.and(member.isActive.isTrue) .and(member.isActive.isTrue)
.and(member.id.ne(accountId)) .and(member.id.ne(memberId))
.and(member.role.eq(MemberRole.CREATOR)) .and(member.role.eq(MemberRole.CREATOR))
) )
.fetch() .fetch()
@ -266,8 +266,8 @@ class ExplorerQueryRepository(
}, },
account.tags account.tags
.asSequence() .asSequence()
.filter { accountCounselorTag -> accountCounselorTag.tag.isActive } .filter { tag -> tag.tag.isActive }
.map { accountCounselorTag -> accountCounselorTag.tag.tag } .map { tag -> tag.tag.tag }
.toList() .toList()
) )
} }
@ -313,8 +313,8 @@ class ExplorerQueryRepository(
}, },
it.tags it.tags
.asSequence() .asSequence()
.filter { accountCounselorTag -> accountCounselorTag.tag.isActive } .filter { tag -> tag.tag.isActive }
.map { accountCounselorTag -> accountCounselorTag.tag.tag } .map { tag -> tag.tag.tag }
.toList() .toList()
) )
} }

View File

@ -42,6 +42,7 @@ import kr.co.vividnext.sodalive.member.Gender
import kr.co.vividnext.sodalive.member.Member import kr.co.vividnext.sodalive.member.Member
import kr.co.vividnext.sodalive.member.MemberRepository import kr.co.vividnext.sodalive.member.MemberRepository
import kr.co.vividnext.sodalive.member.MemberRole import kr.co.vividnext.sodalive.member.MemberRole
import kr.co.vividnext.sodalive.member.block.BlockMemberRepository
import kr.co.vividnext.sodalive.utils.generateFileName import kr.co.vividnext.sodalive.utils.generateFileName
import org.springframework.beans.factory.annotation.Value import org.springframework.beans.factory.annotation.Value
import org.springframework.data.domain.Pageable import org.springframework.data.domain.Pageable
@ -63,6 +64,7 @@ class LiveRoomService(
private val roomInfoRepository: LiveRoomInfoRedisRepository, private val roomInfoRepository: LiveRoomInfoRedisRepository,
private val roomCancelRepository: LiveRoomCancelRepository, private val roomCancelRepository: LiveRoomCancelRepository,
private val kickOutService: LiveRoomKickOutService, private val kickOutService: LiveRoomKickOutService,
private val blockMemberRepository: BlockMemberRepository,
private val useCanCalculateRepository: UseCanCalculateRepository, private val useCanCalculateRepository: UseCanCalculateRepository,
private val reservationRepository: LiveReservationRepository, private val reservationRepository: LiveReservationRepository,
@ -419,6 +421,12 @@ class LiveRoomService(
throw SodaException("비밀번호가 일치하지 않습니다.\n다시 확인 후 입력해주세요.") throw SodaException("비밀번호가 일치하지 않습니다.\n다시 확인 후 입력해주세요.")
} }
val isBlocked = blockMemberRepository.isBlocked(blockedMemberId = member.id!!, memberId = room.member!!.id!!)
if (isBlocked) throw SodaException("${room.member!!.nickname}님의 요청으로 라이브에 입장할 수 없습니다.")
val kickOutCount = kickOutService.getKickOutCount(roomId = room.id!!, userId = member.id!!)
if (kickOutCount >= 2) throw SodaException("${room.member!!.nickname}님의 요청으로 라이브에 참여할 수 없습니다.")
val lock = getOrCreateLock(memberId = member.id!!) val lock = getOrCreateLock(memberId = member.id!!)
lock.write { lock.write {
var roomInfo = roomInfoRepository.findByIdOrNull(request.roomId) var roomInfo = roomInfoRepository.findByIdOrNull(request.roomId)

View File

@ -14,7 +14,7 @@ import org.springframework.stereotype.Service
class LiveRoomKickOutService( class LiveRoomKickOutService(
private val roomInfoRepository: LiveRoomInfoRedisRepository, private val roomInfoRepository: LiveRoomInfoRedisRepository,
private val repository: LiveRoomKickOutRedisRepository, private val repository: LiveRoomKickOutRedisRepository,
private val accountRepository: MemberRepository, private val memberRepository: MemberRepository,
private val roomRepository: LiveRoomRepository, private val roomRepository: LiveRoomRepository,
@Value("\${cloud.aws.cloud-front.host}") @Value("\${cloud.aws.cloud-front.host}")
@ -43,7 +43,7 @@ class LiveRoomKickOutService(
liveRoomKickOut.kickOut(request.userId) liveRoomKickOut.kickOut(request.userId)
repository.save(liveRoomKickOut) repository.save(liveRoomKickOut)
val kickOutUser = accountRepository.findByIdOrNull(request.userId) val kickOutUser = memberRepository.findByIdOrNull(request.userId)
if (kickOutUser != null) { if (kickOutUser != null) {
roomInfo.removeSpeaker(kickOutUser) roomInfo.removeSpeaker(kickOutUser)
roomInfo.removeListener(kickOutUser) roomInfo.removeListener(kickOutUser)