diff --git a/src/main/java/ext/Ext.kt b/src/main/java/ext/Ext.kt index f991d4b4..bdd29ba6 100644 --- a/src/main/java/ext/Ext.kt +++ b/src/main/java/ext/Ext.kt @@ -228,6 +228,7 @@ fun Str.fromChusanUsername() = String(this.toByteArray(StandardCharsets.ISO_8859 fun Str.truncate(len: Int) = if (this.length > len) this.take(len) + "..." else this val Str.some get() = ifBlank { null } val ByteArray.hexStr get() = toHexString() +operator fun StringBuilder.plusAssign(other: String) { this.append(other) } // Coroutine suspend fun async(block: suspend kotlinx.coroutines.CoroutineScope.() -> T): T = withContext(Dispatchers.IO) { block() } diff --git a/src/main/java/icu/samnyan/aqua/net/CardController.kt b/src/main/java/icu/samnyan/aqua/net/CardController.kt index 59b2516f..96c3334f 100644 --- a/src/main/java/icu/samnyan/aqua/net/CardController.kt +++ b/src/main/java/icu/samnyan/aqua/net/CardController.kt @@ -8,6 +8,7 @@ import icu.samnyan.aqua.net.games.IUserData import icu.samnyan.aqua.net.utils.AquaNetProps import icu.samnyan.aqua.net.utils.SUCCESS import icu.samnyan.aqua.sega.chusan.model.Chu3UserDataRepo +import icu.samnyan.aqua.sega.diva.PlayerProfileRepository import icu.samnyan.aqua.sega.general.dao.CardRepository import icu.samnyan.aqua.sega.general.model.Card import icu.samnyan.aqua.sega.general.service.CardService @@ -19,7 +20,6 @@ import org.springframework.scheduling.annotation.Scheduled import org.springframework.stereotype.Service import org.springframework.web.bind.annotation.RestController import java.time.LocalDateTime -import kotlin.jvm.optionals.getOrNull import kotlin.random.Random @RestController @@ -204,7 +204,7 @@ class CardGameService( val chusan: Chu3UserDataRepo, val wacca: WcUserRepo, val ongeki: OgkUserDataRepo, - val diva: icu.samnyan.aqua.sega.diva.dao.userdata.PlayerProfileRepository, + val diva: PlayerProfileRepository, val safety: AquaNetSafetyService, val cardRepo: CardRepository, val em: EntityManager diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/controller/DivaController.kt b/src/main/java/icu/samnyan/aqua/sega/diva/DivaController.kt similarity index 99% rename from src/main/java/icu/samnyan/aqua/sega/diva/controller/DivaController.kt rename to src/main/java/icu/samnyan/aqua/sega/diva/DivaController.kt index ac36c721..efd29756 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/controller/DivaController.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/DivaController.kt @@ -1,14 +1,14 @@ -package icu.samnyan.aqua.sega.diva.controller +package icu.samnyan.aqua.sega.diva import ext.MutJDict import ext.logger import icu.samnyan.aqua.sega.diva.handler.AttendHandler import icu.samnyan.aqua.sega.diva.handler.GameInitHandler +import icu.samnyan.aqua.sega.diva.handler.PingHandler import icu.samnyan.aqua.sega.diva.handler.buildResultMap import icu.samnyan.aqua.sega.diva.handler.card.* import icu.samnyan.aqua.sega.diva.handler.databank.* import icu.samnyan.aqua.sega.diva.handler.ingame.* -import icu.samnyan.aqua.sega.diva.handler.PingHandler import icu.samnyan.aqua.sega.diva.handler.user.* import icu.samnyan.aqua.sega.diva.model.request.BaseRequest import icu.samnyan.aqua.sega.diva.model.request.boot.GameInitRequest @@ -188,4 +188,4 @@ class DivaController( .map { URLDecoder.decode(it, StandardCharsets.UTF_8) } .map { it.deArray() } } -} +} \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/Exceptions.kt b/src/main/java/icu/samnyan/aqua/sega/diva/Exceptions.kt new file mode 100644 index 00000000..79b66b52 --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/diva/Exceptions.kt @@ -0,0 +1,5 @@ +package icu.samnyan.aqua.sega.diva + +class PvRecordDataException(message: String?) : RuntimeException(message) +class SessionNotFoundException : RuntimeException() +class ProfileNotFoundException : RuntimeException() \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/Repos.kt b/src/main/java/icu/samnyan/aqua/sega/diva/Repos.kt new file mode 100644 index 00000000..a3ea4bf8 --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/diva/Repos.kt @@ -0,0 +1,173 @@ +package icu.samnyan.aqua.sega.diva + +import icu.samnyan.aqua.sega.diva.model.common.Difficulty +import icu.samnyan.aqua.sega.diva.model.common.Edition +import icu.samnyan.aqua.sega.diva.model.gamedata.* +import icu.samnyan.aqua.sega.diva.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.query.Param +import org.springframework.stereotype.Component +import org.springframework.stereotype.Repository +import java.util.* + +@Component +class DivaGameRepos( + val contest: ContestRepository, + val customize: DivaCustomizeRepository, + val module: DivaModuleRepository, + val pv: DivaPvRepository, + val festa: FestaRepository, + val ngWords: NgWordsRepository, + val pvEntry: PvEntryRepository +) + +@Component +class DivaRepos( + val g: DivaGameRepos, + val gameSession: GameSessionRepository, + val playLog: PlayLogRepository, + val contest: PlayerContestRepository, + val customize: PlayerCustomizeRepository, + val inventory: PlayerInventoryRepository, + val module: PlayerModuleRepository, + val profile: PlayerProfileRepository, + val pvCustomize: PlayerPvCustomizeRepository, + val pvRecord: PlayerPvRecordRepository, + val screenShot: PlayerScreenShotRepository +) + +@Repository +interface ContestRepository : JpaRepository { + fun findTop8ByEnable(enable: Boolean): MutableList +} + +@Repository +interface DivaCustomizeRepository : JpaRepository + +@Repository +interface DivaModuleRepository : JpaRepository + +interface DivaPvRepository : JpaRepository + +@Repository +interface FestaRepository : JpaRepository { + fun findTop2ByEnableOrderByCreateDateDesc(enable: Boolean): MutableList +} + +@Repository +interface NgWordsRepository : JpaRepository + +@Repository +interface PvEntryRepository : JpaRepository { + fun findByDifficulty(difficulty: Difficulty): MutableList +} + +interface PlayerContestRepository : JpaRepository { + fun findByPdIdAndContestId(pdId: PlayerProfile, contestId: Int): Optional + + fun findTop4ByPdIdOrderByLastUpdateTimeDesc(pdId: PlayerProfile): MutableList +} + +@Repository +interface GameSessionRepository : JpaRepository { + fun findByPdId(profile: PlayerProfile): Optional +} + +@Repository +interface PlayerCustomizeRepository : JpaRepository { + fun findByPdId(profile: PlayerProfile): MutableList + + fun findByPdId_PdId(pdId: Long, page: Pageable): Page + + fun findByPdIdAndCustomizeId(currentProfile: PlayerProfile, parseInt: Int): Optional +} + +@Repository +interface PlayerInventoryRepository : JpaRepository { + fun findByPdIdAndTypeAndValue(profile: PlayerProfile, type: String, value: String): Optional +} + +@Repository +interface PlayerProfileRepository : JpaRepository { + fun findByPdId(pdId: Long): Optional +} + +@Repository +interface PlayerPvCustomizeRepository : JpaRepository { + fun findByPdIdAndPvId(profile: PlayerProfile, pvId: Int): Optional + + fun findByPdId_PdIdAndPvId(pdId: Long, pvId: Int): Optional +} + +@Repository +interface PlayerPvRecordRepository : JpaRepository { + fun findByPdIdAndPvIdAndEditionAndDifficulty( + profile: PlayerProfile, + pvId: Int, + edition: Edition, + difficulty: Difficulty + ): Optional + + fun findByPdId_PdIdAndPvIdAndEditionAndDifficulty( + pdId: Long, + pvId: Int, + edition: Edition, + difficulty: Difficulty + ): Optional + + @Query( + ("SELECT COUNT(t1.id) as ranking from DivaPlayerPvRecord as t1 " + + "where t1.maxScore >= (" + + "SELECT maxScore from DivaPlayerPvRecord where pvId = :pvId and pdId = :pdId and edition = :edition and difficulty = :difficulty" + + ") and t1.pvId = :pvId and t1.edition = :edition and t1.difficulty = :difficulty") + ) + fun rankByPvIdAndPdIdAndEditionAndDifficulty( + @Param("pvId") pvId: Int, + @Param("pdId") pdId: PlayerProfile, + @Param("edition") edition: Edition, + @Param("difficulty") difficulty: Difficulty + ): Int + + fun findByPdId(profile: PlayerProfile): MutableList + + fun findByIdAndPdId_PdId(id: Long, pdId: Long): Optional + + fun findByPdIdAndEdition(profile: PlayerProfile, edition: Edition): MutableList + + fun findTop3ByPvIdAndEditionAndDifficultyOrderByMaxScoreDesc( + pvId: Int, + edition: Edition, + difficulty: Difficulty + ): MutableList + + fun findByPvIdAndEditionAndDifficultyOrderByMaxScoreDesc( + pvId: Int, + edition: Edition, + difficulty: Difficulty, + page: Pageable + ): Page + + fun findByPdId_PdIdOrderByPvId(pdId: Long, page: Pageable): Page + + fun findByPdId_PdIdAndPvId(pdId: Long, pvId: Int): MutableList +} + +interface PlayerScreenShotRepository : JpaRepository { + fun findByPdId_PdId(pdId: Long): MutableList + fun findByFileName(fileName: String): Optional +} + +@Repository +interface PlayLogRepository : JpaRepository { + fun findByPdId_PdIdOrderByDateTimeDesc(pdId: Long, page: Pageable): Page +} + +@Repository +interface PlayerModuleRepository : JpaRepository { + fun findByPdId(profile: PlayerProfile): MutableList + + fun findByPdId_PdId(pdId: Long, pageable: Pageable): Page +} \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/Repos.kt b/src/main/java/icu/samnyan/aqua/sega/diva/dao/Repos.kt deleted file mode 100644 index de5a4a81..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/Repos.kt +++ /dev/null @@ -1,31 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao - -import icu.samnyan.aqua.sega.diva.dao.gamedata.* -import icu.samnyan.aqua.sega.diva.dao.userdata.* -import org.springframework.stereotype.Component - -@Component -class DivaGameRepos( - val contest: ContestRepository, - val customize: DivaCustomizeRepository, - val module: DivaModuleRepository, - val pv: DivaPvRepository, - val festa: FestaRepository, - val ngWords: NgWordsRepository, - val pvEntry: PvEntryRepository -) - -@Component -class DivaRepos( - val g: DivaGameRepos, - val gameSession: GameSessionRepository, - val playLog: PlayLogRepository, - val contest: PlayerContestRepository, - val customize: PlayerCustomizeRepository, - val inventory: PlayerInventoryRepository, - val module: PlayerModuleRepository, - val profile: PlayerProfileRepository, - val pvCustomize: PlayerPvCustomizeRepository, - val pvRecord: PlayerPvRecordRepository, - val screenShot: PlayerScreenShotRepository -) \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/ContestRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/ContestRepository.java deleted file mode 100644 index 6c112e4e..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/ContestRepository.java +++ /dev/null @@ -1,15 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.gamedata; - -import icu.samnyan.aqua.sega.diva.model.gamedata.Contest; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository -public interface ContestRepository extends JpaRepository { - List findTop8ByEnable(boolean enable); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/DivaCustomizeRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/DivaCustomizeRepository.java deleted file mode 100644 index 013212b5..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/DivaCustomizeRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.gamedata; - -import icu.samnyan.aqua.sega.diva.model.gamedata.DivaCustomize; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository -public interface DivaCustomizeRepository extends JpaRepository { -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/DivaModuleRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/DivaModuleRepository.java deleted file mode 100644 index 45e8218c..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/DivaModuleRepository.java +++ /dev/null @@ -1,15 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.gamedata; - -import icu.samnyan.aqua.sega.diva.model.gamedata.DivaModule; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository -public interface DivaModuleRepository extends JpaRepository { - Optional findById(int id); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/DivaPvRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/DivaPvRepository.java deleted file mode 100644 index b08803a4..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/DivaPvRepository.java +++ /dev/null @@ -1,10 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.gamedata; - -import icu.samnyan.aqua.sega.diva.model.gamedata.Pv; -import org.springframework.data.jpa.repository.JpaRepository; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -public interface DivaPvRepository extends JpaRepository { -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/FestaRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/FestaRepository.java deleted file mode 100644 index cb11585e..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/FestaRepository.java +++ /dev/null @@ -1,15 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.gamedata; - -import icu.samnyan.aqua.sega.diva.model.gamedata.Festa; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository -public interface FestaRepository extends JpaRepository { - List findTop2ByEnableOrderByCreateDateDesc(boolean enable); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/NgWordsRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/NgWordsRepository.java deleted file mode 100644 index 996a6428..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/NgWordsRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.gamedata; - -import icu.samnyan.aqua.sega.diva.model.gamedata.NgWords; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository -public interface NgWordsRepository extends JpaRepository { -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/PvEntryRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/PvEntryRepository.java deleted file mode 100644 index 5c596600..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/gamedata/PvEntryRepository.java +++ /dev/null @@ -1,16 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.gamedata; - -import icu.samnyan.aqua.sega.diva.model.common.Difficulty; -import icu.samnyan.aqua.sega.diva.model.gamedata.PvEntry; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository -public interface PvEntryRepository extends JpaRepository { - List findByDifficulty(Difficulty difficulty); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/GameSessionRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/GameSessionRepository.java deleted file mode 100644 index f589ce8b..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/GameSessionRepository.java +++ /dev/null @@ -1,16 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.userdata; - -import icu.samnyan.aqua.sega.diva.model.userdata.GameSession; -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerProfile; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository -public interface GameSessionRepository extends JpaRepository { - Optional findByPdId(PlayerProfile profile); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayLogRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayLogRepository.java deleted file mode 100644 index 3ac68671..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayLogRepository.java +++ /dev/null @@ -1,15 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.userdata; - -import icu.samnyan.aqua.sega.diva.model.userdata.PlayLog; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository -public interface PlayLogRepository extends JpaRepository { - Page findByPdId_PdIdOrderByDateTimeDesc(long pdId, Pageable page); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerContestRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerContestRepository.java deleted file mode 100644 index 6665e3ac..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerContestRepository.java +++ /dev/null @@ -1,17 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.userdata; - -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerContest; -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerProfile; -import org.springframework.data.jpa.repository.JpaRepository; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -public interface PlayerContestRepository extends JpaRepository { - Optional findByPdIdAndContestId(PlayerProfile pdId, int contestId); - - List findTop4ByPdIdOrderByLastUpdateTimeDesc(PlayerProfile pdId); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerCustomizeRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerCustomizeRepository.java deleted file mode 100644 index 6a4a9d3c..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerCustomizeRepository.java +++ /dev/null @@ -1,23 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.userdata; - -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerCustomize; -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerProfile; -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 -public interface PlayerCustomizeRepository extends JpaRepository { - List findByPdId(PlayerProfile profile); - - Page findByPdId_PdId(long pdId, Pageable page); - - Optional findByPdIdAndCustomizeId(PlayerProfile currentProfile, int parseInt); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerInventoryRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerInventoryRepository.java deleted file mode 100644 index 2b1180c3..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerInventoryRepository.java +++ /dev/null @@ -1,16 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.userdata; - -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerInventory; -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerProfile; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository -public interface PlayerInventoryRepository extends JpaRepository { - Optional findByPdIdAndTypeAndValue(PlayerProfile profile, String type, String value); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerModuleRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerModuleRepository.java deleted file mode 100644 index e0ede69a..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerModuleRepository.java +++ /dev/null @@ -1,20 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.userdata; - -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerModule; -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerProfile; -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; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository -public interface PlayerModuleRepository extends JpaRepository { - List findByPdId(PlayerProfile profile); - - Page findByPdId_PdId(long pdId, Pageable pageable); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerProfileRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerProfileRepository.java deleted file mode 100644 index 729a46b6..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerProfileRepository.java +++ /dev/null @@ -1,16 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.userdata; - -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerProfile; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository -public interface PlayerProfileRepository extends JpaRepository { - - Optional findByPdId(long pdId); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerPvCustomizeRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerPvCustomizeRepository.java deleted file mode 100644 index 5e5fae21..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerPvCustomizeRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.userdata; - -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerProfile; -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerPvCustomize; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository -public interface PlayerPvCustomizeRepository extends JpaRepository { - Optional findByPdIdAndPvId(PlayerProfile profile, int pvId); - - Optional findByPdId_PdIdAndPvId(long pdId, int pvId); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerPvRecordRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerPvRecordRepository.java deleted file mode 100644 index 627ff74a..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerPvRecordRepository.java +++ /dev/null @@ -1,49 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.userdata; - -import icu.samnyan.aqua.sega.diva.model.common.Difficulty; -import icu.samnyan.aqua.sega.diva.model.common.Edition; -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerProfile; -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerPvRecord; -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.query.Param; -import org.springframework.stereotype.Repository; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository -public interface PlayerPvRecordRepository extends JpaRepository { - Optional findByPdIdAndPvIdAndEditionAndDifficulty(PlayerProfile profile, int pvId, Edition edition, Difficulty difficulty); - - Optional findByPdId_PdIdAndPvIdAndEditionAndDifficulty(long pdId, int pvId, Edition edition, Difficulty difficulty); - - @Query("SELECT COUNT(t1.id) as ranking from DivaPlayerPvRecord as t1 " + - "where t1.maxScore >= (" + - "SELECT maxScore from DivaPlayerPvRecord where pvId = :pvId and pdId = :pdId and edition = :edition and difficulty = :difficulty" + - ") and t1.pvId = :pvId and t1.edition = :edition and t1.difficulty = :difficulty") - Integer rankByPvIdAndPdIdAndEditionAndDifficulty(@Param("pvId") int pvId, - @Param("pdId") PlayerProfile pdId, - @Param("edition") Edition edition, - @Param("difficulty") Difficulty difficulty - ); - - List findByPdId(PlayerProfile profile); - - Optional findByIdAndPdId_PdId(long id, long pdId); - - List findByPdIdAndEdition(PlayerProfile profile, Edition edition); - - List findTop3ByPvIdAndEditionAndDifficultyOrderByMaxScoreDesc(int pvId, Edition edition, Difficulty difficulty); - - Page findByPvIdAndEditionAndDifficultyOrderByMaxScoreDesc(int pvId, Edition edition, Difficulty difficulty, Pageable page); - - Page findByPdId_PdIdOrderByPvId(long pdId, Pageable page); - - List findByPdId_PdIdAndPvId(long pdId, int pvId); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerScreenShotRepository.java b/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerScreenShotRepository.java deleted file mode 100644 index 359c7c5a..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/dao/userdata/PlayerScreenShotRepository.java +++ /dev/null @@ -1,16 +0,0 @@ -package icu.samnyan.aqua.sega.diva.dao.userdata; - -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerScreenShot; -import org.springframework.data.jpa.repository.JpaRepository; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -public interface PlayerScreenShotRepository extends JpaRepository { - List findByPdId_PdId(long pdId); - Optional findByFileName(String fileName); - -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/exception/ProfileNotFoundException.java b/src/main/java/icu/samnyan/aqua/sega/diva/exception/ProfileNotFoundException.java deleted file mode 100644 index 9235e68d..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/exception/ProfileNotFoundException.java +++ /dev/null @@ -1,7 +0,0 @@ -package icu.samnyan.aqua.sega.diva.exception; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -public class ProfileNotFoundException extends RuntimeException { -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/exception/PvRecordDataException.java b/src/main/java/icu/samnyan/aqua/sega/diva/exception/PvRecordDataException.java deleted file mode 100644 index 0dffb4ab..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/exception/PvRecordDataException.java +++ /dev/null @@ -1,10 +0,0 @@ -package icu.samnyan.aqua.sega.diva.exception; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -public class PvRecordDataException extends RuntimeException { - public PvRecordDataException(String message) { - super(message); - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/exception/SessionNotFoundException.java b/src/main/java/icu/samnyan/aqua/sega/diva/exception/SessionNotFoundException.java deleted file mode 100644 index e3220ca9..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/exception/SessionNotFoundException.java +++ /dev/null @@ -1,7 +0,0 @@ -package icu.samnyan.aqua.sega.diva.exception; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -public class SessionNotFoundException extends RuntimeException { -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/BaseHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/BaseHandler.kt index b504425f..35cd3ecb 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/BaseHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/BaseHandler.kt @@ -3,10 +3,6 @@ package icu.samnyan.aqua.sega.diva.handler import icu.samnyan.aqua.sega.diva.util.DivaMapper import org.springframework.stereotype.Component -operator fun StringBuilder.plusAssign(other: String) { - this.append(other) -} - fun buildResultMap(map: MutableMap) = map.filterValues { it != null && !(it is String && it == "") } .map { (k, v) -> "$k=$v" }.joinToString("&") diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/card/CardProcedureHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/card/CardProcedureHandler.kt index c6507a99..b8413606 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/card/CardProcedureHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/card/CardProcedureHandler.kt @@ -1,6 +1,6 @@ package icu.samnyan.aqua.sega.diva.handler.card -import icu.samnyan.aqua.sega.diva.dao.DivaRepos +import icu.samnyan.aqua.sega.diva.DivaRepos import icu.samnyan.aqua.sega.diva.model.common.Result import icu.samnyan.aqua.sega.diva.model.common.StartMode import icu.samnyan.aqua.sega.diva.model.request.card.CardProcedureRequest diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/card/ChangeNameHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/card/ChangeNameHandler.kt index 2cd173da..907a9794 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/card/ChangeNameHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/card/ChangeNameHandler.kt @@ -1,9 +1,9 @@ package icu.samnyan.aqua.sega.diva.handler.card import ext.invoke -import icu.samnyan.aqua.sega.diva.dao.DivaRepos -import icu.samnyan.aqua.sega.diva.exception.ProfileNotFoundException -import icu.samnyan.aqua.sega.diva.exception.SessionNotFoundException +import icu.samnyan.aqua.sega.diva.DivaRepos +import icu.samnyan.aqua.sega.diva.ProfileNotFoundException +import icu.samnyan.aqua.sega.diva.SessionNotFoundException import icu.samnyan.aqua.sega.diva.model.common.Result import icu.samnyan.aqua.sega.diva.model.request.card.ChangeNameRequest import icu.samnyan.aqua.sega.diva.model.response.card.ChangeNameResponse diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/card/ChangePasswdHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/card/ChangePasswdHandler.kt index 324bf9d0..72d0ccc0 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/card/ChangePasswdHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/card/ChangePasswdHandler.kt @@ -1,8 +1,8 @@ package icu.samnyan.aqua.sega.diva.handler.card -import icu.samnyan.aqua.sega.diva.dao.DivaRepos -import icu.samnyan.aqua.sega.diva.exception.ProfileNotFoundException -import icu.samnyan.aqua.sega.diva.exception.SessionNotFoundException +import icu.samnyan.aqua.sega.diva.DivaRepos +import icu.samnyan.aqua.sega.diva.ProfileNotFoundException +import icu.samnyan.aqua.sega.diva.SessionNotFoundException import icu.samnyan.aqua.sega.diva.model.common.PassStat import icu.samnyan.aqua.sega.diva.model.common.Result import icu.samnyan.aqua.sega.diva.model.request.card.ChangePasswdRequest diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/ContestInfoHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/ContestInfoHandler.kt index 8d006c6e..6040c15f 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/ContestInfoHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/ContestInfoHandler.kt @@ -1,6 +1,6 @@ package icu.samnyan.aqua.sega.diva.handler.databank -import icu.samnyan.aqua.sega.diva.dao.gamedata.ContestRepository +import icu.samnyan.aqua.sega.diva.ContestRepository import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.gamedata.Contest import icu.samnyan.aqua.sega.diva.model.request.BaseRequest diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/CstmzItmCtlgHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/CstmzItmCtlgHandler.kt index 52e29887..404700d4 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/CstmzItmCtlgHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/CstmzItmCtlgHandler.kt @@ -1,13 +1,11 @@ package icu.samnyan.aqua.sega.diva.handler.databank -import icu.samnyan.aqua.sega.diva.dao.gamedata.DivaCustomizeRepository +import icu.samnyan.aqua.sega.diva.DivaCustomizeRepository import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.request.BaseRequest import icu.samnyan.aqua.sega.diva.model.response.databank.CstmzItmCtlgResponse import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil import icu.samnyan.aqua.sega.diva.util.URIEncoder.encode -import org.slf4j.Logger -import org.slf4j.LoggerFactory import org.springframework.stereotype.Component import java.time.LocalDateTime diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/FestaInfoHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/FestaInfoHandler.kt index 6119af3b..5bfd777c 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/FestaInfoHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/FestaInfoHandler.kt @@ -1,12 +1,10 @@ package icu.samnyan.aqua.sega.diva.handler.databank -import icu.samnyan.aqua.sega.diva.dao.gamedata.FestaRepository +import icu.samnyan.aqua.sega.diva.FestaRepository import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.common.collection.FestaCollection import icu.samnyan.aqua.sega.diva.model.request.BaseRequest import icu.samnyan.aqua.sega.diva.model.response.databank.FestaInfoResponse -import org.slf4j.Logger -import org.slf4j.LoggerFactory import org.springframework.stereotype.Component /** diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/PsRankingHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/PsRankingHandler.kt index 4d67b89a..4cb5e282 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/PsRankingHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/PsRankingHandler.kt @@ -1,6 +1,6 @@ package icu.samnyan.aqua.sega.diva.handler.databank -import icu.samnyan.aqua.sega.diva.dao.userdata.PlayerPvRecordRepository +import icu.samnyan.aqua.sega.diva.PlayerPvRecordRepository import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.common.Difficulty import icu.samnyan.aqua.sega.diva.model.common.Edition diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/PvListHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/PvListHandler.kt index b3554430..c805f1f9 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/PvListHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/PvListHandler.kt @@ -1,14 +1,12 @@ package icu.samnyan.aqua.sega.diva.handler.databank -import icu.samnyan.aqua.sega.diva.dao.gamedata.PvEntryRepository +import icu.samnyan.aqua.sega.diva.PvEntryRepository import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.common.Difficulty import icu.samnyan.aqua.sega.diva.model.gamedata.PvEntry import icu.samnyan.aqua.sega.diva.model.request.BaseRequest import icu.samnyan.aqua.sega.diva.model.response.databank.PvListResponse import icu.samnyan.aqua.sega.diva.util.URIEncoder.encode -import org.slf4j.Logger -import org.slf4j.LoggerFactory import org.springframework.stereotype.Component import java.time.LocalDateTime import java.time.format.DateTimeFormatter @@ -54,10 +52,10 @@ class PvListHandler(private val pvEntryRepository: PvEntryRepository) : BaseHand df.format(entry.playableEnd) } - private fun difficultyString(list: MutableList): String { + private fun difficultyString(list: MutableList): String { val sb = StringBuilder() - list.forEach(Consumer { x: PvEntry? -> sb.append(encode(entryString(x!!))).append(",") }) - if (sb.length > 0) sb.deleteCharAt(sb.length - 1) + list.forEach(Consumer { sb.append(encode(entryString(it))).append(",") }) + if (sb.isNotEmpty()) sb.deleteCharAt(sb.length - 1) return sb.toString() } } diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/ShopCatalogHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/ShopCatalogHandler.kt index 74db3c96..94cfc3a4 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/ShopCatalogHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/databank/ShopCatalogHandler.kt @@ -1,12 +1,10 @@ package icu.samnyan.aqua.sega.diva.handler.databank -import icu.samnyan.aqua.sega.diva.dao.gamedata.DivaModuleRepository +import icu.samnyan.aqua.sega.diva.DivaModuleRepository import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.request.BaseRequest import icu.samnyan.aqua.sega.diva.model.response.databank.ShopCatalogResponse import icu.samnyan.aqua.sega.diva.util.URIEncoder.encode -import org.slf4j.Logger -import org.slf4j.LoggerFactory import org.springframework.stereotype.Component import java.time.LocalDateTime diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/BuyCstmzItmHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/BuyCstmzItmHandler.kt index 967b031b..04eca8d2 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/BuyCstmzItmHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/BuyCstmzItmHandler.kt @@ -1,9 +1,9 @@ package icu.samnyan.aqua.sega.diva.handler.ingame -import icu.samnyan.aqua.sega.diva.dao.gamedata.DivaCustomizeRepository -import icu.samnyan.aqua.sega.diva.dao.userdata.GameSessionRepository -import icu.samnyan.aqua.sega.diva.exception.ProfileNotFoundException -import icu.samnyan.aqua.sega.diva.exception.SessionNotFoundException +import icu.samnyan.aqua.sega.diva.DivaCustomizeRepository +import icu.samnyan.aqua.sega.diva.GameSessionRepository +import icu.samnyan.aqua.sega.diva.ProfileNotFoundException +import icu.samnyan.aqua.sega.diva.SessionNotFoundException import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.common.Result import icu.samnyan.aqua.sega.diva.model.request.ingame.BuyCstmzItmRequest diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/BuyModuleHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/BuyModuleHandler.kt index 7cbe10d2..e8269404 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/BuyModuleHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/BuyModuleHandler.kt @@ -1,9 +1,9 @@ package icu.samnyan.aqua.sega.diva.handler.ingame -import icu.samnyan.aqua.sega.diva.dao.gamedata.DivaModuleRepository -import icu.samnyan.aqua.sega.diva.dao.userdata.GameSessionRepository -import icu.samnyan.aqua.sega.diva.exception.ProfileNotFoundException -import icu.samnyan.aqua.sega.diva.exception.SessionNotFoundException +import icu.samnyan.aqua.sega.diva.DivaModuleRepository +import icu.samnyan.aqua.sega.diva.GameSessionRepository +import icu.samnyan.aqua.sega.diva.ProfileNotFoundException +import icu.samnyan.aqua.sega.diva.SessionNotFoundException import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.common.Result import icu.samnyan.aqua.sega.diva.model.request.ingame.BuyModuleRequest @@ -11,8 +11,6 @@ import icu.samnyan.aqua.sega.diva.model.response.ingame.BuyModuleResponse import icu.samnyan.aqua.sega.diva.model.userdata.GameSession import icu.samnyan.aqua.sega.diva.service.PlayerModuleService import icu.samnyan.aqua.sega.diva.service.PlayerProfileService -import org.slf4j.Logger -import org.slf4j.LoggerFactory import org.springframework.stereotype.Component import java.util.function.Supplier diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/GetPvPdHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/GetPvPdHandler.kt index bb568212..e58e223e 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/GetPvPdHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/GetPvPdHandler.kt @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.diva.handler.ingame -import icu.samnyan.aqua.sega.diva.dao.userdata.PlayerPvCustomizeRepository -import icu.samnyan.aqua.sega.diva.dao.userdata.PlayerPvRecordRepository +import icu.samnyan.aqua.sega.diva.PlayerPvCustomizeRepository +import icu.samnyan.aqua.sega.diva.PlayerPvRecordRepository import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.common.Difficulty import icu.samnyan.aqua.sega.diva.model.common.Edition @@ -12,8 +12,6 @@ import icu.samnyan.aqua.sega.diva.model.userdata.PlayerPvRecord import icu.samnyan.aqua.sega.diva.service.PlayerProfileService import icu.samnyan.aqua.sega.diva.util.DivaDateTimeUtil import icu.samnyan.aqua.sega.diva.util.URIEncoder.encode -import org.slf4j.Logger -import org.slf4j.LoggerFactory import org.springframework.stereotype.Component import java.time.LocalDateTime import java.util.function.Supplier diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/ShopExitHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/ShopExitHandler.kt index 91c3cbf6..3631707d 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/ShopExitHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/ShopExitHandler.kt @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.diva.handler.ingame -import icu.samnyan.aqua.sega.diva.dao.userdata.PlayerPvCustomizeRepository -import icu.samnyan.aqua.sega.diva.exception.ProfileNotFoundException +import icu.samnyan.aqua.sega.diva.PlayerPvCustomizeRepository +import icu.samnyan.aqua.sega.diva.ProfileNotFoundException import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.common.Result import icu.samnyan.aqua.sega.diva.model.request.ingame.ShopExitRequest @@ -9,8 +9,6 @@ import icu.samnyan.aqua.sega.diva.model.response.ingame.ShopExitResponse import icu.samnyan.aqua.sega.diva.model.userdata.PlayerPvCustomize import icu.samnyan.aqua.sega.diva.service.PlayerProfileService import icu.samnyan.aqua.sega.diva.util.DivaStringUtils -import org.slf4j.Logger -import org.slf4j.LoggerFactory import org.springframework.stereotype.Component import java.util.function.Supplier diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/StageResultHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/StageResultHandler.kt index f8454f67..5b70fef1 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/StageResultHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/StageResultHandler.kt @@ -1,10 +1,15 @@ package icu.samnyan.aqua.sega.diva.handler.ingame import ext.logger -import icu.samnyan.aqua.sega.diva.dao.gamedata.ContestRepository -import icu.samnyan.aqua.sega.diva.dao.userdata.* -import icu.samnyan.aqua.sega.diva.exception.ProfileNotFoundException -import icu.samnyan.aqua.sega.diva.exception.SessionNotFoundException +import icu.samnyan.aqua.sega.diva.ContestRepository +import icu.samnyan.aqua.sega.diva.GameSessionRepository +import icu.samnyan.aqua.sega.diva.PlayLogRepository +import icu.samnyan.aqua.sega.diva.PlayerContestRepository +import icu.samnyan.aqua.sega.diva.PlayerCustomizeRepository +import icu.samnyan.aqua.sega.diva.PlayerInventoryRepository +import icu.samnyan.aqua.sega.diva.PlayerPvRecordRepository +import icu.samnyan.aqua.sega.diva.ProfileNotFoundException +import icu.samnyan.aqua.sega.diva.SessionNotFoundException import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.common.* import icu.samnyan.aqua.sega.diva.model.request.ingame.StageResultRequest @@ -13,8 +18,6 @@ import icu.samnyan.aqua.sega.diva.model.userdata.* import icu.samnyan.aqua.sega.diva.service.PlayerProfileService import icu.samnyan.aqua.sega.diva.util.DivaCalculator import org.apache.commons.lang3.StringUtils -import org.slf4j.Logger -import org.slf4j.LoggerFactory import org.springframework.stereotype.Component import java.lang.String import java.time.LocalDateTime @@ -340,7 +343,7 @@ class StageResultHandler( ) ) } - i = i + 6 + i += 6 } return result } @@ -374,20 +377,20 @@ class StageResultHandler( when (rewardValue[0]) { "-1" -> return null "0" -> { - result.put("type", rewardValue[0]) - result.put("value", rewardValue[1]) - result.put("string1", "***") - result.put("string2", "***") + result["type"] = rewardValue[0] + result["value"] = rewardValue[1] + result["string1"] = "***" + result["string2"] = "***" } "1" -> { - if (playerInventoryRepository.findByPdIdAndTypeAndValue(currentProfile, "SKIN", rewardValue[1]) + if (playerInventoryRepository.findByPdIdAndTypeAndValue(currentProfile!!, "SKIN", rewardValue[1]!!) .isPresent ) { - result.put("type", "-1") - result.put("value", "-1") - result.put("string1", "***") - result.put("string2", "***") + result["type"] = "-1" + result["value"] = "-1" + result["string1"] = "***" + result["string2"] = "***" } else { playerInventoryRepository.save( PlayerInventory( @@ -405,7 +408,7 @@ class StageResultHandler( } "2" -> { - if (playerInventoryRepository.findByPdIdAndTypeAndValue(currentProfile, "PLATE", rewardValue[1]) + if (playerInventoryRepository.findByPdIdAndTypeAndValue(currentProfile!!, "PLATE", rewardValue[1]!!) .isPresent ) { result.put("type", "-1") @@ -429,7 +432,7 @@ class StageResultHandler( } "3" -> { - if (playerCustomizeRepository.findByPdIdAndCustomizeId(currentProfile, rewardValue[1]!!.toInt()) + if (playerCustomizeRepository.findByPdIdAndCustomizeId(currentProfile!!, rewardValue[1]!!.toInt()) .isPresent ) { result.put("type", "-1") @@ -437,7 +440,7 @@ class StageResultHandler( result.put("string1", "***") result.put("string2", "***") } else { - playerCustomizeRepository.save( + playerCustomizeRepository.save( PlayerCustomize( currentProfile, rewardValue[1]!!.toInt() diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/StageStartHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/StageStartHandler.kt index e15c439c..e8dc7ad0 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/StageStartHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/StageStartHandler.kt @@ -1,15 +1,13 @@ package icu.samnyan.aqua.sega.diva.handler.ingame -import icu.samnyan.aqua.sega.diva.dao.userdata.GameSessionRepository -import icu.samnyan.aqua.sega.diva.exception.ProfileNotFoundException -import icu.samnyan.aqua.sega.diva.exception.SessionNotFoundException +import icu.samnyan.aqua.sega.diva.GameSessionRepository +import icu.samnyan.aqua.sega.diva.ProfileNotFoundException +import icu.samnyan.aqua.sega.diva.SessionNotFoundException import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.request.ingame.StageStartRequest import icu.samnyan.aqua.sega.diva.model.response.BaseResponse import icu.samnyan.aqua.sega.diva.model.userdata.GameSession import icu.samnyan.aqua.sega.diva.service.PlayerProfileService -import org.slf4j.Logger -import org.slf4j.LoggerFactory import org.springframework.stereotype.Component import java.util.function.Supplier diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/StoreSsHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/StoreSsHandler.kt index 5180a1c9..30ded6ac 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/StoreSsHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/ingame/StoreSsHandler.kt @@ -1,8 +1,8 @@ package icu.samnyan.aqua.sega.diva.handler.ingame import ext.logger -import icu.samnyan.aqua.sega.diva.dao.userdata.PlayerScreenShotRepository -import icu.samnyan.aqua.sega.diva.exception.ProfileNotFoundException +import icu.samnyan.aqua.sega.diva.PlayerScreenShotRepository +import icu.samnyan.aqua.sega.diva.ProfileNotFoundException import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.request.ingame.StoreSsRequest import icu.samnyan.aqua.sega.diva.model.response.BaseResponse diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/EndHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/EndHandler.kt index 59b203bd..2efb9060 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/EndHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/EndHandler.kt @@ -1,10 +1,10 @@ package icu.samnyan.aqua.sega.diva.handler.user -import icu.samnyan.aqua.sega.diva.dao.gamedata.ContestRepository -import icu.samnyan.aqua.sega.diva.dao.userdata.GameSessionRepository -import icu.samnyan.aqua.sega.diva.dao.userdata.PlayerContestRepository -import icu.samnyan.aqua.sega.diva.exception.ProfileNotFoundException -import icu.samnyan.aqua.sega.diva.exception.SessionNotFoundException +import icu.samnyan.aqua.sega.diva.ContestRepository +import icu.samnyan.aqua.sega.diva.GameSessionRepository +import icu.samnyan.aqua.sega.diva.PlayerContestRepository +import icu.samnyan.aqua.sega.diva.ProfileNotFoundException +import icu.samnyan.aqua.sega.diva.SessionNotFoundException import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.common.ContestBorder import icu.samnyan.aqua.sega.diva.model.common.Difficulty @@ -16,8 +16,6 @@ import icu.samnyan.aqua.sega.diva.model.response.BaseResponse import icu.samnyan.aqua.sega.diva.model.userdata.PlayerContest import icu.samnyan.aqua.sega.diva.service.PlayerProfileService import icu.samnyan.aqua.sega.diva.util.DivaStringUtils -import org.slf4j.Logger -import org.slf4j.LoggerFactory import org.springframework.stereotype.Component import java.lang.String import java.time.LocalDateTime @@ -69,7 +67,7 @@ class EndHandler( val contestRecord = playerContestRepository.findByPdIdAndContestId(profile, request.getCr_cid()).orElseGet( Supplier { PlayerContest(profile, request.getCr_cid()) }) - contestRecord.startCount = contestRecord.startCount + 1 + contestRecord.startCount += 1 contestRecord.bestValue = max(contestRecord.bestValue, request.getCr_tv()) contestRecord.resultRank = if (currentResultRank.value > contestRecord.resultRank .value diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/PdUnlockHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/PdUnlockHandler.kt index a4c062a6..8986b00f 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/PdUnlockHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/PdUnlockHandler.kt @@ -1,14 +1,12 @@ package icu.samnyan.aqua.sega.diva.handler.user -import icu.samnyan.aqua.sega.diva.dao.userdata.GameSessionRepository -import icu.samnyan.aqua.sega.diva.exception.ProfileNotFoundException -import icu.samnyan.aqua.sega.diva.exception.SessionNotFoundException +import icu.samnyan.aqua.sega.diva.GameSessionRepository +import icu.samnyan.aqua.sega.diva.ProfileNotFoundException +import icu.samnyan.aqua.sega.diva.SessionNotFoundException import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.request.user.PdUnlockRequest import icu.samnyan.aqua.sega.diva.model.response.BaseResponse import icu.samnyan.aqua.sega.diva.service.PlayerProfileService -import org.slf4j.Logger -import org.slf4j.LoggerFactory import org.springframework.stereotype.Component import java.util.function.Supplier diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/PreStartHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/PreStartHandler.kt index ca31c768..69771d6e 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/PreStartHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/PreStartHandler.kt @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.diva.handler.user import ext.logger -import icu.samnyan.aqua.sega.diva.dao.userdata.GameSessionRepository +import icu.samnyan.aqua.sega.diva.GameSessionRepository import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.common.PreStartResult import icu.samnyan.aqua.sega.diva.model.common.StartMode @@ -24,7 +24,6 @@ class PreStartHandler( var logger = logger() fun handle(request: PreStartRequest): Any { val profileOptional = playerProfileService.findByPdId(request.aime_id) - val response: PreStartResponse? if (profileOptional.isEmpty) { return PreStartResponse( request.cmd, @@ -68,7 +67,7 @@ class PreStartHandler( profile.vocaloidPoints ) - gameSessionRepository.save(session) + gameSessionRepository.save(session) return PreStartResponse( request.cmd, diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/SpendCreditHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/SpendCreditHandler.kt index 20528d50..c9cc7f61 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/SpendCreditHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/SpendCreditHandler.kt @@ -1,12 +1,10 @@ package icu.samnyan.aqua.sega.diva.handler.user -import icu.samnyan.aqua.sega.diva.exception.ProfileNotFoundException +import icu.samnyan.aqua.sega.diva.ProfileNotFoundException import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.request.user.SpendCreditRequest import icu.samnyan.aqua.sega.diva.model.response.user.SpendCreditResponse import icu.samnyan.aqua.sega.diva.service.PlayerProfileService -import org.slf4j.Logger -import org.slf4j.LoggerFactory import org.springframework.stereotype.Component import java.util.function.Supplier diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/StartHandler.kt b/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/StartHandler.kt index 64ea8665..8c9852f4 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/StartHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/diva/handler/user/StartHandler.kt @@ -1,11 +1,6 @@ package icu.samnyan.aqua.sega.diva.handler.user -import icu.samnyan.aqua.sega.diva.dao.userdata.GameSessionRepository -import icu.samnyan.aqua.sega.diva.dao.userdata.PlayerContestRepository -import icu.samnyan.aqua.sega.diva.dao.userdata.PlayerPvRecordRepository -import icu.samnyan.aqua.sega.diva.exception.ProfileNotFoundException -import icu.samnyan.aqua.sega.diva.exception.PvRecordDataException -import icu.samnyan.aqua.sega.diva.exception.SessionNotFoundException +import icu.samnyan.aqua.sega.diva.* import icu.samnyan.aqua.sega.diva.handler.BaseHandler import icu.samnyan.aqua.sega.diva.model.common.* import icu.samnyan.aqua.sega.diva.model.common.collection.ClearSet @@ -19,8 +14,6 @@ import icu.samnyan.aqua.sega.diva.model.userdata.PlayerPvRecord import icu.samnyan.aqua.sega.diva.service.PlayerCustomizeService import icu.samnyan.aqua.sega.diva.service.PlayerModuleService import icu.samnyan.aqua.sega.diva.service.PlayerProfileService -import org.slf4j.Logger -import org.slf4j.LoggerFactory import org.springframework.stereotype.Component import java.time.LocalDateTime import java.util.* @@ -41,13 +34,13 @@ class StartHandler( private val playerContestRepository: PlayerContestRepository ) : BaseHandler() { fun handle(request: StartRequest): Any { - val profile = playerProfileService.findByPdId(request.getPd_id()).orElseThrow( + val profile = playerProfileService.findByPdId(request.getPd_id()).orElseThrow( Supplier { ProfileNotFoundException() }) val session = gameSessionRepository.findByPdId(profile) .orElseThrow(Supplier { SessionNotFoundException() }) session.startMode = StartMode.START - gameSessionRepository.save(session) + gameSessionRepository.save(session) val module_have = playerModuleService.getModuleHaveString(profile) val customize_have = playerCustomizeService.getModuleHaveString(profile) @@ -123,18 +116,18 @@ class StartHandler( ) } - private fun countClearStatus(profile: PlayerProfile?): String? { + private fun countClearStatus(profile: PlayerProfile): String { val pvRecordList = playerPvRecordRepository.findByPdId(profile) val clearTally = ClearTally() - pvRecordList.forEach(Consumer { x: PlayerPvRecord? -> - when (x!!.edition) { + pvRecordList.forEach(Consumer { x: PlayerPvRecord -> + when (x.edition) { Edition.ORIGINAL -> { when (x.result) { - ClearResult.CHEAP -> getDiff(x, clearTally)!!.addClear() - ClearResult.STANDARD -> getDiff(x, clearTally)!!.addClear() - ClearResult.GREAT -> getDiff(x, clearTally)!!.addGreat() - ClearResult.EXCELLENT -> getDiff(x, clearTally)!!.addExcellent() - ClearResult.PERFECT -> getDiff(x, clearTally)!!.addPerfect() + ClearResult.CHEAP -> getDiff(x, clearTally).addClear() + ClearResult.STANDARD -> getDiff(x, clearTally).addClear() + ClearResult.GREAT -> getDiff(x, clearTally).addGreat() + ClearResult.EXCELLENT -> getDiff(x, clearTally).addExcellent() + ClearResult.PERFECT -> getDiff(x, clearTally).addPerfect() else -> {} } } @@ -154,7 +147,7 @@ class StartHandler( return clearTally.toInternal() } - private fun getDiff(record: PlayerPvRecord, clearTally: ClearTally): ClearSet? { + private fun getDiff(record: PlayerPvRecord, clearTally: ClearTally): ClearSet { when (record.difficulty) { Difficulty.EASY -> return clearTally.easy Difficulty.NORMAL -> return clearTally.normal @@ -164,15 +157,15 @@ class StartHandler( } } - private fun getContestResult(profile: PlayerProfile?): MutableMap { - val cv_cid: MutableList = LinkedList() - val cv_sc: MutableList = LinkedList() - val cv_rr: MutableList = LinkedList() - val cv_bv: MutableList = LinkedList() - val cv_bf: MutableList = LinkedList() + private fun getContestResult(profile: PlayerProfile): MutableMap { + val cv_cid: MutableList = LinkedList() + val cv_sc: MutableList = LinkedList() + val cv_rr: MutableList = LinkedList() + val cv_bv: MutableList = LinkedList() + val cv_bf: MutableList = LinkedList() val contestList = playerContestRepository.findTop4ByPdIdOrderByLastUpdateTimeDesc(profile) - contestList.forEach(Consumer { x: PlayerContest? -> - cv_cid.add(x!!.contestId) + contestList.forEach(Consumer { x: PlayerContest -> + cv_cid.add(x.contestId) cv_sc.add(x.startCount) cv_rr.add(x.resultRank.value) cv_bv.add(x.bestValue) @@ -185,12 +178,12 @@ class StartHandler( cv_bv.add(-1) cv_bf.add(-1) } - val result: MutableMap = HashMap() - result["cv_cid"] = cv_cid.stream().map { obj: Int? -> obj.toString() }.collect(Collectors.joining(",")) - result["cv_sc"] = cv_sc.stream().map { obj: Int? -> obj.toString() }.collect(Collectors.joining(",")) - result["cv_rr"] = cv_rr.stream().map { obj: Int? -> obj.toString() }.collect(Collectors.joining(",")) - result["cv_bv"] = cv_bv.stream().map { obj: Int? -> obj.toString() }.collect(Collectors.joining(",")) - result["cv_bf"] = cv_bf.stream().map { obj: Int? -> obj.toString() }.collect(Collectors.joining(",")) + val result: MutableMap = HashMap() + result["cv_cid"] = cv_cid.stream().map { it.toString() }.collect(Collectors.joining(",")) + result["cv_sc"] = cv_sc.stream().map { it.toString() }.collect(Collectors.joining(",")) + result["cv_rr"] = cv_rr.stream().map { it.toString() }.collect(Collectors.joining(",")) + result["cv_bv"] = cv_bv.stream().map { it.toString() }.collect(Collectors.joining(",")) + result["cv_bf"] = cv_bf.stream().map { it.toString() }.collect(Collectors.joining(",")) return result } } diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerCustomizeService.java b/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerCustomizeService.java deleted file mode 100644 index 525bbd3d..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerCustomizeService.java +++ /dev/null @@ -1,37 +0,0 @@ -package icu.samnyan.aqua.sega.diva.service; - -import icu.samnyan.aqua.sega.diva.dao.userdata.PlayerCustomizeRepository; -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerCustomize; -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerProfile; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; - -import java.math.BigInteger; -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Service -public class PlayerCustomizeService { - - private final PlayerCustomizeRepository playerCustomizeRepository; - - public PlayerCustomizeService(PlayerCustomizeRepository playerCustomizeRepository) { - this.playerCustomizeRepository = playerCustomizeRepository; - } - - public PlayerCustomize buy(PlayerProfile profile, int customizeId) { - return playerCustomizeRepository.save(new PlayerCustomize(profile, customizeId)); - } - - public String getModuleHaveString(PlayerProfile profile) { - List customizeList = playerCustomizeRepository.findByPdId(profile); - BigInteger customize_have = new BigInteger("0"); - for (PlayerCustomize customize : - customizeList) { - customize_have = customize_have.or(BigInteger.valueOf(1).shiftLeft(customize.getCustomizeId())); - } - return StringUtils.leftPad(customize_have.toString(16), 250, "0"); - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerCustomizeService.kt b/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerCustomizeService.kt new file mode 100644 index 00000000..22e4f081 --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerCustomizeService.kt @@ -0,0 +1,25 @@ +package icu.samnyan.aqua.sega.diva.service + +import icu.samnyan.aqua.sega.diva.PlayerCustomizeRepository +import icu.samnyan.aqua.sega.diva.model.userdata.PlayerCustomize +import icu.samnyan.aqua.sega.diva.model.userdata.PlayerProfile +import org.apache.commons.lang3.StringUtils +import org.springframework.stereotype.Service +import java.math.BigInteger + +/** + * @author samnyan (privateamusement@protonmail.com) + */ +@Service +class PlayerCustomizeService(val repo: PlayerCustomizeRepository) { + fun buy(profile: PlayerProfile, customizeId: Int) = repo.save(PlayerCustomize(profile, customizeId)) + + fun getModuleHaveString(profile: PlayerProfile): String { + val customizeList = repo.findByPdId(profile) + var customize_have = BigInteger("0") + for (customize in customizeList) { + customize_have = customize_have.or(BigInteger.valueOf(1).shiftLeft(customize.customizeId)) + } + return StringUtils.leftPad(customize_have.toString(16), 250, "0") + } +} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerModuleService.java b/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerModuleService.java deleted file mode 100644 index e072481e..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerModuleService.java +++ /dev/null @@ -1,38 +0,0 @@ -package icu.samnyan.aqua.sega.diva.service; - -import icu.samnyan.aqua.sega.diva.dao.userdata.PlayerModuleRepository; -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerModule; -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerProfile; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; - -import java.math.BigInteger; -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Service -public class PlayerModuleService { - - private final PlayerModuleRepository playerModuleRepository; - - public PlayerModuleService(PlayerModuleRepository playerModuleRepository) { - this.playerModuleRepository = playerModuleRepository; - } - - public PlayerModule buy(PlayerProfile profile, int moduleId) { - return playerModuleRepository.save(new PlayerModule(profile, moduleId)); - } - - public String getModuleHaveString(PlayerProfile profile) { - List moduleList = playerModuleRepository.findByPdId(profile); - BigInteger module_have = new BigInteger("0"); - for (PlayerModule module : - moduleList) { - module_have = module_have.or(BigInteger.valueOf(1).shiftLeft(module.getModuleId())); - } - System.out.println(module_have.toString(2)); - return StringUtils.leftPad(module_have.toString(16), 250, "0").toUpperCase(); - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerModuleService.kt b/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerModuleService.kt new file mode 100644 index 00000000..4d6c7f6f --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerModuleService.kt @@ -0,0 +1,27 @@ +package icu.samnyan.aqua.sega.diva.service + +import icu.samnyan.aqua.sega.diva.PlayerModuleRepository +import icu.samnyan.aqua.sega.diva.model.userdata.PlayerModule +import icu.samnyan.aqua.sega.diva.model.userdata.PlayerProfile +import org.apache.commons.lang3.StringUtils +import org.springframework.stereotype.Service +import java.math.BigInteger +import java.util.* + +/** + * @author samnyan (privateamusement@protonmail.com) + */ +@Service +class PlayerModuleService(val repo: PlayerModuleRepository) { + fun buy(profile: PlayerProfile, moduleId: Int) = repo.save(PlayerModule(profile, moduleId)) + + fun getModuleHaveString(profile: PlayerProfile): String { + val moduleList = repo.findByPdId(profile) + var module_have = BigInteger("0") + for (module in moduleList) { + module_have = module_have.or(BigInteger.valueOf(1).shiftLeft(module.moduleId)) + } + println(module_have.toString(2)) + return StringUtils.leftPad(module_have.toString(16), 250, "0").uppercase(Locale.getDefault()) + } +} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerProfileService.java b/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerProfileService.java deleted file mode 100644 index cb1b2434..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerProfileService.java +++ /dev/null @@ -1,37 +0,0 @@ -package icu.samnyan.aqua.sega.diva.service; - -import icu.samnyan.aqua.sega.diva.dao.userdata.PlayerProfileRepository; -import icu.samnyan.aqua.sega.diva.model.request.card.RegistrationRequest; -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerProfile; -import org.springframework.stereotype.Service; - -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Service -public class PlayerProfileService { - - private final PlayerProfileRepository playerProfileRepository; - - public PlayerProfileService(PlayerProfileRepository playerProfileRepository) { - this.playerProfileRepository = playerProfileRepository; - } - - public Optional findByPdId(long pdId) { - return playerProfileRepository.findByPdId(pdId); - } - - public PlayerProfile register(RegistrationRequest request) { - PlayerProfile profile = new PlayerProfile(); - profile.setPdId(request.getAime_id()); - profile.setPlayerName(request.getPlayer_name()); - - return playerProfileRepository.save(profile); - } - - public PlayerProfile save(PlayerProfile profile) { - return playerProfileRepository.save(profile); - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerProfileService.kt b/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerProfileService.kt new file mode 100644 index 00000000..a36e376e --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/diva/service/PlayerProfileService.kt @@ -0,0 +1,25 @@ +package icu.samnyan.aqua.sega.diva.service + +import icu.samnyan.aqua.sega.diva.PlayerProfileRepository +import icu.samnyan.aqua.sega.diva.model.request.card.RegistrationRequest +import icu.samnyan.aqua.sega.diva.model.userdata.PlayerProfile +import org.springframework.stereotype.Service +import java.util.* + +/** + * @author samnyan (privateamusement@protonmail.com) + */ +@Service +class PlayerProfileService(val repo: PlayerProfileRepository) { + fun findByPdId(pdId: Long): Optional = repo.findByPdId(pdId) + + fun register(request: RegistrationRequest): PlayerProfile { + val profile = PlayerProfile() + profile.pdId = request.aime_id + profile.playerName = request.player_name + + return repo.save(profile) + } + + fun save(profile: PlayerProfile) = repo.save(profile) +} diff --git a/src/main/java/icu/samnyan/aqua/sega/diva/util/DivaCalculator.java b/src/main/java/icu/samnyan/aqua/sega/diva/util/DivaCalculator.java index c3b1ae31..77ed2c48 100644 --- a/src/main/java/icu/samnyan/aqua/sega/diva/util/DivaCalculator.java +++ b/src/main/java/icu/samnyan/aqua/sega/diva/util/DivaCalculator.java @@ -1,6 +1,6 @@ package icu.samnyan.aqua.sega.diva.util; -import icu.samnyan.aqua.sega.diva.dao.userdata.PlayerPvRecordRepository; +import icu.samnyan.aqua.sega.diva.PlayerPvRecordRepository; import icu.samnyan.aqua.sega.diva.model.common.Edition; import icu.samnyan.aqua.sega.diva.model.common.LevelInfo; import icu.samnyan.aqua.sega.diva.model.userdata.PlayerProfile;