mirror of https://github.com/hykilpikonna/AquaDX
[O] Todo :(
parent
01a064f1ab
commit
9197b3ca93
|
@ -6,11 +6,8 @@ import icu.samnyan.aqua.sega.chusan.ChusanController
|
||||||
import icu.samnyan.aqua.sega.chusan.ChusanData
|
import icu.samnyan.aqua.sega.chusan.ChusanData
|
||||||
import icu.samnyan.aqua.sega.chusan.model.request.UserCMissionResp
|
import icu.samnyan.aqua.sega.chusan.model.request.UserCMissionResp
|
||||||
import icu.samnyan.aqua.sega.chusan.model.userdata.UserItem
|
import icu.samnyan.aqua.sega.chusan.model.userdata.UserItem
|
||||||
import icu.samnyan.aqua.sega.chusan.model.userdata.UserLoginBonus
|
|
||||||
import icu.samnyan.aqua.sega.chusan.model.userdata.UserMusicDetail
|
import icu.samnyan.aqua.sega.chusan.model.userdata.UserMusicDetail
|
||||||
import icu.samnyan.aqua.sega.general.model.response.UserRecentRating
|
import icu.samnyan.aqua.sega.general.model.response.UserRecentRating
|
||||||
import java.time.LocalDateTime
|
|
||||||
import java.time.ZoneOffset
|
|
||||||
import java.time.format.DateTimeFormatter
|
import java.time.format.DateTimeFormatter
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
@ -240,51 +237,51 @@ fun ChusanController.chusanInit() {
|
||||||
|
|
||||||
// TODO: Test login bonus
|
// TODO: Test login bonus
|
||||||
"GameLogin" {
|
"GameLogin" {
|
||||||
fun process() {
|
// fun process() {
|
||||||
val u = db.userData.findByCard_ExtId(uid)() ?: return
|
// val u = db.userData.findByCard_ExtId(uid)() ?: return
|
||||||
db.userData.save(u.apply { lastLoginDate = LocalDateTime.now() })
|
// db.userData.save(u.apply { lastLoginDate = LocalDateTime.now() })
|
||||||
|
//
|
||||||
if (!props.loginBonusEnable) return
|
// if (!props.loginBonusEnable) return
|
||||||
val bonusList = db.gameLoginBonusPresets.findLoginBonusPresets(1, 1)
|
// val bonusList = db.gameLoginBonusPresets.findLoginBonusPresets(1, 1)
|
||||||
|
//
|
||||||
bonusList.forEach { preset ->
|
// bonusList.forEach { preset ->
|
||||||
// Check if a user already has some progress and if not, add the login bonus entry
|
// // Check if a user already has some progress and if not, add the login bonus entry
|
||||||
val bonus = db.userLoginBonus.findLoginBonus(uid.int, 1, preset.id)()
|
// val bonus = db.userLoginBonus.findLoginBonus(uid.int, 1, preset.id)()
|
||||||
?: UserLoginBonus(1, uid.int, preset.id).let { db.userLoginBonus.save(it) }
|
// ?: UserLoginBonus(1, uid.int, preset.id).let { db.userLoginBonus.save(it) }
|
||||||
if (bonus.isFinished) return@forEach
|
// if (bonus.isFinished) return@forEach
|
||||||
|
//
|
||||||
// last login is 24 hours+ ago
|
// // last login is 24 hours+ ago
|
||||||
if (bonus.lastUpdateDate.toEpochSecond(ZoneOffset.ofHours(0)) <
|
// if (bonus.lastUpdateDate.toEpochSecond(ZoneOffset.ofHours(0)) <
|
||||||
(LocalDateTime.now().minusHours(24).toEpochSecond(ZoneOffset.ofHours(0)))
|
// (LocalDateTime.now().minusHours(24).toEpochSecond(ZoneOffset.ofHours(0)))
|
||||||
) {
|
// ) {
|
||||||
var bCount = bonus.bonusCount + 1
|
// var bCount = bonus.bonusCount + 1
|
||||||
val lastUpdate = LocalDateTime.now()
|
// val lastUpdate = LocalDateTime.now()
|
||||||
val allLoginBonus = db.gameLoginBonus.findGameLoginBonus(1, preset.id)
|
// val allLoginBonus = db.gameLoginBonus.findGameLoginBonus(1, preset.id)
|
||||||
.ifEmpty { return@forEach }
|
// .ifEmpty { return@forEach }
|
||||||
val maxNeededDays = allLoginBonus[0].needLoginDayCount
|
// val maxNeededDays = allLoginBonus[0].needLoginDayCount
|
||||||
|
//
|
||||||
// if all items are redeemed, then don't show the login bonuses.
|
// // if all items are redeemed, then don't show the login bonuses.
|
||||||
var finished = false
|
// var finished = false
|
||||||
if (bCount > maxNeededDays) {
|
// if (bCount > maxNeededDays) {
|
||||||
if (preset.id < 3000) bCount = 1
|
// if (preset.id < 3000) bCount = 1
|
||||||
else finished = true
|
// else finished = true
|
||||||
}
|
// }
|
||||||
db.gameLoginBonus.findByRequiredDays(1, preset.id, bCount)()?.let {
|
// db.gameLoginBonus.findByRequiredDays(1, preset.id, bCount)()?.let {
|
||||||
db.userItem.save(UserItem(6, it.presentId, it.itemNum).apply { user = u })
|
// db.userItem.save(UserItem(6, it.presentId, it.itemNum).apply { user = u })
|
||||||
}
|
// }
|
||||||
val toSave = db.userLoginBonus.findLoginBonus(uid.int, 1, preset.id)()
|
// val toSave = db.userLoginBonus.findLoginBonus(uid.int, 1, preset.id)()
|
||||||
?: UserLoginBonus().apply { user = uid.int; presetId = preset.id; version = 1 }
|
// ?: UserLoginBonus().apply { user = uid.int; presetId = preset.id; version = 1 }
|
||||||
|
//
|
||||||
db.userLoginBonus.save(toSave.apply {
|
// db.userLoginBonus.save(toSave.apply {
|
||||||
bonusCount = bCount
|
// bonusCount = bCount
|
||||||
lastUpdateDate = lastUpdate
|
// lastUpdateDate = lastUpdate
|
||||||
isWatched = false
|
// isWatched = false
|
||||||
isFinished = finished
|
// isFinished = finished
|
||||||
})
|
// })
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
process()
|
// process()
|
||||||
|
|
||||||
"""{"returnCode":"1"}"""
|
"""{"returnCode":"1"}"""
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,10 +3,12 @@ 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.*
|
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.general.model.response.UserRecentRating
|
import icu.samnyan.aqua.sega.general.model.response.UserRecentRating
|
||||||
import java.nio.charset.StandardCharsets
|
import java.nio.charset.StandardCharsets
|
||||||
import java.time.LocalDateTime
|
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
fun ChusanController.upsertApiInit() {
|
fun ChusanController.upsertApiInit() {
|
||||||
|
@ -99,17 +101,17 @@ fun ChusanController.upsertApiInit() {
|
||||||
id = db.userDuel.findByUserAndDuelId(u, duelId)?.id ?: 0 }) }
|
id = db.userDuel.findByUserAndDuelId(u, duelId)?.id ?: 0 }) }
|
||||||
|
|
||||||
// Need testing
|
// Need testing
|
||||||
userLoginBonusList?.let { list ->
|
// userLoginBonusList?.let { list ->
|
||||||
db.userLoginBonus.saveAll(list.distinctBy { it["presetId"] as String }.map {
|
// db.userLoginBonus.saveAll(list.distinctBy { it["presetId"] as String }.map {
|
||||||
val id = it["presetId"]!!.int
|
// val id = it["presetId"]!!.int
|
||||||
(db.userLoginBonus.findLoginBonus(uid.int, 1, id)() ?: UserLoginBonus()).apply {
|
// (db.userLoginBonus.findLoginBonus(uid.int, 1, id)() ?: UserLoginBonus()).apply {
|
||||||
user = u.id.toInt()
|
// user = u.id.toInt()
|
||||||
presetId = id
|
// presetId = id
|
||||||
lastUpdateDate = LocalDateTime.now()
|
// lastUpdateDate = LocalDateTime.now()
|
||||||
isWatched = true
|
// isWatched = true
|
||||||
}
|
// }
|
||||||
})
|
// })
|
||||||
}
|
// }
|
||||||
|
|
||||||
req.userCMissionList?.forEach { d ->
|
req.userCMissionList?.forEach { d ->
|
||||||
(db.userCMission.findByUser_Card_ExtIdAndMissionId(uid, d.missionId)()
|
(db.userCMission.findByUser_Card_ExtIdAndMissionId(uid, d.missionId)()
|
||||||
|
|
|
@ -5,7 +5,6 @@ package icu.samnyan.aqua.sega.chusan.model
|
||||||
import icu.samnyan.aqua.net.games.GenericPlaylogRepo
|
import icu.samnyan.aqua.net.games.GenericPlaylogRepo
|
||||||
import icu.samnyan.aqua.net.games.GenericUserDataRepo
|
import icu.samnyan.aqua.net.games.GenericUserDataRepo
|
||||||
import icu.samnyan.aqua.net.games.IUserRepo
|
import icu.samnyan.aqua.net.games.IUserRepo
|
||||||
import icu.samnyan.aqua.sega.chusan.model.gamedata.*
|
|
||||||
import icu.samnyan.aqua.sega.chusan.model.userdata.*
|
import icu.samnyan.aqua.sega.chusan.model.userdata.*
|
||||||
import org.springframework.data.domain.Page
|
import org.springframework.data.domain.Page
|
||||||
import org.springframework.data.domain.Pageable
|
import org.springframework.data.domain.Pageable
|
||||||
|
@ -37,7 +36,7 @@ interface Chu3UserLoginBonusRepo : JpaRepository<UserLoginBonus, Long> {
|
||||||
value = "select * from chusan_user_login_bonus where user = ?1 and version = ?2 and preset_id = ?3 limit 1",
|
value = "select * from chusan_user_login_bonus where user = ?1 and version = ?2 and preset_id = ?3 limit 1",
|
||||||
nativeQuery = true
|
nativeQuery = true
|
||||||
)
|
)
|
||||||
fun findLoginBonus(userId: Int, version: Int, presetId: Int): Optional<UserLoginBonus>
|
fun findLoginBonus(userId: Int, version: Int, presetId: Long): Optional<UserLoginBonus>
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Chu3UserActivityRepo : Chu3UserLinked<UserActivity> {
|
interface Chu3UserActivityRepo : Chu3UserLinked<UserActivity> {
|
||||||
|
@ -144,7 +143,7 @@ interface Chu3GameGachaCardRepo : JpaRepository<GameGachaCard, Long> {
|
||||||
|
|
||||||
interface Chu3GameGachaRepo : JpaRepository<GameGacha, Long>
|
interface Chu3GameGachaRepo : JpaRepository<GameGacha, Long>
|
||||||
|
|
||||||
interface Chu3GameLoginBonusPresetsRepo : JpaRepository<GameLoginBonusPreset, Int> {
|
interface Chu3GameLoginBonusPresetsRepo : JpaRepository<GameLoginBonusPreset, Long> {
|
||||||
@Query(
|
@Query(
|
||||||
value = "select * from chusan_game_login_bonus_preset where version = ?1 and is_enabled = ?2",
|
value = "select * from chusan_game_login_bonus_preset where version = ?1 and is_enabled = ?2",
|
||||||
nativeQuery = true
|
nativeQuery = true
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package icu.samnyan.aqua.sega.chusan.model.request
|
package icu.samnyan.aqua.sega.chusan.model.request
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty
|
import com.fasterxml.jackson.annotation.JsonProperty
|
||||||
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameGachaCard
|
import icu.samnyan.aqua.sega.chusan.model.GameGachaCard
|
||||||
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData
|
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData
|
||||||
import icu.samnyan.aqua.sega.chusan.model.userdata.UserGacha
|
import icu.samnyan.aqua.sega.chusan.model.userdata.UserGacha
|
||||||
import icu.samnyan.aqua.sega.chusan.model.userdata.UserItem
|
import icu.samnyan.aqua.sega.chusan.model.userdata.UserItem
|
||||||
|
|
|
@ -10,6 +10,7 @@ import java.time.LocalDateTime
|
||||||
@Table(name = "chusan_user_login_bonus")
|
@Table(name = "chusan_user_login_bonus")
|
||||||
class UserLoginBonus(
|
class UserLoginBonus(
|
||||||
var version: Int = 0,
|
var version: Int = 0,
|
||||||
|
// TODO: Fix this (should be User linked)
|
||||||
var user: Int = 0,
|
var user: Int = 0,
|
||||||
var presetId: Int = 0,
|
var presetId: Int = 0,
|
||||||
var bonusCount: Int = 0,
|
var bonusCount: Int = 0,
|
||||||
|
|
Loading…
Reference in New Issue