[+] Store userMisc at upsert

pull/99/head^2
Azalea 2025-01-05 02:14:30 -05:00
parent d25678d7b4
commit 89e682df3d
1 changed files with 18 additions and 9 deletions

View File

@ -3,10 +3,7 @@ package icu.samnyan.aqua.sega.chusan.handler
import ext.* import ext.*
import icu.samnyan.aqua.sega.chusan.ChusanController import icu.samnyan.aqua.sega.chusan.ChusanController
import icu.samnyan.aqua.sega.chusan.model.request.UpsertUserAll 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.*
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.general.model.response.UserRecentRating import icu.samnyan.aqua.sega.general.model.response.UserRecentRating
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
@ -53,13 +50,25 @@ fun ChusanController.upsertApiInit() {
db.userGeneralData.save(d.apply { propertyValue = list!!.str() }) db.userGeneralData.save(d.apply { propertyValue = list!!.str() })
} }
userFavoriteMusicList?.filter { it.musicId != -1 }?.let { list -> val misc = db.userMisc.findSingleByUser(u)() ?: Chu3UserMisc().apply { user = u }
val d = db.userGeneralData.findByUserAndPropertyKey(u, "favorite_music")()
?: UserGeneralData().apply { user = u; propertyKey = "favorite_music" } // Favorites
db.userGeneralData.save(d.apply { userFavoriteMusicList?.filter { it.musicId != -1 }?.ifEmpty { null }?.let { list ->
propertyValue = list.distinct().joinToString(",") { it.musicId.toString() } }) 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 // Playlog
userPlaylogList?.let { db.userPlaylog.saveAll(it) } userPlaylogList?.let { db.userPlaylog.saveAll(it) }
userNetBattlelogList?.let { db.netBattleLog.saveAll(it.mapApply { userNetBattlelogList?.let { db.netBattleLog.saveAll(it.mapApply {