[O] Generalize ranking and find by card

This commit is contained in:
Azalea 2024-03-16 19:22:08 -04:00
parent 13b4af3734
commit e07de72fa4
4 changed files with 3 additions and 19 deletions

View File

@ -5,6 +5,7 @@ import icu.samnyan.aqua.net.utils.*
import icu.samnyan.aqua.sega.general.model.Card
import kotlinx.serialization.Serializable
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.data.jpa.repository.Query
import org.springframework.data.repository.NoRepositoryBean
import kotlin.jvm.optionals.getOrNull
@ -80,6 +81,8 @@ interface IGenericUserData {
@NoRepositoryBean
interface GenericUserDataRepo<T : IGenericUserData, ID> : JpaRepository<T, ID> {
fun findByCard(card: Card): T?
@Query("select count(*) from #{#entityName} where playerRating > :rating")
fun getRanking(rating: Int): Long
}

View File

@ -2,7 +2,6 @@ package icu.samnyan.aqua.sega.chusan.dao.userdata;
import icu.samnyan.aqua.net.games.GenericUserDataRepo;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.general.model.Card;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
@ -14,11 +13,5 @@ import java.util.Optional;
@Repository("ChusanUserDataRepository")
public interface UserDataRepository extends GenericUserDataRepo<UserData, Long> {
UserData findByCard(Card card);
Optional<UserData> findByCard_ExtId(Long extId);
@Override
@Query("select count(*) from ChusanUserData where playerRating > :rating")
long getRanking(int rating);
}

View File

@ -3,7 +3,6 @@ package icu.samnyan.aqua.sega.maimai2.dao.userdata
import icu.samnyan.aqua.net.games.GenericUserDataRepo
import icu.samnyan.aqua.sega.general.model.Card
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserDetail
import org.springframework.data.jpa.repository.Query
import org.springframework.stereotype.Repository
import org.springframework.transaction.annotation.Transactional
import java.util.*
@ -11,13 +10,8 @@ import java.util.*
@Repository("Maimai2UserDataRepository")
interface UserDataRepository : GenericUserDataRepo<UserDetail, Long> {
override fun findByCard(card: Card): UserDetail?
fun findByCardExtId(userId: Long): Optional<UserDetail>
@Transactional
fun deleteByCard(card: Card)
@Query("select count(*) from Maimai2UserData where playerRating > :rating")
override fun getRanking(rating: Int): Long
}

View File

@ -3,7 +3,6 @@ package icu.samnyan.aqua.sega.ongeki.dao.userdata
import icu.samnyan.aqua.net.games.GenericUserDataRepo
import icu.samnyan.aqua.sega.general.model.Card
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData
import org.springframework.data.jpa.repository.Query
import org.springframework.stereotype.Repository
import org.springframework.transaction.annotation.Transactional
import java.util.*
@ -15,13 +14,8 @@ import java.util.*
interface UserDataRepository : GenericUserDataRepo<UserData, Long> {
fun findByCard_ExtIdIn(userIds: Collection<Long>): List<UserData>
override fun findByCard(card: Card): UserData?
fun findByCard_ExtId(aimeId: Long): Optional<UserData>
@Transactional
fun deleteByCard(card: Card)
@Query("select count(*) from OngekiUserData where playerRating > :rating")
override fun getRanking(rating: Int): Long
}