mirror of https://github.com/hykilpikonna/AquaDX
[O] WIP
parent
8e882aafa1
commit
85296ae3b1
|
@ -20,7 +20,7 @@ data class TrendOut(val date: String, val rating: Int, val plays: Int)
|
||||||
|
|
||||||
data class RankCount(val name: String, val count: Int)
|
data class RankCount(val name: String, val count: Int)
|
||||||
|
|
||||||
data class GenericGameSummary(
|
data class GameSummary(
|
||||||
val name: String,
|
val name: String,
|
||||||
|
|
||||||
val aquaUser: Map<String, Any?>?,
|
val aquaUser: Map<String, Any?>?,
|
||||||
|
@ -42,7 +42,7 @@ data class GenericGameSummary(
|
||||||
val lastSeen: String,
|
val lastSeen: String,
|
||||||
val lastVersion: String,
|
val lastVersion: String,
|
||||||
|
|
||||||
val ratingComposition: Map<String, Any>,
|
val ratingComposition: RatingComposition,
|
||||||
|
|
||||||
val recent: List<IGenericGamePlaylog>
|
val recent: List<IGenericGamePlaylog>
|
||||||
)
|
)
|
||||||
|
@ -102,6 +102,23 @@ interface IGenericGamePlaylog {
|
||||||
val isAllPerfect: Boolean
|
val isAllPerfect: Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An entry of the best scores
|
||||||
|
*/
|
||||||
|
@Serializable
|
||||||
|
data class RatingCompositionEntry(
|
||||||
|
val music: Int,
|
||||||
|
val level: Int,
|
||||||
|
val achievement: Int,
|
||||||
|
val rating: Int
|
||||||
|
)
|
||||||
|
|
||||||
|
@Serializable
|
||||||
|
data class RatingComposition(
|
||||||
|
val bestNew: List<RatingCompositionEntry>,
|
||||||
|
val bestOld: List<RatingCompositionEntry>
|
||||||
|
)
|
||||||
|
|
||||||
@MappedSuperclass
|
@MappedSuperclass
|
||||||
open class BaseEntity(
|
open class BaseEntity(
|
||||||
@Id
|
@Id
|
||||||
|
|
|
@ -29,14 +29,13 @@ class Maimai2(
|
||||||
) }
|
) }
|
||||||
|
|
||||||
override suspend fun userSummary(@RP username: Str) = us.cardByName(username) { card ->
|
override suspend fun userSummary(@RP username: Str) = us.cardByName(username) { card ->
|
||||||
val extra = repos.userGeneralData.findByUser_Card_ExtId(card.extId)
|
genericUserSummary(card) { u ->
|
||||||
.associate { it.propertyKey to it.propertyValue }
|
val extra = repos.userGeneralData.findByUser(u).associate { it.propertyKey to it.propertyValue }
|
||||||
|
|
||||||
val ratingComposition = mapOf(
|
RatingComposition(
|
||||||
"best35" to (extra["recent_rating"] ?: ""),
|
bestOld = extra["recent_rating"] ?: "",
|
||||||
"best15" to (extra["recent_rating_new"] ?: "")
|
bestNew = extra["recent_rating_new"] ?: ""
|
||||||
)
|
)
|
||||||
|
}
|
||||||
genericUserSummary(card, ratingComposition)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -4,21 +4,21 @@ import ext.*
|
||||||
import icu.samnyan.aqua.net.db.AquaUserServices
|
import icu.samnyan.aqua.net.db.AquaUserServices
|
||||||
import icu.samnyan.aqua.net.games.*
|
import icu.samnyan.aqua.net.games.*
|
||||||
import icu.samnyan.aqua.net.utils.waccaScores
|
import icu.samnyan.aqua.net.utils.waccaScores
|
||||||
|
import icu.samnyan.aqua.sega.wacca.model.db.WaccaRepos
|
||||||
import icu.samnyan.aqua.sega.wacca.model.db.WaccaUser
|
import icu.samnyan.aqua.sega.wacca.model.db.WaccaUser
|
||||||
import icu.samnyan.aqua.sega.wacca.model.db.WcUserPlayLogRepo
|
|
||||||
import icu.samnyan.aqua.sega.wacca.model.db.WcUserRepo
|
|
||||||
import org.springframework.web.bind.annotation.RestController
|
import org.springframework.web.bind.annotation.RestController
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@API("api/v2/game/wacca")
|
@API("api/v2/game/wacca")
|
||||||
class Wacca(
|
class Wacca(
|
||||||
override val us: AquaUserServices,
|
override val us: AquaUserServices,
|
||||||
override val playlogRepo: WcUserPlayLogRepo,
|
val rp: WaccaRepos,
|
||||||
override val userDataRepo: WcUserRepo,
|
|
||||||
): GameApiController<WaccaUser>("wacca", WaccaUser::class) {
|
): GameApiController<WaccaUser>("wacca", WaccaUser::class) {
|
||||||
override val settableFields: Map<String, (WaccaUser, String) -> Unit> by lazy { mapOf(
|
override val settableFields: Map<String, (WaccaUser, String) -> Unit> by lazy { mapOf(
|
||||||
"userName" to usernameCheck(WACCA_USERNAME_CHARS),
|
"userName" to usernameCheck(WACCA_USERNAME_CHARS),
|
||||||
) }
|
) }
|
||||||
|
override val playlogRepo = rp.playLog
|
||||||
|
override val userDataRepo = rp.user
|
||||||
|
|
||||||
override suspend fun trend(@RP username: String) = us.cardByName(username) { card ->
|
override suspend fun trend(@RP username: String) = us.cardByName(username) { card ->
|
||||||
findTrend(playlogRepo.findByUserCardExtId(card.extId)
|
findTrend(playlogRepo.findByUserCardExtId(card.extId)
|
||||||
|
@ -26,8 +26,11 @@ class Wacca(
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun userSummary(@RP username: String) = us.cardByName(username) { card ->
|
override suspend fun userSummary(@RP username: String) = us.cardByName(username) { card ->
|
||||||
// TODO: Rating composition
|
genericUserSummary(card) {
|
||||||
genericUserSummary(card, mapOf())
|
val best50 = rp.bestScore.findTop50(it)
|
||||||
|
|
||||||
|
mapOf()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override val shownRanks: List<Pair<Int, String>> = waccaScores.filter { it.first > 85 * 10000 }
|
override val shownRanks: List<Pair<Int, String>> = waccaScores.filter { it.first > 85 * 10000 }
|
||||||
|
|
Loading…
Reference in New Issue