parent
2d0492cafa
commit
695ccf975b
|
@ -1,5 +1,6 @@
|
|||
package kr.co.vividnext.sodalive.live.room.kickout
|
||||
|
||||
import kr.co.vividnext.sodalive.v2.LiveRoomKickOutV2
|
||||
import org.springframework.data.annotation.Id
|
||||
import org.springframework.data.redis.core.RedisHash
|
||||
|
||||
|
@ -20,6 +21,13 @@ data class LiveRoomKickOut(
|
|||
userList.removeIf { it.userId == userId }
|
||||
userList.add(liveRoomKickOutUser)
|
||||
}
|
||||
|
||||
fun convertV2(): LiveRoomKickOutV2 {
|
||||
return LiveRoomKickOutV2(
|
||||
roomId = roomId,
|
||||
userList = userList
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
data class LiveRoomKickOutUser(
|
||||
|
|
|
@ -8,6 +8,8 @@ import kr.co.vividnext.sodalive.member.Member
|
|||
import kr.co.vividnext.sodalive.member.MemberRepository
|
||||
import kr.co.vividnext.sodalive.v2.LiveRoomInfoRedisRepositoryV2
|
||||
import kr.co.vividnext.sodalive.v2.LiveRoomInfoV2
|
||||
import kr.co.vividnext.sodalive.v2.LiveRoomKickOutRedisRepositoryV2
|
||||
import kr.co.vividnext.sodalive.v2.LiveRoomKickOutV2
|
||||
import org.springframework.beans.factory.annotation.Value
|
||||
import org.springframework.data.repository.findByIdOrNull
|
||||
import org.springframework.stereotype.Service
|
||||
|
@ -17,6 +19,7 @@ class LiveRoomKickOutService(
|
|||
private val roomInfoRepository: LiveRoomInfoRedisRepository,
|
||||
private val roomInfoRepositoryV2: LiveRoomInfoRedisRepositoryV2,
|
||||
private val repository: LiveRoomKickOutRedisRepository,
|
||||
private val repositoryV2: LiveRoomKickOutRedisRepositoryV2,
|
||||
private val memberRepository: MemberRepository,
|
||||
private val roomRepository: LiveRoomRepository,
|
||||
|
||||
|
@ -39,6 +42,22 @@ class LiveRoomKickOutService(
|
|||
return roomInfoV2
|
||||
}
|
||||
|
||||
private fun getLiveRoomKickOut(roomId: Long): LiveRoomKickOutV2? {
|
||||
var liveRoomKickOutV2 = repositoryV2.findByIdOrNull(roomId)
|
||||
|
||||
if (liveRoomKickOutV2 == null) {
|
||||
val liveRoomKickOutV1 = repository.findByIdOrNull(roomId)
|
||||
|
||||
if (liveRoomKickOutV1 != null) {
|
||||
liveRoomKickOutV2 = liveRoomKickOutV1.convertV2()
|
||||
repositoryV2.save(liveRoomKickOutV2)
|
||||
repository.delete(liveRoomKickOutV1)
|
||||
}
|
||||
}
|
||||
|
||||
return liveRoomKickOutV2
|
||||
}
|
||||
|
||||
fun kickOut(request: LiveRoomKickOutRequest, member: Member) {
|
||||
val room = roomRepository.findByIdOrNull(request.roomId)
|
||||
?: throw SodaException("해당하는 라이브가 없습니다.")
|
||||
|
@ -54,13 +73,13 @@ class LiveRoomKickOutService(
|
|||
throw SodaException("권한이 없습니다.")
|
||||
}
|
||||
|
||||
var liveRoomKickOut = repository.findByIdOrNull(request.roomId)
|
||||
var liveRoomKickOut = getLiveRoomKickOut(request.roomId)
|
||||
if (liveRoomKickOut == null) {
|
||||
liveRoomKickOut = repository.save(LiveRoomKickOut(roomId = request.roomId))
|
||||
liveRoomKickOut = repositoryV2.save(LiveRoomKickOutV2(roomId = request.roomId))
|
||||
}
|
||||
|
||||
liveRoomKickOut.kickOut(request.userId)
|
||||
repository.save(liveRoomKickOut)
|
||||
repositoryV2.save(liveRoomKickOut)
|
||||
|
||||
val kickOutUser = memberRepository.findByIdOrNull(request.userId)
|
||||
if (kickOutUser != null) {
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
package kr.co.vividnext.sodalive.v2
|
||||
|
||||
import org.springframework.data.repository.CrudRepository
|
||||
|
||||
interface LiveRoomKickOutRedisRepositoryV2 : CrudRepository<LiveRoomKickOutV2, Long>
|
|
@ -0,0 +1,24 @@
|
|||
package kr.co.vividnext.sodalive.v2
|
||||
|
||||
import kr.co.vividnext.sodalive.live.room.kickout.LiveRoomKickOutUser
|
||||
import org.springframework.data.annotation.Id
|
||||
import org.springframework.data.redis.core.RedisHash
|
||||
|
||||
@RedisHash("LiveRoomKickOut")
|
||||
data class LiveRoomKickOutV2(
|
||||
@Id
|
||||
val roomId: Long,
|
||||
var userList: MutableList<LiveRoomKickOutUser> = mutableListOf()
|
||||
) {
|
||||
fun kickOut(userId: Long) {
|
||||
var liveRoomKickOutUser = userList.find { it.userId == userId }
|
||||
if (liveRoomKickOutUser == null) {
|
||||
liveRoomKickOutUser = LiveRoomKickOutUser(userId)
|
||||
} else {
|
||||
liveRoomKickOutUser.plusCount()
|
||||
}
|
||||
|
||||
userList.removeIf { it.userId == userId }
|
||||
userList.add(liveRoomKickOutUser)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue