forked from Cookies_Github_mirror/AquaDX
[O] Huge refactor
This commit is contained in:
@@ -9,7 +9,7 @@ import kotlin.reflect.KClass
|
||||
data class ImportClass<T : Any>(
|
||||
val type: KClass<T>,
|
||||
val renames: Map<String, String?>? = null,
|
||||
val name: String = type.simpleName!!.lowercase()
|
||||
val name: String = type.simpleName!!.removePrefix("Mai2").lowercase()
|
||||
)
|
||||
|
||||
abstract class ImportController<T: Any>(
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package icu.samnyan.aqua.net.games
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore
|
||||
import ext.JavaSerializable
|
||||
import icu.samnyan.aqua.sega.general.model.Card
|
||||
import jakarta.persistence.*
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -104,15 +105,7 @@ open class BaseEntity(
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@JsonIgnore
|
||||
var id: Long = 0
|
||||
)
|
||||
|
||||
@MappedSuperclass
|
||||
open class UserMappedEntity<T : IGenericUserData> : BaseEntity() {
|
||||
@JsonIgnore
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "user_id")
|
||||
open var user: T? = null
|
||||
}
|
||||
) : JavaSerializable
|
||||
|
||||
@NoRepositoryBean
|
||||
interface GenericUserDataRepo<T : IGenericUserData> : JpaRepository<T, Long> {
|
||||
|
||||
@@ -14,28 +14,28 @@ class Mai2Import : ImportController<Maimai2DataExport>(
|
||||
it.name.replace("List", "").lowercase()
|
||||
},
|
||||
renameTable = mapOf(
|
||||
"mai2_item_character" to ImportClass(UserCharacter::class),
|
||||
"mai2_item_charge" to ImportClass(UserCharge::class),
|
||||
"mai2_item_friend_season_ranking" to ImportClass(UserFriendSeasonRanking::class),
|
||||
"mai2_item_item" to ImportClass(UserItem::class, mapOf("isValid" to "valid")),
|
||||
"mai2_item_login_bonus" to ImportClass(UserLoginBonus::class),
|
||||
"mai2_item_map" to ImportClass(UserMap::class),
|
||||
"mai2_playlog" to ImportClass(UserPlaylog::class, mapOf("userId" to null)),
|
||||
"mai2_profile_activity" to ImportClass(UserAct::class, mapOf("activityId" to "id")),
|
||||
"mai2_profile_detail" to ImportClass(UserDetail::class,
|
||||
"mai2_item_character" to ImportClass(Mai2UserCharacter::class),
|
||||
"mai2_item_charge" to ImportClass(Mai2UserCharge::class),
|
||||
"mai2_item_friend_season_ranking" to ImportClass(Mai2UserFriendSeasonRanking::class),
|
||||
"mai2_item_item" to ImportClass(Mai2UserItem::class, mapOf("isValid" to "valid")),
|
||||
"mai2_item_login_bonus" to ImportClass(Mai2UserLoginBonus::class),
|
||||
"mai2_item_map" to ImportClass(Mai2UserMap::class),
|
||||
"mai2_playlog" to ImportClass(Mai2UserPlaylog::class, mapOf("userId" to null)),
|
||||
"mai2_profile_activity" to ImportClass(Mai2UserAct::class, mapOf("activityId" to "id")),
|
||||
"mai2_profile_detail" to ImportClass(Mai2UserDetail::class,
|
||||
mapOf("user" to null, "version" to null, "isNetMember" to null),
|
||||
name = "userdata"),
|
||||
"mai2_profile_extend" to ImportClass(UserExtend::class, mapOf("version" to null)),
|
||||
"mai2_profile_option" to ImportClass(UserOption::class, mapOf("version" to null)),
|
||||
"mai2_score_best" to ImportClass(UserMusicDetail::class),
|
||||
"mai2_score_course" to ImportClass(UserCourse::class),
|
||||
"mai2_profile_extend" to ImportClass(Mai2UserExtend::class, mapOf("version" to null)),
|
||||
"mai2_profile_option" to ImportClass(Mai2UserOption::class, mapOf("version" to null)),
|
||||
"mai2_score_best" to ImportClass(Mai2UserMusicDetail::class),
|
||||
"mai2_score_course" to ImportClass(Mai2UserCourse::class),
|
||||
// "mai2_profile_ghost" to ImportClass(UserGhost::class),
|
||||
// "mai2_profile_rating" to ImportClass(UserRating::class),
|
||||
// "mai2_profile_region" to ImportClass(UserRegion::class),
|
||||
)
|
||||
) {
|
||||
override fun createEmpty() = Maimai2DataExport("SDEZ", UserDetail(), UserExtend(), UserOption(),
|
||||
override fun createEmpty() = Maimai2DataExport("SDEZ", Mai2UserDetail(), Mai2UserExtend(), Mai2UserOption(),
|
||||
ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(),
|
||||
ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(),
|
||||
ArrayList(), UserUdemae())
|
||||
ArrayList(), Mai2UserUdemae())
|
||||
}
|
||||
@@ -7,7 +7,7 @@ import icu.samnyan.aqua.net.db.AquaUserServices
|
||||
import icu.samnyan.aqua.net.games.*
|
||||
import icu.samnyan.aqua.net.utils.*
|
||||
import icu.samnyan.aqua.sega.maimai2.model.*
|
||||
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserDetail
|
||||
import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserDetail
|
||||
import org.springframework.transaction.PlatformTransactionManager
|
||||
import org.springframework.transaction.support.TransactionTemplate
|
||||
import org.springframework.web.bind.annotation.RestController
|
||||
@@ -28,7 +28,7 @@ class Maimai2(
|
||||
val repos: Mai2Repos,
|
||||
val netProps: AquaNetProps,
|
||||
transManager: PlatformTransactionManager
|
||||
): GameApiController<UserDetail>("mai2", UserDetail::class) {
|
||||
): GameApiController<Mai2UserDetail>("mai2", Mai2UserDetail::class) {
|
||||
val trans = TransactionTemplate(transManager)
|
||||
|
||||
override suspend fun trend(@RP username: Str): List<TrendOut> = us.cardByName(username) { card ->
|
||||
@@ -38,7 +38,7 @@ class Maimai2(
|
||||
|
||||
// Only show > S rank
|
||||
override val shownRanks = mai2Scores.filter { it.first >= 97 * 10000 }
|
||||
override val settableFields: Map<String, (UserDetail, String) -> Unit> by lazy { mapOf(
|
||||
override val settableFields: Map<String, (Mai2UserDetail, String) -> Unit> by lazy { mapOf(
|
||||
"userName" to { u, v -> u.userName = v
|
||||
if (!v.all { it in USERNAME_CHARS }) { 400 - "Invalid character in username" }
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user