From 237855e9ba905b315795888d6bccad11197e5e74 Mon Sep 17 00:00:00 2001 From: DongGeon0908 Date: Fri, 27 Sep 2024 09:51:55 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EA=B7=B8=EB=A3=B9=20=EC=A0=84=EC=B2=B4?= =?UTF-8?q?=20=ED=8F=89=EA=B7=A0=20=EC=8A=A4=EC=BD=94=EC=96=B4=20=EB=B0=8F?= =?UTF-8?q?=20=EB=82=B4=20=EC=8A=A4=EC=BD=94=EC=96=B4=20=EC=A0=95=EB=B3=B4?= =?UTF-8?q?=20=EC=A0=9C=EA=B3=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/group/application/GroupFacade.kt | 21 ++++++++++++------- .../model/response/GetGroupRanksResponse.kt | 6 +++++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/main/kotlin/com/hero/alignlab/domain/group/application/GroupFacade.kt b/src/main/kotlin/com/hero/alignlab/domain/group/application/GroupFacade.kt index 90f74eb..6065c5b 100644 --- a/src/main/kotlin/com/hero/alignlab/domain/group/application/GroupFacade.kt +++ b/src/main/kotlin/com/hero/alignlab/domain/group/application/GroupFacade.kt @@ -259,17 +259,22 @@ class GroupFacade( val userById = userInfoService.findAllByIds(groupUserScores.map { it.uid }).associateBy { it.id } val rank = AtomicInteger(1) + val ranks = groupUserScores.mapNotNull { groupUserScore -> + GetGroupRankResponse( + groupUserId = groupUserScore.groupUserId, + name = userById[groupUserScore.uid]?.nickname ?: return@mapNotNull null, + rank = rank.getAndIncrement(), + score = groupUserScore.score ?: return@mapNotNull null, + ) + } + val avgGroupUserScore = (ranks.sumOf { it.score } / ranks.size) + val myScore = ranks.firstOrNull { it.groupUserId == groupUser.id }?.score return GetGroupRanksResponse( groupId = groupUser.groupId, - ranks = groupUserScores.mapNotNull { groupUserScore -> - GetGroupRankResponse( - groupUserId = groupUserScore.groupUserId, - name = userById[groupUserScore.uid]?.nickname ?: return@mapNotNull null, - rank = rank.getAndIncrement(), - score = groupUserScore.score ?: return@mapNotNull null, - ) - } + ranks = ranks, + avgScore = avgGroupUserScore, + myScore = myScore ) } } diff --git a/src/main/kotlin/com/hero/alignlab/domain/group/model/response/GetGroupRanksResponse.kt b/src/main/kotlin/com/hero/alignlab/domain/group/model/response/GetGroupRanksResponse.kt index 702521a..1083f42 100644 --- a/src/main/kotlin/com/hero/alignlab/domain/group/model/response/GetGroupRanksResponse.kt +++ b/src/main/kotlin/com/hero/alignlab/domain/group/model/response/GetGroupRanksResponse.kt @@ -2,7 +2,11 @@ package com.hero.alignlab.domain.group.model.response data class GetGroupRanksResponse( val groupId: Long, - val ranks: List + val ranks: List, + /** 크루 전체 평균 스코어 */ + val avgScore: Int?, + /** 내 평균 스코어 */ + val myScore: Int?, ) data class GetGroupRankResponse(