Compare commits
2 Commits
5820117c1a
...
297f6555f3
Author | SHA1 | Date |
---|---|---|
|
297f6555f3 | |
|
6111409d66 |
|
@ -56,6 +56,7 @@ interface LiveRoomQueryRepository {
|
|||
fun getRoomActiveAndChannelNameIsNotNull(memberId: Long): List<LiveRoom>
|
||||
fun getActiveRoomIdList(memberId: Long): Int
|
||||
fun getTotalHeartCount(roomId: Long): Int?
|
||||
fun getLiveRoomCreatorId(roomId: Long): Long?
|
||||
}
|
||||
|
||||
class LiveRoomQueryRepositoryImpl(
|
||||
|
@ -334,4 +335,15 @@ class LiveRoomQueryRepositoryImpl(
|
|||
.where(where)
|
||||
.fetchOne()
|
||||
}
|
||||
|
||||
override fun getLiveRoomCreatorId(roomId: Long): Long? {
|
||||
return queryFactory
|
||||
.select(liveRoom.member.id)
|
||||
.from(liveRoom)
|
||||
.where(
|
||||
liveRoom.isActive.isTrue
|
||||
.and(liveRoom.id.eq(roomId))
|
||||
)
|
||||
.fetchFirst()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -885,10 +885,18 @@ class LiveRoomService(
|
|||
}
|
||||
|
||||
fun getDonationMessageList(roomId: Long, member: Member): List<LiveRoomDonationMessage> {
|
||||
val liveRoomCreatorId = repository.getLiveRoomCreatorId(roomId)
|
||||
?: throw SodaException("해당하는 라이브의 정보가 없습니다.")
|
||||
|
||||
val roomInfo = roomInfoRepository.findByIdOrNull(roomId)
|
||||
?: throw SodaException("해당하는 라이브의 정보가 없습니다.")
|
||||
|
||||
return roomInfo.donationMessageList
|
||||
return if (liveRoomCreatorId != member.id!!) {
|
||||
roomInfo.donationMessageList
|
||||
.filter { !it.isSecret || it.memberId == member.id!! }
|
||||
} else {
|
||||
roomInfo.donationMessageList
|
||||
}
|
||||
}
|
||||
|
||||
fun deleteDonationMessage(request: DeleteLiveRoomDonationMessage, member: Member) {
|
||||
|
@ -1068,14 +1076,16 @@ class LiveRoomService(
|
|||
container = request.container
|
||||
)
|
||||
|
||||
if (!request.isSecret && request.message.isNotBlank()) {
|
||||
if (request.message.isNotBlank()) {
|
||||
val lock = getOrCreateLock(memberId = member.id!!)
|
||||
lock.write {
|
||||
val roomInfo = roomInfoRepository.findByIdOrNull(room.id!!)
|
||||
?: throw SodaException("해당하는 라이브의 정보가 없습니다.")
|
||||
|
||||
roomInfo.addDonationMessage(
|
||||
memberId = member.id!!,
|
||||
nickname = member.nickname,
|
||||
isSecret = request.isSecret,
|
||||
can = request.can,
|
||||
donationMessage = request.message
|
||||
)
|
||||
|
@ -1112,14 +1122,16 @@ class LiveRoomService(
|
|||
container = request.container
|
||||
)
|
||||
|
||||
if (!request.isSecret && request.message.isNotBlank()) {
|
||||
if (request.message.isNotBlank()) {
|
||||
val lock = getOrCreateLock(memberId = member.id!!)
|
||||
lock.write {
|
||||
val roomInfo = roomInfoRepository.findByIdOrNull(room.id!!)
|
||||
?: throw SodaException("해당하는 라이브의 정보가 없습니다.")
|
||||
|
||||
roomInfo.addDonationMessage(
|
||||
memberId = member.id!!,
|
||||
nickname = member.nickname,
|
||||
isSecret = request.isSecret,
|
||||
can = request.can,
|
||||
donationMessage = request.message
|
||||
)
|
||||
|
|
|
@ -4,7 +4,9 @@ import java.util.UUID
|
|||
|
||||
data class LiveRoomDonationMessage(
|
||||
val uuid: String = UUID.randomUUID().toString(),
|
||||
val memberId: Long,
|
||||
val nickname: String,
|
||||
val isSecret: Boolean,
|
||||
val canMessage: String,
|
||||
val donationMessage: String
|
||||
)
|
||||
|
|
|
@ -83,11 +83,13 @@ data class LiveRoomInfo(
|
|||
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()
|
||||
donationMessageSet.add(
|
||||
LiveRoomDonationMessage(
|
||||
memberId = memberId,
|
||||
nickname = nickname,
|
||||
isSecret = isSecret,
|
||||
canMessage = "${can}캔을 후원하셨습니다.",
|
||||
donationMessage = donationMessage
|
||||
)
|
||||
|
@ -95,11 +97,13 @@ data class LiveRoomInfo(
|
|||
donationMessageList = donationMessageSet.toList()
|
||||
}
|
||||
|
||||
fun addRouletteMessage(nickname: String, donationMessage: String) {
|
||||
fun addRouletteMessage(memberId: Long, nickname: String, donationMessage: String) {
|
||||
val donationMessageSet = donationMessageList.toMutableSet()
|
||||
donationMessageSet.add(
|
||||
LiveRoomDonationMessage(
|
||||
memberId = memberId,
|
||||
nickname = nickname,
|
||||
isSecret = false,
|
||||
canMessage = "",
|
||||
donationMessage = donationMessage
|
||||
)
|
||||
|
|
|
@ -162,6 +162,7 @@ class RouletteService(
|
|||
?: throw SodaException("해당하는 라이브의 정보가 없습니다.")
|
||||
|
||||
roomInfo.addRouletteMessage(
|
||||
memberId = member.id!!,
|
||||
nickname = member.nickname,
|
||||
donationMessage = "[$result] 당첨!"
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue