From 89e682df3d18ca12cb73e921c2fc8a0d8466d121 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Sun, 5 Jan 2025 02:14:30 -0500 Subject: [PATCH] [+] Store userMisc at upsert --- .../sega/chusan/handler/ChusanUpsertApis.kt | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanUpsertApis.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanUpsertApis.kt index 73bdc10c..58790dc6 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanUpsertApis.kt +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/ChusanUpsertApis.kt @@ -3,10 +3,7 @@ package icu.samnyan.aqua.sega.chusan.handler import ext.* import icu.samnyan.aqua.sega.chusan.ChusanController import icu.samnyan.aqua.sega.chusan.model.request.UpsertUserAll -import icu.samnyan.aqua.sega.chusan.model.userdata.UserCMission -import icu.samnyan.aqua.sega.chusan.model.userdata.UserCMissionProgress -import icu.samnyan.aqua.sega.chusan.model.userdata.UserCharge -import icu.samnyan.aqua.sega.chusan.model.userdata.UserGeneralData +import icu.samnyan.aqua.sega.chusan.model.userdata.* import icu.samnyan.aqua.sega.general.model.response.UserRecentRating @Suppress("UNCHECKED_CAST") @@ -53,13 +50,25 @@ fun ChusanController.upsertApiInit() { db.userGeneralData.save(d.apply { propertyValue = list!!.str() }) } - userFavoriteMusicList?.filter { it.musicId != -1 }?.let { list -> - val d = db.userGeneralData.findByUserAndPropertyKey(u, "favorite_music")() - ?: UserGeneralData().apply { user = u; propertyKey = "favorite_music" } - db.userGeneralData.save(d.apply { - propertyValue = list.distinct().joinToString(",") { it.musicId.toString() } }) + val misc = db.userMisc.findSingleByUser(u)() ?: Chu3UserMisc().apply { user = u } + + // Favorites + userFavoriteMusicList?.filter { it.musicId != -1 }?.ifEmpty { null }?.let { list -> + misc.favMusic = list.map { it.musicId }.mut } + // Net battle data + userNetBattleData?.getOrNull(0)?.let { + misc.recentNbSelect = it.recentNBSelectMusicList.map { it.musicId }.mut + } + + // Add the battle log songs to misc + if (userNetBattlelogList != null) { + val music = userMusicDetailList?.map { it.musicId } ?: emptyList() + misc.recentNbMusic = (misc.recentNbMusic + music).distinct().takeLast(10).mut + } + db.userMisc.save(misc) + // Playlog userPlaylogList?.let { db.userPlaylog.saveAll(it) } userNetBattlelogList?.let { db.netBattleLog.saveAll(it.mapApply {