From 85296ae3b13ba63d9c72e8d7ae4438a0e14b04b0 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Sat, 20 Apr 2024 09:33:53 +0900 Subject: [PATCH] [O] WIP --- .../java/icu/samnyan/aqua/net/games/Models.kt | 21 +++++++++++++++++-- .../samnyan/aqua/net/games/mai2/Maimai2.kt | 15 +++++++------ .../icu/samnyan/aqua/net/games/wacca/Wacca.kt | 15 +++++++------ 3 files changed, 35 insertions(+), 16 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/net/games/Models.kt b/src/main/java/icu/samnyan/aqua/net/games/Models.kt index c71e9fd8..3f972eb3 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/Models.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/Models.kt @@ -20,7 +20,7 @@ data class TrendOut(val date: String, val rating: Int, val plays: Int) data class RankCount(val name: String, val count: Int) -data class GenericGameSummary( +data class GameSummary( val name: String, val aquaUser: Map?, @@ -42,7 +42,7 @@ data class GenericGameSummary( val lastSeen: String, val lastVersion: String, - val ratingComposition: Map, + val ratingComposition: RatingComposition, val recent: List ) @@ -102,6 +102,23 @@ interface IGenericGamePlaylog { val isAllPerfect: Boolean } +/** + * An entry of the best scores + */ +@Serializable +data class RatingCompositionEntry( + val music: Int, + val level: Int, + val achievement: Int, + val rating: Int +) + +@Serializable +data class RatingComposition( + val bestNew: List, + val bestOld: List +) + @MappedSuperclass open class BaseEntity( @Id diff --git a/src/main/java/icu/samnyan/aqua/net/games/mai2/Maimai2.kt b/src/main/java/icu/samnyan/aqua/net/games/mai2/Maimai2.kt index b9827d22..d28fd1d4 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/mai2/Maimai2.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/mai2/Maimai2.kt @@ -29,14 +29,13 @@ class Maimai2( ) } override suspend fun userSummary(@RP username: Str) = us.cardByName(username) { card -> - val extra = repos.userGeneralData.findByUser_Card_ExtId(card.extId) - .associate { it.propertyKey to it.propertyValue } + genericUserSummary(card) { u -> + val extra = repos.userGeneralData.findByUser(u).associate { it.propertyKey to it.propertyValue } - val ratingComposition = mapOf( - "best35" to (extra["recent_rating"] ?: ""), - "best15" to (extra["recent_rating_new"] ?: "") - ) - - genericUserSummary(card, ratingComposition) + RatingComposition( + bestOld = extra["recent_rating"] ?: "", + bestNew = extra["recent_rating_new"] ?: "" + ) + } } } \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt b/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt index 527457a6..7447fb29 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt @@ -4,21 +4,21 @@ import ext.* import icu.samnyan.aqua.net.db.AquaUserServices import icu.samnyan.aqua.net.games.* import icu.samnyan.aqua.net.utils.waccaScores +import icu.samnyan.aqua.sega.wacca.model.db.WaccaRepos import icu.samnyan.aqua.sega.wacca.model.db.WaccaUser -import icu.samnyan.aqua.sega.wacca.model.db.WcUserPlayLogRepo -import icu.samnyan.aqua.sega.wacca.model.db.WcUserRepo import org.springframework.web.bind.annotation.RestController @RestController @API("api/v2/game/wacca") class Wacca( override val us: AquaUserServices, - override val playlogRepo: WcUserPlayLogRepo, - override val userDataRepo: WcUserRepo, + val rp: WaccaRepos, ): GameApiController("wacca", WaccaUser::class) { override val settableFields: Map Unit> by lazy { mapOf( "userName" to usernameCheck(WACCA_USERNAME_CHARS), ) } + override val playlogRepo = rp.playLog + override val userDataRepo = rp.user override suspend fun trend(@RP username: String) = us.cardByName(username) { card -> findTrend(playlogRepo.findByUserCardExtId(card.extId) @@ -26,8 +26,11 @@ class Wacca( } override suspend fun userSummary(@RP username: String) = us.cardByName(username) { card -> - // TODO: Rating composition - genericUserSummary(card, mapOf()) + genericUserSummary(card) { + val best50 = rp.bestScore.findTop50(it) + + mapOf() + } } override val shownRanks: List> = waccaScores.filter { it.first > 85 * 10000 }