[+] Generalize data import for chusan

This commit is contained in:
Azalea
2024-03-30 23:52:29 -04:00
parent d4178c85a9
commit 3a8616e225
59 changed files with 390 additions and 333 deletions

View File

@@ -4,6 +4,7 @@ package icu.samnyan.aqua.sega.maimai2.model
import icu.samnyan.aqua.net.games.GenericPlaylogRepo
import icu.samnyan.aqua.net.games.GenericUserDataRepo
import icu.samnyan.aqua.net.games.IUserRepo
import icu.samnyan.aqua.sega.general.model.Card
import icu.samnyan.aqua.sega.maimai2.model.userdata.*
import org.springframework.data.domain.Page
@@ -16,8 +17,7 @@ import org.springframework.transaction.annotation.Transactional
import java.util.*
@NoRepositoryBean
interface UserLinked<T>: JpaRepository<T, Long> {
fun findByUser(user: Mai2UserDetail): List<T>
interface Mai2UserLinked<T>: JpaRepository<T, Long>, IUserRepo<Mai2UserDetail, T> {
fun findSingleByUser(user: Mai2UserDetail): Optional<T>
fun findByUser_Card_ExtId(userId: Long): List<T>
fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page<T>
@@ -26,25 +26,25 @@ interface UserLinked<T>: JpaRepository<T, Long> {
fun deleteByUser(user: Mai2UserDetail)
}
interface Mai2MapEncountNpcRepo : UserLinked<Mai2MapEncountNpc>
interface Mai2MapEncountNpcRepo : Mai2UserLinked<Mai2MapEncountNpc>
interface Mai2UserActRepo : UserLinked<Mai2UserAct> {
interface Mai2UserActRepo : Mai2UserLinked<Mai2UserAct> {
fun findByUserAndKindAndActivityId(user: Mai2UserDetail, kind: Int, id: Int): Optional<Mai2UserAct>
fun findByUser_Card_ExtIdAndKind(userId: Long, kind: Int): List<Mai2UserAct>
}
interface Mai2UserCardRepo : UserLinked<Mai2UserCard> {
interface Mai2UserCardRepo : Mai2UserLinked<Mai2UserCard> {
fun findByUserAndCardId(user: Mai2UserDetail, cardId: Int): Optional<Mai2UserCard>
}
interface Mai2UserCharacterRepo : UserLinked<Mai2UserCharacter> {
interface Mai2UserCharacterRepo : Mai2UserLinked<Mai2UserCharacter> {
fun findByUserAndCharacterId(user: Mai2UserDetail, characterId: Int): Optional<Mai2UserCharacter>
}
interface Mai2UserChargeRepo : UserLinked<Mai2UserCharge>
interface Mai2UserChargeRepo : Mai2UserLinked<Mai2UserCharge>
interface Mai2UserCourseRepo : UserLinked<Mai2UserCourse> {
interface Mai2UserCourseRepo : Mai2UserLinked<Mai2UserCourse> {
fun findByUserAndCourseId(user: Mai2UserDetail, courseId: Int): Optional<Mai2UserCourse>
}
@@ -56,54 +56,54 @@ interface Mai2UserDataRepo : GenericUserDataRepo<Mai2UserDetail> {
fun deleteByCard(card: Card): Void
}
interface Mai2UserExtendRepo : UserLinked<Mai2UserExtend>
interface Mai2UserExtendRepo : Mai2UserLinked<Mai2UserExtend>
interface Mai2UserFavoriteRepo : UserLinked<Mai2UserFavorite> {
interface Mai2UserFavoriteRepo : Mai2UserLinked<Mai2UserFavorite> {
fun findByUserAndItemKind(user: Mai2UserDetail, kind: Int): Optional<Mai2UserFavorite>
fun findByUserIdAndItemKind(userId: Long, kind: Int): List<Mai2UserFavorite>
}
interface Mai2UserFriendSeasonRankingRepo : UserLinked<Mai2UserFriendSeasonRanking> {
interface Mai2UserFriendSeasonRankingRepo : Mai2UserLinked<Mai2UserFriendSeasonRanking> {
fun findByUserAndSeasonId(user: Mai2UserDetail, seasonId: Int): Optional<Mai2UserFriendSeasonRanking>
}
interface Mai2UserGeneralDataRepo : UserLinked<Mai2UserGeneralData> {
interface Mai2UserGeneralDataRepo : Mai2UserLinked<Mai2UserGeneralData> {
fun findByUserAndPropertyKey(user: Mai2UserDetail, key: String): Optional<Mai2UserGeneralData>
fun findByUser_Card_ExtIdAndPropertyKey(userId: Long, key: String): Optional<Mai2UserGeneralData>
}
interface Mai2UserItemRepo : UserLinked<Mai2UserItem> {
interface Mai2UserItemRepo : Mai2UserLinked<Mai2UserItem> {
fun findByUserCardExtIdAndItemKind(userId: Long, kind: Int): List<Mai2UserItem>
fun findByUserAndItemKindAndItemId(user: Mai2UserDetail, itemKind: Int, itemId: Int): Optional<Mai2UserItem>
fun findByUser_Card_ExtIdAndItemKind(userId: Long, kind: Int, page: Pageable): Page<Mai2UserItem>
}
interface Mai2UserLoginBonusRepo : UserLinked<Mai2UserLoginBonus> {
interface Mai2UserLoginBonusRepo : Mai2UserLinked<Mai2UserLoginBonus> {
fun findByUserAndBonusId(user: Mai2UserDetail, bonusId: Int): Optional<Mai2UserLoginBonus>
}
interface Mai2UserMapRepo : UserLinked<Mai2UserMap> {
interface Mai2UserMapRepo : Mai2UserLinked<Mai2UserMap> {
fun findByUserAndMapId(user: Mai2UserDetail, mapId: Int): Optional<Mai2UserMap>
}
interface Mai2UserMusicDetailRepo : UserLinked<Mai2UserMusicDetail> {
interface Mai2UserMusicDetailRepo : Mai2UserLinked<Mai2UserMusicDetail> {
fun findByUser_Card_ExtIdAndMusicId(userId: Long, id: Int): List<Mai2UserMusicDetail>
fun findByUserAndMusicIdAndLevel(user: Mai2UserDetail, musicId: Int, level: Int): Optional<Mai2UserMusicDetail>
}
interface Mai2UserOptionRepo : UserLinked<Mai2UserOption>
interface Mai2UserOptionRepo : Mai2UserLinked<Mai2UserOption>
interface Mai2UserPlaylogRepo : GenericPlaylogRepo<Mai2UserPlaylog>, UserLinked<Mai2UserPlaylog> {
interface Mai2UserPlaylogRepo : GenericPlaylogRepo<Mai2UserPlaylog>, Mai2UserLinked<Mai2UserPlaylog> {
fun findByUser_Card_ExtIdAndMusicIdAndLevel(userId: Long, musicId: Int, level: Int): List<Mai2UserPlaylog>
}
interface Mai2UserPrintDetailRepo : JpaRepository<Mai2UserPrintDetail, Long>
interface Mai2UserUdemaeRepo : UserLinked<Mai2UserUdemae>
interface Mai2UserUdemaeRepo : Mai2UserLinked<Mai2UserUdemae>
interface Mai2GameChargeRepo : JpaRepository<Mai2GameCharge, Long>

View File

@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonInclude
import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.databind.annotation.JsonSerialize
import icu.samnyan.aqua.net.games.BaseEntity
import icu.samnyan.aqua.net.games.IGenericUserData
import icu.samnyan.aqua.net.games.IUserData
import icu.samnyan.aqua.sega.general.IntegerListConverter
import icu.samnyan.aqua.sega.general.model.Card
import icu.samnyan.aqua.sega.util.jackson.AccessCodeSerializer
@@ -149,7 +149,7 @@ class Mai2UserDetail(
// TODO: Make these non-nullable with default value
var currentPlayCount: Int? = 0,
var renameCredit: Int? = 0
) : BaseEntity(), IGenericUserData {
) : BaseEntity(), IUserData {
@get:JsonIgnore
override val totalScore: Long
get() = totalDeluxscore

View File

@@ -8,6 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.annotation.JsonPropertyOrder
import icu.samnyan.aqua.net.games.BaseEntity
import icu.samnyan.aqua.net.games.IGenericGamePlaylog
import icu.samnyan.aqua.net.games.IUserEntity
import icu.samnyan.aqua.sega.general.IntegerListConverter
import jakarta.persistence.*
import lombok.AllArgsConstructor
@@ -15,11 +16,11 @@ import lombok.Data
import lombok.NoArgsConstructor
@MappedSuperclass
open class Mai2UserEntity : BaseEntity() {
open class Mai2UserEntity : BaseEntity(), IUserEntity<Mai2UserDetail> {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
open var user: Mai2UserDetail = Mai2UserDetail()
override var user: Mai2UserDetail = Mai2UserDetail()
}