From 3613d7a37ba939281eadc4e74cc65271397c00a2 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Thu, 28 Mar 2024 23:19:05 -0400 Subject: [PATCH] [+] user/trial/get, user/vip/get, user/vip/start --- .../samnyan/aqua/sega/wacca/WaccaServer.kt | 24 +++++++++++++++++++ .../sega/wacca/model/db/WaccaUserModels.kt | 7 +++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/wacca/WaccaServer.kt b/src/main/java/icu/samnyan/aqua/sega/wacca/WaccaServer.kt index 1d18b486..d1fb31cf 100644 --- a/src/main/java/icu/samnyan/aqua/sega/wacca/WaccaServer.kt +++ b/src/main/java/icu/samnyan/aqua/sega/wacca/WaccaServer.kt @@ -34,6 +34,9 @@ class WaccaServer { val log = logger() val season = 3 val enabledGates = 1..24 + // [[stageId, danLevel], ...] + val enabledStages = ("[[3014, 14], [3013, 13], [3012, 12], [3011, 11], [3010, 10], [3009, 9], [3008, 8], [3007, 7], [3006, 6], [3005, 5], [3004, 4], [3003, 3], [3002, 2], [3001, 1], [210001, 0], [210002, 0], [210003, 0], [310001, 0], [310002, 0], [310003, 0], [310004, 0], [310005, 0], [310006, 0]]" + .jsonArray() as List>).associate { it[0].int() to it[1].int() } init { init() } @@ -365,4 +368,25 @@ fun WaccaServer.init() { removeAll(favRem as List) } }) } + + // TODO: Test this + "user/trial/get" { _, (uid) -> + val u = user(uid) ?: (404 - "User not found") + val stage = rp.stageUp.findByUser(u).associateBy { it.stageId } + + enabledStages.map { (stageId, danLevel) -> (stage[stageId] ?: WcUserStageUp()).ls(danLevel) } + } + + // TODO: Test this + "user/vip/get" { _, (uid) -> + val u = user(uid) ?: (404 - "User not found") + val vipDays = (u.vipExpireTime.time - millis()) / (24 * 60 * 60 * 1000) + ls(vipDays, ls(1, 1, "presents" - empty)) + } + + "user/vip/start" { _, (uid, cost, days) -> + val u = user(uid) ?: (404 - "User not found") + rp.user.save(u.apply { vipExpireTime = Date(millis() + days.int() * (24 * 60 * 60 * 1000)) }) + ls(u.vipExpireTime.sec, "presents" - empty) + } } diff --git a/src/main/java/icu/samnyan/aqua/sega/wacca/model/db/WaccaUserModels.kt b/src/main/java/icu/samnyan/aqua/sega/wacca/model/db/WaccaUserModels.kt index b14823c6..82495ed1 100644 --- a/src/main/java/icu/samnyan/aqua/sega/wacca/model/db/WaccaUserModels.kt +++ b/src/main/java/icu/samnyan/aqua/sega/wacca/model/db/WaccaUserModels.kt @@ -146,8 +146,9 @@ class WcUserStageUp : WaccaUserEntity() { var stageId = 0 var clearStatus = 0 var clearSongCt = 0 - var song1Score = 0 - var song2Score = 0 - var song3Score = 0 + @Convert(converter = IntegerListConverter::class) + var songScores = mutableListOf(0, 0, 0) var playCt = 0 + + fun ls(danLevel: Int) = ls(stageId, danLevel, clearStatus, clearSongCt, songScores, 1) }