[O] Huge refactor

This commit is contained in:
Azalea
2024-03-20 21:27:29 -04:00
parent fc8ecb7470
commit e799b48877
70 changed files with 1068 additions and 2072 deletions

View File

@@ -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>(

View File

@@ -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> {

View File

@@ -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())
}

View File

@@ -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" }
},