[O] Refactor chusan repos

This commit is contained in:
Azalea
2024-03-16 22:09:21 -04:00
parent 95cc9f0e21
commit 98275ade59
62 changed files with 234 additions and 591 deletions

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.api.controller.sega.game.chuni.v2;
import icu.samnyan.aqua.sega.chusan.dao.gamedata.*;
import icu.samnyan.aqua.sega.chusan.model.*;
import icu.samnyan.aqua.sega.chusan.model.gamedata.Character;
import icu.samnyan.aqua.sega.chusan.model.gamedata.*;
import org.springframework.web.bind.annotation.GetMapping;

View File

@@ -7,6 +7,7 @@ import icu.samnyan.aqua.net.utils.AquaNetProps
import icu.samnyan.aqua.net.games.GenericUserDataRepo
import icu.samnyan.aqua.net.games.IGenericUserData
import icu.samnyan.aqua.net.utils.SUCCESS
import icu.samnyan.aqua.sega.chusan.model.UserDataRepository
import icu.samnyan.aqua.sega.general.dao.CardRepository
import icu.samnyan.aqua.sega.general.model.Card
import icu.samnyan.aqua.sega.general.service.CardService
@@ -144,7 +145,7 @@ suspend fun getSummaryFor(repo: GenericUserDataRepo<*>, card: Card): Map<Str, An
@Service
class CardGameService(
val maimai2: Mai2UserDataRepo,
val chusan: icu.samnyan.aqua.sega.chusan.dao.userdata.UserDataRepository,
val chusan: UserDataRepository,
val ongeki: icu.samnyan.aqua.sega.ongeki.dao.userdata.UserDataRepository,
val diva: icu.samnyan.aqua.sega.diva.dao.userdata.PlayerProfileRepository,
) {

View File

@@ -5,9 +5,10 @@ import ext.RP
import ext.Str
import icu.samnyan.aqua.net.db.AquaUserServices
import icu.samnyan.aqua.net.utils.*
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserDataRepository
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserGeneralDataRepository
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserPlaylogRepository
import icu.samnyan.aqua.sega.chusan.dao.userdata.*
import icu.samnyan.aqua.sega.chusan.model.UserDataRepository
import icu.samnyan.aqua.sega.chusan.model.UserGeneralDataRepository
import icu.samnyan.aqua.sega.chusan.model.UserPlaylogRepository
import org.springframework.web.bind.annotation.RestController
@RestController

View File

@@ -3,8 +3,12 @@ package icu.samnyan.aqua.net.games
import ext.*
import icu.samnyan.aqua.net.db.AquaUserServices
import icu.samnyan.aqua.net.utils.*
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData
import icu.samnyan.aqua.sega.chusan.model.userdata.UserPlaylog
import icu.samnyan.aqua.sega.general.model.Card
import kotlinx.serialization.Serializable
import org.springframework.data.domain.Page
import org.springframework.data.domain.Pageable
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.data.jpa.repository.Query
import org.springframework.data.repository.NoRepositoryBean
@@ -95,7 +99,7 @@ interface IGenericGamePlaylog {
@NoRepositoryBean
interface GenericUserDataRepo<T : IGenericUserData> : JpaRepository<T, Long> {
fun findByCard(card: Card): T?
fun findByCard_ExtId(extId: Long): Optional<T>
@Query("select count(*) from #{#entityName} where playerRating > :rating")
fun getRanking(rating: Int): Long
}
@@ -103,6 +107,7 @@ interface GenericUserDataRepo<T : IGenericUserData> : JpaRepository<T, Long> {
@NoRepositoryBean
interface GenericPlaylogRepo<T: IGenericGamePlaylog> : JpaRepository<T, Long> {
fun findByUserCardExtId(extId: Long): List<T>
fun findByUserCardExtId(extId: Long, page: Pageable): Page<T>
}
abstract class GameApiController(name: String) {

View File

@@ -1,16 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.gamedata;
import icu.samnyan.aqua.sega.chusan.model.gamedata.AvatarAcc;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanGameAvatarAccRepository")
public interface GameAvatarAccRepository extends JpaRepository<AvatarAcc, Long> {
Optional<AvatarAcc> findById(int trophyId);
}

View File

@@ -1,12 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.gamedata;
import icu.samnyan.aqua.sega.chusan.model.gamedata.Character;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanGameCharacterRepository")
public interface GameCharacterRepository extends JpaRepository<Character, Long> {
}

View File

@@ -1,12 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.gamedata;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameCharge;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanGameChargeRepository")
public interface GameChargeRepository extends JpaRepository<GameCharge, Long> {
}

View File

@@ -1,16 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.gamedata;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameEvent;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanGameEventRepository")
public interface GameEventRepository extends JpaRepository<GameEvent, Integer> {
List<GameEvent> findByEnable(boolean enable);
}

View File

@@ -1,16 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.gamedata;
import icu.samnyan.aqua.sega.chusan.model.gamedata.Frame;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanGameFrameRepository")
public interface GameFrameRepository extends JpaRepository<Frame, Long> {
Optional<Frame> findById(int trophyId);
}

View File

@@ -1,17 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.gamedata;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameGachaCard;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanGameGachaCardRepository")
public interface GameGachaCardRepository extends JpaRepository<GameGachaCard, Long> {
List<GameGachaCard> findAllByGachaId(int gacha_id);
}

View File

@@ -1,12 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.gamedata;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameGacha;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanGameGachaRepository")
public interface GameGachaRepository extends JpaRepository<GameGacha, Long> {
}

View File

@@ -1,12 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.gamedata;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameLoginBonusPreset;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface GameLoginBonusPresetsRepository extends JpaRepository<GameLoginBonusPreset, Integer> {
@Query(value = "select * from chusan_game_login_bonus_preset where version = ?1 and is_enabled = ?2", nativeQuery = true)
List<GameLoginBonusPreset> findLoginBonusPresets(int version, int isEnabled);
}

View File

@@ -1,16 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.gamedata;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameLoginBonus;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
import java.util.Optional;
public interface GameLoginBonusRepository extends JpaRepository<GameLoginBonus, Integer> {
@Query(value = "select * from chusan_game_login_bonus where version = ?1 and preset_id = ?2 order by need_login_day_count desc", nativeQuery = true)
List<GameLoginBonus> findGameLoginBonus(int version, int presetId);
@Query(value = "select * from chusan_game_login_bonus where version = ?1 and preset_id = ?2 and need_login_day_count = ?3 limit 1", nativeQuery = true)
Optional<GameLoginBonus> findByRequiredDays(int version, int presetId, int requiredDays);
}

View File

@@ -1,16 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.gamedata;
import icu.samnyan.aqua.sega.chusan.model.gamedata.MapIcon;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanGameMapIconRepository")
public interface GameMapIconRepository extends JpaRepository<MapIcon, Long> {
Optional<MapIcon> findById(int mapIconId);
}

View File

@@ -1,16 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.gamedata;
import icu.samnyan.aqua.sega.chusan.model.gamedata.Music;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanGameMusicRepository")
public interface GameMusicRepository extends JpaRepository<Music, Long> {
Optional<Music> findByMusicId(int musicId);
}

View File

@@ -1,16 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.gamedata;
import icu.samnyan.aqua.sega.chusan.model.gamedata.NamePlate;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanGameNamePlateRepository")
public interface GameNamePlateRepository extends JpaRepository<NamePlate, Long> {
Optional<NamePlate> findById(int trophyId);
}

View File

@@ -1,16 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.gamedata;
import icu.samnyan.aqua.sega.chusan.model.gamedata.SystemVoice;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanGameSystemVoiceRepository")
public interface GameSystemVoiceRepository extends JpaRepository<SystemVoice, Long> {
Optional<SystemVoice> findById(int trophyId);
}

View File

@@ -1,16 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.gamedata;
import icu.samnyan.aqua.sega.chusan.model.gamedata.Trophy;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanGameTrophyRepository")
public interface GameTrophyRepository extends JpaRepository<Trophy, Long> {
Optional<Trophy> findById(int trophyId);
}

View File

@@ -1,16 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.userdata;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserLoginBonus;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
import java.util.Optional;
public interface ChusanUserLoginBonusRepository extends JpaRepository<UserLoginBonus, Integer>{
@Query(value = "select * from chusan_user_login_bonus where user = ?1 and version = ?2 and is_finished = ?3 order by last_update_date desc", nativeQuery = true)
List<UserLoginBonus> findAllLoginBonus(int user_id, int version, int is_finished);
@Query(value = "select * from chusan_user_login_bonus where user = ?1 and version = ?2 and preset_id = ?3 limit 1", nativeQuery = true)
Optional<UserLoginBonus> findLoginBonus(int user_id, int version, int preset_id);
}

View File

@@ -1,22 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.userdata;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserActivity;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanUserActivityRepository")
public interface UserActivityRepository extends JpaRepository<UserActivity, Long> {
Optional<UserActivity> findTopByUserAndActivityIdAndKindOrderByIdDesc(UserData user, int activityId, int kind);
List<UserActivity> findAllByUser_Card_ExtIdAndKindOrderBySortNumberDesc(Long extId, int kind);
List<UserActivity> findAllByUser_Card_ExtId(Long extId);
}

View File

@@ -1,20 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.userdata;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCardPrintState;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanUserCardPrintStateRepository")
public interface UserCardPrintStateRepository extends JpaRepository<UserCardPrintState, Long> {
List<UserCardPrintState> findByUser_Card_ExtId(Long extId);
List<UserCardPrintState> findByUser_Card_ExtIdAndHasCompleted(Long extId, boolean hasCompleted);
List<UserCardPrintState> findByUserAndGachaIdAndHasCompleted(UserData userData, int gachaId, boolean hasCompleted);
}

View File

@@ -1,27 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.userdata;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCharacter;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanUserCharacterRepository")
public interface UserCharacterRepository extends JpaRepository<UserCharacter, Long> {
Page<UserCharacter> findByUser_Card_ExtId(Long extId, Pageable pageable);
List<UserCharacter> findByUser_Card_ExtId(Long extId);
Optional<UserCharacter> findTopByUserAndCharacterIdOrderByIdDesc(UserData user, int characterId);
Optional<UserCharacter> findByUser_Card_ExtIdAndCharacterId(Long extId, int characterId);
}

View File

@@ -1,19 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.userdata;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCharge;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanUserChargeRepository")
public interface UserChargeRepository extends JpaRepository<UserCharge, Long> {
List<UserCharge> findByUser_Card_ExtId(Long extId);
Optional<UserCharge> findByUserAndChargeId(UserData extId, int chargeId);
}

View File

@@ -1,23 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.userdata;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCourse;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanUserCourseRepository")
public interface UserCourseRepository extends JpaRepository<UserCourse, Long> {
Optional<UserCourse> findTopByUserAndCourseIdOrderByIdDesc(UserData user, int courseId);
Page<UserCourse> findByUser_Card_ExtId(Long extId, Pageable page);
List<UserCourse> findByUser_Card_ExtId(Long extId);
}

View File

@@ -1,17 +0,0 @@
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 org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanUserDataRepository")
public interface UserDataRepository extends GenericUserDataRepo<UserData> {
Optional<UserData> findByCard_ExtId(Long extId);
}

View File

@@ -1,20 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.userdata;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserDuel;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanUserDuelRepository")
public interface UserDuelRepository extends JpaRepository<UserDuel, Long> {
Optional<UserDuel> findTopByUserAndDuelIdOrderByIdDesc(UserData user, int duelId);
List<UserDuel> findByUser_Card_ExtId(Long extId);
}

View File

@@ -1,19 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.userdata;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserGacha;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanUserGachaRepository")
public interface UserGachaRepository extends JpaRepository<UserGacha, Long> {
List<UserGacha> findByUser_Card_ExtId(Long extId);
Optional<UserGacha> findByUserAndGachaId(UserData extId, int gachaId);
}

View File

@@ -1,19 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.userdata;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserGameOption;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanUserGameOptionRepository")
public interface UserGameOptionRepository extends JpaRepository<UserGameOption, Long> {
Optional<UserGameOption> findByUser(UserData user);
Optional<UserGameOption> findByUser_Card_ExtId(Long extId);
}

View File

@@ -1,19 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.userdata
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData
import icu.samnyan.aqua.sega.chusan.model.userdata.UserGeneralData
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.stereotype.Repository
import java.util.*
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanUserGeneralDataRepository")
interface UserGeneralDataRepository : JpaRepository<UserGeneralData, Long> {
fun findByUserAndPropertyKey(user: UserData, key: String): Optional<UserGeneralData>
fun findByUser_Card_ExtIdAndPropertyKey(extId: Long, key: String): Optional<UserGeneralData>
fun findByUser_Card_ExtId(extId: Long): List<UserGeneralData>
}

View File

@@ -1,28 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.userdata;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserItem;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanUserItemRepository")
public interface UserItemRepository extends JpaRepository<UserItem, Long> {
Optional<UserItem> findTopByUserAndItemIdAndItemKindOrderByIdDesc(UserData user, int itemId, int itemKind);
Page<UserItem> findAllByUser_Card_ExtIdAndItemKind(Long extId, int itemKind, Pageable pageable);
List<UserItem> findAllByUser_Card_ExtId(Long extId);
List<UserItem> findAllByUser_Card_ExtIdAndItemKind(Long extId, int itemKind);
Page<UserItem> findByUser_Card_ExtId(Long extId, Pageable pageable);
}

View File

@@ -1,21 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.userdata;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserMapArea;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository
public interface UserMapAreaRepository extends JpaRepository<UserMapArea, Long> {
List<UserMapArea> findAllByUser(UserData user);
List<UserMapArea> findAllByUser_Card_ExtId(Long extId);
Optional<UserMapArea> findTopByUserAndMapAreaIdOrderByIdDesc(UserData user, int mapAreaId);
}

View File

@@ -1,26 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.userdata;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserMusicDetail;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanUserMusicDetailRepository")
public interface UserMusicDetailRepository extends JpaRepository<UserMusicDetail, Long> {
Optional<UserMusicDetail> findTopByUserAndMusicIdAndLevelOrderByIdDesc(UserData user, int musicId, int level);
List<UserMusicDetail> findByUser_Card_ExtId(Long extId);
List<UserMusicDetail> findByUser_Card_ExtIdAndMusicId(Long extId, int musicId);
Page<UserMusicDetail> findByUser_Card_ExtId(Long extId, Pageable page);
}

View File

@@ -1,21 +0,0 @@
package icu.samnyan.aqua.sega.chusan.dao.userdata;
import icu.samnyan.aqua.net.games.GenericPlaylogRepo;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserPlaylog;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("ChusanUserPlaylogRepository")
public interface UserPlaylogRepository extends GenericPlaylogRepo<UserPlaylog> {
List<UserPlaylog> findByUser_Card_ExtIdAndLevelNot(Long extId, int levelNot, Pageable page);
Page<UserPlaylog> findByUserCardExtId(Long extId, Pageable page);
List<UserPlaylog> findByUser_Card_ExtIdAndMusicIdAndLevel(Long extId, int musicId, int level);
}

View File

@@ -1,8 +1,8 @@
package icu.samnyan.aqua.sega.chusan.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserCardPrintStateRepository;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserGachaRepository;
import icu.samnyan.aqua.sega.chusan.model.UserCardPrintStateRepository;
import icu.samnyan.aqua.sega.chusan.model.UserGachaRepository;
import icu.samnyan.aqua.sega.chusan.handler.BaseHandler;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameGachaCard;
import icu.samnyan.aqua.sega.chusan.model.request.UpsertUserGacha;

View File

@@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.chusan.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserCardPrintStateRepository;
import icu.samnyan.aqua.sega.chusan.model.UserCardPrintStateRepository;
import icu.samnyan.aqua.sega.chusan.handler.BaseHandler;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCardPrintState;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;

View File

@@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.chusan.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserCardPrintStateRepository;
import icu.samnyan.aqua.sega.chusan.model.UserCardPrintStateRepository;
import icu.samnyan.aqua.sega.chusan.handler.BaseHandler;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCardPrintState;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;

View File

@@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.chusan.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.chusan.dao.gamedata.GameChargeRepository;
import icu.samnyan.aqua.sega.chusan.model.GameChargeRepository;
import icu.samnyan.aqua.sega.chusan.handler.BaseHandler;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameCharge;
import icu.samnyan.aqua.sega.util.jackson.StringMapper;

View File

@@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.chusan.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.chusan.dao.gamedata.GameEventRepository;
import icu.samnyan.aqua.sega.chusan.model.GameEventRepository;
import icu.samnyan.aqua.sega.chusan.handler.BaseHandler;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameEvent;
import icu.samnyan.aqua.sega.util.jackson.StringMapper;

View File

@@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.chusan.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.chusan.dao.gamedata.GameGachaRepository;
import icu.samnyan.aqua.sega.chusan.model.GameGachaRepository;
import icu.samnyan.aqua.sega.chusan.handler.BaseHandler;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameGacha;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;

View File

@@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.chusan.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserCardPrintStateRepository;
import icu.samnyan.aqua.sega.chusan.model.UserCardPrintStateRepository;
import icu.samnyan.aqua.sega.chusan.handler.BaseHandler;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCardPrintState;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;

View File

@@ -0,0 +1,188 @@
@file:Suppress("FunctionName")
package icu.samnyan.aqua.sega.chusan.model
import icu.samnyan.aqua.net.games.GenericPlaylogRepo
import icu.samnyan.aqua.net.games.GenericUserDataRepo
import icu.samnyan.aqua.sega.chusan.model.gamedata.*
import icu.samnyan.aqua.sega.chusan.model.userdata.*
import org.springframework.data.domain.Page
import org.springframework.data.domain.Pageable
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.data.jpa.repository.Query
import org.springframework.data.repository.NoRepositoryBean
import org.springframework.stereotype.Repository
import java.util.*
@NoRepositoryBean
interface UserLinked<T, ID> : JpaRepository<T, ID> {
fun findByUser_Card_ExtId(extId: Long): List<T>
fun findSingleByUser_Card_ExtId(extId: Long): Optional<T>
fun findByUser_Card_ExtId(extId: Long, pageable: Pageable): Page<T>
fun findByUser(user: UserData): List<T>
fun findSingleByUser(user: UserData): Optional<T>
}
interface ChusanUserLoginBonusRepository : JpaRepository<UserLoginBonus, Int> {
@Query(
value = "select * from chusan_user_login_bonus where user = ?1 and version = ?2 and is_finished = ?3 order by last_update_date desc",
nativeQuery = true
)
fun findAllLoginBonus(userId: Int, version: Int, isFinished: Int): List<UserLoginBonus>
@Query(
value = "select * from chusan_user_login_bonus where user = ?1 and version = ?2 and preset_id = ?3 limit 1",
nativeQuery = true
)
fun findLoginBonus(userId: Int, version: Int, presetId: Int): Optional<UserLoginBonus>
}
@Repository("ChusanUserActivityRepository")
interface UserActivityRepository : UserLinked<UserActivity, Long> {
fun findTopByUserAndActivityIdAndKindOrderByIdDesc(user: UserData, activityId: Int, kind: Int): Optional<UserActivity>
fun findAllByUser_Card_ExtIdAndKindOrderBySortNumberDesc(extId: Long, kind: Int): List<UserActivity>
}
@Repository("ChusanUserCardPrintStateRepository")
interface UserCardPrintStateRepository : UserLinked<UserCardPrintState, Long> {
fun findByUser_Card_ExtIdAndHasCompleted(extId: Long, hasCompleted: Boolean): List<UserCardPrintState>
fun findByUserAndGachaIdAndHasCompleted(userData: UserData, gachaId: Int, hasCompleted: Boolean): List<UserCardPrintState>
}
@Repository("ChusanUserCharacterRepository")
interface UserCharacterRepository : UserLinked<UserCharacter, Long> {
fun findTopByUserAndCharacterIdOrderByIdDesc(user: UserData, characterId: Int): Optional<UserCharacter>
}
@Repository("ChusanUserChargeRepository")
interface UserChargeRepository : UserLinked<UserCharge, Long> {
fun findByUserAndChargeId(extId: UserData, chargeId: Int): Optional<UserCharge>
}
@Repository("ChusanUserCourseRepository")
interface UserCourseRepository : UserLinked<UserCourse, Long> {
fun findTopByUserAndCourseIdOrderByIdDesc(user: UserData, courseId: Int): Optional<UserCourse>
}
@Repository("ChusanUserDataRepository")
interface UserDataRepository : GenericUserDataRepo<UserData>
@Repository("ChusanUserDuelRepository")
interface UserDuelRepository : UserLinked<UserDuel, Long> {
fun findTopByUserAndDuelIdOrderByIdDesc(user: UserData, duelId: Int): Optional<UserDuel>
}
@Repository("ChusanUserGachaRepository")
interface UserGachaRepository : UserLinked<UserGacha, Long> {
fun findByUserAndGachaId(extId: UserData, gachaId: Int): Optional<UserGacha>
}
@Repository("ChusanUserGameOptionRepository")
interface UserGameOptionRepository : UserLinked<UserGameOption, Long>
@Repository("ChusanUserGeneralDataRepository")
interface UserGeneralDataRepository : UserLinked<UserGeneralData, Long> {
fun findByUserAndPropertyKey(user: UserData, key: String): Optional<UserGeneralData>
fun findByUser_Card_ExtIdAndPropertyKey(extId: Long, key: String): Optional<UserGeneralData>
}
@Repository("ChusanUserItemRepository")
interface UserItemRepository : UserLinked<UserItem, Long> {
fun findTopByUserAndItemIdAndItemKindOrderByIdDesc(
user: UserData,
itemId: Int,
itemKind: Int
): Optional<UserItem>
fun findAllByUser_Card_ExtIdAndItemKind(extId: Long, itemKind: Int, pageable: Pageable): Page<UserItem>
fun findAllByUser_Card_ExtIdAndItemKind(extId: Long, itemKind: Int): List<UserItem>
}
@Repository
interface UserMapAreaRepository : UserLinked<UserMapArea, Long> {
fun findTopByUserAndMapAreaIdOrderByIdDesc(user: UserData, mapAreaId: Int): Optional<UserMapArea>
}
@Repository("ChusanUserMusicDetailRepository")
interface UserMusicDetailRepository : UserLinked<UserMusicDetail, Long> {
fun findTopByUserAndMusicIdAndLevelOrderByIdDesc(user: UserData, musicId: Int, level: Int): Optional<UserMusicDetail>
fun findByUser_Card_ExtIdAndMusicId(extId: Long, musicId: Int): List<UserMusicDetail>
}
@Repository("ChusanUserPlaylogRepository")
interface UserPlaylogRepository : GenericPlaylogRepo<UserPlaylog> {
fun findByUser_Card_ExtIdAndLevelNot(extId: Long, levelNot: Int, page: Pageable): List<UserPlaylog>
fun findByUser_Card_ExtIdAndMusicIdAndLevel(extId: Long, musicId: Int, level: Int): List<UserPlaylog>
}
@Repository("ChusanGameAvatarAccRepository")
interface GameAvatarAccRepository : JpaRepository<AvatarAcc, Long>
@Repository("ChusanGameCharacterRepository")
interface GameCharacterRepository : JpaRepository<Character, Long>
@Repository("ChusanGameChargeRepository")
interface GameChargeRepository : JpaRepository<GameCharge, Long>
@Repository("ChusanGameEventRepository")
interface GameEventRepository : JpaRepository<GameEvent, Int> {
fun findByEnable(enable: Boolean): List<GameEvent>
}
@Repository("ChusanGameFrameRepository")
interface GameFrameRepository : JpaRepository<Frame, Long>
@Repository("ChusanGameGachaCardRepository")
interface GameGachaCardRepository : JpaRepository<GameGachaCard, Long> {
fun findAllByGachaId(gachaId: Int): List<GameGachaCard>
}
@Repository("ChusanGameGachaRepository")
interface GameGachaRepository : JpaRepository<GameGacha, Long>
interface GameLoginBonusPresetsRepository : JpaRepository<GameLoginBonusPreset, Int> {
@Query(
value = "select * from chusan_game_login_bonus_preset where version = ?1 and is_enabled = ?2",
nativeQuery = true
)
fun findLoginBonusPresets(version: Int, isEnabled: Int): List<GameLoginBonusPreset>
}
interface GameLoginBonusRepository : JpaRepository<GameLoginBonus, Int> {
@Query(
value = "select * from chusan_game_login_bonus where version = ?1 and preset_id = ?2 order by need_login_day_count desc",
nativeQuery = true
)
fun findGameLoginBonus(version: Int, presetId: Int): List<GameLoginBonus>
@Query(
value = "select * from chusan_game_login_bonus where version = ?1 and preset_id = ?2 and need_login_day_count = ?3 limit 1",
nativeQuery = true
)
fun findByRequiredDays(version: Int, presetId: Int, requiredDays: Int): Optional<GameLoginBonus>
}
@Repository("ChusanGameMapIconRepository")
interface GameMapIconRepository : JpaRepository<MapIcon, Long>
@Repository("ChusanGameMusicRepository")
interface GameMusicRepository : JpaRepository<Music, Long> {
fun findByMusicId(musicId: Int): Optional<Music>
}
@Repository("ChusanGameNamePlateRepository")
interface GameNamePlateRepository : JpaRepository<NamePlate, Long>
@Repository("ChusanGameSystemVoiceRepository")
interface GameSystemVoiceRepository : JpaRepository<SystemVoice, Long>
@Repository("ChusanGameTrophyRepository")
interface GameTrophyRepository : JpaRepository<Trophy, Long>

View File

@@ -18,7 +18,7 @@ public class UserLoginBonus implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private int id;
private long id;
private int version;
private int user;
private int presetId;

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.gamedata.GameGachaCardRepository;
import icu.samnyan.aqua.sega.chusan.model.GameGachaCardRepository;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameGachaCard;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.gamedata.GameLoginBonusPresetsRepository;
import icu.samnyan.aqua.sega.chusan.model.GameLoginBonusPresetsRepository;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameLoginBonusPreset;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

View File

@@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.gamedata.GameLoginBonusRepository;
import icu.samnyan.aqua.sega.chusan.model.GameLoginBonusRepository;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameLoginBonus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.gamedata.GameMusicRepository;
import icu.samnyan.aqua.sega.chusan.model.GameMusicRepository;
import icu.samnyan.aqua.sega.chusan.model.gamedata.Music;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserActivityRepository;
import icu.samnyan.aqua.sega.chusan.model.UserActivityRepository;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserActivity;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +39,6 @@ public class UserActivityService {
}
public List<UserActivity> getByUserId(String userId) {
return userActivityRepository.findAllByUser_Card_ExtId(Long.parseLong(userId));
return userActivityRepository.findByUser_Card_ExtId(Long.parseLong(userId));
}
}

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserCharacterRepository;
import icu.samnyan.aqua.sega.chusan.model.UserCharacterRepository;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCharacter;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserChargeRepository;
import icu.samnyan.aqua.sega.chusan.model.UserChargeRepository;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCharge;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import org.springframework.stereotype.Service;

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserCourseRepository;
import icu.samnyan.aqua.sega.chusan.model.UserCourseRepository;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCourse;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserDataRepository;
import icu.samnyan.aqua.sega.chusan.model.UserDataRepository;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.general.model.Card;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserDuelRepository;
import icu.samnyan.aqua.sega.chusan.model.UserDuelRepository;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserDuel;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserGachaRepository;
import icu.samnyan.aqua.sega.chusan.model.UserGachaRepository;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserGacha;
import org.springframework.stereotype.Service;

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserGameOptionRepository;
import icu.samnyan.aqua.sega.chusan.model.UserGameOptionRepository;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserGameOption;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,10 +26,10 @@ public class UserGameOptionService {
}
public Optional<UserGameOption> getByUser(UserData user) {
return userGameOptionRepository.findByUser(user);
return userGameOptionRepository.findSingleByUser(user);
}
public Optional<UserGameOption> getByUserId(String userId) {
return userGameOptionRepository.findByUser_Card_ExtId(Long.parseLong(userId));
return userGameOptionRepository.findSingleByUser_Card_ExtId(Long.parseLong(userId));
}
}

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserGeneralDataRepository;
import icu.samnyan.aqua.sega.chusan.model.UserGeneralDataRepository;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserGeneralData;
import org.springframework.stereotype.Service;

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserItemRepository;
import icu.samnyan.aqua.sega.chusan.model.UserItemRepository;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserItem;
import org.springframework.beans.factory.annotation.Autowired;
@@ -34,7 +34,7 @@ public class UserItemService {
}
public List<UserItem> getByUserId(String userId) {
List<UserItem> userItemList = userItemRepository.findAllByUser_Card_ExtId(Long.parseLong(userId));
List<UserItem> userItemList = userItemRepository.findByUser_Card_ExtId(Long.parseLong(userId));
userItemList.sort(Comparator.comparingInt(UserItem::getItemId));
return userItemList;
}

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.userdata.ChusanUserLoginBonusRepository;
import icu.samnyan.aqua.sega.chusan.model.ChusanUserLoginBonusRepository;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserLoginBonus;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserMapAreaRepository;
import icu.samnyan.aqua.sega.chusan.model.UserMapAreaRepository;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserMapArea;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,11 +31,11 @@ public class UserMapAreaService {
}
public List<UserMapArea> getByUser(UserData user) {
return userMapRepository.findAllByUser(user);
return userMapRepository.findByUser(user);
}
public List<UserMapArea> getByUserId(String userId) {
return userMapRepository.findAllByUser_Card_ExtId(Long.parseLong(userId));
return userMapRepository.findByUser_Card_ExtId(Long.parseLong(userId));
}
public Optional<UserMapArea> getByUserAndMapAreaId(UserData user, int mapId) {

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserMusicDetailRepository;
import icu.samnyan.aqua.sega.chusan.model.UserMusicDetailRepository;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserMusicDetail;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -1,6 +1,6 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.dao.userdata.UserPlaylogRepository;
import icu.samnyan.aqua.sega.chusan.model.UserPlaylogRepository;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserPlaylog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;

View File

@@ -13,7 +13,6 @@ import org.springframework.data.domain.Page
import org.springframework.data.domain.Pageable
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.data.repository.NoRepositoryBean
import org.springframework.stereotype.Repository
import org.springframework.transaction.annotation.Transactional
import java.util.*
@@ -27,35 +26,28 @@ interface UserLinked<T>: JpaRepository<T, Long> {
fun deleteByUser(user: UserDetail)
}
@Repository
interface Mai2MapEncountNpcRepo : UserLinked<MapEncountNpc>
@Repository
interface Mai2UserActRepo : UserLinked<UserAct> {
fun findByUserAndKindAndActivityId(user: UserDetail, kind: Int, id: Int): Optional<UserAct>
fun findByUser_Card_ExtIdAndKind(userId: Long, kind: Int): List<UserAct>
}
@Repository
interface Mai2UserCardRepo : UserLinked<UserCard> {
fun findByUserAndCardId(user: UserDetail, cardId: Int): Optional<UserCard>
}
@Repository
interface Mai2UserCharacterRepo : UserLinked<UserCharacter> {
fun findByUserAndCharacterId(user: UserDetail, characterId: Int): Optional<UserCharacter>
}
@Repository
interface Mai2UserChargeRepo : UserLinked<UserCharge>
@Repository
interface Mai2UserCourseRepo : UserLinked<UserCourse> {
fun findByUserAndCourseId(user: UserDetail, courseId: Int): Optional<UserCourse>
}
@Repository
interface Mai2UserDataRepo : GenericUserDataRepo<UserDetail> {
fun findByCardExtId(userId: Long): Optional<UserDetail>
@@ -63,73 +55,58 @@ interface Mai2UserDataRepo : GenericUserDataRepo<UserDetail> {
fun deleteByCard(card: Card)
}
@Repository
interface Mai2UserExtendRepo : UserLinked<UserExtend>
@Repository
interface Mai2UserFavoriteRepo : UserLinked<UserFavorite> {
fun findByUserAndItemKind(user: UserDetail, kind: Int): Optional<UserFavorite>
fun findByUserIdAndItemKind(userId: Long, kind: Int): List<UserFavorite>
}
@Repository
interface Mai2UserFriendSeasonRankingRepo : UserLinked<UserFriendSeasonRanking> {
fun findByUserAndSeasonId(user: UserDetail, seasonId: Int): Optional<UserFriendSeasonRanking>
}
@Repository
interface Mai2UserGeneralDataRepo : UserLinked<UserGeneralData> {
fun findByUserAndPropertyKey(user: UserDetail, key: String): Optional<UserGeneralData>
fun findByUser_Card_ExtIdAndPropertyKey(userId: Long, key: String): Optional<UserGeneralData>
}
@Repository
interface Mai2UserItemRepo : UserLinked<UserItem> {
fun findByUserAndItemKindAndItemId(user: UserDetail, itemKind: Int, itemId: Int): Optional<UserItem>
fun findByUser_Card_ExtIdAndItemKind(userId: Long, kind: Int, page: Pageable): Page<UserItem>
}
@Repository
interface Mai2UserLoginBonusRepo : UserLinked<UserLoginBonus> {
fun findByUserAndBonusId(user: UserDetail, bonusId: Int): Optional<UserLoginBonus>
}
@Repository
interface Mai2UserMapRepo : UserLinked<UserMap> {
fun findByUserAndMapId(user: UserDetail, mapId: Int): Optional<UserMap>
}
@Repository
interface Mai2UserMusicDetailRepo : UserLinked<UserMusicDetail> {
fun findByUser_Card_ExtIdAndMusicId(userId: Long, id: Int): List<UserMusicDetail>
fun findByUserAndMusicIdAndLevel(user: UserDetail, musicId: Int, level: Int): Optional<UserMusicDetail>
}
@Repository
interface Mai2UserOptionRepo : UserLinked<UserOption>
@Repository
interface Mai2UserPlaylogRepo : GenericPlaylogRepo<UserPlaylog>, UserLinked<UserPlaylog> {
fun findByUser_Card_ExtIdAndMusicIdAndLevel(userId: Long, musicId: Int, level: Int): List<UserPlaylog>
}
@Repository
interface Mai2UserPrintDetailRepo : JpaRepository<UserPrintDetail, Long>
@Repository
interface Mai2UserUdemaeRepo : UserLinked<UserUdemae>
@Repository
interface Mai2GameChargeRepo : JpaRepository<GameCharge, Long>
@Repository
interface Mai2GameEventRepo : JpaRepository<GameEvent, Int> {
fun findByTypeAndEnable(type: Int, enable: Boolean): List<GameEvent>
}
@Repository
interface Mai2GameSellingCardRepo : JpaRepository<GameSellingCard, Long>

View File

@@ -5,7 +5,6 @@ import icu.samnyan.aqua.sega.general.model.Card
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData
import org.springframework.stereotype.Repository
import org.springframework.transaction.annotation.Transactional
import java.util.*
/**
* @author samnyan (privateamusement@protonmail.com)
@@ -14,8 +13,6 @@ import java.util.*
interface UserDataRepository : GenericUserDataRepo<UserData> {
fun findByCard_ExtIdIn(userIds: Collection<Long>): List<UserData>
fun findByCard_ExtId(aimeId: Long): Optional<UserData>
@Transactional
fun deleteByCard(card: Card)
}