라이브 방 - 후원 메시지 리스트

- 비밀 후원 메시지 추가
This commit is contained in:
Klaus 2024-11-11 12:29:29 +09:00
parent 5820117c1a
commit 6111409d66
4 changed files with 16 additions and 4 deletions

View File

@ -889,6 +889,7 @@ class LiveRoomService(
?: throw SodaException("해당하는 라이브의 정보가 없습니다.") ?: throw SodaException("해당하는 라이브의 정보가 없습니다.")
return roomInfo.donationMessageList return roomInfo.donationMessageList
.filter { !it.isSecret || it.memberId == member.id!! }
} }
fun deleteDonationMessage(request: DeleteLiveRoomDonationMessage, member: Member) { fun deleteDonationMessage(request: DeleteLiveRoomDonationMessage, member: Member) {
@ -1068,14 +1069,16 @@ class LiveRoomService(
container = request.container container = request.container
) )
if (!request.isSecret && request.message.isNotBlank()) { if (request.message.isNotBlank()) {
val lock = getOrCreateLock(memberId = member.id!!) val lock = getOrCreateLock(memberId = member.id!!)
lock.write { lock.write {
val roomInfo = roomInfoRepository.findByIdOrNull(room.id!!) val roomInfo = roomInfoRepository.findByIdOrNull(room.id!!)
?: throw SodaException("해당하는 라이브의 정보가 없습니다.") ?: throw SodaException("해당하는 라이브의 정보가 없습니다.")
roomInfo.addDonationMessage( roomInfo.addDonationMessage(
memberId = member.id!!,
nickname = member.nickname, nickname = member.nickname,
isSecret = request.isSecret,
can = request.can, can = request.can,
donationMessage = request.message donationMessage = request.message
) )
@ -1112,14 +1115,16 @@ class LiveRoomService(
container = request.container container = request.container
) )
if (!request.isSecret && request.message.isNotBlank()) { if (request.message.isNotBlank()) {
val lock = getOrCreateLock(memberId = member.id!!) val lock = getOrCreateLock(memberId = member.id!!)
lock.write { lock.write {
val roomInfo = roomInfoRepository.findByIdOrNull(room.id!!) val roomInfo = roomInfoRepository.findByIdOrNull(room.id!!)
?: throw SodaException("해당하는 라이브의 정보가 없습니다.") ?: throw SodaException("해당하는 라이브의 정보가 없습니다.")
roomInfo.addDonationMessage( roomInfo.addDonationMessage(
memberId = member.id!!,
nickname = member.nickname, nickname = member.nickname,
isSecret = request.isSecret,
can = request.can, can = request.can,
donationMessage = request.message donationMessage = request.message
) )

View File

@ -4,7 +4,9 @@ import java.util.UUID
data class LiveRoomDonationMessage( data class LiveRoomDonationMessage(
val uuid: String = UUID.randomUUID().toString(), val uuid: String = UUID.randomUUID().toString(),
val memberId: Long,
val nickname: String, val nickname: String,
val isSecret: Boolean,
val canMessage: String, val canMessage: String,
val donationMessage: String val donationMessage: String
) )

View File

@ -83,11 +83,13 @@ data class LiveRoomInfo(
managerCount = managerList.size managerCount = managerList.size
} }
fun addDonationMessage(nickname: String, can: Int, donationMessage: String) { fun addDonationMessage(memberId: Long, nickname: String, isSecret: Boolean, can: Int, donationMessage: String) {
val donationMessageSet = donationMessageList.toMutableSet() val donationMessageSet = donationMessageList.toMutableSet()
donationMessageSet.add( donationMessageSet.add(
LiveRoomDonationMessage( LiveRoomDonationMessage(
memberId = memberId,
nickname = nickname, nickname = nickname,
isSecret = isSecret,
canMessage = "${can}캔을 후원하셨습니다.", canMessage = "${can}캔을 후원하셨습니다.",
donationMessage = donationMessage donationMessage = donationMessage
) )
@ -95,11 +97,13 @@ data class LiveRoomInfo(
donationMessageList = donationMessageSet.toList() donationMessageList = donationMessageSet.toList()
} }
fun addRouletteMessage(nickname: String, donationMessage: String) { fun addRouletteMessage(memberId: Long, nickname: String, donationMessage: String) {
val donationMessageSet = donationMessageList.toMutableSet() val donationMessageSet = donationMessageList.toMutableSet()
donationMessageSet.add( donationMessageSet.add(
LiveRoomDonationMessage( LiveRoomDonationMessage(
memberId = memberId,
nickname = nickname, nickname = nickname,
isSecret = false,
canMessage = "", canMessage = "",
donationMessage = donationMessage donationMessage = donationMessage
) )

View File

@ -162,6 +162,7 @@ class RouletteService(
?: throw SodaException("해당하는 라이브의 정보가 없습니다.") ?: throw SodaException("해당하는 라이브의 정보가 없습니다.")
roomInfo.addRouletteMessage( roomInfo.addRouletteMessage(
memberId = member.id!!,
nickname = member.nickname, nickname = member.nickname,
donationMessage = "[$result] 당첨!" donationMessage = "[$result] 당첨!"
) )