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 {
GetChargeStatusDetailResponse(
accountId = it.accountId,
memberId = it.memberId,
nickname = it.nickname,
method = it.method,
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
data class GetChargeStatusDetailQueryDto @QueryProjection constructor(
val accountId: Long,
val memberId: Long,
val nickname: String,
val method: String,
val appleChargeAmount: Double,

View File

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

View File

@ -149,12 +149,12 @@ class ExplorerQueryRepository(
.distinct()
}
fun getSearchChannel(channel: String, accountId: Long): List<Member> {
fun getSearchChannel(channel: String, memberId: Long): List<Member> {
return queryFactory.selectFrom(member)
.where(
member.nickname.containsIgnoreCase(channel)
.and(member.isActive.isTrue)
.and(member.id.ne(accountId))
.and(member.id.ne(memberId))
.and(member.role.eq(MemberRole.CREATOR))
)
.fetch()
@ -266,8 +266,8 @@ class ExplorerQueryRepository(
},
account.tags
.asSequence()
.filter { accountCounselorTag -> accountCounselorTag.tag.isActive }
.map { accountCounselorTag -> accountCounselorTag.tag.tag }
.filter { tag -> tag.tag.isActive }
.map { tag -> tag.tag.tag }
.toList()
)
}
@ -313,8 +313,8 @@ class ExplorerQueryRepository(
},
it.tags
.asSequence()
.filter { accountCounselorTag -> accountCounselorTag.tag.isActive }
.map { accountCounselorTag -> accountCounselorTag.tag.tag }
.filter { tag -> tag.tag.isActive }
.map { tag -> tag.tag.tag }
.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.MemberRepository
import kr.co.vividnext.sodalive.member.MemberRole
import kr.co.vividnext.sodalive.member.block.BlockMemberRepository
import kr.co.vividnext.sodalive.utils.generateFileName
import org.springframework.beans.factory.annotation.Value
import org.springframework.data.domain.Pageable
@ -63,6 +64,7 @@ class LiveRoomService(
private val roomInfoRepository: LiveRoomInfoRedisRepository,
private val roomCancelRepository: LiveRoomCancelRepository,
private val kickOutService: LiveRoomKickOutService,
private val blockMemberRepository: BlockMemberRepository,
private val useCanCalculateRepository: UseCanCalculateRepository,
private val reservationRepository: LiveReservationRepository,
@ -419,6 +421,12 @@ class LiveRoomService(
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!!)
lock.write {
var roomInfo = roomInfoRepository.findByIdOrNull(request.roomId)

View File

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