From c097cb54f17c357e1442d38c9af3b8127a3c4c58 Mon Sep 17 00:00:00 2001 From: Klaus Date: Fri, 23 Feb 2024 14:20:02 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A3=B0=EB=A0=9B=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=20-=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= =?UTF-8?q?=20=ED=95=98=EB=8A=94=20=EB=A3=B0=EB=A0=9B=EC=9D=B4=20=ED=99=9C?= =?UTF-8?q?=EC=84=B1=ED=99=94=20=EB=90=98=EB=8A=94=20=EA=B2=BD=EC=9A=B0=20?= =?UTF-8?q?=EB=8B=A4=EB=A5=B8=20=EB=A3=B0=EB=A0=9B=20=EB=AA=A8=EB=91=90=20?= =?UTF-8?q?=EB=B9=84=ED=99=9C=EC=84=B1=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../live/roulette/NewRouletteService.kt | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/live/roulette/NewRouletteService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/live/roulette/NewRouletteService.kt index a58dfb0..8f88cb0 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/live/roulette/NewRouletteService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/live/roulette/NewRouletteService.kt @@ -86,18 +86,38 @@ class NewRouletteService( fun updateRoulette(memberId: Long, request: UpdateNewRouletteRequest): Boolean { rouletteValidate(can = request.can, items = request.items) - val roulette = repository.findByIdOrNull(request.id) - ?: throw SodaException("잘못된 요청입니다.") + if (request.isActive) { + val rouletteList = repository.findByCreatorId(creatorId = memberId) - if (roulette.creatorId != memberId) { - throw SodaException("잘못된 요청입니다.") + if (rouletteList.isEmpty()) { + throw SodaException("잘못된 요청입니다.") + } + + rouletteList.forEach { + if (it.id == request.id) { + it.can = request.can + it.items = request.items + it.isActive = true + } else { + it.isActive = false + } + + repository.save(it) + } + } else { + val roulette = repository.findByIdOrNull(request.id) + ?: throw SodaException("잘못된 요청입니다.") + + if (roulette.creatorId != memberId) { + throw SodaException("잘못된 요청입니다.") + } + + roulette.can = request.can + roulette.items = request.items + roulette.isActive = false + repository.save(roulette) } - roulette.can = request.can - roulette.items = request.items - roulette.isActive = request.isActive - repository.save(roulette) - return request.isActive }