From 6d02c53eb3cef70fd4d3baf2ac87145d7f5d076a Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Sun, 9 Mar 2025 09:57:46 -0400 Subject: [PATCH] [+] Verse: Save unlock challenge --- .../sega/chusan/handler/ChusanUpsertApis.kt | 4 ++++ .../aqua/sega/chusan/model/Chu3Repos.kt | 5 +++++ .../sega/chusan/model/request/UpsertUserAll.kt | 1 + .../chusan/model/userdata/Chu3UserChallenge.kt | 18 ++++++++++++++++++ 4 files changed, 28 insertions(+) create mode 100644 src/main/java/icu/samnyan/aqua/sega/chusan/model/userdata/Chu3UserChallenge.kt 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 b8056a99..dbe8ff86 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 @@ -124,6 +124,10 @@ fun ChusanController.upsertApiInit() { db.userDuel.saveAll(list.distinctBy { it.duelId }.mapApply { id = db.userDuel.findByUserAndDuelId(u, duelId)?.id ?: 0 }) } + userUnlockChallengeList?.let { list -> + db.userChallenge.saveAll(list.distinctBy { it.unlockChallengeId }.mapApply { + id = db.userChallenge.findByUserAndUnlockChallengeId(u, unlockChallengeId)?.id ?: 0 }) } + // Need testing // userLoginBonusList?.let { list -> // db.userLoginBonus.saveAll(list.distinctBy { it["presetId"] as String }.map { diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/model/Chu3Repos.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/model/Chu3Repos.kt index a8841c51..280978f5 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/model/Chu3Repos.kt +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/model/Chu3Repos.kt @@ -136,6 +136,10 @@ interface Chu3NetBattleLogRepo : Chu3UserLinked { interface Chu3UserMiscRepo : Chu3UserLinked +interface Chu3UserChallengeRepo : Chu3UserLinked { + fun findByUserAndUnlockChallengeId(user: Chu3UserData, unlockChallengeId: Int): Chu3UserChallenge? +} + interface Chu3GameChargeRepo : JpaRepository interface Chu3GameEventRepo : JpaRepository { @@ -191,6 +195,7 @@ class Chu3Repos( val userCMissionProgress: Chu3UserCMissionProgressRepo, val netBattleLog: Chu3NetBattleLogRepo, val userMisc: Chu3UserMiscRepo, + val userChallenge: Chu3UserChallengeRepo, val gameCharge: Chu3GameChargeRepo, val gameEvent: Chu3GameEventRepo, val gameGachaCard: Chu3GameGachaCardRepo, diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/model/request/UpsertUserAll.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/model/request/UpsertUserAll.kt index 5f630794..2c195609 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/model/request/UpsertUserAll.kt +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/model/request/UpsertUserAll.kt @@ -63,4 +63,5 @@ class UpsertUserAll( var userNetBattleData: List? = null, var userCMissionList: List? = null, var userFavoriteMusicList: List? = null, + var userUnlockChallengeList: List? = null, ) diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/model/userdata/Chu3UserChallenge.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/model/userdata/Chu3UserChallenge.kt new file mode 100644 index 00000000..7f0e6ef2 --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/model/userdata/Chu3UserChallenge.kt @@ -0,0 +1,18 @@ +package icu.samnyan.aqua.sega.chusan.model.userdata + +import jakarta.persistence.Entity +import jakarta.persistence.Table +import jakarta.persistence.UniqueConstraint + + +@Entity(name = "ChusanUserChallenge") +@Table(name = "chusan_user_challenge", uniqueConstraints = [UniqueConstraint(columnNames = ["user_id", "unlock_challenge_id"])]) +class Chu3UserChallenge : Chu3UserEntity() { + var unlockChallengeId = 0 + var status = 0 + var clearCourseId = 0 + var conditionType = 0 + var score = 0 + var life = 0 + var clearDate = "" // len 20 YYYY-MM-DD HH:MM:SS +}