[+] 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 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 {