From ff9ee24894f404620570e3970986af18b4dffd9a Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 17:16:34 -0400 Subject: [PATCH 01/39] [O] Ongeki: Refactor Game repos --- .../aqua/sega/ongeki/dao/gamedata/All.kt | 29 +++++++++++++++++++ .../dao/gamedata/GameCardRepository.java | 12 -------- .../dao/gamedata/GameCharaRepository.java | 12 -------- .../dao/gamedata/GameEventRepository.java | 12 -------- .../dao/gamedata/GameMusicRepository.java | 12 -------- .../dao/gamedata/GamePointRepository.java | 12 -------- .../dao/gamedata/GamePresentRepository.java | 12 -------- .../dao/gamedata/GameRewardRepository.java | 12 -------- .../dao/gamedata/GameSkillRepository.java | 12 -------- 9 files changed, 29 insertions(+), 96 deletions(-) create mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/All.kt delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameCardRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameCharaRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameEventRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameMusicRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GamePointRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GamePresentRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameRewardRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameSkillRepository.java diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/All.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/All.kt new file mode 100644 index 00000000..fdcc2eaa --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/All.kt @@ -0,0 +1,29 @@ +package icu.samnyan.aqua.sega.ongeki.dao.gamedata + +import icu.samnyan.aqua.sega.ongeki.model.gamedata.* +import org.springframework.data.jpa.repository.JpaRepository +import org.springframework.stereotype.Repository + +@Repository("OngekiGameCardRepository") +interface GameCardRepository : JpaRepository + +@Repository("OngekiGameCharaRepository") +interface GameCharaRepository : JpaRepository + +@Repository("OngekiGameEventRepository") +interface GameEventRepository : JpaRepository + +@Repository("OngekiGameMusicRepository") +interface GameMusicRepository : JpaRepository + +@Repository("OngekiGamePointRepository") +interface GamePointRepository : JpaRepository + +@Repository("OngekiGamePresentRepository") +interface GamePresentRepository : JpaRepository + +@Repository("OngekiGameRewardRepository") +interface GameRewardRepository : JpaRepository + +@Repository("OngekiGameSkillRepository") +interface GameSkillRepository : JpaRepository diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameCardRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameCardRepository.java deleted file mode 100644 index ac8ed4f2..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameCardRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.gamedata; - -import icu.samnyan.aqua.sega.ongeki.model.gamedata.GameCard; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiGameCardRepository") -public interface GameCardRepository extends JpaRepository { -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameCharaRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameCharaRepository.java deleted file mode 100644 index 8cd8f2b2..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameCharaRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.gamedata; - -import icu.samnyan.aqua.sega.ongeki.model.gamedata.GameChara; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiGameCharaRepository") -public interface GameCharaRepository extends JpaRepository { -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameEventRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameEventRepository.java deleted file mode 100644 index 52428ac6..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameEventRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.gamedata; - -import icu.samnyan.aqua.sega.ongeki.model.gamedata.GameEvent; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiGameEventRepository") -public interface GameEventRepository extends JpaRepository { -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameMusicRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameMusicRepository.java deleted file mode 100644 index 7c7f236e..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameMusicRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.gamedata; - -import icu.samnyan.aqua.sega.ongeki.model.gamedata.GameMusic; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiGameMusicRepository") -public interface GameMusicRepository extends JpaRepository { -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GamePointRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GamePointRepository.java deleted file mode 100644 index 07374990..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GamePointRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.gamedata; - -import icu.samnyan.aqua.sega.ongeki.model.gamedata.GamePoint; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiGamePointRepository") -public interface GamePointRepository extends JpaRepository { -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GamePresentRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GamePresentRepository.java deleted file mode 100644 index 6f41f8fe..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GamePresentRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.gamedata; - -import icu.samnyan.aqua.sega.ongeki.model.gamedata.GamePresent; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiGamePresentRepository") -public interface GamePresentRepository extends JpaRepository { -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameRewardRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameRewardRepository.java deleted file mode 100644 index dc899c30..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameRewardRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.gamedata; - -import icu.samnyan.aqua.sega.ongeki.model.gamedata.GameReward; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiGameRewardRepository") -public interface GameRewardRepository extends JpaRepository { -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameSkillRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameSkillRepository.java deleted file mode 100644 index 0b4be660..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/GameSkillRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.gamedata; - -import icu.samnyan.aqua.sega.ongeki.model.gamedata.GameSkill; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiGameSkillRepository") -public interface GameSkillRepository extends JpaRepository { -} From 1df5b4e8ba6491c1f09862a7ac3ad676c4195fb3 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 17:18:08 -0400 Subject: [PATCH 02/39] [-] Remove old aqua apis --- .../samnyan/aqua/api/config/WebConfig.java | 49 -- .../api/controller/ApiControllerAdvice.java | 19 - .../controller/general/StaticController.java | 38 -- .../controller/sega/ApiAimeController.java | 31 - .../v1/ApiChuniV1GameDataController.java | 44 -- .../v1/ApiChuniV1PlayerDataController.java | 421 ------------- .../game/diva/ApiDivaGameDataController.java | 44 -- .../diva/ApiDivaPlayerDataController.java | 276 --------- .../ApiMaimai2PlayerDataController.java | 396 ------------ .../ongeki/ApiOngekiGameDataController.java | 76 --- .../ongeki/ApiOngekiPlayerDataController.java | 576 ------------------ .../manage/ApiChuniV1ManageController.java | 83 --- .../sega/manage/ApiDivaManageController.java | 139 ----- .../aqua/api/model/MessageResponse.java | 23 - .../aqua/api/model/ObjectMessageResponse.java | 27 - .../aqua/api/model/ReducedPageResponse.java | 25 - .../api/model/req/sega/diva/DatePair.java | 21 - .../api/model/req/sega/diva/ModuleEntry.java | 29 - .../api/model/req/sega/diva/PvListEntry.java | 25 - .../model/req/sega/diva/PvListRequest.java | 28 - .../model/resp/sega/chuni/v1/ProfileResp.java | 60 -- .../model/resp/sega/chuni/v1/RatingItem.java | 28 - .../model/resp/sega/chuni/v1/RecentResp.java | 87 --- .../model/resp/sega/chuni/v1/ScoreResp.java | 48 -- .../chuni/v1/external/ChuniDataExport.java | 32 - .../chuni/v1/external/ChuniDataImport.java | 32 - .../chuni/v1/external/ExternalUserData.java | 119 ---- .../model/resp/sega/chuni/v2/RatingItem.java | 28 - .../model/resp/sega/chuni/v2/RecentResp.java | 89 --- .../model/resp/sega/chuni/v2/ScoreResp.java | 48 -- .../sega/chuni/v2/external/Chu3DataExport.kt | 23 - .../chuni/v2/external/ChuniDataImport.java | 30 - .../chuni/v2/external/ExternalUserData.java | 119 ---- .../api/model/resp/sega/diva/PlayerInfo.java | 13 - .../model/resp/sega/diva/PvRankRecord.java | 16 - .../model/resp/sega/maimai2/PhotoResp.java | 15 - .../model/resp/sega/maimai2/ProfileResp.java | 62 -- .../maimai2/external/ExternalUserData.java | 96 --- .../maimai2/external/Maimai2DataExport.kt | 30 - .../maimai2/external/Maimai2DataImport.java | 37 -- .../model/resp/sega/ongeki/ProfileResp.java | 69 --- .../ongeki/external/ExternalUserData.java | 137 ----- .../ongeki/external/OngekiDataExport.java | 44 -- .../ongeki/external/OngekiDataImport.java | 44 -- .../icu/samnyan/aqua/api/util/ApiMapper.java | 35 -- 45 files changed, 3711 deletions(-) delete mode 100644 src/main/java/icu/samnyan/aqua/api/config/WebConfig.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/controller/ApiControllerAdvice.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/controller/general/StaticController.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/controller/sega/ApiAimeController.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/v1/ApiChuniV1GameDataController.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/v1/ApiChuniV1PlayerDataController.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/controller/sega/game/diva/ApiDivaGameDataController.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/controller/sega/game/diva/ApiDivaPlayerDataController.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/ApiMaimai2PlayerDataController.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/controller/sega/game/ongeki/ApiOngekiGameDataController.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/controller/sega/game/ongeki/ApiOngekiPlayerDataController.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/controller/sega/manage/ApiChuniV1ManageController.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/controller/sega/manage/ApiDivaManageController.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/MessageResponse.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/ObjectMessageResponse.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/ReducedPageResponse.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/DatePair.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/ModuleEntry.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/PvListEntry.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/PvListRequest.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/ProfileResp.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/RatingItem.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/RecentResp.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/ScoreResp.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/external/ChuniDataExport.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/external/ChuniDataImport.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/external/ExternalUserData.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/RatingItem.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/RecentResp.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/ScoreResp.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/Chu3DataExport.kt delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/ChuniDataImport.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/ExternalUserData.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/diva/PlayerInfo.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/diva/PvRankRecord.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/PhotoResp.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/ProfileResp.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/external/ExternalUserData.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/external/Maimai2DataExport.kt delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/external/Maimai2DataImport.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/ProfileResp.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/ExternalUserData.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/OngekiDataExport.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/OngekiDataImport.java delete mode 100644 src/main/java/icu/samnyan/aqua/api/util/ApiMapper.java diff --git a/src/main/java/icu/samnyan/aqua/api/config/WebConfig.java b/src/main/java/icu/samnyan/aqua/api/config/WebConfig.java deleted file mode 100644 index 3f5cc7c3..00000000 --- a/src/main/java/icu/samnyan/aqua/api/config/WebConfig.java +++ /dev/null @@ -1,49 +0,0 @@ -package icu.samnyan.aqua.api.config; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; -import org.springframework.core.io.FileSystemResource; -import org.springframework.core.io.Resource; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -import org.springframework.web.servlet.resource.PathResourceResolver; - -import java.io.IOException; - -@Configuration -public class WebConfig implements WebMvcConfigurer { - - private final boolean AQUAVIEWER_ENABLED; - - public WebConfig(@Value("${aquaviewer.server.enable}") boolean AQUAVIEWER_ENABLED) { - this.AQUAVIEWER_ENABLED = AQUAVIEWER_ENABLED; - } - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - - if (AQUAVIEWER_ENABLED) { - // Static assets (images), this priority must be higher than routes - registry.addResourceHandler("/web/assets/**") - .addResourceLocations("file:web/assets/") - .setCachePeriod(10) - .resourceChain(true) - .addResolver(new PathResourceResolver()); - - // For angularjs html5 routes - registry.addResourceHandler("/web/**", "/web/", "/web") - .addResourceLocations("file:web/") - .setCachePeriod(10) - .resourceChain(true) - .addResolver(new PathResourceResolver() { - @Override - protected Resource getResource(String resourcePath, Resource location) throws IOException { - Resource requestedResource = location.createRelative(resourcePath); - return requestedResource.exists() && requestedResource.isReadable() ? requestedResource - : new FileSystemResource("web/index.html"); - } - }); - } - } - -} \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/api/controller/ApiControllerAdvice.java b/src/main/java/icu/samnyan/aqua/api/controller/ApiControllerAdvice.java deleted file mode 100644 index 8bfeb1d4..00000000 --- a/src/main/java/icu/samnyan/aqua/api/controller/ApiControllerAdvice.java +++ /dev/null @@ -1,19 +0,0 @@ -package icu.samnyan.aqua.api.controller; - -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.RestControllerAdvice; - -import java.util.NoSuchElementException; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@RestControllerAdvice(basePackages = "icu.samnyan.aqua.api") -public class ApiControllerAdvice { - - @ExceptionHandler(NoSuchElementException.class) - public ResponseEntity noSuchElement() { - return ResponseEntity.notFound().build(); - } -} diff --git a/src/main/java/icu/samnyan/aqua/api/controller/general/StaticController.java b/src/main/java/icu/samnyan/aqua/api/controller/general/StaticController.java deleted file mode 100644 index 15a3cbaa..00000000 --- a/src/main/java/icu/samnyan/aqua/api/controller/general/StaticController.java +++ /dev/null @@ -1,38 +0,0 @@ -package icu.samnyan.aqua.api.controller.general; - -import icu.samnyan.aqua.sega.diva.dao.userdata.PlayerScreenShotRepository; -import icu.samnyan.aqua.sega.diva.model.userdata.PlayerScreenShot; -import lombok.AllArgsConstructor; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.core.io.FileSystemResource; -import org.springframework.core.io.Resource; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.nio.file.Paths; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@RestController -@RequestMapping("api/static") -@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true") -@AllArgsConstructor -public class StaticController { - private final PlayerScreenShotRepository playerScreenShotRepository; - - @GetMapping(value = "screenshot/{filename}", produces = MediaType.IMAGE_JPEG_VALUE) - public ResponseEntity getScreenshotFile(@PathVariable String filename) { - Optional ss = playerScreenShotRepository.findByFileName(filename); - if (ss.isPresent()) { - return ResponseEntity.ok(new FileSystemResource(Paths.get("data/" + ss.get().getFileName()))); - } else { - return ResponseEntity.notFound().build(); - } - } -} diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/ApiAimeController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/ApiAimeController.java deleted file mode 100644 index da1bd71d..00000000 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/ApiAimeController.java +++ /dev/null @@ -1,31 +0,0 @@ -package icu.samnyan.aqua.api.controller.sega; - -import icu.samnyan.aqua.sega.general.model.Card; -import icu.samnyan.aqua.sega.general.service.CardService; -import lombok.AllArgsConstructor; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Map; -import java.util.Optional; - -/** - * General Aime actions endpoint - * @author samnyan (privateamusement@protonmail.com) - */ -@RestController -@RequestMapping("api/sega/aime") -@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true") -@AllArgsConstructor -public class ApiAimeController { - - private final CardService cardService; - - @PostMapping("getByAccessCode") - public Optional getByAccessCode(@RequestBody Map request) { - return cardService.getCardByAccessCode(request.get("accessCode").replaceAll("-", "").replaceAll(" ", "")); - } -} diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/v1/ApiChuniV1GameDataController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/v1/ApiChuniV1GameDataController.java deleted file mode 100644 index 17a03a83..00000000 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/v1/ApiChuniV1GameDataController.java +++ /dev/null @@ -1,44 +0,0 @@ -package icu.samnyan.aqua.api.controller.sega.game.chuni.v1; - -import icu.samnyan.aqua.sega.chunithm.dao.gamedata.GameCharacterRepository; -import icu.samnyan.aqua.sega.chunithm.dao.gamedata.GameCharacterSkillRepository; -import icu.samnyan.aqua.sega.chunithm.model.gamedata.Character; -import icu.samnyan.aqua.sega.chunithm.model.gamedata.CharacterSkill; -import icu.samnyan.aqua.sega.chunithm.model.gamedata.Music; -import icu.samnyan.aqua.sega.chunithm.service.GameMusicService; -import lombok.AllArgsConstructor; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@RestController -@RequestMapping("api/game/chuni/v1/data") -@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true") -@AllArgsConstructor -public class ApiChuniV1GameDataController { - - private final GameMusicService gameMusicService; - private final GameCharacterRepository gameCharacterRepository; - private final GameCharacterSkillRepository gameCharacterSkillRepository; - - @GetMapping("music") - public List getMusic() { - return gameMusicService.getAll(); - } - - @GetMapping("character") - public List getCharacter() { - return gameCharacterRepository.findAll(); - } - - @GetMapping("skill") - public List getSkill() { - return gameCharacterSkillRepository.findAll(); - } -} diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/v1/ApiChuniV1PlayerDataController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/v1/ApiChuniV1PlayerDataController.java deleted file mode 100644 index 78f3a953..00000000 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/v1/ApiChuniV1PlayerDataController.java +++ /dev/null @@ -1,421 +0,0 @@ -package icu.samnyan.aqua.api.controller.sega.game.chuni.v1; - -import com.fasterxml.jackson.core.type.TypeReference; -import icu.samnyan.aqua.api.model.MessageResponse; -import icu.samnyan.aqua.api.model.ReducedPageResponse; -import icu.samnyan.aqua.api.model.resp.sega.chuni.v1.ProfileResp; -import icu.samnyan.aqua.api.model.resp.sega.chuni.v1.RatingItem; -import icu.samnyan.aqua.api.model.resp.sega.chuni.v1.RecentResp; -import icu.samnyan.aqua.api.model.resp.sega.chuni.v1.external.ChuniDataExport; -import icu.samnyan.aqua.api.model.resp.sega.chuni.v1.external.ChuniDataImport; -import icu.samnyan.aqua.api.model.resp.sega.chuni.v1.external.ExternalUserData; -import icu.samnyan.aqua.api.util.ApiMapper; -import icu.samnyan.aqua.sega.chunithm.model.gamedata.Level; -import icu.samnyan.aqua.sega.chunithm.model.gamedata.Music; -import icu.samnyan.aqua.sega.chunithm.model.userdata.*; -import icu.samnyan.aqua.sega.chunithm.service.*; -import icu.samnyan.aqua.sega.general.model.Card; -import icu.samnyan.aqua.sega.general.service.CardService; -import icu.samnyan.aqua.sega.util.VersionInfo; -import icu.samnyan.aqua.sega.util.VersionUtil; -import lombok.AllArgsConstructor; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.util.*; -import java.util.stream.Collectors; - -/** - * For all aimeId parameter, should use String - * @author samnyan (privateamusement@protonmail.com) - */ -@RestController -@RequestMapping("api/game/chuni/v1") -@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true") -@AllArgsConstructor -public class ApiChuniV1PlayerDataController { - - private static final Logger logger = LoggerFactory.getLogger(ApiChuniV1PlayerDataController.class); - - private final ApiMapper mapper; - - private final CardService cardService; - - private final UserActivityService userActivityService; - private final UserCharacterService userCharacterService; - private final UserChargeService userChargeService; - private final UserCourseService userCourseService; - private final UserDataService userDataService; - private final UserDataExService userDataExService; - private final UserDuelService userDuelService; - private final UserGameOptionService userGameOptionService; - private final UserGameOptionExService userGameOptionExService; - private final UserItemService userItemService; - private final UserMapService userMapService; - private final UserMusicDetailService userMusicDetailService; - private final UserPlaylogService userPlaylogService; - private final UserGeneralDataService userGeneralDataService; - - private final GameMusicService gameMusicService; - - // Keep it here for legacy - @GetMapping("music") - public List getMusicList() { - return gameMusicService.getAll(); - } - - /** - * Get Basic info - * - * @return - */ - @GetMapping("profile") - public ProfileResp getProfile(@RequestParam String aimeId) { - ProfileResp resp = mapper.convert(userDataService.getUserByExtId(aimeId).orElseThrow(), new TypeReference<>() { - }); - UserCourse course = userCourseService.getByUserId(aimeId) - .stream() - .filter(UserCourse::isClear) - .max(Comparator.comparingInt(UserCourse::getClassId)) - .orElseGet(() -> new UserCourse(0)); - resp.setCourseClass(course.getClassId()); - return resp; - } - - @PutMapping("profile/userName") - public UserData updateName(@RequestBody Map request) { - UserData profile = userDataService.getUserByExtId((String) request.get("aimeId")).orElseThrow(); - profile.setUserName((String) request.get("userName")); - return userDataService.saveUserData(profile); - } - - @PutMapping("profile/plate") - public UserData updatePlate(@RequestBody Map request) { - UserData profile = userDataService.getUserByExtId((String) request.get("aimeId")).orElseThrow(); - profile.setNameplateId((Integer) request.get("nameplateId")); - profile.setFrameId((Integer) request.get("frameId")); - return userDataService.saveUserData(profile); - } - - @PutMapping("profile/privacy") - public ResponseEntity updatePrivacy(@RequestBody Map request) { - UserData profile = userDataService.getUserByExtId((String) request.get("aimeId")).orElseThrow(); - UserGameOption option = userGameOptionService.getByUser(profile).orElseThrow(); - int privacy = (Integer) request.get("privacy"); - if (privacy != 1 && privacy != 0) { - return ResponseEntity.badRequest().body(new MessageResponse("Wrong data")); - } - option.setPrivacy(privacy); - return ResponseEntity.ok(userDataService.saveUserData(profile)); - } - - @GetMapping("recent") - public ReducedPageResponse getRecentPlay(@RequestParam String aimeId, - @RequestParam(required = false, defaultValue = "0") int page, - @RequestParam(required = false, defaultValue = "10") int size) { - Page playLogs = userPlaylogService.getRecentPlays(aimeId, PageRequest.of(page, size, Sort.by(Sort.Direction.DESC, "userPlayDate"))); - return new ReducedPageResponse<>(mapper.convert(playLogs.getContent(), new TypeReference<>() { - }), playLogs.getPageable().getPageNumber(), playLogs.getTotalPages(), playLogs.getTotalElements()); - } - - @GetMapping("rating") - public List getRating(@RequestParam String aimeId) { - - Map musicMap = gameMusicService.getIdMap(); - List details = userMusicDetailService.getByUserId(aimeId); - - var user = userDataService.getUserByExtId(aimeId).orElseThrow(); - var version = VersionUtil.parseVersion(user.getLastRomVersion()); - - List result = new ArrayList<>(); - for (UserMusicDetail detail : details) { - Music music = musicMap.get(detail.getMusicId()); - if (music != null) { - Level level = music.getLevels().get(detail.getLevel()); - if (level != null) { - int levelBase = level.getLevel() * 100 + level.getLevelDecimal(); - int score = detail.getScoreMax(); - int rating = calculateRating(levelBase, score, version); - result.add(new RatingItem(music.getMusicId(), music.getName(), music.getArtistName(), level.getDiff(), score, levelBase, rating)); - } - } - } - - return result.stream() - .filter(detail -> detail.getLevel() != 4) - .sorted(Comparator.comparingInt(RatingItem::getRating).reversed()) - .limit(30) - .collect(Collectors.toList()); - } - - @GetMapping("rating/recent") - public List getRecentRating(@RequestParam String aimeId) { - Map musicMap = gameMusicService.getIdMap(); - Optional recentOptional = userGeneralDataService.getByUserIdAndKey(aimeId, "recent_rating_list"); - - - var user = userDataService.getUserByExtId(aimeId).orElseThrow(); - var version = VersionUtil.parseVersion(user.getLastRomVersion()); - - List result = new LinkedList<>(); - if (recentOptional.isPresent()) { - // Read from recent_rating_list - String val = recentOptional.get().getPropertyValue(); - if (StringUtils.isNotBlank(val) && val.contains(",")) { - String[] records = val.split(","); - for (String record : - records) { - String[] value = record.split(":"); - Music music = musicMap.get(Integer.parseInt(value[0])); - if (music != null) { - Level level = music.getLevels().get(Integer.parseInt(value[1])); - if (level != null) { - int levelBase = getLevelBase(level.getLevel(), level.getLevelDecimal()); - int score = Integer.parseInt(value[2]); - int rating = calculateRating(levelBase, score, version); - result.add(new RatingItem(music.getMusicId(), music.getName(), music.getArtistName(), level.getDiff(), score, levelBase, rating)); - } - } - } - } - } else { - // Use old method - List logList = userPlaylogService.getRecent30Plays(aimeId); - for (UserPlaylog log : logList) { - Music music = musicMap.get(log.getMusicId()); - if (music != null) { - Level level = music.getLevels().get(log.getLevel()); - if (level != null) { - int levelBase = getLevelBase(level.getLevel(), level.getLevelDecimal()); - int score = log.getScore(); - int rating = calculateRating(levelBase, score, version); - result.add(new RatingItem(music.getMusicId(), music.getName(), music.getArtistName(), level.getDiff(), score, levelBase, rating)); - } - } - } - } - - return result.stream() - .filter(detail -> detail.getLevel() != 4) - .sorted(Comparator.comparingInt(RatingItem::getRating).reversed()) - .limit(10) - .collect(Collectors.toList()); - } - - @GetMapping("song/{id}") - public List getSongDetail(@RequestParam String aimeId, @PathVariable int id) { - return userMusicDetailService.getByUserIdAndMusicId(aimeId, id); - } - - @GetMapping("song/{id}/{level}") - public List getLevelPlaylog(@RequestParam String aimeId, @PathVariable int id, @PathVariable int level) { - return userPlaylogService.getByUserIdAndMusicIdAndLevel(aimeId, id, level); - } - - @GetMapping("character") - public ReducedPageResponse getCharacter(@RequestParam String aimeId, - @RequestParam(required = false, defaultValue = "0") int page, - @RequestParam(required = false, defaultValue = "10") int size) { - Page characters = userCharacterService.getByUserId(aimeId, page, size); - return new ReducedPageResponse<>(characters.getContent(), characters.getPageable().getPageNumber(), characters.getTotalPages(), characters.getTotalElements()); - } - - @PostMapping("character") - public ResponseEntity updateCharacter(@RequestBody Map request) { - UserData profile = userDataService.getUserByExtId((String) request.get("aimeId")).orElseThrow(); - Integer characterId = (Integer) request.get("characterId"); - Optional characterOptional = userCharacterService.getByUserAndCharacterId(profile, characterId); - UserCharacter character; - if(characterOptional.isPresent()) { - character = characterOptional.get(); - } else { - character = new UserCharacter(profile); - character.setCharacterId(characterId); - } - if(request.containsKey("level")) { - character.setLevel((Integer) request.get("level")); - } - - return ResponseEntity.ok(userCharacterService.save(character)); - } - - @GetMapping("course") - public List getCourse(@RequestParam String aimeId) { - return userCourseService.getByUserId(aimeId); - } - - @GetMapping("duel") - public List getDuel(@RequestParam String aimeId) { - return userDuelService.getByUserId(aimeId); - } - - @GetMapping("item") - public ReducedPageResponse getItem(@RequestParam String aimeId, - @RequestParam(required = false, defaultValue = "0") int page, - @RequestParam(required = false, defaultValue = "10") int size) { - Page items = userItemService.getByUserId(aimeId, page, size); - return new ReducedPageResponse<>(items.getContent(), items.getPageable().getPageNumber(), items.getTotalPages(), items.getTotalElements()); - } - - @PostMapping("item") - public ResponseEntity updateItem(@RequestBody Map request) { - UserData profile = userDataService.getUserByExtId((String) request.get("aimeId")).orElseThrow(); - Integer itemId = (Integer) request.get("itemId"); - Integer itemKind = (Integer) request.get("itemKind"); - Optional itemOptional = userItemService.getByUserAndItemIdAndKind(profile, itemId,itemKind); - UserItem item; - if(itemOptional.isPresent()) { - item = itemOptional.get(); - } else { - item = new UserItem(profile); - item.setItemId(itemId); - item.setItemKind(itemKind); - } - if(request.containsKey("stock")) { - item.setStock((Integer) request.get("stock")); - } - return ResponseEntity.ok(userItemService.save(item)); - } - - @GetMapping("general") - public ResponseEntity getGeneralData(@RequestParam String aimeId, @RequestParam String key) { - Optional userGeneralDataOptional = userGeneralDataService.getByUserIdAndKey(aimeId,key); - return userGeneralDataOptional.>map(ResponseEntity::ok) - .orElseGet(() -> ResponseEntity.status(HttpStatus.NOT_FOUND).body(new MessageResponse("User or value not found."))); - } - - @GetMapping("export") - public ResponseEntity exportAllUserData(@RequestParam String aimeId) { - ChuniDataExport data = new ChuniDataExport(); - try { - data.setGameId("SDBT"); - data.setUserData(userDataService.getUserByExtId(aimeId).orElseThrow()); - data.setUserActivityList(userActivityService.getByUserId(aimeId)); - data.setUserCharacterList(userCharacterService.getByUserId(aimeId)); - data.setUserChargeList(userChargeService.getByUserId(aimeId)); - data.setUserCourseList(userCourseService.getByUserId(aimeId)); - data.setUserDataEx(userDataExService.getByExtId(aimeId).orElseThrow()); - data.setUserDuelList(userDuelService.getByUserId(aimeId)); - data.setUserGameOption(userGameOptionService.getByUserId(aimeId).orElseThrow()); - data.setUserGameOptionEx(userGameOptionExService.getByUserId(aimeId).orElseThrow()); - data.setUserItemList(userItemService.getByUserId(aimeId)); - data.setUserMapList(userMapService.getByUserId(aimeId)); - data.setUserMusicDetailList(userMusicDetailService.getByUserId(aimeId)); - data.setUserPlaylogList(userPlaylogService.getByUserId(aimeId)); - } catch (NoSuchElementException e) { - return ResponseEntity.status(HttpStatus.NOT_FOUND) - .body(new MessageResponse("User not found")); - } catch (Exception e) { - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) - .body(new MessageResponse("Error during data export. Reason: " + e.getMessage())); - } - // Set filename - HttpHeaders headers = new HttpHeaders(); - headers.set("content-disposition", "attachment; filename=chuni_" + aimeId + "_exported.json"); - return new ResponseEntity<>(data, headers, HttpStatus.OK); - } - - @PostMapping("import") - public ResponseEntity importAllUserData(@RequestBody ChuniDataImport data) { - if(!data.getGameId().equals("SDBT")) { - return ResponseEntity.unprocessableEntity().body(new MessageResponse("Wrong Game Profile, Expected 'SDBT', Get " + data.getGameId())); - } - - ExternalUserData exUser = data.getUserData(); - - Optional cardOptional = cardService.getCardByAccessCode(exUser.getAccessCode()); - Card card; - if (cardOptional.isPresent()) { - if (userDataService.getUserByCard(cardOptional.get()).isPresent()) { - return ResponseEntity.status(HttpStatus.BAD_REQUEST) - .body(new MessageResponse("This card already has a chunithm profile.")); - } else { - card = cardOptional.get(); - } - } else { - card = cardService.registerByAccessCode(exUser.getAccessCode()); - } - - UserData userData = mapper.convert(exUser, new TypeReference<>() { - }); - userData.setCard(card); - userDataService.saveAndFlushUserData(userData); - - List userActivityList = data.getUserActivityList(); - userActivityList.forEach(x -> x.setUser(userData)); - userActivityService.saveAll(userActivityList); - - List userCharacterList = data.getUserCharacterList(); - userCharacterList.forEach(x -> x.setUser(userData)); - userCharacterService.saveAll(userCharacterList); - - List userChargeList = data.getUserChargeList(); - userCharacterList.forEach(x -> x.setUser(userData)); - userChargeService.saveAll(userChargeList); - - List userCourseList = data.getUserCourseList(); - userCourseList.forEach(x -> x.setUser(userData)); - userCourseService.saveAll(userCourseList); - - UserDataEx userDataEx = data.getUserDataEx(); - userDataEx.setUser(userData); - userDataExService.save(userDataEx); - - List userDuelList = data.getUserDuelList(); - userDuelList.forEach(x -> x.setUser(userData)); - userDuelService.saveAll(userDuelList); - - UserGameOption userGameOption = data.getUserGameOption(); - userGameOption.setUser(userData); - userGameOptionService.save(userGameOption); - - UserGameOptionEx userGameOptionEx = data.getUserGameOptionEx(); - userGameOptionEx.setUser(userData); - userGameOptionExService.save(userGameOptionEx); - - List userItemList = data.getUserItemList(); - userItemList.forEach(x -> x.setUser(userData)); - userItemService.saveAll(userItemList); - - List userMapList = data.getUserMapList(); - userMapList.forEach(x -> x.setUser(userData)); - userMapService.saveAll(userMapList); - - List userMusicDetailList = data.getUserMusicDetailList(); - userMusicDetailList.forEach(x -> x.setUser(userData)); - userMusicDetailService.saveAll(userMusicDetailList); - - List userPlaylogList = data.getUserPlaylogList(); - userPlaylogList.forEach(x -> x.setUser(userData)); - userPlaylogService.saveAll(userPlaylogList); - - return ResponseEntity.ok(new MessageResponse("Import successfully, aimeId: " + card.getExtId())); - } - - private int getLevelBase(int level, int levelDecimal) { - return level * 100 + levelDecimal; - } - - private int calculateRating(int levelBase, int score, VersionInfo version) { - if (score >= 1007500) return levelBase + 200; - if (score >= 1005000) return levelBase + 150 + (score - 1005000) * 10 / 500; - if (score >= 1000000) return levelBase + 100 + (score - 1000000) * 5 / 500; - if (score >= 975000) return levelBase + (score - 975000) * 2 / 500; - if (score >= 950000 && version.getMinorVersion() < 35) return levelBase - 150 + (score - 950000) * 3 / 500; - if (score >= 925000) return levelBase - 300 + (score - 925000) * 3 / 500; - if (score >= 900000) return levelBase - 500 + (score - 900000) * 4 / 500; - if (score >= 800000) - return ((levelBase - 500) / 2 + (score - 800000) * ((levelBase - 500) / 2) / (100000)); - return 0; - } -} diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/diva/ApiDivaGameDataController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/diva/ApiDivaGameDataController.java deleted file mode 100644 index fc7a0c3b..00000000 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/diva/ApiDivaGameDataController.java +++ /dev/null @@ -1,44 +0,0 @@ -package icu.samnyan.aqua.api.controller.sega.game.diva; - -import icu.samnyan.aqua.sega.diva.dao.gamedata.DivaCustomizeRepository; -import icu.samnyan.aqua.sega.diva.dao.gamedata.DivaModuleRepository; -import icu.samnyan.aqua.sega.diva.dao.gamedata.DivaPvRepository; -import icu.samnyan.aqua.sega.diva.model.gamedata.DivaCustomize; -import icu.samnyan.aqua.sega.diva.model.gamedata.DivaModule; -import icu.samnyan.aqua.sega.diva.model.gamedata.Pv; -import lombok.AllArgsConstructor; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@RestController -@RequestMapping("api/game/diva/data") -@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true") -@AllArgsConstructor -public class ApiDivaGameDataController { - - private final DivaModuleRepository divaModuleRepository; - private final DivaCustomizeRepository divaCustomizeRepository; - private final DivaPvRepository divaPvRepository; - - @GetMapping(value = "musicList") - public List musicList() { - return divaPvRepository.findAll(); - } - - @GetMapping(value = "moduleList") - public List moduleList() { - return divaModuleRepository.findAll(); - } - - @GetMapping(value = "customizeList") - public List customizeList() { - return divaCustomizeRepository.findAll(); - } -} diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/diva/ApiDivaPlayerDataController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/diva/ApiDivaPlayerDataController.java deleted file mode 100644 index 11e0d9f4..00000000 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/diva/ApiDivaPlayerDataController.java +++ /dev/null @@ -1,276 +0,0 @@ -package icu.samnyan.aqua.api.controller.sega.game.diva; - -import icu.samnyan.aqua.api.model.MessageResponse; -import icu.samnyan.aqua.api.model.ReducedPageResponse; -import icu.samnyan.aqua.api.model.resp.sega.diva.PvRankRecord; -import 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.*; -import icu.samnyan.aqua.sega.diva.service.PlayerProfileService; -import lombok.AllArgsConstructor; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.util.*; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@RestController -@RequestMapping("api/game/diva") -@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true") -@AllArgsConstructor -public class ApiDivaPlayerDataController { - - private final PlayerProfileService playerProfileService; - - private final GameSessionRepository gameSessionRepository; - private final PlayLogRepository playLogRepository; - private final PlayerPvRecordRepository playerPvRecordRepository; - private final PlayerPvCustomizeRepository playerPvCustomizeRepository; - private final PlayerModuleRepository playerModuleRepository; - private final PlayerCustomizeRepository playerCustomizeRepository; - private final PlayerScreenShotRepository playerScreenShotRepository; - - @PostMapping("forceUnlock") - public ResponseEntity forceUnlock(@RequestParam long pdId) { - PlayerProfile profile = playerProfileService.findByPdId(pdId).orElseThrow(); - Optional session = gameSessionRepository.findByPdId(profile); - if(session.isPresent()) { - gameSessionRepository.delete(session.get()); - return ResponseEntity.ok(new MessageResponse("Session deleted.")); - } else { - return ResponseEntity.status(HttpStatus.FORBIDDEN).body(new MessageResponse("Session doesn't exist.")); - } - } - - @GetMapping("playerInfo") - public Optional getPlayerInfo(@RequestParam long pdId) { - return playerProfileService.findByPdId(pdId); - } - - @GetMapping("playerInfo/rival") - public Map getRivalInfo(@RequestParam long pdId) { - var rId = playerProfileService.findByPdId(pdId).orElseThrow().getRivalPdId(); - Map result = new HashMap<>(); - if (rId == -1) { - result.put("rival", "Not Set"); - } else { - Optional profile = playerProfileService.findByPdId(rId); - if (profile.isPresent()) { - result.put("rival", profile.get().getPlayerName()); - } else { - result.put("rival", "Player Not Found"); - } - } - return result; - } - - @PutMapping("playerInfo/rival") - public PlayerProfile updateRivalWithId(@RequestBody Map request) { - PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow(); - profile.setRivalPdId((Integer) request.get("rivalId")); - return playerProfileService.save(profile); - } - - @PutMapping("playerInfo/rival/byRecord") - public PlayerProfile updateRivalWithRecord(@RequestBody Map request) { - PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow(); - PlayerPvRecord record = playerPvRecordRepository.findById(((Integer) request.get("recordId")).longValue()).orElseThrow(); - profile.setRivalPdId(record.getPdId().getPdId()); - return playerProfileService.save(profile); - } - - @PutMapping("playerInfo/playerName") - public PlayerProfile updateName(@RequestBody Map request) { - PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow(); - profile.setPlayerName((String) request.get("playerName")); - return playerProfileService.save(profile); - } - - @PutMapping("playerInfo/title") - public PlayerProfile updateTitle(@RequestBody Map request) { - PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow(); - profile.setLevelTitle((String) request.get("title")); - return playerProfileService.save(profile); - } - - @PutMapping("playerInfo/plate") - public PlayerProfile updatePlate(@RequestBody Map request) { - PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow(); - profile.setPlateId((Integer) request.get("plateId")); - profile.setPlateEffectId((Integer) request.get("plateEffectId")); - return playerProfileService.save(profile); - } - - @PutMapping("playerInfo/commonModule") - public PlayerProfile updateModule(@RequestBody Map request) { - PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow(); - profile.setCommonModule((String) request.get("commonModule")); - return playerProfileService.save(profile); - } - - @PutMapping("playerInfo/commonCustomize") - public PlayerProfile updateCustomize(@RequestBody Map request) { - PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow(); - profile.setCommonCustomizeItems((String) request.get("commonCustomize")); - return playerProfileService.save(profile); - } - - @PutMapping("playerInfo/commonSkin") - public PlayerProfile updateSkin(@RequestBody Map request) { - PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow(); - profile.setCommonSkin((Integer) request.get("skinId")); - return playerProfileService.save(profile); - } - - @PutMapping("playerInfo/myList") - public PlayerProfile updateMyList(@RequestBody Map request) { - PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow(); - switch ((Integer) request.get("myListId")) { - case 0: - profile.setMyList0((String) request.get("myListData")); - break; - case 1: - profile.setMyList1((String) request.get("myListData")); - break; - case 2: - profile.setMyList2((String) request.get("myListData")); - break; - } - return playerProfileService.save(profile); - } - - @PutMapping("playerInfo/se") - public PlayerProfile updateSe(@RequestBody Map request) { - PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow(); - profile.setButtonSe((Integer) request.get("buttonSe")); - profile.setChainSlideSe((Integer) request.get("chainSlideSe")); - profile.setSlideSe((Integer) request.get("slideSe")); - profile.setSliderTouchSe((Integer) request.get("sliderTouchSe")); - return playerProfileService.save(profile); - } - - @PutMapping("playerInfo/display") - public PlayerProfile updateDisplay(@RequestBody Map request) { - PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow(); - profile.setShowInterimRanking((Boolean) request.get("showInterimRanking")); - profile.setShowClearStatus((Boolean) request.get("showClearStatus")); - profile.setShowGreatBorder((Boolean) request.get("showGreatBorder")); - profile.setShowExcellentBorder((Boolean) request.get("showExcellentBorder")); - profile.setShowRivalBorder((Boolean) request.get("showRivalBorder")); - profile.setShowRgoSetting((Boolean) request.get("showRgoSetting")); - return playerProfileService.save(profile); - } - - @GetMapping("playLog") - public ReducedPageResponse getPlayLogs(@RequestParam long pdId, - @RequestParam(required = false, defaultValue = "0") int page, - @RequestParam(required = false, defaultValue = "10") int size) { - Page playLogs = playLogRepository.findByPdId_PdIdOrderByDateTimeDesc(pdId, PageRequest.of(page, size)); - return new ReducedPageResponse<>(playLogs.getContent(), playLogs.getPageable().getPageNumber(), playLogs.getTotalPages(), playLogs.getTotalElements()); - } - - /** - * PvRecord - */ - - @GetMapping("pvRecord") - public ReducedPageResponse getPvRecords(@RequestParam long pdId, - @RequestParam(required = false, defaultValue = "0") int page, - @RequestParam(required = false, defaultValue = "10") int size) { - Page pvRecords = playerPvRecordRepository.findByPdId_PdIdOrderByPvId(pdId, PageRequest.of(page, size)); - return new ReducedPageResponse<>(pvRecords.getContent(), pvRecords.getPageable().getPageNumber(), pvRecords.getTotalPages(), pvRecords.getTotalElements()); - } - - @GetMapping("pvRecord/{pvId}") - public Map getPvRecord(@RequestParam long pdId, @PathVariable int pvId) { - Map resultMap = new HashMap<>(); - resultMap.put("records", playerPvRecordRepository.findByPdId_PdIdAndPvId(pdId, pvId)); - playerPvCustomizeRepository.findByPdId_PdIdAndPvId(pdId, pvId).ifPresent(x -> resultMap.put("customize", x)); - return resultMap; - } - - @PutMapping("pvRecord/{pvId}") - public PlayerPvCustomize updatePvCustomize(@RequestBody Map request, @PathVariable int pvId) { - PlayerProfile profile = playerProfileService.findByPdId((Integer) request.get("pdId")).orElseThrow(); - PlayerPvCustomize playerPvCustomize = playerPvCustomizeRepository.findByPdIdAndPvId(profile, pvId) - .orElseGet(() -> new PlayerPvCustomize(profile, pvId)); - playerPvCustomize.setModule((String) request.get("module")); - playerPvCustomize.setCustomize((String) request.get("customize")); - playerPvCustomize.setCustomizeFlag((String) request.get("customizeFlag")); - playerPvCustomize.setSkin((Integer) request.get("skin")); - playerPvCustomize.setButtonSe((Integer) request.get("buttonSe")); - playerPvCustomize.setSlideSe((Integer) request.get("slideSe")); - playerPvCustomize.setChainSlideSe((Integer) request.get("chainSlideSe")); - playerPvCustomize.setSliderTouchSe((Integer) request.get("sliderTouchSe")); - return playerPvCustomizeRepository.save(playerPvCustomize); - } - - @GetMapping("pvRecord/{pvId}/ranking/{difficulty}") - public ReducedPageResponse getPvRanking(@PathVariable int pvId, - @PathVariable String difficulty, - @RequestParam(required = false, defaultValue = "0") int page, - @RequestParam(required = false, defaultValue = "10") int size) { - Difficulty diff = null; - Edition edition = Edition.ORIGINAL; - switch (difficulty) { - case "EASY": - diff = Difficulty.EASY; - break; - case "NORMAL": - diff = Difficulty.NORMAL; - break; - case "HARD": - diff = Difficulty.HARD; - break; - case "EXTREME": - diff = Difficulty.EXTREME; - break; - case "EXTRA_EXTREME": { - diff = Difficulty.EXTREME; - edition = Edition.EXTRA; - break; - } - } - if(diff != null) { - Page pvRecords = playerPvRecordRepository.findByPvIdAndEditionAndDifficultyOrderByMaxScoreDesc(pvId, edition,diff, PageRequest.of(page, size)); - - List rankList = new LinkedList<>(); - - pvRecords.forEach(x ->{ - rankList.add(new PvRankRecord(x.getId(),x.getPdId().getPlayerName(),x.getMaxScore(),x.getMaxAttain())); - }); - - return new ReducedPageResponse<>(rankList, pvRecords.getPageable().getPageNumber(), pvRecords.getTotalPages(), pvRecords.getTotalElements()); - } - return null; - } - - @GetMapping("module") - public ReducedPageResponse getModules(@RequestParam long pdId, - @RequestParam(required = false, defaultValue = "0") int page, - @RequestParam(required = false, defaultValue = "10") int size) { - Page modules = playerModuleRepository.findByPdId_PdId(pdId, PageRequest.of(page, size)); - return new ReducedPageResponse<>(modules.getContent(), modules.getPageable().getPageNumber(), modules.getTotalPages(), modules.getTotalElements()); - } - - @GetMapping("customize") - public ReducedPageResponse getCustomizes(@RequestParam long pdId, - @RequestParam(required = false, defaultValue = "0") int page, - @RequestParam(required = false, defaultValue = "10") int size) { - Page customizes = playerCustomizeRepository.findByPdId_PdId(pdId, PageRequest.of(page, size)); - return new ReducedPageResponse<>(customizes.getContent(), customizes.getPageable().getPageNumber(), customizes.getTotalPages(), customizes.getTotalElements()); - } - - @GetMapping("screenshot") - public List getScreenshotList(@RequestParam long pdId) { - return playerScreenShotRepository.findByPdId_PdId(pdId); - } - -} diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/ApiMaimai2PlayerDataController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/ApiMaimai2PlayerDataController.java deleted file mode 100644 index 34503765..00000000 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/ApiMaimai2PlayerDataController.java +++ /dev/null @@ -1,396 +0,0 @@ -package icu.samnyan.aqua.api.controller.sega.game.maimai2; - -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import icu.samnyan.aqua.api.model.MessageResponse; -import icu.samnyan.aqua.api.model.ReducedPageResponse; -import icu.samnyan.aqua.api.model.resp.sega.maimai2.PhotoResp; -import icu.samnyan.aqua.api.model.resp.sega.maimai2.ProfileResp; -import icu.samnyan.aqua.api.model.resp.sega.maimai2.external.ExternalUserData; -import icu.samnyan.aqua.api.model.resp.sega.maimai2.external.Maimai2DataExport; -import icu.samnyan.aqua.api.model.resp.sega.maimai2.external.Maimai2DataImport; -import icu.samnyan.aqua.api.util.ApiMapper; -import icu.samnyan.aqua.sega.general.model.Card; -import icu.samnyan.aqua.sega.general.service.CardService; -import icu.samnyan.aqua.sega.maimai2.model.*; -import icu.samnyan.aqua.sega.maimai2.model.userdata.*; -import lombok.AllArgsConstructor; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@RestController -@RequestMapping("api/game/maimai2") -@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true") -@AllArgsConstructor -public class ApiMaimai2PlayerDataController { - - private final ApiMapper mapper; - - private final CardService cardService; - - private final Mai2UserActRepo userActRepository; - private final Mai2UserCharacterRepo userCharacterRepository; - private final Mai2UserDataRepo userDataRepository; - private final Mai2UserItemRepo userItemRepository; - private final Mai2UserLoginBonusRepo userLoginBonusRepository; - private final Mai2UserMusicDetailRepo userMusicDetailRepository; - private final Mai2UserOptionRepo userOptionRepository; - private final Mai2UserPlaylogRepo userPlaylogRepository; - private final Mai2UserGeneralDataRepo userGeneralDataRepository; - private final Mai2MapEncountNpcRepo mapEncountNpcRepository; - private final Mai2UserChargeRepo userChargeRepository; - private final Mai2UserCourseRepo userCourseRepository; - private final Mai2UserExtendRepo userExtendRepository; - private final Mai2UserFavoriteRepo userFavoriteRepository; - private final Mai2UserFriendSeasonRankingRepo userFriendSeasonRankingRepository; - private final Mai2UserMapRepo userMapRepository; - private final Mai2UserUdemaeRepo userUdemaeRepository; - - @GetMapping("config/userPhoto/divMaxLength") - public long getConfigUserPhotoDivMaxLength(@Value("${game.maimai2.userPhoto.divMaxLength:32}") long divMaxLength) { - return divMaxLength; - } - - @GetMapping("userPhoto") - public PhotoResp getUserPhoto(@RequestParam long aimeId, - @RequestParam(required = false, defaultValue = "0") int imageIndex) { - List matchedFiles = new ArrayList<>(); - PhotoResp Photo = new PhotoResp(); - try (Stream paths = Files.walk(Paths.get("data"))) { - matchedFiles = paths - .filter(Files::isRegularFile) - .filter(path -> path.getFileName().toString().endsWith(".jpg")) - .filter(path -> { - String fileName = path.getFileName().toString(); - String[] parts = fileName.split("-"); - return parts.length > 0 && parts[0].equals(String.valueOf(aimeId)); - }) - .map(Path::getFileName) - .map(Path::toString) - .sorted(Comparator.reverseOrder()) - .toList(); - Photo.setTotalImage(matchedFiles.size()); - Photo.setImageIndex(imageIndex); - if(matchedFiles.size() > imageIndex) { - byte[] targetImageContent = Files.readAllBytes(Paths.get("data/" + matchedFiles.get(imageIndex))); - String divData = Base64.getEncoder().encodeToString(targetImageContent); - Photo.setDivData(divData); - Photo.setFileName(matchedFiles.get(imageIndex)); - } - } - catch (Exception e) { - } - return Photo; - } - - @GetMapping("profile") - public ProfileResp getProfile(@RequestParam long aimeId) { - return mapper.convert(userDataRepository.findByCardExtId(aimeId).orElseThrow(), new TypeReference<>() { - }); - } - - @PostMapping("profile/username") - public Mai2UserDetail updateName(@RequestBody Map request) { - Mai2UserDetail profile = userDataRepository.findByCardExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - profile.setUserName((String) request.get("userName")); - return userDataRepository.save(profile); - } - - @PostMapping("profile/icon") - public Mai2UserDetail updateIcon(@RequestBody Map request) { - Mai2UserDetail profile = userDataRepository.findByCardExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - profile.setIconId((Integer) request.get("iconId")); - return userDataRepository.save(profile); - } - - @PostMapping("profile/plate") - public Mai2UserDetail updatePlate(@RequestBody Map request) { - Mai2UserDetail profile = userDataRepository.findByCardExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - profile.setPlateId((Integer) request.get("plateId")); - return userDataRepository.save(profile); - } - - @PostMapping("profile/frame") - public Mai2UserDetail updateFrame(@RequestBody Map request) { - Mai2UserDetail profile = userDataRepository.findByCardExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - profile.setFrameId((Integer) request.get("frameId")); - return userDataRepository.save(profile); - } - - @PostMapping("profile/title") - public Mai2UserDetail updateTrophy(@RequestBody Map request) { - Mai2UserDetail profile = userDataRepository.findByCardExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - profile.setTitleId((Integer) request.get("titleId")); - return userDataRepository.save(profile); - } - - @PostMapping("profile/partner") - public Mai2UserDetail updatePartner(@RequestBody Map request) { - Mai2UserDetail profile = userDataRepository.findByCardExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - profile.setPartnerId((Integer) request.get("partnerId")); - return userDataRepository.save(profile); - } - - @GetMapping("character") - public ReducedPageResponse getCharacter(@RequestParam long aimeId, - @RequestParam(required = false, defaultValue = "0") int page, - @RequestParam(required = false, defaultValue = "10") int size) { - Page characters = userCharacterRepository.findByUser_Card_ExtId(aimeId, PageRequest.of(page, size)); - return new ReducedPageResponse<>(characters.getContent(), characters.getPageable().getPageNumber(), characters.getTotalPages(), characters.getTotalElements()); - } - - @GetMapping("activity") - public List getActivities(@RequestParam long aimeId) { - return userActRepository.findByUser_Card_ExtId(aimeId); - } - - @GetMapping("item") - public ReducedPageResponse getItem(@RequestParam long aimeId, - @RequestParam(required = false, defaultValue = "0") int page, - @RequestParam(required = false, defaultValue = "10") int size, - @RequestParam(required = false, defaultValue = "0") int ItemKind) { - Page items; - if(ItemKind == 0){ - items = userItemRepository.findByUser_Card_ExtId(aimeId, PageRequest.of(page, size)); - } - else{ - items = userItemRepository.findByUser_Card_ExtIdAndItemKind(aimeId, ItemKind, PageRequest.of(page, size)); - } - return new ReducedPageResponse<>(items.getContent(), items.getPageable().getPageNumber(), items.getTotalPages(), items.getTotalElements()); - } - - @PostMapping("item") - public ResponseEntity updateItem(@RequestBody Map request) { - Mai2UserDetail profile = userDataRepository.findByCardExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - Integer itemKind = (Integer) request.get("itemKind"); - Integer itemId = (Integer) request.get("itemId"); - int stock = 1; - if (request.containsKey("stock")) { - stock = (Integer) request.get("stock"); - } - - Optional userItemOptional = userItemRepository.findByUserAndItemKindAndItemId(profile, itemKind, itemId); - - Mai2UserItem userItem; - if (userItemOptional.isPresent()) { - userItem = userItemOptional.get(); - } else { - userItem = new Mai2UserItem(); - userItem.setUser(profile); - userItem.setItemId(itemId); - userItem.setItemKind(itemKind); - } - userItem.setStock(stock); - userItem.setValid(true); - return ResponseEntity.ok(userItemRepository.save(userItem)); - } - - @GetMapping("recent") - public ReducedPageResponse getRecent(@RequestParam long aimeId, - @RequestParam(required = false, defaultValue = "0") int page, - @RequestParam(required = false, defaultValue = "10") int size) { - Page playlogs = userPlaylogRepository.findByUser_Card_ExtId(aimeId, PageRequest.of(page, size, Sort.Direction.DESC, "id")); - return new ReducedPageResponse<>(playlogs.getContent(), playlogs.getPageable().getPageNumber(), playlogs.getTotalPages(), playlogs.getTotalElements()); - - } - - @GetMapping("song/{id}") - public List getSongDetail(@RequestParam long aimeId, @PathVariable int id) { - return userMusicDetailRepository.findByUser_Card_ExtIdAndMusicId(aimeId, id); - } - - @GetMapping("song/{id}/{level}") - public List getLevelPlaylog(@RequestParam long aimeId, @PathVariable int id, @PathVariable int level) { - return userPlaylogRepository.findByUser_Card_ExtIdAndMusicIdAndLevel(aimeId, id, level); - } - - @GetMapping("options") - public Mai2UserOption getOptions(@RequestParam long aimeId) { - return userOptionRepository.findSingleByUser_Card_ExtId(aimeId).orElseThrow(); - } - - @PostMapping("options") - public ResponseEntity updateOptions(@RequestBody Map request) { - Mai2UserDetail profile = userDataRepository.findByCardExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - ObjectMapper objectMapper = new ObjectMapper(); - Mai2UserOption userOption = objectMapper.convertValue(request.get("options"), Mai2UserOption.class); - userOption.setUser(profile); - userOptionRepository.deleteByUser(profile); - userOptionRepository.flush(); - return ResponseEntity.ok(userOptionRepository.save(userOption)); - } - - @GetMapping("general") - public ResponseEntity getGeneralData(@RequestParam long aimeId, @RequestParam String key) { - Optional userGeneralDataOptional = userGeneralDataRepository.findByUser_Card_ExtIdAndPropertyKey(aimeId, key); - return userGeneralDataOptional.>map(ResponseEntity::ok) - .orElseGet(() -> ResponseEntity.status(HttpStatus.NOT_FOUND).body(new MessageResponse("User or value not found."))); - } - - @PostMapping("general") - public ResponseEntity setGeneralData(@RequestBody Map request) { - Mai2UserDetail profile = userDataRepository.findByCardExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - String key = (String) request.get("key"); - String value = (String) request.get("value"); - - Optional userGeneralDataOptional = userGeneralDataRepository.findByUserAndPropertyKey(profile, key); - Mai2UserGeneralData userGeneralData; - if (userGeneralDataOptional.isPresent()) { - userGeneralData = userGeneralDataOptional.get(); - } - else { - userGeneralData = new Mai2UserGeneralData(); - userGeneralData.setUser(profile); - userGeneralData.setPropertyKey(key); - } - userGeneralData.setPropertyValue(value); - - return ResponseEntity.ok(userGeneralDataRepository.save(userGeneralData)); - } - - @GetMapping("export") - public ResponseEntity exportAllUserData(@RequestParam long aimeId) { - Maimai2DataExport data = new Maimai2DataExport(); - try { - data.setGameId("SDEZ"); - data.setUserData(userDataRepository.findByCardExtId(aimeId).orElseThrow()); - data.setUserExtend(userExtendRepository.findSingleByUser_Card_ExtId(aimeId).orElseThrow()); - data.setUserOption(userOptionRepository.findSingleByUser_Card_ExtId(aimeId).orElseThrow()); - data.setUserUdemae(userUdemaeRepository.findSingleByUser_Card_ExtId(aimeId).orElseThrow()); - data.setUserCharacterList(userCharacterRepository.findByUser_Card_ExtId(aimeId)); - data.setUserGeneralDataList(userGeneralDataRepository.findByUser_Card_ExtId(aimeId)); - data.setUserItemList(userItemRepository.findByUser_Card_ExtId(aimeId)); - data.setUserLoginBonusList(userLoginBonusRepository.findByUser_Card_ExtId(aimeId)); - data.setUserMusicDetailList(userMusicDetailRepository.findByUser_Card_ExtId(aimeId)); - data.setUserPlaylogList(userPlaylogRepository.findByUserCardExtId(aimeId)); - data.setMapEncountNpcList(mapEncountNpcRepository.findByUser_Card_ExtId(aimeId)); - data.setUserActList(userActRepository.findByUser_Card_ExtId(aimeId)); - data.setUserChargeList(userChargeRepository.findByUser_Card_ExtId(aimeId)); - data.setUserCourseList(userCourseRepository.findByUser_Card_ExtId(aimeId)); - data.setUserFavoriteList(userFavoriteRepository.findByUser_Card_ExtId(aimeId)); - data.setUserFriendSeasonRankingList(userFriendSeasonRankingRepository.findByUser_Card_ExtId(aimeId)); - data.setUserMapList(userMapRepository.findByUser_Card_ExtId(aimeId)); - } catch (NoSuchElementException e) { - return ResponseEntity.status(HttpStatus.NOT_FOUND) - .body(new MessageResponse("User not found")); - } catch (Exception e) { - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) - .body(new MessageResponse("Error during data export. Reason: " + e.getMessage())); - } - // Set filename - HttpHeaders headers = new HttpHeaders(); - headers.set("content-disposition", "attachment; filename=maimai2_" + aimeId + "_exported.json"); - return new ResponseEntity<>(data, headers, HttpStatus.OK); - } - - @PostMapping("import") - public ResponseEntity importAllUserData(@RequestBody Maimai2DataImport data) { - if (!data.getGameId().equals("SDEZ")) { - return ResponseEntity.unprocessableEntity().body(new MessageResponse("Wrong Game Profile, Expected 'SDEZ', Get " + data.getGameId())); - } - - ExternalUserData exUser = data.getUserData(); - - Optional cardOptional = cardService.getCardByAccessCode(exUser.getAccessCode()); - Card card; - if (cardOptional.isPresent()) { - card = cardOptional.get(); - Optional existUserData = Optional.ofNullable(userDataRepository.findByCard(cardOptional.get())); - if (existUserData.isPresent()) { -// return ResponseEntity.status(HttpStatus.BAD_REQUEST) -// .body(new MessageResponse("This card already has a maimai2 profile.")); - // delete all same card data - userFavoriteRepository.deleteByUser(existUserData.get()); - userFavoriteRepository.flush(); - userFriendSeasonRankingRepository.deleteByUser(existUserData.get()); - userFriendSeasonRankingRepository.flush(); - userMapRepository.deleteByUser(existUserData.get()); - userMapRepository.flush(); - userUdemaeRepository.deleteByUser(existUserData.get()); - userUdemaeRepository.flush(); - userGeneralDataRepository.deleteByUser(existUserData.get()); - userGeneralDataRepository.flush(); - userItemRepository.deleteByUser(existUserData.get()); - userItemRepository.flush(); - userLoginBonusRepository.deleteByUser(existUserData.get()); - userLoginBonusRepository.flush(); - userMusicDetailRepository.deleteByUser(existUserData.get()); - userMusicDetailRepository.flush(); - userOptionRepository.deleteByUser(existUserData.get()); - userOptionRepository.flush(); - userPlaylogRepository.deleteByUser(existUserData.get()); - userPlaylogRepository.flush(); - userCharacterRepository.deleteByUser(existUserData.get()); - userCharacterRepository.flush(); - mapEncountNpcRepository.deleteByUser(existUserData.get()); - mapEncountNpcRepository.flush(); - userActRepository.deleteByUser(existUserData.get()); - userActRepository.flush(); - userChargeRepository.deleteByUser(existUserData.get()); - userChargeRepository.flush(); - userCourseRepository.deleteByUser(existUserData.get()); - userCourseRepository.flush(); - userExtendRepository.deleteByUser(existUserData.get()); - userExtendRepository.flush(); - userOptionRepository.deleteByUser(existUserData.get()); - userOptionRepository.flush(); - - userDataRepository.deleteByCard(card); - userDataRepository.flush(); - } - } else { - card = cardService.registerByAccessCode(exUser.getAccessCode()); - } - - Mai2UserDetail userData = mapper.convert(exUser, new TypeReference<>() { - }); - userData.setCard(card); - userDataRepository.saveAndFlush(userData); - - userFavoriteRepository.saveAll(data.getUserFavoriteList().stream().peek(x -> x.setUser(userData)).collect(Collectors.toList())); - userFriendSeasonRankingRepository.saveAll(data.getUserFriendSeasonRankingList().stream().peek(x -> x.setUser(userData)).collect(Collectors.toList())); - userMapRepository.saveAll(data.getUserMapList().stream().peek(x -> x.setUser(userData)).collect(Collectors.toList())); - userGeneralDataRepository.saveAll(data.getUserGeneralDataList().stream().peek(x -> x.setUser(userData)).collect(Collectors.toList())); - userItemRepository.saveAll(data.getUserItemList().stream().peek(x -> x.setUser(userData)).collect(Collectors.toList())); - userLoginBonusRepository.saveAll(data.getUserLoginBonusList().stream().peek(x -> x.setUser(userData)).collect(Collectors.toList())); - userMusicDetailRepository.saveAll(data.getUserMusicDetailList().stream().peek(x -> x.setUser(userData)).collect(Collectors.toList())); - userPlaylogRepository.saveAll(data.getUserPlaylogList().stream().peek(x -> x.setUser(userData)).collect(Collectors.toList())); - userCharacterRepository.saveAll(data.getUserCharacterList().stream().peek(x -> x.setUser(userData)).collect(Collectors.toList())); - mapEncountNpcRepository.saveAll(data.getMapEncountNpcList().stream().peek(x -> x.setUser(userData)).collect(Collectors.toList())); - userActRepository.saveAll(data.getUserActList().stream().peek(x -> x.setUser(userData)).collect(Collectors.toList())); - userChargeRepository.saveAll(data.getUserChargeList().stream().peek(x -> x.setUser(userData)).collect(Collectors.toList())); - userCourseRepository.saveAll(data.getUserCourseList().stream().peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - Mai2UserExtend userExtend = data.getUserExtend(); - userExtend.setUser(userData); - userExtendRepository.save(userExtend); - - Mai2UserOption userOption = data.getUserOption(); - userOption.setUser(userData); - userOptionRepository.save(userOption); - - Mai2UserUdemae userUdemae = data.getUserUdemae(); - userUdemae.setUser(userData); - userUdemaeRepository.save(userUdemae); - - return ResponseEntity.ok(new MessageResponse("Import successfully, aimeId: " + card.getExtId())); - } - -} diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/ongeki/ApiOngekiGameDataController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/ongeki/ApiOngekiGameDataController.java deleted file mode 100644 index 8256e8f2..00000000 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/ongeki/ApiOngekiGameDataController.java +++ /dev/null @@ -1,76 +0,0 @@ -package icu.samnyan.aqua.api.controller.sega.game.ongeki; - -import icu.samnyan.aqua.sega.ongeki.dao.gamedata.*; -import icu.samnyan.aqua.sega.ongeki.model.gamedata.*; -import lombok.AllArgsConstructor; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@RestController -@RequestMapping("api/game/ongeki/data") -@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true") -@AllArgsConstructor -public class ApiOngekiGameDataController { - - private final GameCardRepository gameCardRepository; - private final GameCharaRepository gameCharaRepository; - private final GameEventRepository gameEventRepository; - private final GameMusicRepository gameMusicRepository; - private final GameSkillRepository gameSkillRepository; - - @GetMapping("cardList") - public List getCardList() { - return gameCardRepository.findAll(); - } - - @GetMapping("charaList") - public List getCharaList() { - return gameCharaRepository.findAll(); - } - - @GetMapping("eventList") - public List getEventList() { - return gameEventRepository.findAll(); - } - - @GetMapping("musicList") - public List getMusicList() { - return gameMusicRepository.findAll(); - } - - @GetMapping("skillList") - public List getSkillList() { - return gameSkillRepository.findAll(); - } - - @PostMapping("cardList") - public List getCardList(@RequestBody List req) { - return gameCardRepository.saveAll(req); - } - - @PostMapping("charaList") - public List getCharaList(@RequestBody List req) { - return gameCharaRepository.saveAll(req); - } - - @PostMapping("eventList") - public List getEventList(@RequestBody List req) { - return gameEventRepository.saveAll(req); - } - - @PostMapping("musicList") - public List getMusicList(@RequestBody List req) { - return gameMusicRepository.saveAll(req); - } - - @PostMapping("skillList") - public List getSkillList(@RequestBody List req) { - return gameSkillRepository.saveAll(req); - } - -} diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/ongeki/ApiOngekiPlayerDataController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/ongeki/ApiOngekiPlayerDataController.java deleted file mode 100644 index 958bd3a2..00000000 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/ongeki/ApiOngekiPlayerDataController.java +++ /dev/null @@ -1,576 +0,0 @@ -package icu.samnyan.aqua.api.controller.sega.game.ongeki; - -import com.fasterxml.jackson.core.type.TypeReference; -import icu.samnyan.aqua.api.model.MessageResponse; -import icu.samnyan.aqua.api.model.ObjectMessageResponse; -import icu.samnyan.aqua.api.model.ReducedPageResponse; -import icu.samnyan.aqua.api.model.resp.sega.ongeki.ProfileResp; -import icu.samnyan.aqua.api.model.resp.sega.ongeki.external.ExternalUserData; -import icu.samnyan.aqua.api.model.resp.sega.ongeki.external.OngekiDataExport; -import icu.samnyan.aqua.api.model.resp.sega.ongeki.external.OngekiDataImport; -import icu.samnyan.aqua.api.util.ApiMapper; -import icu.samnyan.aqua.sega.general.model.Card; -import icu.samnyan.aqua.sega.general.service.CardService; -import icu.samnyan.aqua.sega.ongeki.dao.gamedata.GameCardRepository; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.*; -import icu.samnyan.aqua.sega.ongeki.model.gamedata.GameCard; -import icu.samnyan.aqua.sega.ongeki.model.response.data.UserRivalData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.*; -import lombok.AllArgsConstructor; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.*; -import java.util.stream.Collectors; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@RestController -@RequestMapping("api/game/ongeki") -@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true") -@AllArgsConstructor -public class ApiOngekiPlayerDataController { - - private final ApiMapper mapper; - - private static DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.0"); - - private final CardService cardService; - - private final UserActivityRepository userActivityRepository; - private final UserCardRepository userCardRepository; - private final UserChapterRepository userChapterRepository; - private final UserCharacterRepository userCharacterRepository; - private final UserDataRepository userDataRepository; - private final UserDeckRepository userDeckRepository; - private final UserEventPointRepository userEventPointRepository; - private final UserItemRepository userItemRepository; - private final UserLoginBonusRepository userLoginBonusRepository; - private final UserMissionPointRepository userMissionPointRepository; - private final UserMusicDetailRepository userMusicDetailRepository; - private final UserMusicItemRepository userMusicItemRepository; - private final UserOptionRepository userOptionRepository; - private final UserPlaylogRepository userPlaylogRepository; - private final UserStoryRepository userStoryRepository; - private final UserTrainingRoomRepository userTrainingRoomRepository; - private final UserGeneralDataRepository userGeneralDataRepository; - private final UserTradeItemRepository userTradeItemRepository; - private final UserEventMusicRepository userEventMusicRepository; - private final UserTechEventRepository userTechEventRepository; - private final UserKopRepository userKopRepository; - private final UserRivalDataRepository userRivalDataRepository; - - private final UserMemoryChapterRepository userMemoryChapterRepository; - - private final UserScenarioRepository userScenarioRepository; - - private final UserBossRepository userBossRepository; - - private final UserTechCountRepository userTechCountRepository; - - private final GameCardRepository gameCardRepository; - - @GetMapping("profile") - public ProfileResp getProfile(@RequestParam long aimeId) { - return mapper.convert(userDataRepository.findByCard_ExtId(aimeId).orElseThrow(), new TypeReference<>() { - }); - } - - @PostMapping("profile/userName") - public UserData updateName(@RequestBody Map request) { - UserData profile = userDataRepository.findByCard_ExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - profile.setUserName((String) request.get("userName")); - return userDataRepository.save(profile); - } - - @PostMapping("profile/plate") - public UserData updatePlate(@RequestBody Map request) { - UserData profile = userDataRepository.findByCard_ExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - profile.setNameplateId((Integer) request.get("nameplateId")); - return userDataRepository.save(profile); - } - - @PostMapping("profile/trophy") - public UserData updateTrophy(@RequestBody Map request) { - UserData profile = userDataRepository.findByCard_ExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - profile.setTrophyId((Integer) request.get("trophyId")); - return userDataRepository.save(profile); - } - - @PostMapping("profile/card") - public UserData updateCard(@RequestBody Map request) { - UserData profile = userDataRepository.findByCard_ExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - profile.setCardId((Integer) request.get("cardId")); - return userDataRepository.save(profile); - } - - @GetMapping("card") - public ReducedPageResponse getCard(@RequestParam long aimeId, - @RequestParam(required = false, defaultValue = "0") int page, - @RequestParam(required = false, defaultValue = "10") int size) { - Page cards = userCardRepository.findByUser_Card_ExtId(aimeId, PageRequest.of(page, size, Sort.Direction.DESC, "id")); - return new ReducedPageResponse<>(cards.getContent(), cards.getPageable().getPageNumber(), cards.getTotalPages(), cards.getTotalElements()); - } - - /** - * Force insert a card. This will use to create a new card or update a currently existed card star level. - * - * @param request Map of aimeId and cardId - * @return result UserCard or error message - */ - @PostMapping("card") - public ResponseEntity insertCard(@RequestBody Map request) { - UserData profile = userDataRepository.findByCard_ExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - Integer cardId = (Integer) request.get("cardId"); - Optional userCardOptional = userCardRepository.findByUserAndCardId(profile, cardId); - if (userCardOptional.isPresent()) { - UserCard card = userCardOptional.get(); - if (card.getDigitalStock() < 5) { - card.setDigitalStock(card.getDigitalStock() + 1); - card.setMaxLevel(card.getMaxLevel() + 5); - return ResponseEntity.ok(userCardRepository.save(card)); - } else { - // If digital stock is larger than 5, check if this card is N card. - Optional gameCard = gameCardRepository.findById((long) card.getCardId()); - if (gameCard.isPresent()) { - if (gameCard.get().getRarity().equals("N")) { - card.setDigitalStock(card.getDigitalStock() + 1); - card.setMaxLevel(card.getMaxLevel() + 5); - return ResponseEntity.ok(userCardRepository.save(card)); - } else { - return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).body(new MessageResponse("This card has reached max limit.")); - } - } else { - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) - .body(new MessageResponse("Card info not found on server, not allow to edit with api, please make edit to database directly.")); - } - } - } - GameCard card = gameCardRepository.findById(cardId.longValue()).orElseThrow(); - return ResponseEntity.ok( - userCardRepository.save( - new UserCard( - profile, - cardId, - card.getSkillId(), - LocalDateTime.now().format(df)) - )); - } - - @PostMapping("card/{cardId}/kaika") - public ResponseEntity kaikaCard(@RequestParam long aimeId, @PathVariable Integer cardId) { - Optional userCardOptional = userCardRepository.findByUser_Card_ExtIdAndCardId(aimeId, cardId); - if (userCardOptional.isEmpty()) { - return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new MessageResponse("Card not found.")); - } else { - UserCard card = userCardOptional.get(); - if (!card.getKaikaDate().equals("0000-00-00 00:00:00.0")) { - return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY).body(new MessageResponse("No, you have done this before.")); - } else { - card.setKaikaDate(LocalDateTime.now().format(df)); - card.setMaxLevel(card.getMaxLevel() + 40); - card.setPrintCount(card.getPrintCount() + 1); - return ResponseEntity.ok(userCardRepository.save(card)); - } - } - } - - @PostMapping("card/{cardId}/choKaika") - public ResponseEntity choKaikaCard(@RequestParam long aimeId, @PathVariable Integer cardId) { - Optional userCardOptional = userCardRepository.findByUser_Card_ExtIdAndCardId(aimeId, cardId); - if (userCardOptional.isEmpty()) { - return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new MessageResponse("Card not found.")); - } else { - UserCard card = userCardOptional.get(); - Optional gameCard = gameCardRepository.findById((long) card.getCardId()); - if (gameCard.isPresent()) { - if (gameCard.get().getRarity().equals("N")) { - card.setMaxLevel(100); - card.setLevel(100); - card.setDigitalStock(11); - } else { - card.setMaxLevel(70); - card.setLevel(70); - card.setDigitalStock(5); - } - } else { - card.setMaxLevel(70); - card.setLevel(70); - card.setDigitalStock(5); - } - if (card.getKaikaDate().equals("0000-00-00 00:00:00.0")) { - card.setKaikaDate(LocalDateTime.now().format(df)); - } - card.setChoKaikaDate(LocalDateTime.now().format(df)); - card.setPrintCount(card.getPrintCount() + 1); - return ResponseEntity.ok(userCardRepository.save(card)); - } - } - - @GetMapping("character") - public ReducedPageResponse getCharacter(@RequestParam long aimeId, - @RequestParam(required = false, defaultValue = "0") int page, - @RequestParam(required = false, defaultValue = "10") int size) { - Page characters = userCharacterRepository.findByUser_Card_ExtId(aimeId, PageRequest.of(page, size)); - return new ReducedPageResponse<>(characters.getContent(), characters.getPageable().getPageNumber(), characters.getTotalPages(), characters.getTotalElements()); - } - - @GetMapping("activity") - public List getActivities(@RequestParam long aimeId) { - return userActivityRepository.findByUser_Card_ExtId(aimeId); - } - - @PostMapping("activity") - public ResponseEntity updateActivities(@RequestBody Map request) { - UserData profile = userDataRepository.findByCard_ExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - Integer activityId = (Integer) request.get("id"); - Integer kind = (Integer) request.get("kind"); - Integer sortNumber = (Integer) request.get("sortNumber"); - Integer param1 = (Integer) request.get("param1"); - Integer param2 = (Integer) request.get("param2"); - Integer param3 = (Integer) request.get("param3"); - Integer param4 = (Integer) request.get("param4"); - - Optional userActivityOptional = userActivityRepository.findByUserAndKindAndActivityId(profile, kind, activityId); - - UserActivity userActivity; - if (userActivityOptional.isPresent()) { - userActivity = userActivityOptional.get(); - } else { - userActivity = new UserActivity(profile); - userActivity.setActivityId(activityId); - userActivity.setKind(kind); - userActivity.setSortNumber(sortNumber); - } - userActivity.setParam1(param1); - userActivity.setParam2(param2); - userActivity.setParam3(param3); - userActivity.setParam4(param4); - return ResponseEntity.ok(userActivityRepository.save(userActivity)); - } - - @GetMapping("item") - public ReducedPageResponse getItem(@RequestParam long aimeId, - @RequestParam(required = false, defaultValue = "0") int page, - @RequestParam(required = false, defaultValue = "10") int size) { - Page items = userItemRepository.findByUser_Card_ExtId(aimeId, PageRequest.of(page, size)); - return new ReducedPageResponse<>(items.getContent(), items.getPageable().getPageNumber(), items.getTotalPages(), items.getTotalElements()); - } - - @PostMapping("item") - public ResponseEntity updateItem(@RequestBody Map request) { - UserData profile = userDataRepository.findByCard_ExtId(((Number) request.get("aimeId")).longValue()).orElseThrow(); - Integer itemKind = (Integer) request.get("itemKind"); - Integer itemId = (Integer) request.get("itemId"); - int stock = 1; - if (request.containsKey("stock")) { - stock = (Integer) request.get("stock"); - } - - Optional userItemOptional = userItemRepository.findByUserAndItemKindAndItemId(profile, itemKind, itemId); - - UserItem userItem; - if (userItemOptional.isPresent()) { - userItem = userItemOptional.get(); - } else { - userItem = new UserItem(profile); - userItem.setItemId(itemId); - userItem.setItemKind(itemKind); - } - userItem.setStock(stock); - userItem.setValid(true); - return ResponseEntity.ok(userItemRepository.save(userItem)); - } - - @GetMapping("recent") - public ReducedPageResponse getRecent(@RequestParam long aimeId, - @RequestParam(required = false, defaultValue = "0") int page, - @RequestParam(required = false, defaultValue = "10") int size) { - Page playlogs = userPlaylogRepository.findByUser_Card_ExtId(aimeId, PageRequest.of(page, size, Sort.Direction.DESC, "id")); - return new ReducedPageResponse<>(playlogs.getContent(), playlogs.getPageable().getPageNumber(), playlogs.getTotalPages(), playlogs.getTotalElements()); - - } - - @GetMapping("song/{id}") - public List getSongDetail(@RequestParam long aimeId, @PathVariable int id) { - return userMusicDetailRepository.findByUser_Card_ExtIdAndMusicId(aimeId, id); - } - - @GetMapping("song/{id}/{level}") - public List getLevelPlaylog(@RequestParam long aimeId, @PathVariable int id, @PathVariable int level) { - return userPlaylogRepository.findByUser_Card_ExtIdAndMusicIdAndLevel(aimeId, id, level); - } - - @GetMapping("rival") - public List getRival(@RequestParam long aimeId) { - var rivalUserIds = userRivalDataRepository.findByUser_Card_ExtId(aimeId) - .stream() - .map(x -> x.getRivalUserExtId()) - .collect(Collectors.toList()); - - var rivalDataList = userDataRepository.findByCard_ExtIdIn(rivalUserIds) - .stream() - .map(x -> new UserRivalData(x.getCard().getExtId(), x.getUserName())) - .collect(Collectors.toList()); - - return rivalDataList; - } - - @DeleteMapping("rival") - public MessageResponse deleteRival(@RequestParam long aimeId, @RequestParam long rivalAimeId) { - userRivalDataRepository.removeByUser_Card_ExtIdAndRivalUserExtId(aimeId, rivalAimeId); - return new MessageResponse(); - } - - @PostMapping("rival") - public ObjectMessageResponse addRival(@RequestParam long aimeId, @RequestParam long rivalAimeId, @Value("${game.ongeki.rival.rivals-max-count:10}") long addMaxCount) { - //check limit - if (addMaxCount >= 0 && userRivalDataRepository.findByUser_Card_ExtId(aimeId).size() >= addMaxCount) { - return new ObjectMessageResponse<>(String.format("Size of rival list is limited in %d", addMaxCount)); - } - - var userOpt = userDataRepository.findByCard_ExtId(aimeId); - if (userOpt.isEmpty()) - return new ObjectMessageResponse<>("Current user isn't ongeki player."); - var user = userOpt.get(); - var rivalUserOpt = userDataRepository.findByCard_ExtId(rivalAimeId); - if (rivalUserOpt.isEmpty()) - return new ObjectMessageResponse<>("Rival user isn't ongeki player."); - var rivalUser = rivalUserOpt.get(); - - if(user == rivalUser) - return new ObjectMessageResponse<>("Can't add yourself as an rival."); - - var rival = new UserRival(); - rival.setUser(user); - rival.setRivalUserExtId(rivalUser.getCard().getExtId()); - - userRivalDataRepository.save(rival); - return new ObjectMessageResponse<>(new UserRivalData(rivalUser.getCard().getExtId(), rivalUser.getUserName())); - } - - @GetMapping("options") - public UserOption getOptions(@RequestParam long aimeId) { - return userOptionRepository.findByUser_Card_ExtId(aimeId).orElseThrow(); - } - - @GetMapping("general") - public ResponseEntity getGeneralData(@RequestParam long aimeId, @RequestParam String key) { - Optional userGeneralDataOptional = userGeneralDataRepository.findByUser_Card_ExtIdAndPropertyKey(aimeId, key); - return userGeneralDataOptional.>map(ResponseEntity::ok) - .orElseGet(() -> ResponseEntity.status(HttpStatus.NOT_FOUND).body(new MessageResponse("User or value not found."))); - } - - @GetMapping("export") - public ResponseEntity exportAllUserData(@RequestParam long aimeId) { - OngekiDataExport data = new OngekiDataExport(); - try { - data.setGameId("SDDT"); - data.setUserData(userDataRepository.findByCard_ExtId(aimeId).orElseThrow()); - data.setUserActivityList(userActivityRepository.findByUser_Card_ExtId(aimeId)); - data.setUserCardList(userCardRepository.findByUser_Card_ExtId(aimeId)); - data.setUserChapterList(userChapterRepository.findByUser_Card_ExtId(aimeId)); - data.setUserCharacterList(userCharacterRepository.findByUser_Card_ExtId(aimeId)); - data.setUserDeckList(userDeckRepository.findByUser_Card_ExtId(aimeId)); - data.setUserEventPointList(userEventPointRepository.findByUser_Card_ExtId(aimeId)); - data.setUserGeneralDataList(userGeneralDataRepository.findByUser_Card_ExtId(aimeId)); - data.setUserItemList(userItemRepository.findByUser_Card_ExtId(aimeId)); - data.setUserLoginBonusList(userLoginBonusRepository.findByUser_Card_ExtId(aimeId)); - data.setUserMissionPointList(userMissionPointRepository.findByUser_Card_ExtId(aimeId)); - data.setUserMusicDetailList(userMusicDetailRepository.findByUser_Card_ExtId(aimeId)); - data.setUserMusicItemList(userMusicItemRepository.findByUser_Card_ExtId(aimeId)); - data.setUserOption(userOptionRepository.findByUser_Card_ExtId(aimeId).orElseThrow()); - data.setUserPlaylogList(userPlaylogRepository.findByUser_Card_ExtId(aimeId)); - data.setUserStoryList(userStoryRepository.findByUser_Card_ExtId(aimeId)); - data.setUserTrainingRoomList(userTrainingRoomRepository.findByUser_Card_ExtId(aimeId)); - data.setUserTradeItemList(userTradeItemRepository.findByUser_Card_ExtId(aimeId)); - data.setUserEventMusicList(userEventMusicRepository.findByUser_Card_ExtId(aimeId)); - data.setUserTechEventList(userTechEventRepository.findByUser_Card_ExtId(aimeId)); - data.setUserKopList(userKopRepository.findByUser_Card_ExtId(aimeId)); - data.setUserMemoryChapterList(userMemoryChapterRepository.findByUser_Card_ExtId(aimeId)); - data.setUserScenarioList(userScenarioRepository.findByUser_Card_ExtId(aimeId)); - data.setUserBossList(userBossRepository.findByUser_Card_ExtId(aimeId)); - data.setUserTechCountList(userTechCountRepository.findByUser_Card_ExtId(aimeId)); - data.setUserRivalList(userRivalDataRepository.findByUser_Card_ExtId(aimeId)); - } catch (NoSuchElementException e) { - return ResponseEntity.status(HttpStatus.NOT_FOUND) - .body(new MessageResponse("User not found")); - } catch (Exception e) { - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) - .body(new MessageResponse("Error during data export. Reason: " + e.getMessage())); - } - // Set filename - HttpHeaders headers = new HttpHeaders(); - headers.set("content-disposition", "attachment; filename=ongeki_" + aimeId + "_exported.json"); - return new ResponseEntity<>(data, headers, HttpStatus.OK); - } - - @PostMapping("import") - public ResponseEntity importAllUserData(@RequestBody OngekiDataImport data) { - if (!data.getGameId().equals("SDDT")) { - return ResponseEntity.unprocessableEntity().body(new MessageResponse("Wrong Game Profile, Expected 'SDDT', Get " + data.getGameId())); - } - - ExternalUserData exUser = data.getUserData(); - - Optional cardOptional = cardService.getCardByAccessCode(exUser.getAccessCode()); - Card card; - if (cardOptional.isPresent()) { - card = cardOptional.get(); - Optional existUserData = Optional.ofNullable(userDataRepository.findByCard(cardOptional.get())); - if (existUserData.isPresent()) { -// return ResponseEntity.status(HttpStatus.BAD_REQUEST) -// .body(new MessageResponse("This card already has a ongeki profile.")); - // delete all same card data - userActivityRepository.deleteByUser(existUserData.get()); - userActivityRepository.flush(); - userCardRepository.deleteByUser(existUserData.get()); - userCardRepository.flush(); - userChapterRepository.deleteByUser(existUserData.get()); - userChapterRepository.flush(); - userCharacterRepository.deleteByUser(existUserData.get()); - userCharacterRepository.flush(); - userDeckRepository.deleteByUser(existUserData.get()); - userDeckRepository.flush(); - userEventPointRepository.deleteByUser(existUserData.get()); - userEventPointRepository.flush(); - userGeneralDataRepository.deleteByUser(existUserData.get()); - userGeneralDataRepository.flush(); - userItemRepository.deleteByUser(existUserData.get()); - userItemRepository.flush(); - userLoginBonusRepository.deleteByUser(existUserData.get()); - userLoginBonusRepository.flush(); - userMissionPointRepository.deleteByUser(existUserData.get()); - userMissionPointRepository.flush(); - userMusicDetailRepository.deleteByUser(existUserData.get()); - userMusicDetailRepository.flush(); - userMusicItemRepository.deleteByUser(existUserData.get()); - userMusicItemRepository.flush(); - userOptionRepository.deleteByUser(existUserData.get()); - userOptionRepository.flush(); - userPlaylogRepository.deleteByUser(existUserData.get()); - userPlaylogRepository.flush(); - userStoryRepository.deleteByUser(existUserData.get()); - userStoryRepository.flush(); - userTrainingRoomRepository.deleteByUser(existUserData.get()); - userTrainingRoomRepository.flush(); - userTradeItemRepository.deleteByUser(existUserData.get()); - userTradeItemRepository.flush(); - userEventMusicRepository.deleteByUser(existUserData.get()); - userEventMusicRepository.flush(); - userTechEventRepository.deleteByUser(existUserData.get()); - userTechEventRepository.flush(); - userKopRepository.deleteByUser(existUserData.get()); - userKopRepository.flush(); - userMemoryChapterRepository.deleteByUser(existUserData.get()); - userMemoryChapterRepository.flush(); - userScenarioRepository.deleteByUser(existUserData.get()); - userScenarioRepository.flush(); - userBossRepository.deleteByUser(existUserData.get()); - userBossRepository.flush(); - userTechCountRepository.deleteByUser(existUserData.get()); - userTechCountRepository.flush(); - userRivalDataRepository.deleteByUser(existUserData.get()); - userRivalDataRepository.flush(); - - userDataRepository.deleteByCard(card); - userDataRepository.flush(); - } - } else { - card = cardService.registerByAccessCode(exUser.getAccessCode()); - } - - UserData userData = mapper.convert(exUser, new TypeReference<>() { - }); - userData.setCard(card); - userDataRepository.saveAndFlush(userData); - - userActivityRepository.saveAll(data.getUserActivityList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userCardRepository.saveAll(data.getUserCardList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userChapterRepository.saveAll(data.getUserChapterList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userCharacterRepository.saveAll(data.getUserCharacterList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userDeckRepository.saveAll(data.getUserDeckList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userEventPointRepository.saveAll(data.getUserEventPointList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userGeneralDataRepository.saveAll(data.getUserGeneralDataList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userItemRepository.saveAll(data.getUserItemList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userLoginBonusRepository.saveAll(data.getUserLoginBonusList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userMissionPointRepository.saveAll(data.getUserMissionPointList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userMusicDetailRepository.saveAll(data.getUserMusicDetailList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userMusicItemRepository.saveAll(data.getUserMusicItemList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - UserOption userOption = data.getUserOption(); - userOption.setUser(userData); - userOptionRepository.save(userOption); - userPlaylogRepository.saveAll(data.getUserPlaylogList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userStoryRepository.saveAll(data.getUserStoryList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userTrainingRoomRepository.saveAll(data.getUserTrainingRoomList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userTradeItemRepository.saveAll(data.getUserTradeItemList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userEventMusicRepository.saveAll(data.getUserEventMusicList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userTechEventRepository.saveAll(data.getUserTechEventList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userKopRepository.saveAll(data.getUserKopList().stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userMemoryChapterRepository.saveAll(Optional.ofNullable(data.getUserMemoryChapterList()).orElse(Collections.emptyList()).stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userScenarioRepository.saveAll(Optional.ofNullable(data.getUserScenarioList()).orElse(Collections.emptyList()).stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userBossRepository.saveAll(Optional.ofNullable(data.getUserBossList()).orElse(Collections.emptyList()).stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userTechCountRepository.saveAll(Optional.ofNullable(data.getUserTechCountList()).orElse(Collections.emptyList()).stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - userRivalDataRepository.saveAll(Optional.ofNullable(data.getUserRivalList()).orElse(Collections.emptyList()).stream() - .peek(x -> x.setUser(userData)).collect(Collectors.toList())); - - return ResponseEntity.ok(new MessageResponse("Import successfully, aimeId: " + card.getExtId())); - } - -} diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/manage/ApiChuniV1ManageController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/manage/ApiChuniV1ManageController.java deleted file mode 100644 index 00ead66a..00000000 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/manage/ApiChuniV1ManageController.java +++ /dev/null @@ -1,83 +0,0 @@ -package icu.samnyan.aqua.api.controller.sega.manage; - -import icu.samnyan.aqua.sega.chunithm.model.gamedata.Level; -import icu.samnyan.aqua.sega.chunithm.model.gamedata.Music; -import icu.samnyan.aqua.sega.chunithm.model.userdata.UserData; -import icu.samnyan.aqua.sega.chunithm.model.userdata.UserMusicDetail; -import icu.samnyan.aqua.sega.chunithm.service.GameMusicService; -import icu.samnyan.aqua.sega.chunithm.service.UserDataService; -import icu.samnyan.aqua.sega.chunithm.service.UserMusicDetailService; -import lombok.AllArgsConstructor; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@RestController -@RequestMapping("api/manage/chuni/v1") -@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true") -@AllArgsConstructor -public class ApiChuniV1ManageController { - - private static final Logger logger = LoggerFactory.getLogger(ApiChuniV1ManageController.class); - - private final UserDataService userDataService; - - private final UserMusicDetailService userMusicDetailService; - - private final GameMusicService gameMusicService; - - /** - * A request to fill fake score to all chart. only use for testing - * @param aimeId The internal id of a card - * @return Run result status - */ -// @PostMapping("fill") - public ResponseEntity fillMockData(@RequestParam String aimeId) { - UserData profile = userDataService.getUserByExtId(aimeId).orElseThrow(); - List musicList = gameMusicService.getAll(); - List detailList = new ArrayList<>(); - musicList.forEach(x -> { - Collection levels = x.getLevels().values(); - levels.forEach(l -> { - Optional userMusicDetailOptional = userMusicDetailService.getByUserAndMusicIdAndLevel(profile, x.getMusicId(), l.getDiff()); - if (userMusicDetailOptional.isEmpty()) { - UserMusicDetail temp = new UserMusicDetail( - x.getMusicId(), - l.getDiff(), - 1, - 980000, - 0, - 0, - 0, - 5, - 0, - false, - false, - false, - 0, - 0, - 8, - false - ); - temp.setUser(profile); - detailList.add(temp); - } - }); - }); - userMusicDetailService.saveAll(detailList); - return ResponseEntity.ok("OK"); - } - -} diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/manage/ApiDivaManageController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/manage/ApiDivaManageController.java deleted file mode 100644 index f9dac249..00000000 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/manage/ApiDivaManageController.java +++ /dev/null @@ -1,139 +0,0 @@ -package icu.samnyan.aqua.api.controller.sega.manage; - -import icu.samnyan.aqua.api.model.MessageResponse; -import icu.samnyan.aqua.api.model.req.sega.diva.ModuleEntry; -import icu.samnyan.aqua.api.model.req.sega.diva.PvListEntry; -import icu.samnyan.aqua.api.model.req.sega.diva.PvListRequest; -import icu.samnyan.aqua.sega.diva.dao.gamedata.*; -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.general.dao.PropertyEntryRepository; -import icu.samnyan.aqua.sega.general.model.PropertyEntry; -import lombok.AllArgsConstructor; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.web.bind.annotation.*; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@RestController -@RequestMapping("api/manage/diva/") -@ConditionalOnProperty(prefix = "aquaviewer.api", name = "enabled", havingValue = "true") -@AllArgsConstructor -public class ApiDivaManageController { - - private final PvEntryRepository pvEntryRepository; - private final DivaModuleRepository moduleRepository; - private final DivaCustomizeRepository customizeRepository; - private final FestaRepository festaRepository; - private final ContestRepository contestRepository; - private final PropertyEntryRepository propertyEntryRepository; - - @PostMapping("pvList") - public List updatePvList(@RequestBody PvListRequest request) { - request.getEasy().forEach(x -> savePv(x, Difficulty.EASY)); - request.getNormal().forEach(x -> savePv(x, Difficulty.NORMAL)); - request.getHard().forEach(x -> savePv(x, Difficulty.HARD)); - request.getExtreme().forEach(x -> savePv(x, Difficulty.EXTREME)); - return pvEntryRepository.findAll(); - } - - @PostMapping("module") - public List updateModuleList(@RequestBody List request) { - List moduleList = new ArrayList<>(); - request.forEach(x -> moduleList.add(new DivaModule(x.getID(), x.getName(), x.getPrice(), x.getReleaseDate(), x.getEndDate(), x.getSortOrder()))); - return moduleRepository.saveAll(moduleList); - } - - @PostMapping("item") - public List updateItemList(@RequestBody List request) { - List itemList = new ArrayList<>(); - request.forEach(x -> itemList.add(new DivaCustomize(x.getID(), x.getName(), x.getPrice(), x.getReleaseDate(), x.getEndDate(), x.getSortOrder()))); - return customizeRepository.saveAll(itemList); - } - - private void savePv(PvListEntry x, Difficulty difficulty) { - pvEntryRepository.save(new PvEntry(x.getPVID(), - difficulty, - x.getVersion(), - Edition.fromValue(x.getEdition()), - x.getAdvDemo().getStart(), - x.getAdvDemo().getEnd(), - x.getPlayable().getStart(), - x.getPlayable().getEnd() - )); - } - - @GetMapping("festa") - public List getFesta() { - return festaRepository.findAll(); - } - - @PutMapping("festa") - public Festa updateFesta(@RequestBody Festa festa) { - return festaRepository.save(festa); - } - - @DeleteMapping("festa/{id}") - public MessageResponse getFesta(@PathVariable int id) { - festaRepository.deleteById(id); - return new MessageResponse("Deleted " + id); - } - - @GetMapping("contest") - public List getContest() { - return contestRepository.findAll(); - } - - @PutMapping("contest") - public Contest updateContest(@RequestBody Contest contest) { - return contestRepository.save(contest); - } - - @DeleteMapping("contest/{id}") - public MessageResponse deleteContest(@PathVariable int id) { - contestRepository.deleteById(id); - return new MessageResponse("Deleted " + id); - } - - @GetMapping("news") - public Optional getNews() { - return propertyEntryRepository.findByPropertyKey("diva_news"); - } - - @PutMapping("news") - public PropertyEntry updateNews(@RequestBody PropertyEntry property) { - PropertyEntry entry = propertyEntryRepository.findByPropertyKey("diva_news") - .orElseGet(() -> new PropertyEntry("diva_news")); - entry.setPropertyValue(property.getPropertyValue()); - return propertyEntryRepository.save(entry); - } - - @GetMapping("warning") - public Optional getWarning() { - return propertyEntryRepository.findByPropertyKey("diva_warning"); - } - - @PutMapping("warning") - public PropertyEntry updateWarning(@RequestBody PropertyEntry property) { - PropertyEntry entry = propertyEntryRepository.findByPropertyKey("diva_warning") - .orElseGet(() -> new PropertyEntry("diva_warning")); - entry.setPropertyValue(property.getPropertyValue()); - return propertyEntryRepository.save(entry); - } - - @GetMapping("module") - public List getModule() { - return moduleRepository.findAll(); - } - - @GetMapping("customize") - public List getCustomize() { - return customizeRepository.findAll(); - } -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/MessageResponse.java b/src/main/java/icu/samnyan/aqua/api/model/MessageResponse.java deleted file mode 100644 index a19a9348..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/MessageResponse.java +++ /dev/null @@ -1,23 +0,0 @@ -package icu.samnyan.aqua.api.model; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -public class MessageResponse { - private String message = "ok"; - - public MessageResponse(String message) { - this.message = message; - } - - public MessageResponse() { - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/ObjectMessageResponse.java b/src/main/java/icu/samnyan/aqua/api/model/ObjectMessageResponse.java deleted file mode 100644 index b669131d..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/ObjectMessageResponse.java +++ /dev/null @@ -1,27 +0,0 @@ -package icu.samnyan.aqua.api.model; - -public class ObjectMessageResponse extends MessageResponse { - private T data; - - public ObjectMessageResponse(String message) { - super(message); - } - - public ObjectMessageResponse(T data) { - super(); - setData(data); - } - - public ObjectMessageResponse(T data, String message) { - super(message); - setData(data); - } - - public T getData() { - return data; - } - - public void setData(T data) { - this.data = data; - } -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/ReducedPageResponse.java b/src/main/java/icu/samnyan/aqua/api/model/ReducedPageResponse.java deleted file mode 100644 index 3eed2fc0..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/ReducedPageResponse.java +++ /dev/null @@ -1,25 +0,0 @@ -package icu.samnyan.aqua.api.model; - -import lombok.Getter; -import lombok.Setter; - -import java.util.Collection; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Getter -@Setter -public class ReducedPageResponse { - private Collection content; - private Integer page; - private Integer totalPages; - private Long totalElements; - - public ReducedPageResponse(Collection content, Integer page, Integer totalPages, Long totalElements) { - this.content = content; - this.page = page; - this.totalPages = totalPages; - this.totalElements = totalElements; - } -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/DatePair.java b/src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/DatePair.java deleted file mode 100644 index 3e0fa29b..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/DatePair.java +++ /dev/null @@ -1,21 +0,0 @@ -package icu.samnyan.aqua.api.model.req.sega.diva; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.time.LocalDateTime; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class DatePair { - @JsonProperty("Start") - private LocalDateTime Start; - @JsonProperty("End") - private LocalDateTime End; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/ModuleEntry.java b/src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/ModuleEntry.java deleted file mode 100644 index 5b9295ed..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/ModuleEntry.java +++ /dev/null @@ -1,29 +0,0 @@ -package icu.samnyan.aqua.api.model.req.sega.diva; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.time.LocalDateTime; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class ModuleEntry { - @JsonProperty("ID") - private int ID; - @JsonProperty("Name") - private String Name; - @JsonProperty("Price") - private int Price; - @JsonProperty("ReleaseDate") - private LocalDateTime ReleaseDate; - @JsonProperty("EndDate") - private LocalDateTime EndDate; - @JsonProperty("SortOrder") - private int SortOrder; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/PvListEntry.java b/src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/PvListEntry.java deleted file mode 100644 index 8cb7acaa..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/PvListEntry.java +++ /dev/null @@ -1,25 +0,0 @@ -package icu.samnyan.aqua.api.model.req.sega.diva; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class PvListEntry { - @JsonProperty("PVID") - private int PVID; - @JsonProperty("Version") - private int Version; - @JsonProperty("Edition") - private int Edition; - @JsonProperty("AdvDemo") - private DatePair AdvDemo; - @JsonProperty("Playable") - private DatePair Playable; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/PvListRequest.java b/src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/PvListRequest.java deleted file mode 100644 index e89eef73..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/req/sega/diva/PvListRequest.java +++ /dev/null @@ -1,28 +0,0 @@ -package icu.samnyan.aqua.api.model.req.sega.diva; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.time.LocalDateTime; -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class PvListRequest { - @JsonProperty("CreationDate") - private LocalDateTime CreationDate; - @JsonProperty("Easy") - private List Easy; - @JsonProperty("Normal") - private List Normal; - @JsonProperty("Hard") - private List Hard; - @JsonProperty("Extreme") - private List Extreme; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/ProfileResp.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/ProfileResp.java deleted file mode 100644 index fdc98db1..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/ProfileResp.java +++ /dev/null @@ -1,60 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.chuni.v1; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.time.LocalDateTime; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class ProfileResp { - - private String userName; - - private int level; - - private String exp; - - private long point; - - private long totalPoint; - - private int playCount; - - private int playerRating; - - private int highestRating; - - private int nameplateId; - - private int frameId; - - private int characterId; - - private int trophyId; - - private int totalMapNum; - - private long totalHiScore; - - private long totalBasicHighScore; - - private long totalAdvancedHighScore; - - private long totalExpertHighScore; - - private long totalMasterHighScore; - - private int friendCount; - - private LocalDateTime firstPlayDate; - - private LocalDateTime lastPlayDate; - - private int courseClass; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/RatingItem.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/RatingItem.java deleted file mode 100644 index 38b9860e..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/RatingItem.java +++ /dev/null @@ -1,28 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.chuni.v1; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class RatingItem { - - private int musicId; - - private String musicName; - - private String artistName; - - private int level; - - private int score; - - private int ratingBase; - - private int rating; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/RecentResp.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/RecentResp.java deleted file mode 100644 index c2479ea4..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/RecentResp.java +++ /dev/null @@ -1,87 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.chuni.v1; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.time.LocalDateTime; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class RecentResp { - - private LocalDateTime playDate; - - private LocalDateTime userPlayDate; - - private int musicId; - - private int level; - - private int customId; - - private int playedCustom1; - - private int playedCustom2; - - private int playedCustom3; - - private int track; - - private int score; - - private int rank; - - private int maxCombo; - - private int maxChain; - - private int rateTap; - - private int rateHold; - - private int rateSlide; - - private int rateAir; - - private int rateFlick; - - private int judgeGuilty; - - private int judgeAttack; - - private int judgeJustice; - - private int judgeCritical; - - private int playerRating; - - @JsonProperty("isNewRecord") - private boolean isNewRecord; - - @JsonProperty("isFullCombo") - private boolean isFullCombo; - - private int fullChainKind; - - @JsonProperty("isAllJustice") - private boolean isAllJustice; - - private int characterId; - - private int skillId; - - private int playKind; - - @JsonProperty("isClear") - private boolean isClear; - - private int skillLevel; - - private int skillEffect; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/ScoreResp.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/ScoreResp.java deleted file mode 100644 index 42865443..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/ScoreResp.java +++ /dev/null @@ -1,48 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.chuni.v1; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class ScoreResp { - - private int musicId; - - private int level; - - private int playCount; - - private int scoreMax; - - private int resRequestCount; - - private int resAcceptCount; - - private int resSuccessCount; - - private int missCount; - - private int maxComboCount; - - @JsonProperty("isFullCombo") - private boolean isFullCombo; - - @JsonProperty("isAllJustice") - private boolean isAllJustice; - - @JsonProperty("isSuccess") - private boolean isSuccess; - - private int fullChain; - - private int maxChain; - - private int scoreRank; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/external/ChuniDataExport.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/external/ChuniDataExport.java deleted file mode 100644 index 97c92304..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/external/ChuniDataExport.java +++ /dev/null @@ -1,32 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.chuni.v1.external; - -import icu.samnyan.aqua.sega.chunithm.model.userdata.*; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -/** - * This class is use for exporting CHUNITHM profile - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class ChuniDataExport { - private String gameId = "SDBT"; - private UserData userData; - private List userActivityList; - private List userCharacterList; - private List userChargeList; - private List userCourseList; - private UserDataEx userDataEx; - private List userDuelList; - private UserGameOption userGameOption; - private UserGameOptionEx userGameOptionEx; - private List userItemList; - private List userMapList; - private List userMusicDetailList; - private List userPlaylogList; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/external/ChuniDataImport.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/external/ChuniDataImport.java deleted file mode 100644 index 227b2c19..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/external/ChuniDataImport.java +++ /dev/null @@ -1,32 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.chuni.v1.external; - -import icu.samnyan.aqua.sega.chunithm.model.userdata.*; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -/** - * This class is use for importing CHUNITHM profile - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class ChuniDataImport { - private String gameId; - private ExternalUserData userData; - private List userActivityList; - private List userCharacterList; - private List userChargeList; - private List userCourseList; - private UserDataEx userDataEx; - private List userDuelList; - private UserGameOption userGameOption; - private UserGameOptionEx userGameOptionEx; - private List userItemList; - private List userMapList; - private List userMusicDetailList; - private List userPlaylogList; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/external/ExternalUserData.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/external/ExternalUserData.java deleted file mode 100644 index ee3f8645..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v1/external/ExternalUserData.java +++ /dev/null @@ -1,119 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.chuni.v1.external; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.time.LocalDateTime; - -/** - * This class is use for exported UserData class. Using access code as identifier - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class ExternalUserData { - - // Access Code of the card - private String accessCode; - - private String userName; - - private LocalDateTime lastLoginDate; - - private boolean isWebJoin; - - private String webLimitDate; - - private int level; - - private int reincarnationNum; - - private String exp; - - private long point; - - private long totalPoint; - - private int playCount; - - private int multiPlayCount; - - private int multiWinCount; - - private int requestResCount; - - private int acceptResCount; - - private int successResCount; - - private int playerRating; - - private int highestRating; - - private int nameplateId; - - private int frameId; - - private int characterId; - - private int trophyId; - - private int playedTutorialBit; - - private int firstTutorialCancelNum; - - private int masterTutorialCancelNum; - - private int totalRepertoireCount; - - private int totalMapNum; - - private long totalHiScore; - - private long totalBasicHighScore; - - private long totalAdvancedHighScore; - - private long totalExpertHighScore; - - private long totalMasterHighScore; - - private LocalDateTime eventWatchedDate; - - private int friendCount; - - @JsonProperty("isMaimai") - private boolean isMaimai; - - private String firstGameId; - - private String firstRomVersion; - - private String firstDataVersion; - - private LocalDateTime firstPlayDate; - - private String lastGameId; - - private String lastRomVersion; - - private String lastDataVersion; - - private LocalDateTime lastPlayDate; - - private int lastPlaceId; - - private String lastPlaceName; - - private String lastRegionId; - - private String lastRegionName; - - private String lastAllNetId; - - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private String lastClientId; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/RatingItem.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/RatingItem.java deleted file mode 100644 index 55b25917..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/RatingItem.java +++ /dev/null @@ -1,28 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.chuni.v2; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class RatingItem { - - private int musicId; - - private String musicName; - - private String artistName; - - private int level; - - private int score; - - private int ratingBase; - - private int rating; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/RecentResp.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/RecentResp.java deleted file mode 100644 index 58213aae..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/RecentResp.java +++ /dev/null @@ -1,89 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.chuni.v2; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.time.LocalDateTime; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class RecentResp { - - private LocalDateTime playDate; - - private LocalDateTime userPlayDate; - - private int musicId; - - private int level; - - private int customId; - - private int playedCustom1; - - private int playedCustom2; - - private int playedCustom3; - - private int track; - - private int score; - - private int rank; - - private int maxCombo; - - private int maxChain; - - private int rateTap; - - private int rateHold; - - private int rateSlide; - - private int rateAir; - - private int rateFlick; - - private int judgeGuilty; - - private int judgeAttack; - - private int judgeJustice; - - private int judgeCritical; - - private int judgeHeaven; - - private int playerRating; - - @JsonProperty("isNewRecord") - private boolean isNewRecord; - - @JsonProperty("isFullCombo") - private boolean isFullCombo; - - private int fullChainKind; - - @JsonProperty("isAllJustice") - private boolean isAllJustice; - - private int characterId; - - private int skillId; - - private int playKind; - - @JsonProperty("isClear") - private boolean isClear; - - private int skillLevel; - - private int skillEffect; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/ScoreResp.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/ScoreResp.java deleted file mode 100644 index 1156f004..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/ScoreResp.java +++ /dev/null @@ -1,48 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.chuni.v2; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class ScoreResp { - - private int musicId; - - private int level; - - private int playCount; - - private int scoreMax; - - private int resRequestCount; - - private int resAcceptCount; - - private int resSuccessCount; - - private int missCount; - - private int maxComboCount; - - @JsonProperty("isFullCombo") - private boolean isFullCombo; - - @JsonProperty("isAllJustice") - private boolean isAllJustice; - - @JsonProperty("isSuccess") - private boolean isSuccess; - - private int fullChain; - - private int maxChain; - - private int scoreRank; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/Chu3DataExport.kt b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/Chu3DataExport.kt deleted file mode 100644 index cdde0ac4..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/Chu3DataExport.kt +++ /dev/null @@ -1,23 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.chuni.v2.external - -import icu.samnyan.aqua.net.games.IExportClass -import icu.samnyan.aqua.sega.chusan.model.userdata.* - -data class Chu3DataExport( - override var gameId: String = "SDHD", - override var userData: Chu3UserData, - var userGameOption: UserGameOption, - var userActivityList: List, - var userCharacterList: List, - var userChargeList: List, - var userCourseList: List, - var userDuelList: List, - var userItemList: List, - var userMapList: List, - var userMusicDetailList: List, - var userPlaylogList: List, -): IExportClass { - constructor() : this("SDHD", - Chu3UserData(), UserGameOption(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList()) -} - diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/ChuniDataImport.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/ChuniDataImport.java deleted file mode 100644 index 83e7b21f..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/ChuniDataImport.java +++ /dev/null @@ -1,30 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.chuni.v2.external; - -import icu.samnyan.aqua.sega.chusan.model.userdata.*; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -/** - * This class is use for importing chusan profile - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class ChuniDataImport { - private String gameId; - private ExternalUserData userData; - private List userActivityList; - private List userCharacterList; - private List userChargeList; - private List userCourseList; - private List userDuelList; - private UserGameOption userGameOption; - private List userItemList; - private List userMapList; - private List userMusicDetailList; - private List userPlaylogList; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/ExternalUserData.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/ExternalUserData.java deleted file mode 100644 index 1c74eea3..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/v2/external/ExternalUserData.java +++ /dev/null @@ -1,119 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.chuni.v2.external; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.time.LocalDateTime; - -/** - * This class is use for exported UserData class. Using access code as identifier - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class ExternalUserData { - - // Access Code of the card - private String accessCode; - - private String userName; - - private LocalDateTime lastLoginDate; - - private boolean isWebJoin; - - private String webLimitDate; - - private int level; - - private int reincarnationNum; - - private String exp; - - private long point; - - private long totalPoint; - - private int playCount; - - private int multiPlayCount; - - private int multiWinCount; - - private int requestResCount; - - private int acceptResCount; - - private int successResCount; - - private int playerRating; - - private int highestRating; - - private int nameplateId; - - private int frameId; - - private int characterId; - - private int trophyId; - - private int playedTutorialBit; - - private int firstTutorialCancelNum; - - private int masterTutorialCancelNum; - - private int totalRepertoireCount; - - private int totalMapNum; - - private long totalHiScore; - - private long totalBasicHighScore; - - private long totalAdvancedHighScore; - - private long totalExpertHighScore; - - private long totalMasterHighScore; - - private LocalDateTime eventWatchedDate; - - private int friendCount; - - @JsonProperty("isMaimai") - private boolean isMaimai; - - private String firstGameId; - - private String firstRomVersion; - - private String firstDataVersion; - - private LocalDateTime firstPlayDate; - - private String lastGameId; - - private String lastRomVersion; - - private String lastDataVersion; - - private LocalDateTime lastPlayDate; - - private int lastPlaceId; - - private String lastPlaceName; - - private String lastRegionId; - - private String lastRegionName; - - private String lastAllNetId; - - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private String lastClientId; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/diva/PlayerInfo.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/diva/PlayerInfo.java deleted file mode 100644 index 420a6050..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/diva/PlayerInfo.java +++ /dev/null @@ -1,13 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.diva; - -import lombok.Data; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -public class PlayerInfo { - private long pdId; - private String playerName; - private int vocaloidPoints; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/diva/PvRankRecord.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/diva/PvRankRecord.java deleted file mode 100644 index 3a59d8d4..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/diva/PvRankRecord.java +++ /dev/null @@ -1,16 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.diva; - -import lombok.AllArgsConstructor; -import lombok.Data; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -public class PvRankRecord { - private long id; - private String playerName; - private int score; - private int attain; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/PhotoResp.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/PhotoResp.java deleted file mode 100644 index a57b97f7..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/PhotoResp.java +++ /dev/null @@ -1,15 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.maimai2; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class PhotoResp { - private int imageIndex; - private int totalImage; - private String fileName; - private String divData; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/ProfileResp.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/ProfileResp.java deleted file mode 100644 index d4386c9a..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/ProfileResp.java +++ /dev/null @@ -1,62 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.maimai2; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class ProfileResp { - - private String userName; - private int iconId; - private int plateId; - private int titleId; - private int partnerId; - private int frameId; - private int selectMapId; - private int totalAwake; - private int gradeRating; - private int musicRating; - private int playerRating; - private int highestRating; - private int gradeRank; - private int classRank; - private int courseRank; - private List charaSlot; - private List charaLockSlot; - private int playCount; - private String eventWatchedDate; - private String lastRomVersion; - private String lastDataVersion; - private String lastPlayDate; - private int playVsCount; - private int playSyncCount; - private int winCount; - private int helpCount; - private int comboCount; - private long totalDeluxscore; - private long totalBasicDeluxscore; - private long totalAdvancedDeluxscore; - private long totalExpertDeluxscore; - private long totalMasterDeluxscore; - private long totalReMasterDeluxscore; - private int totalSync; - private int totalBasicSync; - private int totalAdvancedSync; - private int totalExpertSync; - private int totalMasterSync; - private int totalReMasterSync; - private long totalAchievement; - private long totalBasicAchievement; - private long totalAdvancedAchievement; - private long totalExpertAchievement; - private long totalMasterAchievement; - private long totalReMasterAchievement; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/external/ExternalUserData.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/external/ExternalUserData.java deleted file mode 100644 index 291b74d3..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/external/ExternalUserData.java +++ /dev/null @@ -1,96 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.maimai2.external; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -public class ExternalUserData implements Serializable { - - private String accessCode; - private String userName; - private int isNetMember; - private int iconId; - private int plateId; - private int titleId; - private int partnerId; - private int frameId; - private int selectMapId; - private int totalAwake; - private int gradeRating; - private int musicRating; - private int playerRating; - private int highestRating; - private int gradeRank; - private int classRank; - private int courseRank; - private List charaSlot; - private List charaLockSlot; - private long contentBit; - private int playCount; - private String eventWatchedDate; - private String lastGameId; - private String lastRomVersion; - private String lastDataVersion; - private String lastLoginDate; - private String lastPlayDate; - private int lastPlayCredit; - private int lastPlayMode; - private int lastPlaceId; - private String lastPlaceName; - private int lastAllNetId; - private int lastRegionId; - private String lastRegionName; - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private String lastClientId; - private String lastCountryCode; - private int lastSelectEMoney; - private int lastSelectTicket; - private int lastSelectCourse; - private int lastCountCourse; - private String firstGameId; - private String firstRomVersion; - private String firstDataVersion; - private String firstPlayDate; - private String compatibleCmVersion; - private String dailyBonusDate; - private String dailyCourseBonusDate; - private String lastPairLoginDate; - private String lastTrialPlayDate; - private int playVsCount; - private int playSyncCount; - private int winCount; - private int helpCount; - private int comboCount; - private long totalDeluxscore; - private long totalBasicDeluxscore; - private long totalAdvancedDeluxscore; - private long totalExpertDeluxscore; - private long totalMasterDeluxscore; - private long totalReMasterDeluxscore; - private int totalSync; - private int totalBasicSync; - private int totalAdvancedSync; - private int totalExpertSync; - private int totalMasterSync; - private int totalReMasterSync; - private long totalAchievement; - private long totalBasicAchievement; - private long totalAdvancedAchievement; - private long totalExpertAchievement; - private long totalMasterAchievement; - private long totalReMasterAchievement; - private long playerOldRating; - private long playerNewRating; - private int banState; - private long dateTime; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/external/Maimai2DataExport.kt b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/external/Maimai2DataExport.kt deleted file mode 100644 index 4fac9419..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/external/Maimai2DataExport.kt +++ /dev/null @@ -1,30 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.maimai2.external - -import icu.samnyan.aqua.net.games.IExportClass -import icu.samnyan.aqua.sega.maimai2.model.userdata.* - -data class Maimai2DataExport( - override var userData: Mai2UserDetail, - var userExtend: Mai2UserExtend, - var userOption: Mai2UserOption, - var userUdemae: Mai2UserUdemae, - var mapEncountNpcList: List, - var userActList: List, - var userCharacterList: List, - var userChargeList: List, - var userCourseList: List, - var userFavoriteList: List, - var userFriendSeasonRankingList: List, - var userGeneralDataList: List, - var userItemList: List, - var userLoginBonusList: List, - var userMapList: List, - var userMusicDetailList: List, - var userPlaylogList: List, - override var gameId: String = "SDEZ", -): IExportClass { - constructor() : this(Mai2UserDetail(), Mai2UserExtend(), Mai2UserOption(), Mai2UserUdemae(), - mutableListOf(), mutableListOf(), mutableListOf(), mutableListOf(), mutableListOf(), mutableListOf(), - mutableListOf(), mutableListOf(), mutableListOf(), mutableListOf(), mutableListOf(), mutableListOf(), - mutableListOf()) -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/external/Maimai2DataImport.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/external/Maimai2DataImport.java deleted file mode 100644 index 271c5b5d..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/maimai2/external/Maimai2DataImport.java +++ /dev/null @@ -1,37 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.maimai2.external; - -import icu.samnyan.aqua.sega.maimai2.model.userdata.*; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class Maimai2DataImport { - private String gameId; - private ExternalUserData userData; - private Mai2UserExtend userExtend; - private Mai2UserOption userOption; - private List mapEncountNpcList; - private List userActList; - private List userCharacterList; - private List userChargeList; - private List userCourseList; - private List userFavoriteList; - private List userFriendSeasonRankingList; - private List userGeneralDataList; - private List userGhostList; - private List userItemList; - private List userLoginBonusList; - private List userMapList; - private List userMusicDetailList; - private List userPlaylogList; - private List userRateList; - private Mai2UserUdemae userUdemae; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/ProfileResp.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/ProfileResp.java deleted file mode 100644 index 61a7a705..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/ProfileResp.java +++ /dev/null @@ -1,69 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.ongeki; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class ProfileResp { - - private String userName; - - private int level; - - private long exp; - - private long point; - - private long totalPoint; - - private int playCount; - - private int jewelCount; - - private int totalJewelCount; - - private int playerRating; - - private int highestRating; - - private int battlePoint; - - private int nameplateId; - - private int trophyId; - - private int cardId; - - private int characterId; - - private long sumTechHighScore; - - private long sumTechBasicHighScore; - - private long sumTechAdvancedHighScore; - - private long sumTechExpertHighScore; - - private long sumTechMasterHighScore; - - private long sumTechLunaticHighScore; - - private long sumBattleHighScore; - - private long sumBattleBasicHighScore; - - private long sumBattleAdvancedHighScore; - - private long sumBattleExpertHighScore; - - private long sumBattleMasterHighScore; - - private long sumBattleLunaticHighScore; - -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/ExternalUserData.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/ExternalUserData.java deleted file mode 100644 index 1212e44e..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/ExternalUserData.java +++ /dev/null @@ -1,137 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.ongeki.external; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -public class ExternalUserData implements Serializable { - - private String accessCode; - - private String userName; - - private int level; - - private int reincarnationNum; - - private long exp; - - private long point; - - private long totalPoint; - - private int playCount; - - private int jewelCount; - - private int totalJewelCount; - - private int medalCount; - - private int playerRating; - - private int highestRating; - - private int battlePoint; - - private int bestBattlePoint; - - private int overDamageBattlePoint; - - private int nameplateId; - - private int trophyId; - - private int cardId; - - private int characterId; - - private int tabSetting; - - private int tabSortSetting; - - private int cardCategorySetting; - - private int cardSortSetting; - - private int rivalScoreCategorySetting; - - private int playedTutorialBit; - - private int firstTutorialCancelNum; - - private long sumTechHighScore; - - private long sumTechBasicHighScore; - - private long sumTechAdvancedHighScore; - - private long sumTechExpertHighScore; - - private long sumTechMasterHighScore; - - private long sumTechLunaticHighScore; - - private long sumBattleHighScore; - - private long sumBattleBasicHighScore; - - private long sumBattleAdvancedHighScore; - - private long sumBattleExpertHighScore; - - private long sumBattleMasterHighScore; - - private long sumBattleLunaticHighScore; - - private String eventWatchedDate; - - private String cmEventWatchedDate; - - private String firstGameId; - - private String firstRomVersion; - - private String firstDataVersion; - - private String firstPlayDate; - - private String lastGameId; - - private String lastRomVersion; - - private String lastDataVersion; - - private String compatibleCmVersion; - - private String lastPlayDate; - - private int lastPlaceId; - - private String lastPlaceName; - - private int lastRegionId; - - private String lastRegionName; - - private int lastAllNetId; - - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private String lastClientId; - - private int lastUsedDeckId; - - private int lastPlayMusicLevel; - - private int lastEmoneyBrand; - -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/OngekiDataExport.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/OngekiDataExport.java deleted file mode 100644 index c37d90d7..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/OngekiDataExport.java +++ /dev/null @@ -1,44 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.ongeki.external; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.*; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class OngekiDataExport { - private String gameId = "SDDT"; - private UserData userData; - private List userActivityList; - private List userCardList; - private List userChapterList; - private List userCharacterList; - private List userDeckList; - private List userEventPointList; - private List userGeneralDataList; - private List userItemList; - private List userLoginBonusList; - private List userMissionPointList; - private List userMusicDetailList; - private List userMusicItemList; - private UserOption userOption; - private List userPlaylogList; - private List userStoryList; - private List userTrainingRoomList; - private List userTradeItemList; - private List userEventMusicList; - private List userTechEventList; - private List userKopList; - private List userMemoryChapterList; - private List userScenarioList; - private List userBossList; - private List userTechCountList; - private List userRivalList; -} diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/OngekiDataImport.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/OngekiDataImport.java deleted file mode 100644 index 1b2b241d..00000000 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/OngekiDataImport.java +++ /dev/null @@ -1,44 +0,0 @@ -package icu.samnyan.aqua.api.model.resp.sega.ongeki.external; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.*; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class OngekiDataImport { - private String gameId; - private ExternalUserData userData; - private List userActivityList; - private List userCardList; - private List userChapterList; - private List userCharacterList; - private List userDeckList; - private List userEventPointList; - private List userGeneralDataList; - private List userItemList; - private List userLoginBonusList; - private List userMissionPointList; - private List userMusicDetailList; - private List userMusicItemList; - private UserOption userOption; - private List userPlaylogList; - private List userStoryList; - private List userTrainingRoomList; - private List userTradeItemList; - private List userEventMusicList; - private List userTechEventList; - private List userKopList; - private List userMemoryChapterList; - private List userScenarioList; - private List userBossList; - private List userTechCountList; - private List userRivalList; -} diff --git a/src/main/java/icu/samnyan/aqua/api/util/ApiMapper.java b/src/main/java/icu/samnyan/aqua/api/util/ApiMapper.java deleted file mode 100644 index 2a9588d4..00000000 --- a/src/main/java/icu/samnyan/aqua/api/util/ApiMapper.java +++ /dev/null @@ -1,35 +0,0 @@ -package icu.samnyan.aqua.api.util; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.module.SimpleModule; -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import org.springframework.stereotype.Component; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component -public class ApiMapper { - - private final ObjectMapper mapper; - - public ApiMapper() { - mapper = new ObjectMapper(); - mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); - SimpleModule module = new SimpleModule(); - mapper.registerModule(new JavaTimeModule()); - mapper.registerModule(module); - } - - public String write(Object o) throws JsonProcessingException { - return mapper.writeValueAsString(o); - - } - - public T convert(Object object, TypeReference toClass) { - return mapper.convertValue(object, toClass); - } -} From d34b34b5bd0e9422ee5b0a9bffdaef16cdfcd2cc Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 17:20:50 -0400 Subject: [PATCH 03/39] [F] Fix export --- .../samnyan/aqua/net/games/chu3/Chu3Import.kt | 23 +++++++++++++-- .../samnyan/aqua/net/games/mai2/Mai2Import.kt | 28 ++++++++++++++++++- 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/net/games/chu3/Chu3Import.kt b/src/main/java/icu/samnyan/aqua/net/games/chu3/Chu3Import.kt index 107f78ce..be9a45eb 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/chu3/Chu3Import.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/chu3/Chu3Import.kt @@ -3,7 +3,7 @@ package icu.samnyan.aqua.net.games.chu3 import ext.API import ext.returns import ext.vars -import icu.samnyan.aqua.api.model.resp.sega.chuni.v2.external.Chu3DataExport +import icu.samnyan.aqua.net.games.IExportClass import icu.samnyan.aqua.net.games.ImportClass import icu.samnyan.aqua.net.games.ImportController import icu.samnyan.aqua.sega.chusan.model.Chu3Repos @@ -48,4 +48,23 @@ class Chu3Import( ) { override fun createEmpty() = Chu3DataExport() override val userDataRepo = repos.userData -} \ No newline at end of file +} + + +data class Chu3DataExport( + override var gameId: String = "SDHD", + override var userData: Chu3UserData, + var userGameOption: UserGameOption, + var userActivityList: List, + var userCharacterList: List, + var userChargeList: List, + var userCourseList: List, + var userDuelList: List, + var userItemList: List, + var userMapList: List, + var userMusicDetailList: List, + var userPlaylogList: List, +): IExportClass { + constructor() : this("SDHD", + Chu3UserData(), UserGameOption(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList(), ArrayList()) +} diff --git a/src/main/java/icu/samnyan/aqua/net/games/mai2/Mai2Import.kt b/src/main/java/icu/samnyan/aqua/net/games/mai2/Mai2Import.kt index 284fb273..ee5dc278 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/mai2/Mai2Import.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/mai2/Mai2Import.kt @@ -3,7 +3,7 @@ package icu.samnyan.aqua.net.games.mai2 import ext.API import ext.returns import ext.vars -import icu.samnyan.aqua.api.model.resp.sega.maimai2.external.Maimai2DataExport +import icu.samnyan.aqua.net.games.IExportClass import icu.samnyan.aqua.net.games.ImportClass import icu.samnyan.aqua.net.games.ImportController import icu.samnyan.aqua.sega.maimai2.model.Mai2Repos @@ -49,3 +49,29 @@ class Mai2Import( override fun createEmpty() = Maimai2DataExport() override val userDataRepo = repos.userData } + +data class Maimai2DataExport( + override var userData: Mai2UserDetail, + var userExtend: Mai2UserExtend, + var userOption: Mai2UserOption, + var userUdemae: Mai2UserUdemae, + var mapEncountNpcList: List, + var userActList: List, + var userCharacterList: List, + var userChargeList: List, + var userCourseList: List, + var userFavoriteList: List, + var userFriendSeasonRankingList: List, + var userGeneralDataList: List, + var userItemList: List, + var userLoginBonusList: List, + var userMapList: List, + var userMusicDetailList: List, + var userPlaylogList: List, + override var gameId: String = "SDEZ", +): IExportClass { + constructor() : this(Mai2UserDetail(), Mai2UserExtend(), Mai2UserOption(), Mai2UserUdemae(), + mutableListOf(), mutableListOf(), mutableListOf(), mutableListOf(), mutableListOf(), mutableListOf(), + mutableListOf(), mutableListOf(), mutableListOf(), mutableListOf(), mutableListOf(), mutableListOf(), + mutableListOf()) +} \ No newline at end of file From fb75cd1addef838d6fbe642a6a887f47660b5a8e Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 17:28:59 -0400 Subject: [PATCH 04/39] [O] Ongeki: Refactor User repos --- .../aqua/sega/ongeki/dao/userdata/All.kt | 314 ++++++++++++++++++ .../dao/userdata/UserActivityRepository.java | 26 -- .../dao/userdata/UserBossRepository.java | 25 -- .../dao/userdata/UserCardRepository.java | 30 -- .../dao/userdata/UserChapterRepository.java | 24 -- .../dao/userdata/UserCharacterRepository.java | 28 -- .../ongeki/dao/userdata/UserDataRepository.kt | 18 - .../dao/userdata/UserDeckRepository.java | 24 -- .../userdata/UserEventMusicRepository.java | 24 -- .../userdata/UserEventPointRepository.java | 29 -- .../userdata/UserGeneralDataRepository.java | 26 -- .../dao/userdata/UserItemRepository.java | 30 -- .../dao/userdata/UserKopRepository.java | 24 -- .../userdata/UserLoginBonusRepository.java | 22 -- .../userdata/UserMemoryChapterRepository.java | 24 -- .../userdata/UserMissionPointRepository.java | 24 -- .../userdata/UserMusicDetailRepository.java | 31 -- .../dao/userdata/UserMusicItemRepository.java | 28 -- .../dao/userdata/UserOptionRepository.java | 23 -- .../dao/userdata/UserPlaylogRepository.kt | 24 -- .../dao/userdata/UserRivalDataRepository.java | 24 -- .../dao/userdata/UserScenarioRepository.java | 25 -- .../dao/userdata/UserStoryRepository.java | 24 -- .../dao/userdata/UserTechCountRepository.java | 25 -- .../dao/userdata/UserTechEventRepository.java | 24 -- .../dao/userdata/UserTradeItemRepository.java | 26 -- .../userdata/UserTrainingRoomRepository.java | 24 -- 27 files changed, 314 insertions(+), 656 deletions(-) create mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/All.kt delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserActivityRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserBossRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCardRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserChapterRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCharacterRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDataRepository.kt delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDeckRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventMusicRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventPointRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserGeneralDataRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserItemRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserKopRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserLoginBonusRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMemoryChapterRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMissionPointRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicDetailRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicItemRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserOptionRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserPlaylogRepository.kt delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserRivalDataRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserScenarioRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserStoryRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTechCountRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTechEventRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTradeItemRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTrainingRoomRepository.java diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/All.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/All.kt new file mode 100644 index 00000000..7be07968 --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/All.kt @@ -0,0 +1,314 @@ +@file:Suppress("FunctionName") + +import icu.samnyan.aqua.net.games.GenericPlaylogRepo +import icu.samnyan.aqua.net.games.GenericUserDataRepo +import icu.samnyan.aqua.net.games.GenericUserMusicRepo +import icu.samnyan.aqua.sega.general.model.Card +import icu.samnyan.aqua.sega.ongeki.model.userdata.* +import jakarta.transaction.Transactional +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.stereotype.Repository +import java.util.* + +@Repository("OngekiUserActivityRepository") +interface UserActivityRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUserAndKindAndActivityId(userData: UserData, kind: Int, activityId: Int): Optional + + fun findByUser_Card_ExtIdAndKindOrderBySortNumberDesc(userId: Long, kind: Int): List + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserBossRepository") +interface UserBossRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUserAndMusicId(user: UserData, musicId: Int): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserCardRepository") +interface UserCardRepository : JpaRepository { + fun findByUserAndCardId(userData: UserData, cardId: Int): Optional + + fun findByUser_Card_ExtIdAndCardId(userId: Long, cardId: Int): Optional + + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserChapterRepository") +interface UserChapterRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUserAndChapterId(userData: UserData, chapterId: Int): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserCharacterRepository") +interface UserCharacterRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page + + fun findByUserAndCharacterId(userData: UserData, characterId: Int): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserDataRepository") +interface UserDataRepository : GenericUserDataRepo { + fun findByCard_ExtIdIn(userIds: Collection): List + + @Transactional + fun deleteByCard(card: Card) +} + +@Repository("OngekiUserDeckRepository") +interface UserDeckRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUserAndDeckId(userData: UserData, deckId: Int): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserEventMusicRepository") +interface UserEventMusicRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUserAndEventIdAndTypeAndMusicId( + userData: UserData, + eventId: Int, + type: Int, + musicId: Int + ): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserEventPointRepository") +interface UserEventPointRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUserAndEventId(userData: UserData, eventId: Int): Optional + + @Transactional + fun deleteByUser(user: UserData) + + //@Query(value = "SELECT rank from (SELECT user_id , DENSE_RANK() OVER (ORDER BY point DESC) as rank from ongeki_user_event_point where event_id = :eventId) where user_id == :userId limit 1", nativeQuery = true) + @Query("SELECT COUNT(u)+1 FROM OngekiUserEventPoint u WHERE u.eventId = :eventId AND u.point > (SELECT u2.point FROM OngekiUserEventPoint u2 WHERE u2.user.id = :userId AND u2.eventId = :eventId)") + fun calculateRankByUserAndEventId(userId: Long, eventId: Int): Int +} + +@Repository("OngekiUserGeneralDataRepository") +interface UserGeneralDataRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUserAndPropertyKey(user: UserData, key: String): Optional + + fun findByUser_Card_ExtIdAndPropertyKey(userId: Long, key: String): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserItemRepository") +interface UserItemRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page + + fun findByUserAndItemKindAndItemId(userData: UserData, itemKind: Int, itemId: Int): Optional + + fun findByUser_Card_ExtIdAndItemKind(userId: Long, kind: Int, page: Pageable): Page + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserKopRepository") +interface UserKopRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUserAndKopIdAndAreaId(userData: UserData, kopId: Int, areaId: Int): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +interface UserLoginBonusRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUserAndBonusId(userData: UserData, bonusId: Int): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserMemoryChapterRepository") +interface UserMemoryChapterRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUserAndChapterId(userData: UserData, chapterId: Int): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserMissionPointRepository") +interface UserMissionPointRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUserAndEventId(userData: UserData, eventId: Int): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserMusicDetailRepository") +interface UserMusicDetailRepository : JpaRepository, + GenericUserMusicRepo { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page + + fun findByUser_Card_ExtIdAndMusicId(userId: Long, id: Int): List + + fun findByUserAndMusicIdAndLevel(userData: UserData, musicId: Int, level: Int): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserMusicItemRepository") +interface UserMusicItemRepository : JpaRepository { + fun findByUser_Card_ExtId(aimeId: Long): List + + fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page + + fun findByUserAndMusicId(userData: UserData, musicId: Int): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserOptionRepository") +interface UserOptionRepository : JpaRepository { + fun findByUser(userData: UserData): Optional + + fun findByUser_Card_ExtId(userId: Long): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserPlaylogRepository") +interface UserPlaylogRepository : GenericPlaylogRepo { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page + + fun findByUser_Card_ExtIdAndMusicIdAndLevel(userId: Long, musicId: Int, level: Int): List + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserRivalDataRepository") +interface UserRivalDataRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + @Transactional + fun removeByUser_Card_ExtIdAndRivalUserExtId(userId: Long, rivalUserId: Long) + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserScenarioRepository") +interface UserScenarioRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUserAndScenarioId(user: UserData, scenarioId: Int): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserStoryRepository") +interface UserStoryRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUserAndStoryId(userData: UserData, storyId: Int): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserTechCountRepository") +interface UserTechCountRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUserAndLevelId(user: UserData, levelId: Int): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserTechEventRepository") +interface UserTechEventRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUserAndEventId(userData: UserData, eventId: Int): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserTradeItemRepository") +interface UserTradeItemRepository : JpaRepository { + fun findByUser_Card_ExtId(userId: Long): List + + fun findByUser_Card_ExtIdAndChapterIdGreaterThanEqualAndChapterIdLessThanEqual( + userId: Long, + startChapterId: Int, + endChapterId: Int + ): List + + fun findByUserAndChapterIdAndTradeItemId( + userData: UserData, + chapterId: Int, + tradeItemId: Int + ): Optional + + @Transactional + fun deleteByUser(user: UserData) +} + +@Repository("OngekiUserTrainingRoomRepository") +interface UserTrainingRoomRepository : JpaRepository { + fun findByUserAndRoomId(user: UserData, roomId: Int): Optional + + fun findByUser_Card_ExtId(userId: Long): List + + @Transactional + fun deleteByUser(user: UserData) +} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserActivityRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserActivityRepository.java deleted file mode 100644 index 54a175c6..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserActivityRepository.java +++ /dev/null @@ -1,26 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserActivity; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserActivityRepository") -public interface UserActivityRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Optional findByUserAndKindAndActivityId(UserData userData, int kind, int activityId); - - List findByUser_Card_ExtIdAndKindOrderBySortNumberDesc(long userId, int kind); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserBossRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserBossRepository.java deleted file mode 100644 index 075e55e3..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserBossRepository.java +++ /dev/null @@ -1,25 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserBoss; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserBossRepository") -public interface UserBossRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Optional findByUserAndMusicId(UserData user, int musicId); - - @Transactional - void deleteByUser(UserData user); - -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCardRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCardRepository.java deleted file mode 100644 index 00f84862..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCardRepository.java +++ /dev/null @@ -1,30 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserCard; -import icu.samnyan.aqua.sega.ongeki.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 org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserCardRepository") -public interface UserCardRepository extends JpaRepository { - - Optional findByUserAndCardId(UserData userData, int cardId); - - Optional findByUser_Card_ExtIdAndCardId(long userId, int cardId); - - List findByUser_Card_ExtId(long userId); - - Page findByUser_Card_ExtId(long userId, Pageable page); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserChapterRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserChapterRepository.java deleted file mode 100644 index d402892f..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserChapterRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserChapter; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserChapterRepository") -public interface UserChapterRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Optional findByUserAndChapterId(UserData userData, int chapterId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCharacterRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCharacterRepository.java deleted file mode 100644 index cff20bf1..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCharacterRepository.java +++ /dev/null @@ -1,28 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserCharacter; -import icu.samnyan.aqua.sega.ongeki.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 org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserCharacterRepository") -public interface UserCharacterRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Page findByUser_Card_ExtId(long userId, Pageable page); - - Optional findByUserAndCharacterId(UserData userData, int characterId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDataRepository.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDataRepository.kt deleted file mode 100644 index bea50ec3..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDataRepository.kt +++ /dev/null @@ -1,18 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata - -import icu.samnyan.aqua.net.games.GenericUserDataRepo -import icu.samnyan.aqua.sega.general.model.Card -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData -import org.springframework.stereotype.Repository -import org.springframework.transaction.annotation.Transactional - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserDataRepository") -interface UserDataRepository : GenericUserDataRepo { - fun findByCard_ExtIdIn(userIds: Collection): List - - @Transactional - fun deleteByCard(card: Card) -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDeckRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDeckRepository.java deleted file mode 100644 index fb2f685c..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDeckRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserDeck; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserDeckRepository") -public interface UserDeckRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Optional findByUserAndDeckId(UserData userData, int deckId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventMusicRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventMusicRepository.java deleted file mode 100644 index 7d2a8f14..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventMusicRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventMusic; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserEventMusicRepository") -public interface UserEventMusicRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Optional findByUserAndEventIdAndTypeAndMusicId(UserData userData, int eventId, int type, int musicId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventPointRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventPointRepository.java deleted file mode 100644 index 8ff702fe..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventPointRepository.java +++ /dev/null @@ -1,29 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventPoint; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserEventPointRepository") -public interface UserEventPointRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Optional findByUserAndEventId(UserData userData, int eventId); - - @Transactional - void deleteByUser(UserData user); - - //@Query(value = "SELECT rank from (SELECT user_id , DENSE_RANK() OVER (ORDER BY point DESC) as rank from ongeki_user_event_point where event_id = :eventId) where user_id == :userId limit 1", nativeQuery = true) - @Query("SELECT COUNT(u)+1 FROM OngekiUserEventPoint u WHERE u.eventId = :eventId AND u.point > (SELECT u2.point FROM OngekiUserEventPoint u2 WHERE u2.user.id = :userId AND u2.eventId = :eventId)") - int calculateRankByUserAndEventId(long userId, int eventId); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserGeneralDataRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserGeneralDataRepository.java deleted file mode 100644 index fde67e7a..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserGeneralDataRepository.java +++ /dev/null @@ -1,26 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserGeneralData; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserGeneralDataRepository") -public interface UserGeneralDataRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Optional findByUserAndPropertyKey(UserData user, String key); - - Optional findByUser_Card_ExtIdAndPropertyKey(long userId, String key); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserItemRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserItemRepository.java deleted file mode 100644 index 7edf34eb..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserItemRepository.java +++ /dev/null @@ -1,30 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.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 org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserItemRepository") -public interface UserItemRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Page findByUser_Card_ExtId(long userId, Pageable page); - - Optional findByUserAndItemKindAndItemId(UserData userData, int itemKind, int itemId); - - Page findByUser_Card_ExtIdAndItemKind(long userId, int kind, Pageable page); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserKopRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserKopRepository.java deleted file mode 100644 index 812b1e22..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserKopRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserKop; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserKopRepository") -public interface UserKopRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Optional findByUserAndKopIdAndAreaId(UserData userData, int kopId, int areaId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserLoginBonusRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserLoginBonusRepository.java deleted file mode 100644 index c5da0dd5..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserLoginBonusRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserLoginBonus; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -public interface UserLoginBonusRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Optional findByUserAndBonusId(UserData userData, int bonusId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMemoryChapterRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMemoryChapterRepository.java deleted file mode 100644 index a8624c45..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMemoryChapterRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMemoryChapter; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserMemoryChapterRepository") -public interface UserMemoryChapterRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Optional findByUserAndChapterId(UserData userData, int chapterId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMissionPointRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMissionPointRepository.java deleted file mode 100644 index 29fdb73f..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMissionPointRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMissionPoint; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserMissionPointRepository") -public interface UserMissionPointRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Optional findByUserAndEventId(UserData userData, int eventId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicDetailRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicDetailRepository.java deleted file mode 100644 index 3216606b..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicDetailRepository.java +++ /dev/null @@ -1,31 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.net.games.GenericUserMusicRepo; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.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 org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserMusicDetailRepository") -public interface UserMusicDetailRepository extends JpaRepository, GenericUserMusicRepo { - - List findByUser_Card_ExtId(long userId); - - Page findByUser_Card_ExtId(long userId, Pageable page); - - List findByUser_Card_ExtIdAndMusicId(long userId, int id); - - Optional findByUserAndMusicIdAndLevel(UserData userData, int musicId, int level); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicItemRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicItemRepository.java deleted file mode 100644 index e199d921..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicItemRepository.java +++ /dev/null @@ -1,28 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMusicItem; -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 org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserMusicItemRepository") -public interface UserMusicItemRepository extends JpaRepository { - - List findByUser_Card_ExtId(long aimeId); - - Page findByUser_Card_ExtId(long userId, Pageable page); - - Optional findByUserAndMusicId(UserData userData, int musicId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserOptionRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserOptionRepository.java deleted file mode 100644 index 370e2c9c..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserOptionRepository.java +++ /dev/null @@ -1,23 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserOption; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserOptionRepository") -public interface UserOptionRepository extends JpaRepository { - - Optional findByUser(UserData userData); - - Optional findByUser_Card_ExtId(long userId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserPlaylogRepository.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserPlaylogRepository.kt deleted file mode 100644 index f3579a99..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserPlaylogRepository.kt +++ /dev/null @@ -1,24 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata - -import icu.samnyan.aqua.net.games.GenericPlaylogRepo -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserPlaylog -import org.springframework.data.domain.Page -import org.springframework.data.domain.Pageable -import org.springframework.stereotype.Repository -import org.springframework.transaction.annotation.Transactional - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserPlaylogRepository") -interface UserPlaylogRepository : GenericPlaylogRepo { - fun findByUser_Card_ExtId(userId: Long): List - - fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page - - fun findByUser_Card_ExtIdAndMusicIdAndLevel(userId: Long, musicId: Int, level: Int): List - - @Transactional - fun deleteByUser(user: UserData) -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserRivalDataRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserRivalDataRepository.java deleted file mode 100644 index 91b4e0e8..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserRivalDataRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserRival; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; - -/** - * @author dp (privateamusement@protonmail.com) - */ -@Repository("OngekiUserRivalDataRepository") -public interface UserRivalDataRepository extends JpaRepository { - List findByUser_Card_ExtId(long userId); - - @Transactional - void removeByUser_Card_ExtIdAndRivalUserExtId(long userId,long rivalUserId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserScenarioRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserScenarioRepository.java deleted file mode 100644 index c9f3afc0..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserScenarioRepository.java +++ /dev/null @@ -1,25 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserScenario; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserScenarioRepository") -public interface UserScenarioRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Optional findByUserAndScenarioId(UserData user, int scenarioId); - - @Transactional - void deleteByUser(UserData user); - -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserStoryRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserStoryRepository.java deleted file mode 100644 index 9d57b5f6..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserStoryRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserStory; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserStoryRepository") -public interface UserStoryRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Optional findByUserAndStoryId(UserData userData, int storyId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTechCountRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTechCountRepository.java deleted file mode 100644 index 7a620fac..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTechCountRepository.java +++ /dev/null @@ -1,25 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechCount; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserTechCountRepository") -public interface UserTechCountRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Optional findByUserAndLevelId(UserData user, int levelId); - - @Transactional - void deleteByUser(UserData user); - -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTechEventRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTechEventRepository.java deleted file mode 100644 index e23bf221..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTechEventRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechEvent; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserTechEventRepository") -public interface UserTechEventRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - Optional findByUserAndEventId(UserData userData, int eventId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTradeItemRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTradeItemRepository.java deleted file mode 100644 index 9d0c28e8..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTradeItemRepository.java +++ /dev/null @@ -1,26 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTradeItem; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserTradeItemRepository") -public interface UserTradeItemRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - List findByUser_Card_ExtIdAndChapterIdGreaterThanEqualAndChapterIdLessThanEqual(long userId, int startChapterId, int endChapterId); - - Optional findByUserAndChapterIdAndTradeItemId(UserData userData, int chapterId, int tradeItemId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTrainingRoomRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTrainingRoomRepository.java deleted file mode 100644 index e4e9ce46..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTrainingRoomRepository.java +++ /dev/null @@ -1,24 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTrainingRoom; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserTrainingRoomRepository") -public interface UserTrainingRoomRepository extends JpaRepository { - - Optional findByUserAndRoomId(UserData user, int roomId); - - List findByUser_Card_ExtId(long userId); - - @Transactional - void deleteByUser(UserData user); -} From cbf1e2709aab6584d99c721ec310be94d3e98459 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 17:29:46 -0400 Subject: [PATCH 05/39] [F] Fix namespace --- src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/All.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/All.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/All.kt index 7be07968..704648e8 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/All.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/All.kt @@ -1,4 +1,5 @@ @file:Suppress("FunctionName") +package icu.samnyan.aqua.sega.ongeki.dao.userdata import icu.samnyan.aqua.net.games.GenericPlaylogRepo import icu.samnyan.aqua.net.games.GenericUserDataRepo From d43a0dd862027aca25595bbc5c2d3970b6df9e58 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 17:32:25 -0400 Subject: [PATCH 06/39] [O] Ongeki: Merge repos file --- .../icu/samnyan/aqua/net/CardController.kt | 3 +- .../samnyan/aqua/net/games/ongeki/Ongeki.kt | 8 ++--- .../{dao/userdata/All.kt => OngekiRepos.kt} | 28 +++++++++++++++++- .../aqua/sega/ongeki/dao/gamedata/All.kt | 29 ------------------- .../impl/GetClientBookkeepingHandler.java | 2 +- .../impl/GetClientTestmodeHandler.java | 2 +- .../handler/impl/GetGameEventHandler.java | 2 +- .../impl/GetGameMusicReleaseStateHandler.java | 2 +- .../handler/impl/GetGamePointHandler.java | 2 +- .../handler/impl/GetGamePresentHandler.java | 2 +- .../handler/impl/GetGameRewardHandler.java | 2 +- .../handler/impl/GetUserActivityHandler.java | 2 +- .../handler/impl/GetUserBossHandler.java | 2 +- .../handler/impl/GetUserCardHandler.java | 2 +- .../handler/impl/GetUserChapterHandler.java | 2 +- .../handler/impl/GetUserCharacterHandler.java | 2 +- .../handler/impl/GetUserDataHandler.java | 2 +- .../handler/impl/GetUserDeckByKeyHandler.java | 2 +- .../impl/GetUserEventMusicHandler.java | 2 +- .../impl/GetUserEventPointHandler.java | 2 +- .../impl/GetUserEventRankingHandler.java | 2 +- .../ongeki/handler/impl/GetUserItemHandler.kt | 4 +-- .../handler/impl/GetUserKopHandler.java | 2 +- .../impl/GetUserLoginBonusHandler.java | 2 +- .../impl/GetUserMemoryChapterHandler.java | 2 +- .../impl/GetUserMissionPointHandler.java | 2 +- .../handler/impl/GetUserMusicHandler.java | 2 +- .../handler/impl/GetUserMusicItemHandler.java | 2 +- .../handler/impl/GetUserOptionHandler.java | 2 +- .../handler/impl/GetUserPreviewHandler.java | 4 +-- .../impl/GetUserRecentRatingHandler.java | 4 +-- .../handler/impl/GetUserRivalDataHandler.java | 4 +-- .../handler/impl/GetUserRivalHandler.java | 3 +- .../impl/GetUserRivalMusicHandler.java | 2 +- .../handler/impl/GetUserScenarioHandler.java | 2 +- .../handler/impl/GetUserStoryHandler.java | 2 +- .../handler/impl/GetUserTechCountHandler.java | 2 +- .../handler/impl/GetUserTechEventHandler.java | 2 +- .../impl/GetUserTechEventRankingHandler.java | 2 +- .../handler/impl/GetUserTradeItemHandler.java | 2 +- .../impl/GetUserTrainingRoomByKeyHandler.java | 2 +- .../handler/impl/UpsertUserAllHandler.java | 2 +- 42 files changed, 75 insertions(+), 78 deletions(-) rename src/main/java/icu/samnyan/aqua/sega/ongeki/{dao/userdata/All.kt => OngekiRepos.kt} (92%) delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/All.kt diff --git a/src/main/java/icu/samnyan/aqua/net/CardController.kt b/src/main/java/icu/samnyan/aqua/net/CardController.kt index d9dc22a7..696f552d 100644 --- a/src/main/java/icu/samnyan/aqua/net/CardController.kt +++ b/src/main/java/icu/samnyan/aqua/net/CardController.kt @@ -12,6 +12,7 @@ import icu.samnyan.aqua.sega.general.dao.CardRepository import icu.samnyan.aqua.sega.general.model.Card import icu.samnyan.aqua.sega.general.service.CardService import icu.samnyan.aqua.sega.maimai2.model.Mai2UserDataRepo +import icu.samnyan.aqua.sega.ongeki.UserDataRepository import icu.samnyan.aqua.sega.wacca.model.db.WcUserRepo import jakarta.persistence.EntityManager import org.springframework.scheduling.annotation.Scheduled @@ -176,7 +177,7 @@ class CardGameService( val maimai2: Mai2UserDataRepo, val chusan: Chu3UserDataRepo, val wacca: WcUserRepo, - val ongeki: icu.samnyan.aqua.sega.ongeki.dao.userdata.UserDataRepository, + val ongeki: UserDataRepository, val diva: icu.samnyan.aqua.sega.diva.dao.userdata.PlayerProfileRepository, val safety: AquaNetSafetyService, val cardRepo: CardRepository, diff --git a/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt b/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt index c1f3db9e..4f11aa17 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt @@ -4,10 +4,10 @@ import ext.API import icu.samnyan.aqua.net.db.AquaUserServices import icu.samnyan.aqua.net.games.* import icu.samnyan.aqua.net.utils.* -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserDataRepository -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserGeneralDataRepository -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserMusicDetailRepository -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserPlaylogRepository +import icu.samnyan.aqua.sega.ongeki.UserDataRepository +import icu.samnyan.aqua.sega.ongeki.UserGeneralDataRepository +import icu.samnyan.aqua.sega.ongeki.UserMusicDetailRepository +import icu.samnyan.aqua.sega.ongeki.UserPlaylogRepository import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData import org.springframework.web.bind.annotation.RestController diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/All.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt similarity index 92% rename from src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/All.kt rename to src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt index 704648e8..c33830d2 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/All.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt @@ -1,6 +1,7 @@ @file:Suppress("FunctionName") -package icu.samnyan.aqua.sega.ongeki.dao.userdata +package icu.samnyan.aqua.sega.ongeki +import icu.samnyan.aqua.sega.ongeki.model.gamedata.* import icu.samnyan.aqua.net.games.GenericPlaylogRepo import icu.samnyan.aqua.net.games.GenericUserDataRepo import icu.samnyan.aqua.net.games.GenericUserMusicRepo @@ -313,3 +314,28 @@ interface UserTrainingRoomRepository : JpaRepository { @Transactional fun deleteByUser(user: UserData) } + + +@Repository("OngekiGameCardRepository") +interface GameCardRepository : JpaRepository + +@Repository("OngekiGameCharaRepository") +interface GameCharaRepository : JpaRepository + +@Repository("OngekiGameEventRepository") +interface GameEventRepository : JpaRepository + +@Repository("OngekiGameMusicRepository") +interface GameMusicRepository : JpaRepository + +@Repository("OngekiGamePointRepository") +interface GamePointRepository : JpaRepository + +@Repository("OngekiGamePresentRepository") +interface GamePresentRepository : JpaRepository + +@Repository("OngekiGameRewardRepository") +interface GameRewardRepository : JpaRepository + +@Repository("OngekiGameSkillRepository") +interface GameSkillRepository : JpaRepository diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/All.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/All.kt deleted file mode 100644 index fdcc2eaa..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/gamedata/All.kt +++ /dev/null @@ -1,29 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.gamedata - -import icu.samnyan.aqua.sega.ongeki.model.gamedata.* -import org.springframework.data.jpa.repository.JpaRepository -import org.springframework.stereotype.Repository - -@Repository("OngekiGameCardRepository") -interface GameCardRepository : JpaRepository - -@Repository("OngekiGameCharaRepository") -interface GameCharaRepository : JpaRepository - -@Repository("OngekiGameEventRepository") -interface GameEventRepository : JpaRepository - -@Repository("OngekiGameMusicRepository") -interface GameMusicRepository : JpaRepository - -@Repository("OngekiGamePointRepository") -interface GamePointRepository : JpaRepository - -@Repository("OngekiGamePresentRepository") -interface GamePresentRepository : JpaRepository - -@Repository("OngekiGameRewardRepository") -interface GameRewardRepository : JpaRepository - -@Repository("OngekiGameSkillRepository") -interface GameSkillRepository : JpaRepository diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientBookkeepingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientBookkeepingHandler.java index 798ee191..b7888c37 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientBookkeepingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientBookkeepingHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserKopRepository; +import icu.samnyan.aqua.sega.ongeki.UserKopRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientTestmodeHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientTestmodeHandler.java index b4d8b7eb..841b4741 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientTestmodeHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientTestmodeHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserKopRepository; +import icu.samnyan.aqua.sega.ongeki.UserKopRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java index f79d4877..ec916b5b 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.gamedata.GameEventRepository; +import icu.samnyan.aqua.sega.ongeki.GameEventRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.gamedata.GameEvent; import icu.samnyan.aqua.sega.ongeki.model.response.data.GameEventItem; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMusicReleaseStateHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMusicReleaseStateHandler.java index 9ff2da1d..a01f0211 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMusicReleaseStateHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMusicReleaseStateHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserKopRepository; +import icu.samnyan.aqua.sega.ongeki.UserKopRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java index 448dfa89..2c6f3e77 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.gamedata.GamePointRepository; +import icu.samnyan.aqua.sega.ongeki.GamePointRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.gamedata.GamePoint; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java index b31a079d..21e1275f 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.gamedata.GamePresentRepository; +import icu.samnyan.aqua.sega.ongeki.GamePresentRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.gamedata.GamePresent; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java index 1f0c62b7..ac12da3f 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.gamedata.GameRewardRepository; +import icu.samnyan.aqua.sega.ongeki.GameRewardRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.gamedata.GameReward; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java index f88da819..0569ace1 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserActivityRepository; +import icu.samnyan.aqua.sega.ongeki.UserActivityRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserActivity; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java index 7dbee91c..6092ee56 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserBossRepository; +import icu.samnyan.aqua.sega.ongeki.UserBossRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserBoss; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java index f270b753..242a0242 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserCardRepository; +import icu.samnyan.aqua.sega.ongeki.UserCardRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserCard; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java index 0c6729f1..92b87e80 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserChapterRepository; +import icu.samnyan.aqua.sega.ongeki.UserChapterRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserChapter; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java index 926645a0..10aaf415 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserCharacterRepository; +import icu.samnyan.aqua.sega.ongeki.UserCharacterRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserCharacter; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java index 759e9449..726ef1e7 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserDataRepository; +import icu.samnyan.aqua.sega.ongeki.UserDataRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java index ce70c182..d9291fc5 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserDeckRepository; +import icu.samnyan.aqua.sega.ongeki.UserDeckRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserDeck; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java index 075ca4eb..dc6f8860 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserEventMusicRepository; +import icu.samnyan.aqua.sega.ongeki.UserEventMusicRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventMusic; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java index f1b4c2fb..7cc64e62 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserEventPointRepository; +import icu.samnyan.aqua.sega.ongeki.UserEventPointRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventPoint; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java index 48089233..580cf1e6 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserEventPointRepository; +import icu.samnyan.aqua.sega.ongeki.UserEventPointRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.data.UserEventRankingItem; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventPoint; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt index 14b67ee8..c7a70ea2 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt @@ -2,8 +2,8 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl import ext.* import icu.samnyan.aqua.sega.general.BaseHandler -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserDataRepository -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserItemRepository +import icu.samnyan.aqua.sega.ongeki.UserDataRepository +import icu.samnyan.aqua.sega.ongeki.UserItemRepository import icu.samnyan.aqua.sega.ongeki.model.common.ItemType import icu.samnyan.aqua.sega.ongeki.model.userdata.UserItem import icu.samnyan.aqua.sega.util.jackson.BasicMapper diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java index d65c87ec..04e259ac 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserKopRepository; +import icu.samnyan.aqua.sega.ongeki.UserKopRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserKop; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java index 011b26df..4de59c35 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserLoginBonusRepository; +import icu.samnyan.aqua.sega.ongeki.UserLoginBonusRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserLoginBonus; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java index 6f7ddfed..ce03ebda 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserMemoryChapterRepository; +import icu.samnyan.aqua.sega.ongeki.UserMemoryChapterRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMemoryChapter; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java index 6a08c105..f8a16038 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserMissionPointRepository; +import icu.samnyan.aqua.sega.ongeki.UserMissionPointRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMissionPoint; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java index 5fd0fd46..08ef4e8e 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserMusicDetailRepository; +import icu.samnyan.aqua.sega.ongeki.UserMusicDetailRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.data.UserMusicListItem; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMusicDetail; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java index 8e5f5434..ac9cfb2a 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserMusicItemRepository; +import icu.samnyan.aqua.sega.ongeki.UserMusicItemRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMusicItem; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java index d646a5ff..cf1b0dea 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserOptionRepository; +import icu.samnyan.aqua.sega.ongeki.UserOptionRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserOption; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java index e189bd3a..2c2e0074 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java @@ -1,8 +1,8 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserDataRepository; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserOptionRepository; +import icu.samnyan.aqua.sega.ongeki.UserDataRepository; +import icu.samnyan.aqua.sega.ongeki.UserOptionRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.GetUserPreviewResp; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java index 9ca1413a..cd4f97c1 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java @@ -2,8 +2,8 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.general.model.response.UserRecentRating; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserGeneralDataRepository; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserPlaylogRepository; +import icu.samnyan.aqua.sega.ongeki.UserGeneralDataRepository; +import icu.samnyan.aqua.sega.ongeki.UserPlaylogRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserGeneralData; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserPlaylog; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java index 9fdd7f9e..16ac4ae1 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java @@ -1,8 +1,8 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserDataRepository; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserRivalDataRepository; +import icu.samnyan.aqua.sega.ongeki.UserDataRepository; +import icu.samnyan.aqua.sega.ongeki.UserRivalDataRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.data.UserRivalData; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalHandler.java index 5c310858..9f62273c 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserRivalDataRepository; +import icu.samnyan.aqua.sega.ongeki.UserRivalDataRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; @@ -10,7 +10,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; /** diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java index 59fa525a..0e62c00b 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserMusicDetailRepository; +import icu.samnyan.aqua.sega.ongeki.UserMusicDetailRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.data.UserRivalMusic; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java index a8aa1e2e..6ad285cf 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserScenarioRepository; +import icu.samnyan.aqua.sega.ongeki.UserScenarioRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserScenario; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java index f5d473ff..c67e817c 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserStoryRepository; +import icu.samnyan.aqua.sega.ongeki.UserStoryRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserStory; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java index 305f7acb..7b2bf359 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserTechCountRepository; +import icu.samnyan.aqua.sega.ongeki.UserTechCountRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechCount; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java index 274bf162..f008a2fb 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserTechEventRepository; +import icu.samnyan.aqua.sega.ongeki.UserTechEventRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechEvent; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java index 45ff4364..2a566a29 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserTechEventRepository; +import icu.samnyan.aqua.sega.ongeki.UserTechEventRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.data.UserTechEventRankingItem; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechEvent; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java index a607fa45..66557ca5 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserTradeItemRepository; +import icu.samnyan.aqua.sega.ongeki.UserTradeItemRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTradeItem; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java index 6d2f5a66..50803732 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserTrainingRoomRepository; +import icu.samnyan.aqua.sega.ongeki.UserTrainingRoomRepository; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTrainingRoom; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java index e4342a08..570af834 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.general.model.Card; import icu.samnyan.aqua.sega.general.model.response.UserRecentRating; import icu.samnyan.aqua.sega.general.service.CardService; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.*; +import icu.samnyan.aqua.sega.ongeki.*; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.request.UpsertUserAll; import icu.samnyan.aqua.sega.ongeki.model.response.CodeResp; From fdfdf66fa3ab9bd9e41ee9919665a7a45d0d97da Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 17:33:46 -0400 Subject: [PATCH 07/39] [O] Ongeki: Remove unused repo functions --- .../samnyan/aqua/sega/ongeki/OngekiRepos.kt | 87 ------------------- 1 file changed, 87 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt index c33830d2..bf1c947b 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt @@ -22,9 +22,6 @@ interface UserActivityRepository : JpaRepository { fun findByUserAndKindAndActivityId(userData: UserData, kind: Int, activityId: Int): Optional fun findByUser_Card_ExtIdAndKindOrderBySortNumberDesc(userId: Long, kind: Int): List - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserBossRepository") @@ -32,23 +29,15 @@ interface UserBossRepository : JpaRepository { fun findByUser_Card_ExtId(userId: Long): List fun findByUserAndMusicId(user: UserData, musicId: Int): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserCardRepository") interface UserCardRepository : JpaRepository { fun findByUserAndCardId(userData: UserData, cardId: Int): Optional - fun findByUser_Card_ExtIdAndCardId(userId: Long, cardId: Int): Optional - fun findByUser_Card_ExtId(userId: Long): List fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserChapterRepository") @@ -56,9 +45,6 @@ interface UserChapterRepository : JpaRepository { fun findByUser_Card_ExtId(userId: Long): List fun findByUserAndChapterId(userData: UserData, chapterId: Int): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserCharacterRepository") @@ -68,17 +54,11 @@ interface UserCharacterRepository : JpaRepository { fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page fun findByUserAndCharacterId(userData: UserData, characterId: Int): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserDataRepository") interface UserDataRepository : GenericUserDataRepo { fun findByCard_ExtIdIn(userIds: Collection): List - - @Transactional - fun deleteByCard(card: Card) } @Repository("OngekiUserDeckRepository") @@ -86,9 +66,6 @@ interface UserDeckRepository : JpaRepository { fun findByUser_Card_ExtId(userId: Long): List fun findByUserAndDeckId(userData: UserData, deckId: Int): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserEventMusicRepository") @@ -101,9 +78,6 @@ interface UserEventMusicRepository : JpaRepository { type: Int, musicId: Int ): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserEventPointRepository") @@ -112,9 +86,6 @@ interface UserEventPointRepository : JpaRepository { fun findByUserAndEventId(userData: UserData, eventId: Int): Optional - @Transactional - fun deleteByUser(user: UserData) - //@Query(value = "SELECT rank from (SELECT user_id , DENSE_RANK() OVER (ORDER BY point DESC) as rank from ongeki_user_event_point where event_id = :eventId) where user_id == :userId limit 1", nativeQuery = true) @Query("SELECT COUNT(u)+1 FROM OngekiUserEventPoint u WHERE u.eventId = :eventId AND u.point > (SELECT u2.point FROM OngekiUserEventPoint u2 WHERE u2.user.id = :userId AND u2.eventId = :eventId)") fun calculateRankByUserAndEventId(userId: Long, eventId: Int): Int @@ -127,9 +98,6 @@ interface UserGeneralDataRepository : JpaRepository { fun findByUserAndPropertyKey(user: UserData, key: String): Optional fun findByUser_Card_ExtIdAndPropertyKey(userId: Long, key: String): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserItemRepository") @@ -141,9 +109,6 @@ interface UserItemRepository : JpaRepository { fun findByUserAndItemKindAndItemId(userData: UserData, itemKind: Int, itemId: Int): Optional fun findByUser_Card_ExtIdAndItemKind(userId: Long, kind: Int, page: Pageable): Page - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserKopRepository") @@ -151,18 +116,12 @@ interface UserKopRepository : JpaRepository { fun findByUser_Card_ExtId(userId: Long): List fun findByUserAndKopIdAndAreaId(userData: UserData, kopId: Int, areaId: Int): Optional - - @Transactional - fun deleteByUser(user: UserData) } interface UserLoginBonusRepository : JpaRepository { fun findByUser_Card_ExtId(userId: Long): List fun findByUserAndBonusId(userData: UserData, bonusId: Int): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserMemoryChapterRepository") @@ -170,9 +129,6 @@ interface UserMemoryChapterRepository : JpaRepository { fun findByUser_Card_ExtId(userId: Long): List fun findByUserAndChapterId(userData: UserData, chapterId: Int): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserMissionPointRepository") @@ -180,9 +136,6 @@ interface UserMissionPointRepository : JpaRepository { fun findByUser_Card_ExtId(userId: Long): List fun findByUserAndEventId(userData: UserData, eventId: Int): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserMusicDetailRepository") @@ -192,12 +145,7 @@ interface UserMusicDetailRepository : JpaRepository, fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page - fun findByUser_Card_ExtIdAndMusicId(userId: Long, id: Int): List - fun findByUserAndMusicIdAndLevel(userData: UserData, musicId: Int, level: Int): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserMusicItemRepository") @@ -207,9 +155,6 @@ interface UserMusicItemRepository : JpaRepository { fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page fun findByUserAndMusicId(userData: UserData, musicId: Int): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserOptionRepository") @@ -217,9 +162,6 @@ interface UserOptionRepository : JpaRepository { fun findByUser(userData: UserData): Optional fun findByUser_Card_ExtId(userId: Long): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserPlaylogRepository") @@ -227,22 +169,11 @@ interface UserPlaylogRepository : GenericPlaylogRepo { fun findByUser_Card_ExtId(userId: Long): List fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page - - fun findByUser_Card_ExtIdAndMusicIdAndLevel(userId: Long, musicId: Int, level: Int): List - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserRivalDataRepository") interface UserRivalDataRepository : JpaRepository { fun findByUser_Card_ExtId(userId: Long): List - - @Transactional - fun removeByUser_Card_ExtIdAndRivalUserExtId(userId: Long, rivalUserId: Long) - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserScenarioRepository") @@ -250,9 +181,6 @@ interface UserScenarioRepository : JpaRepository { fun findByUser_Card_ExtId(userId: Long): List fun findByUserAndScenarioId(user: UserData, scenarioId: Int): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserStoryRepository") @@ -260,9 +188,6 @@ interface UserStoryRepository : JpaRepository { fun findByUser_Card_ExtId(userId: Long): List fun findByUserAndStoryId(userData: UserData, storyId: Int): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserTechCountRepository") @@ -270,9 +195,6 @@ interface UserTechCountRepository : JpaRepository { fun findByUser_Card_ExtId(userId: Long): List fun findByUserAndLevelId(user: UserData, levelId: Int): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserTechEventRepository") @@ -280,9 +202,6 @@ interface UserTechEventRepository : JpaRepository { fun findByUser_Card_ExtId(userId: Long): List fun findByUserAndEventId(userData: UserData, eventId: Int): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserTradeItemRepository") @@ -300,9 +219,6 @@ interface UserTradeItemRepository : JpaRepository { chapterId: Int, tradeItemId: Int ): Optional - - @Transactional - fun deleteByUser(user: UserData) } @Repository("OngekiUserTrainingRoomRepository") @@ -310,9 +226,6 @@ interface UserTrainingRoomRepository : JpaRepository { fun findByUserAndRoomId(user: UserData, roomId: Int): Optional fun findByUser_Card_ExtId(userId: Long): List - - @Transactional - fun deleteByUser(user: UserData) } From 73281d131628d1ac001b48feb028d859f9c9c3e0 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 17:40:36 -0400 Subject: [PATCH 08/39] [O] Ongeki: Generalize user repos --- .../samnyan/aqua/sega/ongeki/OngekiRepos.kt | 166 ++++++------------ .../handler/impl/GetUserOptionHandler.java | 2 +- .../handler/impl/GetUserPreviewHandler.java | 2 +- .../handler/impl/UpsertUserAllHandler.java | 2 +- 4 files changed, 57 insertions(+), 115 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt index bf1c947b..c447f501 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt @@ -1,59 +1,26 @@ @file:Suppress("FunctionName") package icu.samnyan.aqua.sega.ongeki -import icu.samnyan.aqua.sega.ongeki.model.gamedata.* import icu.samnyan.aqua.net.games.GenericPlaylogRepo import icu.samnyan.aqua.net.games.GenericUserDataRepo import icu.samnyan.aqua.net.games.GenericUserMusicRepo -import icu.samnyan.aqua.sega.general.model.Card +import icu.samnyan.aqua.net.games.IUserRepo +import icu.samnyan.aqua.sega.ongeki.model.gamedata.* import icu.samnyan.aqua.sega.ongeki.model.userdata.* -import jakarta.transaction.Transactional 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.* -@Repository("OngekiUserActivityRepository") -interface UserActivityRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - fun findByUserAndKindAndActivityId(userData: UserData, kind: Int, activityId: Int): Optional - - fun findByUser_Card_ExtIdAndKindOrderBySortNumberDesc(userId: Long, kind: Int): List -} - -@Repository("OngekiUserBossRepository") -interface UserBossRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - - fun findByUserAndMusicId(user: UserData, musicId: Int): Optional -} - -@Repository("OngekiUserCardRepository") -interface UserCardRepository : JpaRepository { - fun findByUserAndCardId(userData: UserData, cardId: Int): Optional - - fun findByUser_Card_ExtId(userId: Long): List - - fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page -} - -@Repository("OngekiUserChapterRepository") -interface UserChapterRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - - fun findByUserAndChapterId(userData: UserData, chapterId: Int): Optional -} - -@Repository("OngekiUserCharacterRepository") -interface UserCharacterRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - - fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page - - fun findByUserAndCharacterId(userData: UserData, characterId: Int): Optional +@NoRepositoryBean +interface OngekiUserLinked : IUserRepo { + fun findByUser_Card_ExtId(extId: Long): List + fun findSingleByUser_Card_ExtId(extId: Long): Optional + fun findByUser_Card_ExtId(extId: Long, pageable: Pageable): Page } @Repository("OngekiUserDataRepository") @@ -61,17 +28,39 @@ interface UserDataRepository : GenericUserDataRepo { fun findByCard_ExtIdIn(userIds: Collection): List } -@Repository("OngekiUserDeckRepository") -interface UserDeckRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List +@Repository("OngekiUserActivityRepository") +interface UserActivityRepository : OngekiUserLinked { + fun findByUserAndKindAndActivityId(userData: UserData, kind: Int, activityId: Int): Optional + fun findByUser_Card_ExtIdAndKindOrderBySortNumberDesc(userId: Long, kind: Int): List +} +@Repository("OngekiUserBossRepository") +interface UserBossRepository : OngekiUserLinked { + fun findByUserAndMusicId(user: UserData, musicId: Int): Optional +} + +@Repository("OngekiUserCardRepository") +interface UserCardRepository : OngekiUserLinked { + fun findByUserAndCardId(userData: UserData, cardId: Int): Optional +} + +@Repository("OngekiUserChapterRepository") +interface UserChapterRepository : OngekiUserLinked { + fun findByUserAndChapterId(userData: UserData, chapterId: Int): Optional +} + +@Repository("OngekiUserCharacterRepository") +interface UserCharacterRepository : OngekiUserLinked { + fun findByUserAndCharacterId(userData: UserData, characterId: Int): Optional +} + +@Repository("OngekiUserDeckRepository") +interface UserDeckRepository : OngekiUserLinked { fun findByUserAndDeckId(userData: UserData, deckId: Int): Optional } @Repository("OngekiUserEventMusicRepository") -interface UserEventMusicRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - +interface UserEventMusicRepository : OngekiUserLinked { fun findByUserAndEventIdAndTypeAndMusicId( userData: UserData, eventId: Int, @@ -81,9 +70,7 @@ interface UserEventMusicRepository : JpaRepository { } @Repository("OngekiUserEventPointRepository") -interface UserEventPointRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - +interface UserEventPointRepository : OngekiUserLinked { fun findByUserAndEventId(userData: UserData, eventId: Int): Optional //@Query(value = "SELECT rank from (SELECT user_id , DENSE_RANK() OVER (ORDER BY point DESC) as rank from ongeki_user_event_point where event_id = :eventId) where user_id == :userId limit 1", nativeQuery = true) @@ -92,122 +79,79 @@ interface UserEventPointRepository : JpaRepository { } @Repository("OngekiUserGeneralDataRepository") -interface UserGeneralDataRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - +interface UserGeneralDataRepository : OngekiUserLinked { fun findByUserAndPropertyKey(user: UserData, key: String): Optional fun findByUser_Card_ExtIdAndPropertyKey(userId: Long, key: String): Optional } @Repository("OngekiUserItemRepository") -interface UserItemRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - - fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page - +interface UserItemRepository : OngekiUserLinked { fun findByUserAndItemKindAndItemId(userData: UserData, itemKind: Int, itemId: Int): Optional fun findByUser_Card_ExtIdAndItemKind(userId: Long, kind: Int, page: Pageable): Page } @Repository("OngekiUserKopRepository") -interface UserKopRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - +interface UserKopRepository : OngekiUserLinked { fun findByUserAndKopIdAndAreaId(userData: UserData, kopId: Int, areaId: Int): Optional } -interface UserLoginBonusRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - +interface UserLoginBonusRepository : OngekiUserLinked { fun findByUserAndBonusId(userData: UserData, bonusId: Int): Optional } @Repository("OngekiUserMemoryChapterRepository") -interface UserMemoryChapterRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - +interface UserMemoryChapterRepository : OngekiUserLinked { fun findByUserAndChapterId(userData: UserData, chapterId: Int): Optional } @Repository("OngekiUserMissionPointRepository") -interface UserMissionPointRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - +interface UserMissionPointRepository : OngekiUserLinked { fun findByUserAndEventId(userData: UserData, eventId: Int): Optional } @Repository("OngekiUserMusicDetailRepository") -interface UserMusicDetailRepository : JpaRepository, - GenericUserMusicRepo { - fun findByUser_Card_ExtId(userId: Long): List - - fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page - +interface UserMusicDetailRepository : OngekiUserLinked, GenericUserMusicRepo { fun findByUserAndMusicIdAndLevel(userData: UserData, musicId: Int, level: Int): Optional } @Repository("OngekiUserMusicItemRepository") -interface UserMusicItemRepository : JpaRepository { - fun findByUser_Card_ExtId(aimeId: Long): List - - fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page - +interface UserMusicItemRepository : OngekiUserLinked { fun findByUserAndMusicId(userData: UserData, musicId: Int): Optional } @Repository("OngekiUserOptionRepository") -interface UserOptionRepository : JpaRepository { - fun findByUser(userData: UserData): Optional - - fun findByUser_Card_ExtId(userId: Long): Optional -} +interface UserOptionRepository : OngekiUserLinked @Repository("OngekiUserPlaylogRepository") -interface UserPlaylogRepository : GenericPlaylogRepo { - fun findByUser_Card_ExtId(userId: Long): List - - fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page -} +interface UserPlaylogRepository : OngekiUserLinked, GenericPlaylogRepo @Repository("OngekiUserRivalDataRepository") -interface UserRivalDataRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List -} +interface UserRivalDataRepository : OngekiUserLinked @Repository("OngekiUserScenarioRepository") -interface UserScenarioRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - +interface UserScenarioRepository : OngekiUserLinked { fun findByUserAndScenarioId(user: UserData, scenarioId: Int): Optional } @Repository("OngekiUserStoryRepository") -interface UserStoryRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - +interface UserStoryRepository : OngekiUserLinked { fun findByUserAndStoryId(userData: UserData, storyId: Int): Optional } @Repository("OngekiUserTechCountRepository") -interface UserTechCountRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - +interface UserTechCountRepository : OngekiUserLinked { fun findByUserAndLevelId(user: UserData, levelId: Int): Optional } @Repository("OngekiUserTechEventRepository") -interface UserTechEventRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - +interface UserTechEventRepository : OngekiUserLinked { fun findByUserAndEventId(userData: UserData, eventId: Int): Optional } @Repository("OngekiUserTradeItemRepository") -interface UserTradeItemRepository : JpaRepository { - fun findByUser_Card_ExtId(userId: Long): List - +interface UserTradeItemRepository : OngekiUserLinked { fun findByUser_Card_ExtIdAndChapterIdGreaterThanEqualAndChapterIdLessThanEqual( userId: Long, startChapterId: Int, @@ -222,10 +166,8 @@ interface UserTradeItemRepository : JpaRepository { } @Repository("OngekiUserTrainingRoomRepository") -interface UserTrainingRoomRepository : JpaRepository { +interface UserTrainingRoomRepository : OngekiUserLinked { fun findByUserAndRoomId(user: UserData, roomId: Int): Optional - - fun findByUser_Card_ExtId(userId: Long): List } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java index cf1b0dea..c924fea0 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java @@ -37,7 +37,7 @@ public class GetUserOptionHandler implements BaseHandler { public String handle(Map request) throws JsonProcessingException { long userId = ((Number) request.get("userId")).longValue(); - Optional userOptionOptional = userOptionRepository.findByUser_Card_ExtId(userId); + Optional userOptionOptional = userOptionRepository.findSingleByUser_Card_ExtId(userId); Map resultMap = new LinkedHashMap<>(); resultMap.put("userId", userId); diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java index 2c2e0074..7e452586 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java @@ -81,7 +81,7 @@ public class GetUserPreviewHandler implements BaseHandler { resp.setDispRating(1); resp.setDispBP(1); resp.setHeadphone(0); - userOptionRepository.findByUser(user).ifPresent(x -> { + userOptionRepository.findSingleByUser(user).ifPresent(x -> { resp.setDispPlayerLv(x.getDispPlayerLv()); resp.setDispRating(x.getDispRating()); resp.setDispBP(x.getDispBP()); diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java index 570af834..6634d329 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java @@ -134,7 +134,7 @@ public class UpsertUserAllHandler implements BaseHandler { // UserOption UserOption newUserOption = upsertUserAll.getUserOption().get(0); - Optional userOptionOptional = userOptionRepository.findByUser(newUserData); + Optional userOptionOptional = userOptionRepository.findSingleByUser(newUserData); UserOption userOption = userOptionOptional.orElseGet(() -> new UserOption(newUserData)); newUserOption.setId(userOption.getId()); From 13aabda72a28310fd55bb13d8a75224fb4913d54 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 17:45:52 -0400 Subject: [PATCH 09/39] [O] Ongeki: Rename repos --- .../icu/samnyan/aqua/net/CardController.kt | 4 +- .../samnyan/aqua/net/games/ongeki/Ongeki.kt | 16 +-- .../samnyan/aqua/sega/ongeki/OngekiRepos.kt | 102 ++++++------------ .../impl/GetClientBookkeepingHandler.java | 4 +- .../impl/GetClientTestmodeHandler.java | 4 +- .../handler/impl/GetGameEventHandler.java | 6 +- .../impl/GetGameMusicReleaseStateHandler.java | 4 +- .../handler/impl/GetGamePointHandler.java | 6 +- .../handler/impl/GetGamePresentHandler.java | 6 +- .../handler/impl/GetGameRewardHandler.java | 6 +- .../handler/impl/GetUserActivityHandler.java | 6 +- .../handler/impl/GetUserBossHandler.java | 6 +- .../handler/impl/GetUserCardHandler.java | 6 +- .../handler/impl/GetUserChapterHandler.java | 6 +- .../handler/impl/GetUserCharacterHandler.java | 6 +- .../handler/impl/GetUserDataHandler.java | 6 +- .../handler/impl/GetUserDeckByKeyHandler.java | 6 +- .../impl/GetUserEventMusicHandler.java | 6 +- .../impl/GetUserEventPointHandler.java | 6 +- .../impl/GetUserEventRankingHandler.java | 6 +- .../ongeki/handler/impl/GetUserItemHandler.kt | 8 +- .../handler/impl/GetUserKopHandler.java | 6 +- .../impl/GetUserLoginBonusHandler.java | 6 +- .../impl/GetUserMemoryChapterHandler.java | 6 +- .../impl/GetUserMissionPointHandler.java | 6 +- .../handler/impl/GetUserMusicHandler.java | 6 +- .../handler/impl/GetUserMusicItemHandler.java | 6 +- .../handler/impl/GetUserOptionHandler.java | 6 +- .../handler/impl/GetUserPreviewHandler.java | 10 +- .../impl/GetUserRecentRatingHandler.java | 10 +- .../handler/impl/GetUserRivalDataHandler.java | 10 +- .../handler/impl/GetUserRivalHandler.java | 6 +- .../impl/GetUserRivalMusicHandler.java | 6 +- .../handler/impl/GetUserScenarioHandler.java | 6 +- .../handler/impl/GetUserStoryHandler.java | 6 +- .../handler/impl/GetUserTechCountHandler.java | 6 +- .../handler/impl/GetUserTechEventHandler.java | 6 +- .../impl/GetUserTechEventRankingHandler.java | 6 +- .../handler/impl/GetUserTradeItemHandler.java | 6 +- .../impl/GetUserTrainingRoomByKeyHandler.java | 6 +- .../handler/impl/UpsertUserAllHandler.java | 52 ++++----- 41 files changed, 185 insertions(+), 219 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/net/CardController.kt b/src/main/java/icu/samnyan/aqua/net/CardController.kt index 696f552d..e2a760ab 100644 --- a/src/main/java/icu/samnyan/aqua/net/CardController.kt +++ b/src/main/java/icu/samnyan/aqua/net/CardController.kt @@ -12,7 +12,7 @@ import icu.samnyan.aqua.sega.general.dao.CardRepository import icu.samnyan.aqua.sega.general.model.Card import icu.samnyan.aqua.sega.general.service.CardService import icu.samnyan.aqua.sega.maimai2.model.Mai2UserDataRepo -import icu.samnyan.aqua.sega.ongeki.UserDataRepository +import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo import icu.samnyan.aqua.sega.wacca.model.db.WcUserRepo import jakarta.persistence.EntityManager import org.springframework.scheduling.annotation.Scheduled @@ -177,7 +177,7 @@ class CardGameService( val maimai2: Mai2UserDataRepo, val chusan: Chu3UserDataRepo, val wacca: WcUserRepo, - val ongeki: UserDataRepository, + val ongeki: OgkUserDataRepo, val diva: icu.samnyan.aqua.sega.diva.dao.userdata.PlayerProfileRepository, val safety: AquaNetSafetyService, val cardRepo: CardRepository, diff --git a/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt b/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt index 4f11aa17..dcd613f0 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt @@ -4,10 +4,10 @@ import ext.API import icu.samnyan.aqua.net.db.AquaUserServices import icu.samnyan.aqua.net.games.* import icu.samnyan.aqua.net.utils.* -import icu.samnyan.aqua.sega.ongeki.UserDataRepository -import icu.samnyan.aqua.sega.ongeki.UserGeneralDataRepository -import icu.samnyan.aqua.sega.ongeki.UserMusicDetailRepository -import icu.samnyan.aqua.sega.ongeki.UserPlaylogRepository +import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo +import icu.samnyan.aqua.sega.ongeki.OgkUserGeneralDataRepo +import icu.samnyan.aqua.sega.ongeki.OgkUserMusicDetailRepo +import icu.samnyan.aqua.sega.ongeki.OgkUserPlaylogRepo import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData import org.springframework.web.bind.annotation.RestController @@ -15,10 +15,10 @@ import org.springframework.web.bind.annotation.RestController @API("api/v2/game/ongeki") class Ongeki( override val us: AquaUserServices, - override val playlogRepo: UserPlaylogRepository, - override val userDataRepo: UserDataRepository, - override val userMusicRepo: UserMusicDetailRepository, - val userGeneralDataRepository: UserGeneralDataRepository + override val playlogRepo: OgkUserPlaylogRepo, + override val userDataRepo: OgkUserDataRepo, + override val userMusicRepo: OgkUserMusicDetailRepo, + val userGeneralDataRepository: OgkUserGeneralDataRepo ): GameApiController("ongeki", UserData::class) { override suspend fun trend(username: String) = us.cardByName(username) { card -> findTrend(playlogRepo.findByUser_Card_ExtId(card.extId) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt index c447f501..1b972c70 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt @@ -12,7 +12,6 @@ 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.* @@ -23,44 +22,36 @@ interface OngekiUserLinked : IUserRepo { fun findByUser_Card_ExtId(extId: Long, pageable: Pageable): Page } -@Repository("OngekiUserDataRepository") -interface UserDataRepository : GenericUserDataRepo { +interface OgkUserDataRepo : GenericUserDataRepo { fun findByCard_ExtIdIn(userIds: Collection): List } -@Repository("OngekiUserActivityRepository") -interface UserActivityRepository : OngekiUserLinked { +interface OgkUserActivityRepo : OngekiUserLinked { fun findByUserAndKindAndActivityId(userData: UserData, kind: Int, activityId: Int): Optional fun findByUser_Card_ExtIdAndKindOrderBySortNumberDesc(userId: Long, kind: Int): List } -@Repository("OngekiUserBossRepository") -interface UserBossRepository : OngekiUserLinked { +interface OgkUserBossRepo : OngekiUserLinked { fun findByUserAndMusicId(user: UserData, musicId: Int): Optional } -@Repository("OngekiUserCardRepository") -interface UserCardRepository : OngekiUserLinked { +interface OgkUserCardRepo : OngekiUserLinked { fun findByUserAndCardId(userData: UserData, cardId: Int): Optional } -@Repository("OngekiUserChapterRepository") -interface UserChapterRepository : OngekiUserLinked { +interface OgkUserChapterRepo : OngekiUserLinked { fun findByUserAndChapterId(userData: UserData, chapterId: Int): Optional } -@Repository("OngekiUserCharacterRepository") -interface UserCharacterRepository : OngekiUserLinked { +interface OgkUserCharacterRepo : OngekiUserLinked { fun findByUserAndCharacterId(userData: UserData, characterId: Int): Optional } -@Repository("OngekiUserDeckRepository") -interface UserDeckRepository : OngekiUserLinked { +interface OgkUserDeckRepo : OngekiUserLinked { fun findByUserAndDeckId(userData: UserData, deckId: Int): Optional } -@Repository("OngekiUserEventMusicRepository") -interface UserEventMusicRepository : OngekiUserLinked { +interface OgkUserEventMusicRepo : OngekiUserLinked { fun findByUserAndEventIdAndTypeAndMusicId( userData: UserData, eventId: Int, @@ -69,8 +60,7 @@ interface UserEventMusicRepository : OngekiUserLinked { ): Optional } -@Repository("OngekiUserEventPointRepository") -interface UserEventPointRepository : OngekiUserLinked { +interface OgkUserEventPointRepo : OngekiUserLinked { fun findByUserAndEventId(userData: UserData, eventId: Int): Optional //@Query(value = "SELECT rank from (SELECT user_id , DENSE_RANK() OVER (ORDER BY point DESC) as rank from ongeki_user_event_point where event_id = :eventId) where user_id == :userId limit 1", nativeQuery = true) @@ -78,80 +68,65 @@ interface UserEventPointRepository : OngekiUserLinked { fun calculateRankByUserAndEventId(userId: Long, eventId: Int): Int } -@Repository("OngekiUserGeneralDataRepository") -interface UserGeneralDataRepository : OngekiUserLinked { +interface OgkUserGeneralDataRepo : OngekiUserLinked { fun findByUserAndPropertyKey(user: UserData, key: String): Optional fun findByUser_Card_ExtIdAndPropertyKey(userId: Long, key: String): Optional } -@Repository("OngekiUserItemRepository") -interface UserItemRepository : OngekiUserLinked { +interface OgkUserItemRepo : OngekiUserLinked { fun findByUserAndItemKindAndItemId(userData: UserData, itemKind: Int, itemId: Int): Optional fun findByUser_Card_ExtIdAndItemKind(userId: Long, kind: Int, page: Pageable): Page } -@Repository("OngekiUserKopRepository") -interface UserKopRepository : OngekiUserLinked { +interface OgkUserKopRepo : OngekiUserLinked { fun findByUserAndKopIdAndAreaId(userData: UserData, kopId: Int, areaId: Int): Optional } -interface UserLoginBonusRepository : OngekiUserLinked { +interface OgkUserLoginBonusRepo : OngekiUserLinked { fun findByUserAndBonusId(userData: UserData, bonusId: Int): Optional } -@Repository("OngekiUserMemoryChapterRepository") -interface UserMemoryChapterRepository : OngekiUserLinked { +interface OgkUserMemoryChapterRepo : OngekiUserLinked { fun findByUserAndChapterId(userData: UserData, chapterId: Int): Optional } -@Repository("OngekiUserMissionPointRepository") -interface UserMissionPointRepository : OngekiUserLinked { +interface OgkUserMissionPointRepo : OngekiUserLinked { fun findByUserAndEventId(userData: UserData, eventId: Int): Optional } -@Repository("OngekiUserMusicDetailRepository") -interface UserMusicDetailRepository : OngekiUserLinked, GenericUserMusicRepo { +interface OgkUserMusicDetailRepo : OngekiUserLinked, GenericUserMusicRepo { fun findByUserAndMusicIdAndLevel(userData: UserData, musicId: Int, level: Int): Optional } -@Repository("OngekiUserMusicItemRepository") -interface UserMusicItemRepository : OngekiUserLinked { +interface OgkUserMusicItemRepo : OngekiUserLinked { fun findByUserAndMusicId(userData: UserData, musicId: Int): Optional } -@Repository("OngekiUserOptionRepository") -interface UserOptionRepository : OngekiUserLinked +interface OgkUserOptionRepo : OngekiUserLinked -@Repository("OngekiUserPlaylogRepository") -interface UserPlaylogRepository : OngekiUserLinked, GenericPlaylogRepo +interface OgkUserPlaylogRepo : OngekiUserLinked, GenericPlaylogRepo -@Repository("OngekiUserRivalDataRepository") -interface UserRivalDataRepository : OngekiUserLinked +interface OgkUserRivalDataRepo : OngekiUserLinked -@Repository("OngekiUserScenarioRepository") -interface UserScenarioRepository : OngekiUserLinked { +interface OgkUserScenarioRepo : OngekiUserLinked { fun findByUserAndScenarioId(user: UserData, scenarioId: Int): Optional } -@Repository("OngekiUserStoryRepository") -interface UserStoryRepository : OngekiUserLinked { +interface OgkUserStoryRepo : OngekiUserLinked { fun findByUserAndStoryId(userData: UserData, storyId: Int): Optional } -@Repository("OngekiUserTechCountRepository") -interface UserTechCountRepository : OngekiUserLinked { +interface OgkUserTechCountRepo : OngekiUserLinked { fun findByUserAndLevelId(user: UserData, levelId: Int): Optional } -@Repository("OngekiUserTechEventRepository") -interface UserTechEventRepository : OngekiUserLinked { +interface OgkUserTechEventRepo : OngekiUserLinked { fun findByUserAndEventId(userData: UserData, eventId: Int): Optional } -@Repository("OngekiUserTradeItemRepository") -interface UserTradeItemRepository : OngekiUserLinked { +interface OgkUserTradeItemRepo : OngekiUserLinked { fun findByUser_Card_ExtIdAndChapterIdGreaterThanEqualAndChapterIdLessThanEqual( userId: Long, startChapterId: Int, @@ -165,32 +140,23 @@ interface UserTradeItemRepository : OngekiUserLinked { ): Optional } -@Repository("OngekiUserTrainingRoomRepository") -interface UserTrainingRoomRepository : OngekiUserLinked { +interface OgkUserTrainingRoomRepo : OngekiUserLinked { fun findByUserAndRoomId(user: UserData, roomId: Int): Optional } -@Repository("OngekiGameCardRepository") -interface GameCardRepository : JpaRepository +interface OgkGameCardRepo : JpaRepository -@Repository("OngekiGameCharaRepository") -interface GameCharaRepository : JpaRepository +interface OgkGameCharaRepo : JpaRepository -@Repository("OngekiGameEventRepository") -interface GameEventRepository : JpaRepository +interface OgkGameEventRepo : JpaRepository -@Repository("OngekiGameMusicRepository") -interface GameMusicRepository : JpaRepository +interface OgkGameMusicRepo : JpaRepository -@Repository("OngekiGamePointRepository") -interface GamePointRepository : JpaRepository +interface OgkGamePointRepo : JpaRepository -@Repository("OngekiGamePresentRepository") -interface GamePresentRepository : JpaRepository +interface OgkGamePresentRepo : JpaRepository -@Repository("OngekiGameRewardRepository") -interface GameRewardRepository : JpaRepository +interface OgkGameRewardRepo : JpaRepository -@Repository("OngekiGameSkillRepository") -interface GameSkillRepository : JpaRepository +interface OgkGameSkillRepo : JpaRepository diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientBookkeepingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientBookkeepingHandler.java index b7888c37..177cba81 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientBookkeepingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientBookkeepingHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserKopRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserKopRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; @@ -25,7 +25,7 @@ public class GetClientBookkeepingHandler implements BaseHandler { private final BasicMapper mapper; @Autowired - public GetClientBookkeepingHandler(BasicMapper mapper, UserKopRepository userKopRepository) { + public GetClientBookkeepingHandler(BasicMapper mapper, OgkUserKopRepo userKopRepository) { this.mapper = mapper; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientTestmodeHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientTestmodeHandler.java index 841b4741..f7da6573 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientTestmodeHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientTestmodeHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserKopRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserKopRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; @@ -25,7 +25,7 @@ public class GetClientTestmodeHandler implements BaseHandler { private final BasicMapper mapper; @Autowired - public GetClientTestmodeHandler(BasicMapper mapper, UserKopRepository userKopRepository) { + public GetClientTestmodeHandler(BasicMapper mapper, OgkUserKopRepo userKopRepository) { this.mapper = mapper; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java index ec916b5b..fb993c22 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.GameEventRepository; +import icu.samnyan.aqua.sega.ongeki.OgkGameEventRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.gamedata.GameEvent; import icu.samnyan.aqua.sega.ongeki.model.response.data.GameEventItem; @@ -26,10 +26,10 @@ public class GetGameEventHandler implements BaseHandler { private final BasicMapper mapper; - private final GameEventRepository gameEventRepository; + private final OgkGameEventRepo gameEventRepository; @Autowired - public GetGameEventHandler(BasicMapper mapper, GameEventRepository gameEventRepository) { + public GetGameEventHandler(BasicMapper mapper, OgkGameEventRepo gameEventRepository) { this.mapper = mapper; this.gameEventRepository = gameEventRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMusicReleaseStateHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMusicReleaseStateHandler.java index a01f0211..8ff09488 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMusicReleaseStateHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMusicReleaseStateHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserKopRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserKopRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; @@ -24,7 +24,7 @@ public class GetGameMusicReleaseStateHandler implements BaseHandler { private final BasicMapper mapper; @Autowired - public GetGameMusicReleaseStateHandler(BasicMapper mapper, UserKopRepository userKopRepository) { + public GetGameMusicReleaseStateHandler(BasicMapper mapper, OgkUserKopRepo userKopRepository) { this.mapper = mapper; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java index 2c6f3e77..d6aeb0c5 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.GamePointRepository; +import icu.samnyan.aqua.sega.ongeki.OgkGamePointRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.gamedata.GamePoint; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetGamePointHandler implements BaseHandler { private final BasicMapper mapper; - private final GamePointRepository gamePointRepository; + private final OgkGamePointRepo gamePointRepository; @Autowired - public GetGamePointHandler(BasicMapper mapper, GamePointRepository gamePointRepository) { + public GetGamePointHandler(BasicMapper mapper, OgkGamePointRepo gamePointRepository) { this.mapper = mapper; this.gamePointRepository = gamePointRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java index 21e1275f..98307cce 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.GamePresentRepository; +import icu.samnyan.aqua.sega.ongeki.OgkGamePresentRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.gamedata.GamePresent; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetGamePresentHandler implements BaseHandler { private final BasicMapper mapper; - private final GamePresentRepository gamePresentRepository; + private final OgkGamePresentRepo gamePresentRepository; @Autowired - public GetGamePresentHandler(BasicMapper mapper, GamePresentRepository gamePresentRepository) { + public GetGamePresentHandler(BasicMapper mapper, OgkGamePresentRepo gamePresentRepository) { this.mapper = mapper; this.gamePresentRepository = gamePresentRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java index ac12da3f..c8960c09 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.GameRewardRepository; +import icu.samnyan.aqua.sega.ongeki.OgkGameRewardRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.gamedata.GameReward; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetGameRewardHandler implements BaseHandler { private final BasicMapper mapper; - private final GameRewardRepository gameRewardRepository; + private final OgkGameRewardRepo gameRewardRepository; @Autowired - public GetGameRewardHandler(BasicMapper mapper, GameRewardRepository gameRewardRepository) { + public GetGameRewardHandler(BasicMapper mapper, OgkGameRewardRepo gameRewardRepository) { this.mapper = mapper; this.gameRewardRepository = gameRewardRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java index 0569ace1..6bb09866 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserActivityRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserActivityRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserActivity; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -25,10 +25,10 @@ public class GetUserActivityHandler implements BaseHandler { private final BasicMapper mapper; - private final UserActivityRepository userActivityRepository; + private final OgkUserActivityRepo userActivityRepository; @Autowired - public GetUserActivityHandler(BasicMapper mapper, UserActivityRepository userActivityRepository) { + public GetUserActivityHandler(BasicMapper mapper, OgkUserActivityRepo userActivityRepository) { this.mapper = mapper; this.userActivityRepository = userActivityRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java index 6092ee56..5af59ac9 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserBossRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserBossRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserBoss; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetUserBossHandler implements BaseHandler { private final BasicMapper mapper; - private final UserBossRepository userBossRepository; + private final OgkUserBossRepo userBossRepository; @Autowired - public GetUserBossHandler(BasicMapper mapper, UserBossRepository userBossRepository) { + public GetUserBossHandler(BasicMapper mapper, OgkUserBossRepo userBossRepository) { this.mapper = mapper; this.userBossRepository = userBossRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java index 242a0242..9af2356d 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserCardRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserCardRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserCard; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -25,10 +25,10 @@ public class GetUserCardHandler implements BaseHandler { private final BasicMapper mapper; - private final UserCardRepository userCardRepository; + private final OgkUserCardRepo userCardRepository; @Autowired - public GetUserCardHandler(BasicMapper mapper, UserCardRepository userCardRepository) { + public GetUserCardHandler(BasicMapper mapper, OgkUserCardRepo userCardRepository) { this.mapper = mapper; this.userCardRepository = userCardRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java index 92b87e80..3d24ec38 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserChapterRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserChapterRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserChapter; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetUserChapterHandler implements BaseHandler { private final BasicMapper mapper; - private final UserChapterRepository userChapterRepository; + private final OgkUserChapterRepo userChapterRepository; @Autowired - public GetUserChapterHandler(BasicMapper mapper, UserChapterRepository userChapterRepository) { + public GetUserChapterHandler(BasicMapper mapper, OgkUserChapterRepo userChapterRepository) { this.mapper = mapper; this.userChapterRepository = userChapterRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java index 10aaf415..31b2468f 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserCharacterRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserCharacterRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserCharacter; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -25,10 +25,10 @@ public class GetUserCharacterHandler implements BaseHandler { private final BasicMapper mapper; - private final UserCharacterRepository userCharacterRepository; + private final OgkUserCharacterRepo userCharacterRepository; @Autowired - public GetUserCharacterHandler(BasicMapper mapper, UserCharacterRepository userCharacterRepository) { + public GetUserCharacterHandler(BasicMapper mapper, OgkUserCharacterRepo userCharacterRepository) { this.mapper = mapper; this.userCharacterRepository = userCharacterRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java index 726ef1e7..7da7cf82 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserDataRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetUserDataHandler implements BaseHandler { private final BasicMapper mapper; - private final UserDataRepository userDataRepository; + private final OgkUserDataRepo userDataRepository; @Autowired - public GetUserDataHandler(BasicMapper mapper, UserDataRepository userDataRepository) { + public GetUserDataHandler(BasicMapper mapper, OgkUserDataRepo userDataRepository) { this.mapper = mapper; this.userDataRepository = userDataRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java index d9291fc5..9a418bcd 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserDeckRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserDeckRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserDeck; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetUserDeckByKeyHandler implements BaseHandler { private final BasicMapper mapper; - private final UserDeckRepository userDeckRepository; + private final OgkUserDeckRepo userDeckRepository; @Autowired - public GetUserDeckByKeyHandler(BasicMapper mapper, UserDeckRepository userDeckRepository) { + public GetUserDeckByKeyHandler(BasicMapper mapper, OgkUserDeckRepo userDeckRepository) { this.mapper = mapper; this.userDeckRepository = userDeckRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java index dc6f8860..3c37cfbf 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserEventMusicRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserEventMusicRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventMusic; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -25,10 +25,10 @@ public class GetUserEventMusicHandler implements BaseHandler { private final BasicMapper mapper; - private final UserEventMusicRepository userEventMusicRepository; + private final OgkUserEventMusicRepo userEventMusicRepository; @Autowired - public GetUserEventMusicHandler(BasicMapper mapper, UserEventMusicRepository userEventMusicRepository) { + public GetUserEventMusicHandler(BasicMapper mapper, OgkUserEventMusicRepo userEventMusicRepository) { this.mapper = mapper; this.userEventMusicRepository = userEventMusicRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java index 7cc64e62..eddffcbd 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserEventPointRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserEventPointRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventPoint; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetUserEventPointHandler implements BaseHandler { private final BasicMapper mapper; - private final UserEventPointRepository userEventPointRepository; + private final OgkUserEventPointRepo userEventPointRepository; @Autowired - public GetUserEventPointHandler(BasicMapper mapper, UserEventPointRepository userEventPointRepository) { + public GetUserEventPointHandler(BasicMapper mapper, OgkUserEventPointRepo userEventPointRepository) { this.mapper = mapper; this.userEventPointRepository = userEventPointRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java index 580cf1e6..89a4ccc4 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserEventPointRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserEventPointRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.data.UserEventRankingItem; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventPoint; @@ -28,10 +28,10 @@ public class GetUserEventRankingHandler implements BaseHandler { private final BasicMapper mapper; - private final UserEventPointRepository userEventPointRepository; + private final OgkUserEventPointRepo userEventPointRepository; @Autowired - public GetUserEventRankingHandler(BasicMapper mapper, UserEventPointRepository userEventPointRepository) { + public GetUserEventRankingHandler(BasicMapper mapper, OgkUserEventPointRepo userEventPointRepository) { this.mapper = mapper; this.userEventPointRepository = userEventPointRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt index c7a70ea2..afd9a074 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt @@ -2,8 +2,8 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl import ext.* import icu.samnyan.aqua.sega.general.BaseHandler -import icu.samnyan.aqua.sega.ongeki.UserDataRepository -import icu.samnyan.aqua.sega.ongeki.UserItemRepository +import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo +import icu.samnyan.aqua.sega.ongeki.OgkUserItemRepo import icu.samnyan.aqua.sega.ongeki.model.common.ItemType import icu.samnyan.aqua.sega.ongeki.model.userdata.UserItem import icu.samnyan.aqua.sega.util.jackson.BasicMapper @@ -13,8 +13,8 @@ import org.springframework.stereotype.Component @Component("OngekiGetUserItemHandler") class GetUserItemHandler( val mapper: BasicMapper, - val userDataRepo: UserDataRepository, - val userItemRepo: UserItemRepository + val userDataRepo: OgkUserDataRepo, + val userItemRepo: OgkUserItemRepo ) : BaseHandler { val log = logger() diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java index 04e259ac..37918861 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserKopRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserKopRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserKop; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -25,10 +25,10 @@ public class GetUserKopHandler implements BaseHandler { private final BasicMapper mapper; - private final UserKopRepository userKopRepository; + private final OgkUserKopRepo userKopRepository; @Autowired - public GetUserKopHandler(BasicMapper mapper, UserKopRepository userKopRepository) { + public GetUserKopHandler(BasicMapper mapper, OgkUserKopRepo userKopRepository) { this.mapper = mapper; this.userKopRepository = userKopRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java index 4de59c35..4fd7cdca 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserLoginBonusRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserLoginBonusRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserLoginBonus; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetUserLoginBonusHandler implements BaseHandler { private final BasicMapper mapper; - private final UserLoginBonusRepository userLoginBonusRepository; + private final OgkUserLoginBonusRepo userLoginBonusRepository; @Autowired - public GetUserLoginBonusHandler(BasicMapper mapper, UserLoginBonusRepository userLoginBonusRepository) { + public GetUserLoginBonusHandler(BasicMapper mapper, OgkUserLoginBonusRepo userLoginBonusRepository) { this.mapper = mapper; this.userLoginBonusRepository = userLoginBonusRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java index ce03ebda..804f03e7 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserMemoryChapterRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserMemoryChapterRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMemoryChapter; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetUserMemoryChapterHandler implements BaseHandler { private final BasicMapper mapper; - private final UserMemoryChapterRepository userMemoryChapterRepository; + private final OgkUserMemoryChapterRepo userMemoryChapterRepository; @Autowired - public GetUserMemoryChapterHandler(BasicMapper mapper, UserMemoryChapterRepository userMemoryChapterRepository) { + public GetUserMemoryChapterHandler(BasicMapper mapper, OgkUserMemoryChapterRepo userMemoryChapterRepository) { this.mapper = mapper; this.userMemoryChapterRepository = userMemoryChapterRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java index f8a16038..b6063114 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserMissionPointRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserMissionPointRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMissionPoint; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetUserMissionPointHandler implements BaseHandler { private final BasicMapper mapper; - private final UserMissionPointRepository userMissionPointRepository; + private final OgkUserMissionPointRepo userMissionPointRepository; @Autowired - public GetUserMissionPointHandler(BasicMapper mapper, UserMissionPointRepository userMissionPointRepository) { + public GetUserMissionPointHandler(BasicMapper mapper, OgkUserMissionPointRepo userMissionPointRepository) { this.mapper = mapper; this.userMissionPointRepository = userMissionPointRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java index 08ef4e8e..4fa143ea 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserMusicDetailRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserMusicDetailRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.data.UserMusicListItem; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMusicDetail; @@ -29,10 +29,10 @@ public class GetUserMusicHandler implements BaseHandler { private final BasicMapper mapper; - private final UserMusicDetailRepository userMusicDetailRepository; + private final OgkUserMusicDetailRepo userMusicDetailRepository; @Autowired - public GetUserMusicHandler(BasicMapper mapper, UserMusicDetailRepository userMusicDetailRepository) { + public GetUserMusicHandler(BasicMapper mapper, OgkUserMusicDetailRepo userMusicDetailRepository) { this.mapper = mapper; this.userMusicDetailRepository = userMusicDetailRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java index ac9cfb2a..ba94d2ed 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserMusicItemRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserMusicItemRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMusicItem; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -25,10 +25,10 @@ public class GetUserMusicItemHandler implements BaseHandler { private final BasicMapper mapper; - private final UserMusicItemRepository userMusicItemRepository; + private final OgkUserMusicItemRepo userMusicItemRepository; @Autowired - public GetUserMusicItemHandler(BasicMapper mapper, UserMusicItemRepository userMusicItemRepository) { + public GetUserMusicItemHandler(BasicMapper mapper, OgkUserMusicItemRepo userMusicItemRepository) { this.mapper = mapper; this.userMusicItemRepository = userMusicItemRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java index c924fea0..1869252b 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserOptionRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserOptionRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserOption; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetUserOptionHandler implements BaseHandler { private final BasicMapper mapper; - private final UserOptionRepository userOptionRepository; + private final OgkUserOptionRepo userOptionRepository; @Autowired - public GetUserOptionHandler(BasicMapper mapper, UserOptionRepository userOptionRepository) { + public GetUserOptionHandler(BasicMapper mapper, OgkUserOptionRepo userOptionRepository) { this.mapper = mapper; this.userOptionRepository = userOptionRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java index 7e452586..58c16195 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java @@ -1,8 +1,8 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserDataRepository; -import icu.samnyan.aqua.sega.ongeki.UserOptionRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo; +import icu.samnyan.aqua.sega.ongeki.OgkUserOptionRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.GetUserPreviewResp; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; @@ -29,13 +29,13 @@ public class GetUserPreviewHandler implements BaseHandler { private final BasicMapper mapper; - private final UserDataRepository userDataRepository; + private final OgkUserDataRepo userDataRepository; - private final UserOptionRepository userOptionRepository; + private final OgkUserOptionRepo userOptionRepository; @Autowired public GetUserPreviewHandler(BasicMapper mapper, - UserDataRepository userDataRepository, UserOptionRepository userOptionRepository) { + OgkUserDataRepo userDataRepository, OgkUserOptionRepo userOptionRepository) { this.mapper = mapper; this.userDataRepository = userDataRepository; this.userOptionRepository = userOptionRepository; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java index cd4f97c1..6709551f 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java @@ -2,8 +2,8 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.general.model.response.UserRecentRating; -import icu.samnyan.aqua.sega.ongeki.UserGeneralDataRepository; -import icu.samnyan.aqua.sega.ongeki.UserPlaylogRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserGeneralDataRepo; +import icu.samnyan.aqua.sega.ongeki.OgkUserPlaylogRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserGeneralData; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserPlaylog; @@ -30,11 +30,11 @@ public class GetUserRecentRatingHandler implements BaseHandler { private final BasicMapper mapper; - private final UserPlaylogRepository userPlaylogRepository; - private final UserGeneralDataRepository userGeneralDataRepository; + private final OgkUserPlaylogRepo userPlaylogRepository; + private final OgkUserGeneralDataRepo userGeneralDataRepository; @Autowired - public GetUserRecentRatingHandler(BasicMapper mapper, UserPlaylogRepository userPlaylogRepository, UserGeneralDataRepository userGeneralDataRepository) { + public GetUserRecentRatingHandler(BasicMapper mapper, OgkUserPlaylogRepo userPlaylogRepository, OgkUserGeneralDataRepo userGeneralDataRepository) { this.mapper = mapper; this.userPlaylogRepository = userPlaylogRepository; this.userGeneralDataRepository = userGeneralDataRepository; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java index 16ac4ae1..84c8f974 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java @@ -1,8 +1,8 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserDataRepository; -import icu.samnyan.aqua.sega.ongeki.UserRivalDataRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo; +import icu.samnyan.aqua.sega.ongeki.OgkUserRivalDataRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.data.UserRivalData; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -25,11 +25,11 @@ public class GetUserRivalDataHandler implements BaseHandler { private static final Logger logger = LoggerFactory.getLogger(GetUserRivalDataHandler.class); private final BasicMapper mapper; - private final UserRivalDataRepository userRivalDataRepository; - private final UserDataRepository userDataRepository; + private final OgkUserRivalDataRepo userRivalDataRepository; + private final OgkUserDataRepo userDataRepository; @Autowired - public GetUserRivalDataHandler(BasicMapper mapper, UserRivalDataRepository userRivalDataRepository, UserDataRepository userDataRepository) { + public GetUserRivalDataHandler(BasicMapper mapper, OgkUserRivalDataRepo userRivalDataRepository, OgkUserDataRepo userDataRepository) { this.mapper = mapper; this.userRivalDataRepository = userRivalDataRepository; this.userDataRepository = userDataRepository; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalHandler.java index 9f62273c..f3fd4ce0 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserRivalDataRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserRivalDataRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; @@ -20,10 +20,10 @@ public class GetUserRivalHandler implements BaseHandler { private static final Logger logger = LoggerFactory.getLogger(GetUserRivalHandler.class); private final BasicMapper mapper; - private final UserRivalDataRepository userRivalDataRepository; + private final OgkUserRivalDataRepo userRivalDataRepository; @Autowired - public GetUserRivalHandler(BasicMapper mapper, UserRivalDataRepository userRivalDataRepository) { + public GetUserRivalHandler(BasicMapper mapper, OgkUserRivalDataRepo userRivalDataRepository) { this.mapper = mapper; this.userRivalDataRepository = userRivalDataRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java index 0e62c00b..d088ceff 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserMusicDetailRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserMusicDetailRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.data.UserRivalMusic; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -23,10 +23,10 @@ public class GetUserRivalMusicHandler implements BaseHandler { private static final Logger logger = LoggerFactory.getLogger(GetUserRivalMusicHandler.class); private final BasicMapper mapper; - private final UserMusicDetailRepository userMusicDetailRepository; + private final OgkUserMusicDetailRepo userMusicDetailRepository; @Autowired - public GetUserRivalMusicHandler(BasicMapper mapper, UserMusicDetailRepository userMusicDetailRepository) { + public GetUserRivalMusicHandler(BasicMapper mapper, OgkUserMusicDetailRepo userMusicDetailRepository) { this.mapper = mapper; this.userMusicDetailRepository = userMusicDetailRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java index 6ad285cf..3811f5c5 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserScenarioRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserScenarioRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserScenario; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetUserScenarioHandler implements BaseHandler { private final BasicMapper mapper; - private final UserScenarioRepository userScenarioRepository; + private final OgkUserScenarioRepo userScenarioRepository; @Autowired - public GetUserScenarioHandler(BasicMapper mapper, UserScenarioRepository userScenarioRepository) { + public GetUserScenarioHandler(BasicMapper mapper, OgkUserScenarioRepo userScenarioRepository) { this.mapper = mapper; this.userScenarioRepository = userScenarioRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java index c67e817c..2144c433 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserStoryRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserStoryRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserStory; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetUserStoryHandler implements BaseHandler { private final BasicMapper mapper; - private final UserStoryRepository userStoryRepository; + private final OgkUserStoryRepo userStoryRepository; @Autowired - public GetUserStoryHandler(BasicMapper mapper, UserStoryRepository userStoryRepository) { + public GetUserStoryHandler(BasicMapper mapper, OgkUserStoryRepo userStoryRepository) { this.mapper = mapper; this.userStoryRepository = userStoryRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java index 7b2bf359..633f547c 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserTechCountRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserTechCountRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechCount; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetUserTechCountHandler implements BaseHandler { private final BasicMapper mapper; - private final UserTechCountRepository userTechCountRepository; + private final OgkUserTechCountRepo userTechCountRepository; @Autowired - public GetUserTechCountHandler(BasicMapper mapper, UserTechCountRepository userTechCountRepository) { + public GetUserTechCountHandler(BasicMapper mapper, OgkUserTechCountRepo userTechCountRepository) { this.mapper = mapper; this.userTechCountRepository = userTechCountRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java index f008a2fb..c947d973 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserTechEventRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserTechEventRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechEvent; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -25,10 +25,10 @@ public class GetUserTechEventHandler implements BaseHandler { private final BasicMapper mapper; - private final UserTechEventRepository userTechEventRepository; + private final OgkUserTechEventRepo userTechEventRepository; @Autowired - public GetUserTechEventHandler(BasicMapper mapper, UserTechEventRepository userTechEventRepository) { + public GetUserTechEventHandler(BasicMapper mapper, OgkUserTechEventRepo userTechEventRepository) { this.mapper = mapper; this.userTechEventRepository = userTechEventRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java index 2a566a29..5e6c88af 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserTechEventRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserTechEventRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.data.UserTechEventRankingItem; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechEvent; @@ -29,10 +29,10 @@ public class GetUserTechEventRankingHandler implements BaseHandler { private final BasicMapper mapper; - private final UserTechEventRepository userTechEventRepository; + private final OgkUserTechEventRepo userTechEventRepository; @Autowired - public GetUserTechEventRankingHandler(BasicMapper mapper, UserTechEventRepository userTechEventRepository) { + public GetUserTechEventRankingHandler(BasicMapper mapper, OgkUserTechEventRepo userTechEventRepository) { this.mapper = mapper; this.userTechEventRepository = userTechEventRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java index 66557ca5..b25d0745 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserTradeItemRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserTradeItemRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTradeItem; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -25,10 +25,10 @@ public class GetUserTradeItemHandler implements BaseHandler { private final BasicMapper mapper; - private final UserTradeItemRepository userTradeItemRepository; + private final OgkUserTradeItemRepo userTradeItemRepository; @Autowired - public GetUserTradeItemHandler(BasicMapper mapper, UserTradeItemRepository userTradeItemRepository) { + public GetUserTradeItemHandler(BasicMapper mapper, OgkUserTradeItemRepo userTradeItemRepository) { this.mapper = mapper; this.userTradeItemRepository = userTradeItemRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java index 50803732..e9a237a5 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.UserTrainingRoomRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserTrainingRoomRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTrainingRoom; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; @@ -24,10 +24,10 @@ public class GetUserTrainingRoomByKeyHandler implements BaseHandler { private final BasicMapper mapper; - private final UserTrainingRoomRepository userTrainingRoomRepository; + private final OgkUserTrainingRoomRepo userTrainingRoomRepository; @Autowired - public GetUserTrainingRoomByKeyHandler(BasicMapper mapper, UserTrainingRoomRepository userTrainingRoomRepository) { + public GetUserTrainingRoomByKeyHandler(BasicMapper mapper, OgkUserTrainingRoomRepo userTrainingRoomRepository) { this.mapper = mapper; this.userTrainingRoomRepository = userTrainingRoomRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java index 6634d329..ed628164 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java @@ -33,35 +33,35 @@ public class UpsertUserAllHandler implements BaseHandler { private final CardService cardService; - private final UserDataRepository userDataRepository; - private final UserOptionRepository userOptionRepository; - private final UserPlaylogRepository userPlaylogRepository; - private final UserActivityRepository userActivityRepository; - private final UserMusicDetailRepository userMusicDetailRepository; - private final UserCharacterRepository userCharacterRepository; - private final UserCardRepository userCardRepository; - private final UserDeckRepository userDeckRepository; - private final UserStoryRepository userStoryRepository; - private final UserChapterRepository userChapterRepository; - private final UserMemoryChapterRepository userMemoryChapterRepository; - private final UserItemRepository userItemRepository; - private final UserMusicItemRepository userMusicItemRepository; - private final UserLoginBonusRepository userLoginBonusRepository; - private final UserEventPointRepository userEventPointRepository; - private final UserMissionPointRepository userMissionPointRepository; - private final UserTrainingRoomRepository userTrainingRoomRepository; - private final UserGeneralDataRepository userGeneralDataRepository; - private final UserBossRepository userBossRepository; - private final UserScenarioRepository userScenarioRepository; - private final UserTechCountRepository userTechCountRepository; - private final UserTradeItemRepository userTradeItemRepository; - private final UserEventMusicRepository userEventMusicRepository; - private final UserTechEventRepository userTechEventRepository; - private final UserKopRepository userKopRepository; + private final OgkUserDataRepo userDataRepository; + private final OgkUserOptionRepo userOptionRepository; + private final OgkUserPlaylogRepo userPlaylogRepository; + private final OgkUserActivityRepo userActivityRepository; + private final OgkUserMusicDetailRepo userMusicDetailRepository; + private final OgkUserCharacterRepo userCharacterRepository; + private final OgkUserCardRepo userCardRepository; + private final OgkUserDeckRepo userDeckRepository; + private final OgkUserStoryRepo userStoryRepository; + private final OgkUserChapterRepo userChapterRepository; + private final OgkUserMemoryChapterRepo userMemoryChapterRepository; + private final OgkUserItemRepo userItemRepository; + private final OgkUserMusicItemRepo userMusicItemRepository; + private final OgkUserLoginBonusRepo userLoginBonusRepository; + private final OgkUserEventPointRepo userEventPointRepository; + private final OgkUserMissionPointRepo userMissionPointRepository; + private final OgkUserTrainingRoomRepo userTrainingRoomRepository; + private final OgkUserGeneralDataRepo userGeneralDataRepository; + private final OgkUserBossRepo userBossRepository; + private final OgkUserScenarioRepo userScenarioRepository; + private final OgkUserTechCountRepo userTechCountRepository; + private final OgkUserTradeItemRepo userTradeItemRepository; + private final OgkUserEventMusicRepo userEventMusicRepository; + private final OgkUserTechEventRepo userTechEventRepository; + private final OgkUserKopRepo userKopRepository; @Autowired public UpsertUserAllHandler(BasicMapper mapper, - CardService cardService, UserDataRepository userDataRepository, UserOptionRepository userOptionRepository, UserPlaylogRepository userPlaylogRepository, UserActivityRepository userActivityRepository, UserMusicDetailRepository userMusicDetailRepository, UserCharacterRepository userCharacterRepository, UserCardRepository userCardRepository, UserDeckRepository userDeckRepository, UserStoryRepository userStoryRepository, UserChapterRepository userChapterRepository, UserItemRepository userItemRepository, UserMusicItemRepository userMusicItemRepository, UserLoginBonusRepository userLoginBonusRepository, UserEventPointRepository userEventPointRepository, UserMissionPointRepository userMissionPointRepository, UserTrainingRoomRepository userTrainingRoomRepository, UserGeneralDataRepository userGeneralDataRepository, UserBossRepository userBossRepository, UserScenarioRepository userScenarioRepository, UserTechCountRepository userTechCountRepository, UserTradeItemRepository userTradeItemRepository, UserEventMusicRepository userEventMusicRepository, UserTechEventRepository userTechEventRepository, UserKopRepository userKopRepository, UserMemoryChapterRepository userMemoryChapterRepository) { + CardService cardService, OgkUserDataRepo userDataRepository, OgkUserOptionRepo userOptionRepository, OgkUserPlaylogRepo userPlaylogRepository, OgkUserActivityRepo userActivityRepository, OgkUserMusicDetailRepo userMusicDetailRepository, OgkUserCharacterRepo userCharacterRepository, OgkUserCardRepo userCardRepository, OgkUserDeckRepo userDeckRepository, OgkUserStoryRepo userStoryRepository, OgkUserChapterRepo userChapterRepository, OgkUserItemRepo userItemRepository, OgkUserMusicItemRepo userMusicItemRepository, OgkUserLoginBonusRepo userLoginBonusRepository, OgkUserEventPointRepo userEventPointRepository, OgkUserMissionPointRepo userMissionPointRepository, OgkUserTrainingRoomRepo userTrainingRoomRepository, OgkUserGeneralDataRepo userGeneralDataRepository, OgkUserBossRepo userBossRepository, OgkUserScenarioRepo userScenarioRepository, OgkUserTechCountRepo userTechCountRepository, OgkUserTradeItemRepo userTradeItemRepository, OgkUserEventMusicRepo userEventMusicRepository, OgkUserTechEventRepo userTechEventRepository, OgkUserKopRepo userKopRepository, OgkUserMemoryChapterRepo userMemoryChapterRepository) { this.mapper = mapper; this.cardService = cardService; this.userDataRepository = userDataRepository; From 0429cb060cd8750feaa9c06003691056c66076aa Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 17:49:22 -0400 Subject: [PATCH 10/39] [+] Ongeki: All repos component --- .../samnyan/aqua/sega/ongeki/OngekiRepos.kt | 58 ++++++++++++++++--- 1 file changed, 50 insertions(+), 8 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt index 1b972c70..2e349906 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt @@ -12,6 +12,7 @@ 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.Component import java.util.* @@ -144,19 +145,60 @@ interface OgkUserTrainingRoomRepo : OngekiUserLinked { fun findByUserAndRoomId(user: UserData, roomId: Int): Optional } - interface OgkGameCardRepo : JpaRepository - interface OgkGameCharaRepo : JpaRepository - interface OgkGameEventRepo : JpaRepository - interface OgkGameMusicRepo : JpaRepository - interface OgkGamePointRepo : JpaRepository - interface OgkGamePresentRepo : JpaRepository - interface OgkGameRewardRepo : JpaRepository - interface OgkGameSkillRepo : JpaRepository + +@Component +class OngekiUserRepos( + val data: OgkUserDataRepo, + val activity: OgkUserActivityRepo, + val boss: OgkUserBossRepo, + val card: OgkUserCardRepo, + val chapter: OgkUserChapterRepo, + val character: OgkUserCharacterRepo, + val deck: OgkUserDeckRepo, + val eventMusic: OgkUserEventMusicRepo, + val eventPoint: OgkUserEventPointRepo, + val generalData: OgkUserGeneralDataRepo, + val item: OgkUserItemRepo, + val kop: OgkUserKopRepo, + val loginBonus: OgkUserLoginBonusRepo, + val memoryChapter: OgkUserMemoryChapterRepo, + val missionPoint: OgkUserMissionPointRepo, + val musicDetail: OgkUserMusicDetailRepo, + val musicItem: OgkUserMusicItemRepo, + val option: OgkUserOptionRepo, + val playlog: OgkUserPlaylogRepo, + val rivalData: OgkUserRivalDataRepo, + val scenario: OgkUserScenarioRepo, + val story: OgkUserStoryRepo, + val techCount: OgkUserTechCountRepo, + val techEvent: OgkUserTechEventRepo, + val tradeItem: OgkUserTradeItemRepo, + val trainingRoom: OgkUserTrainingRoomRepo, +) + +@Component +class OngekiGameRepos( + val card: OgkGameCardRepo, + val chara: OgkGameCharaRepo, + val event: OgkGameEventRepo, + val music: OgkGameMusicRepo, + val point: OgkGamePointRepo, + val present: OgkGamePresentRepo, + val reward: OgkGameRewardRepo, + val skill: OgkGameSkillRepo, +) + +@Component +class OngekiRepos( + val u: OngekiUserRepos, + val g: OngekiGameRepos, +) + From 8be5dc20a9963a3930d6432aba9580132a390be7 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 18:09:11 -0400 Subject: [PATCH 11/39] [+] Ongeki: Serialization consistency test --- ogk-userdata-orig.jsonl | 26 +++++++++++++++++++ .../ongeki/model/userdata/ZUserDataTest.kt | 17 ++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 ogk-userdata-orig.jsonl create mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/ZUserDataTest.kt diff --git a/ogk-userdata-orig.jsonl b/ogk-userdata-orig.jsonl new file mode 100644 index 00000000..c4a91a3d --- /dev/null +++ b/ogk-userdata-orig.jsonl @@ -0,0 +1,26 @@ +{"kind":0,"id":0,"sortNumber":0,"param1":0,"param2":0,"param3":0,"param4":0} +{"musicId":0,"damage":0,"eventId":0,"isClear":false} +{"cardId":-1,"digitalStock":1,"analogStock":0,"level":0,"maxLevel":10,"exp":0,"printCount":0,"useCount":0,"kaikaDate":"0000-00-00 00:00:00.0","choKaikaDate":"0000-00-00 00:00:00.0","skillId":0,"created":"0000-00-00 00:00:00.0","isNew":true,"isAcquired":true} +{"chapterId":0,"jewelCount":0,"lastPlayMusicCategory":0,"lastPlayMusicId":0,"lastPlayMusicLevel":0,"skipTiming1":0,"skipTiming2":0,"isStoryWatched":false,"isClear":false} +{"characterId":0,"costumeId":0,"attachmentId":0,"playCount":0,"intimateLevel":0,"intimateCount":0,"intimateCountRewarded":0,"intimateCountDate":null,"isNew":false} +{"userName":null,"level":0,"reincarnationNum":0,"exp":0,"point":0,"totalPoint":0,"playCount":0,"jewelCount":0,"totalJewelCount":0,"medalCount":0,"playerRating":0,"highestRating":0,"battlePoint":0,"bestBattlePoint":0,"overDamageBattlePoint":0,"nameplateId":0,"trophyId":0,"cardId":0,"characterId":0,"characterVoiceNo":0,"tabSetting":0,"tabSortSetting":0,"cardCategorySetting":0,"cardSortSetting":0,"rivalScoreCategorySetting":0,"playedTutorialBit":0,"firstTutorialCancelNum":0,"sumTechHighScore":0,"sumTechBasicHighScore":0,"sumTechAdvancedHighScore":0,"sumTechExpertHighScore":0,"sumTechMasterHighScore":0,"sumTechLunaticHighScore":0,"sumBattleHighScore":0,"sumBattleBasicHighScore":0,"sumBattleAdvancedHighScore":0,"sumBattleExpertHighScore":0,"sumBattleMasterHighScore":0,"sumBattleLunaticHighScore":0,"eventWatchedDate":null,"cmEventWatchedDate":null,"firstGameId":null,"firstRomVersion":null,"firstDataVersion":null,"firstPlayDate":null,"lastGameId":null,"lastRomVersion":null,"lastDataVersion":null,"compatibleCmVersion":null,"lastPlayDate":null,"lastPlaceId":0,"lastPlaceName":null,"lastRegionId":0,"lastRegionName":null,"lastAllNetId":0,"lastUsedDeckId":0,"lastPlayMusicLevel":0,"lastEmoneyBrand":0,"totalScore":0,"accessCode":null,"isDialogWatchedSuggestMemory":false} +{"deckId":0,"cardId1":0,"cardId2":0,"cardId3":0} +{"eventId":0,"type":0,"musicId":0,"level":0,"techScoreMax":0,"platinumScoreMax":0,"techRecordDate":null,"isTechNewRecord":false} +{"eventId":0,"point":0,"isRankingRewarded":false} +{"propertyKey":null,"propertyValue":null} +{"itemKind":0,"itemId":0,"stock":0,"isValid":false} +{"authKey":null,"kopId":0,"areaId":0,"totalTechScore":0,"totalPlatinumScore":0,"techRecordDate":null,"isTotalTechNewRecord":false} +{"bonusId":0,"bonusCount":0,"lastUpdateDate":null} +{"chapterId":0,"jewelCount":0,"lastPlayMusicCategory":0,"lastPlayMusicId":0,"lastPlayMusicLevel":0,"gaugeId":0,"gaugeNum":0,"isDialogWatched":false,"isStoryWatched":false,"isBossWatched":false,"isClear":false} +{"eventId":0,"point":0} +{"musicId":0,"level":0,"playCount":0,"techScoreMax":0,"techScoreRank":0,"battleScoreMax":0,"battleScoreRank":0,"platinumScoreMax":0,"maxComboCount":0,"maxOverKill":0,"maxTeamOverKill":0,"clearStatus":0,"storyWatched":false,"isFullBell":false,"isFullCombo":false,"isAllBreake":false,"isLock":false} +{"musicId":0,"status":0} +{"optionSet":0,"speed":0,"mirror":0,"judgeTiming":0,"judgeAdjustment":0,"abort":0,"stealthField":0,"tapSound":0,"volGuide":0,"volAll":0,"volTap":0,"volCrTap":0,"volHold":0,"volSide":0,"volFlick":0,"volBell":0,"volEnemy":0,"volSkill":0,"volDamage":0,"colorField":0,"colorLaneBright":0,"colorWallBright":0,"colorLane":0,"colorSide":0,"effectDamage":0,"effectPos":0,"judgeDisp":0,"judgePos":0,"judgeBreak":0,"judgeHit":0,"platinumBreakDisp":0,"judgeCriticalBreak":0,"matching":0,"dispPlayerLv":0,"dispRating":0,"dispBP":0,"headphone":0} +{"id":0,"sortNumber":0,"placeId":0,"placeName":null,"playDate":null,"userPlayDate":null,"musicId":0,"level":0,"playKind":0,"eventId":0,"eventName":null,"eventPoint":0,"playedUserId1":0,"playedUserId2":0,"playedUserId3":0,"playedUserName1":null,"playedUserName2":null,"playedUserName3":null,"playedMusicLevel1":0,"playedMusicLevel2":0,"playedMusicLevel3":0,"cardId1":0,"cardId2":0,"cardId3":0,"cardLevel1":0,"cardLevel2":0,"cardLevel3":0,"cardAttack1":0,"cardAttack2":0,"cardAttack3":0,"bossCharaId":0,"bossLevel":0,"bossAttribute":0,"clearStatus":0,"techScore":0,"techScoreRank":0,"battleScore":0,"battleScoreRank":0,"platinumScore":0,"maxCombo":0,"judgeMiss":0,"judgeHit":0,"judgeBreak":0,"judgeCriticalBreak":0,"rateTap":0,"rateHold":0,"rateFlick":0,"rateSideTap":0,"rateSideHold":0,"bellCount":0,"totalBellCount":0,"damageCount":0,"overDamage":0,"playerRating":0,"battlePoint":0,"afterRating":0,"beforeRating":0,"achievement":0,"allPerfect":false,"isTechNewRecord":false,"isBattleNewRecord":false,"isOverDamageNewRecord":false,"isFullCombo":false,"isFullBell":false,"isAllBreak":false} +{"rivalUserId":0} +{"scenarioId":0,"playCount":0} +{"storyId":0,"lastChapterId":0,"jewelCount":0,"lastPlayMusicId":0,"lastPlayMusicCategory":0,"lastPlayMusicLevel":0} +{"levelId":0,"allBreakCount":0,"allBreakPlusCount":0} +{"eventId":0,"totalTechScore":0,"totalPlatinumScore":0,"techRecordDate":null,"isRankingRewarded":false,"isTotalTechNewRecord":false} +{"chapterId":0,"tradeItemId":0,"tradeCount":0} +{"authKey":null,"roomId":0,"cardId":0,"valueDate":null} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/ZUserDataTest.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/ZUserDataTest.kt new file mode 100644 index 00000000..6e349e30 --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/ZUserDataTest.kt @@ -0,0 +1,17 @@ +package icu.samnyan.aqua.sega.ongeki.model.userdata + +import icu.samnyan.aqua.sega.util.jackson.BasicMapper +import kotlin.io.path.Path +import kotlin.io.path.writeText + +fun main(args: Array) { + val classes = listOf(UserActivity(), UserBoss(), UserCard(), UserChapter(), UserCharacter(), UserData(), UserDeck(), UserEventMusic(), UserEventPoint(), UserGeneralData(), UserItem(), UserKop(), UserLoginBonus(), UserMemoryChapter(), UserMissionPoint(), UserMusicDetail(), UserMusicItem(), UserOption(), UserPlaylog(), UserRival(), UserScenario(), UserStory(), UserTechCount(), UserTechEvent(), UserTradeItem(), UserTrainingRoom()) + val mapper = BasicMapper() + + // Json stringify all of them + var str = "" + classes.forEach { + str += mapper.write(it) + "\n" + } + Path("ogk-userdata.jsonl").writeText(str) +} \ No newline at end of file From 1c1350d84bb1fa6e0080fc60eb1c8ca4f83d0c07 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 18:09:54 -0400 Subject: [PATCH 12/39] [O] Ongeki: Transform user entities --- .../aqua/sega/ongeki/model/userdata/All.kt | 663 ++++++++++++++++++ .../ongeki/model/userdata/UserActivity.java | 55 -- .../sega/ongeki/model/userdata/UserBoss.java | 46 -- .../sega/ongeki/model/userdata/UserCard.java | 74 -- .../ongeki/model/userdata/UserChapter.java | 57 -- .../ongeki/model/userdata/UserCharacter.java | 56 -- .../sega/ongeki/model/userdata/UserData.java | 166 ----- .../sega/ongeki/model/userdata/UserDeck.java | 44 -- .../ongeki/model/userdata/UserEventMusic.java | 55 -- .../ongeki/model/userdata/UserEventPoint.java | 45 -- .../model/userdata/UserGeneralData.java | 44 -- .../sega/ongeki/model/userdata/UserItem.java | 46 -- .../sega/ongeki/model/userdata/UserKop.java | 53 -- .../ongeki/model/userdata/UserLoginBonus.java | 42 -- .../model/userdata/UserMemoryChapter.java | 63 -- .../model/userdata/UserMissionPoint.java | 41 -- .../model/userdata/UserMusicDetail.java | 76 -- .../ongeki/model/userdata/UserMusicItem.java | 40 -- .../ongeki/model/userdata/UserOption.java | 110 --- .../ongeki/model/userdata/UserPlaylog.java | 180 ----- .../sega/ongeki/model/userdata/UserRival.java | 36 - .../ongeki/model/userdata/UserScenario.java | 40 -- .../sega/ongeki/model/userdata/UserStory.java | 48 -- .../ongeki/model/userdata/UserTechCount.java | 42 -- .../ongeki/model/userdata/UserTechEvent.java | 52 -- .../ongeki/model/userdata/UserTradeItem.java | 42 -- .../model/userdata/UserTrainingRoom.java | 44 -- 27 files changed, 663 insertions(+), 1597 deletions(-) create mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserActivity.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserBoss.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserCard.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserChapter.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserCharacter.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserData.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserDeck.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserEventMusic.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserEventPoint.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserGeneralData.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserItem.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserKop.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserLoginBonus.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMemoryChapter.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMissionPoint.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMusicDetail.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMusicItem.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserOption.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserPlaylog.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserRival.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserScenario.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserStory.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTechCount.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTechEvent.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTradeItem.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTrainingRoom.java diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt new file mode 100644 index 00000000..d025bb7e --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt @@ -0,0 +1,663 @@ +package icu.samnyan.aqua.sega.ongeki.model.userdata + +import com.fasterxml.jackson.annotation.JsonIgnore +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.annotation.JsonPropertyOrder +import com.fasterxml.jackson.databind.annotation.JsonSerialize +import icu.samnyan.aqua.net.games.IGenericGamePlaylog +import icu.samnyan.aqua.net.games.IGenericUserMusic +import icu.samnyan.aqua.net.games.IUserData +import icu.samnyan.aqua.sega.general.model.Card +import icu.samnyan.aqua.sega.util.jackson.AccessCodeSerializer +import jakarta.persistence.* + +@Entity(name = "OngekiUserActivity") +@Table( + name = "ongeki_user_activity", + uniqueConstraints = [UniqueConstraint(columnNames = ["user_id", "kind", "activity_id"])] +) +@JsonPropertyOrder("kind", "id", "sortNumber", "param1", "param2", "param3", "param4") +class UserActivity(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var kind = 0 + @JsonProperty("id") + @Column(name = "activity_id") + var activityId = 0 + var sortNumber = 0 + var param1 = 0 + var param2 = 0 + var param3 = 0 + var param4 = 0 +} + + +@Entity(name = "OngekiUserBoss") +@Table(name = "ongeki_user_boss") +class UserBoss(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var musicId = 0 + var damage = 0 + @JsonProperty("isClear") + var isClear = false + var eventId = 0 +} + + +@Entity(name = "OngekiUserCard") +@Table(name = "ongeki_user_card") +class UserCard { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + @JsonIgnore + @ManyToOne + @JoinColumn(name = "user_id") + var user: UserData = UserData() + var cardId = -1 + + var digitalStock = 1 + var analogStock = 0 + var level = 0 + var maxLevel = 10 + var exp = 0 + var printCount = 0 + var useCount = 0 + @JsonProperty("isNew") + var isNew = true + var kaikaDate = "0000-00-00 00:00:00.0" + + var choKaikaDate = "0000-00-00 00:00:00.0" + + var skillId = 0 + @JsonProperty("isAcquired") + var isAcquired = true + var created = "0000-00-00 00:00:00.0" + + constructor(userData: UserData) { + this.user = userData + } + + constructor(userData: UserData, cardId: Int, skillId: Int, created: String) { + this.user = userData + this.cardId = cardId + this.skillId = skillId + this.created = created + } + +} + + +@Entity(name = "OngekiUserChapter") +@Table(name = "ongeki_user_chapter") + +class UserChapter(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var chapterId = 0 + var jewelCount = 0 + var lastPlayMusicCategory = 0 + var lastPlayMusicId = 0 + var lastPlayMusicLevel = 0 + @JsonProperty("isStoryWatched") + var isStoryWatched = false + @JsonProperty("isClear") + var isClear = false + var skipTiming1 = 0 + var skipTiming2 = 0 +} + + +@Entity(name = "OngekiUserCharacter") +@Table(name = "ongeki_user_character") + +class UserCharacter(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var characterId = 0 + var costumeId = 0 + var attachmentId = 0 + var playCount = 0 + var intimateLevel = 0 + var intimateCount = 0 + var intimateCountRewarded = 0 + var intimateCountDate: String = "" + @JsonProperty("isNew") + var isNew = false +} + + +@Entity(name = "OngekiUserData") +@Table(name = "ongeki_user_data") +class UserData : IUserData { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + override var id: Long = 0 + @JsonSerialize(using = AccessCodeSerializer::class) + @JsonProperty(value = "accessCode", access = JsonProperty.Access.READ_ONLY) + @OneToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "aime_card_id", unique = true) + override var card: Card? = null + // Access code in card + override var userName: String = "" + + var level = 0 + var reincarnationNum = 0 + var exp: Long = 0 + var point: Long = 0 + var totalPoint: Long = 0 + var playCount = 0 + var jewelCount = 0 + var totalJewelCount = 0 + var medalCount = 0 + override var playerRating: Int = 0 + override var highestRating: Int = 0 + var battlePoint = 0 + var bestBattlePoint = 0 + var overDamageBattlePoint = 0 + @JsonProperty("isDialogWatchedSuggestMemory") + var isDialogWatchedSuggestMemory = false + var nameplateId = 0 + var trophyId = 0 + var cardId = 0 + var characterId = 0 + var characterVoiceNo = 0 + var tabSetting = 0 + var tabSortSetting = 0 + var cardCategorySetting = 0 + var cardSortSetting = 0 + var rivalScoreCategorySetting = 0 + var playedTutorialBit = 0 + var firstTutorialCancelNum = 0 + final override var totalScore: Long = 0 + private set + + var sumTechBasicHighScore: Long = 0 + var sumTechAdvancedHighScore: Long = 0 + var sumTechExpertHighScore: Long = 0 + var sumTechMasterHighScore: Long = 0 + var sumTechLunaticHighScore: Long = 0 + var sumBattleHighScore: Long = 0 + var sumBattleBasicHighScore: Long = 0 + var sumBattleAdvancedHighScore: Long = 0 + var sumBattleExpertHighScore: Long = 0 + var sumBattleMasterHighScore: Long = 0 + var sumBattleLunaticHighScore: Long = 0 + var eventWatchedDate: String = "" + var cmEventWatchedDate: String = "" + var firstGameId: String = "" + var firstRomVersion: String = "" + var firstDataVersion: String = "" + override var firstPlayDate: String = "" + var lastGameId: String = "" + override var lastRomVersion: String = "" + var lastDataVersion: String = "" + var compatibleCmVersion: String = "" + override var lastPlayDate: String = "" + var lastPlaceId = 0 + var lastPlaceName: String = "" + var lastRegionId = 0 + var lastRegionName: String = "" + var lastAllNetId = 0 + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + override var lastClientId: String = "" + var lastUsedDeckId = 0 + var lastPlayMusicLevel = 0 + var lastEmoneyBrand = 0 +} + + +@Entity(name = "OngekiUserDeck") +@Table(name = "ongeki_user_deck") + +class UserDeck(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var deckId = 0 + var cardId1 = 0 + var cardId2 = 0 + var cardId3 = 0 +} + + +@Entity(name = "OngekiUserEventMusic") +@Table(name = "ongeki_user_event_music") + +class UserEventMusic(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var eventId = 0 + var type = 0 + var musicId = 0 + var level = 0 + var techScoreMax = 0 + var platinumScoreMax = 0 + var techRecordDate: String = "" + @JsonProperty("isTechNewRecord") + var isTechNewRecord: Boolean = false +} + + +/** + * For chapter event. + * @author samnyan (privateamusement@protonmail.com) + */ +@Entity(name = "OngekiUserEventPoint") +@Table(name = "ongeki_user_event_point") + +class UserEventPoint(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var eventId = 0 + var point: Long = 0 + @JsonProperty("isRankingRewarded") + var isRankingRewarded = false +} + + +/** + * This is for storing some data only use in aqua + * @author samnyan (privateamusement@protonmail.com) + */ +@Entity(name = "OngekiUserGeneralData") +@Table(name = "ongeki_user_general_data") + +class UserGeneralData( + @field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData, + var propertyKey: String +) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + @Column(columnDefinition = "TEXT") + var propertyValue = "" + +} + + +@Entity(name = "OngekiUserItem") +@Table(name = "ongeki_user_item") + +class UserItem(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var itemKind = 0 + var itemId = 0 + var stock = 0 + @JsonProperty("isValid") + var isValid = false +} + + +@Entity(name = "OngekiUserKop") +@Table(name = "ongeki_user_kop") + +class UserKop(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var authKey: String = "" + var kopId = 0 + var areaId = 0 + var totalTechScore = 0 + var totalPlatinumScore = 0 + var techRecordDate: String = "" + @JsonProperty("isTotalTechNewRecord") + var isTotalTechNewRecord = false +} + + +@Entity(name = "OngekiUserLoginBonus") +@Table(name = "ongeki_user_login_bonus") + +class UserLoginBonus(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var bonusId = 0 + var bonusCount = 0 + var lastUpdateDate: String = "" +} + + +@Entity(name = "OngekiUserMemoryChapter") +@Table(name = "ongeki_user_memory_chapter") + +class UserMemoryChapter(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var chapterId = 0 + var jewelCount = 0 + var lastPlayMusicCategory = 0 + var lastPlayMusicId = 0 + var lastPlayMusicLevel = 0 + @JsonProperty("isDialogWatched") + var isDialogWatched = false + @JsonProperty("isStoryWatched") + var isStoryWatched = false + @JsonProperty("isBossWatched") + var isBossWatched = false + @JsonProperty("isClear") + var isClear = false + var gaugeId = 0 + var gaugeNum = 0 +} + +@Entity(name = "OngekiUserMissionPoint") +@Table(name = "ongeki_user_mission_point") +class UserMissionPoint(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var eventId = 0 + var point: Long = 0 +} + + +@Entity(name = "OngekiUserMusicDetail") +@Table(name = "ongeki_user_music_detail") +class UserMusicDetail(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) : + IGenericUserMusic { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + override var musicId: Int = 0 + var level = 0 + var playCount = 0 + var techScoreMax = 0 + var techScoreRank = 0 + var battleScoreMax = 0 + var battleScoreRank = 0 + var platinumScoreMax = 0 + var maxComboCount = 0 + var maxOverKill = 0 + var maxTeamOverKill = 0 + @JsonProperty("isFullBell") + var isFullBell = false + @JsonProperty("isFullCombo") + var isFullCombo = false + @JsonProperty("isAllBreake") + var isAllBreake = false + @JsonProperty("isLock") + var isLock = false + var clearStatus = 0 + var isStoryWatched = false +} + + +@Entity(name = "OngekiUserMusicItem") +@Table(name = "ongeki_user_music_item") + +class UserMusicItem(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var musicId = 0 + var status = 0 +} + + +@Entity(name = "OngekiUserOption") +@Table(name = "ongeki_user_option") + +class UserOption(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var optionSet = 0 + var speed = 0 + var mirror = 0 + var judgeTiming = 0 + var judgeAdjustment = 0 + var abort = 0 + var stealthField = 0 + var tapSound = 0 + var volGuide = 0 + var volAll = 0 + var volTap = 0 + var volCrTap = 0 + var volHold = 0 + var volSide = 0 + var volFlick = 0 + var volBell = 0 + var volEnemy = 0 + var volSkill = 0 + var volDamage = 0 + var colorField = 0 + var colorLaneBright = 0 + var colorWallBright = 0 + var colorLane = 0 + var colorSide = 0 + var effectDamage = 0 + var effectPos = 0 + var judgeDisp = 0 + var judgePos = 0 + var judgeBreak = 0 + var judgeHit = 0 + var platinumBreakDisp = 0 + var judgeCriticalBreak = 0 + var matching = 0 + var dispPlayerLv = 0 + var dispRating = 0 + var dispBP = 0 + var headphone = 0 +} + + +@Entity(name = "OngekiUserPlaylog") +@Table(name = "ongeki_user_playlog") +class UserPlaylog : IGenericGamePlaylog { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + var id: Long = 0 + @JsonIgnore + @ManyToOne + @JoinColumn(name = "user_id") + override var user: UserData = UserData() + var sortNumber = 0 + var placeId = 0 + var placeName: String = "" + var playDate: String = "" + override var userPlayDate: String = "" + override var musicId: Int = 0 + override var level: Int = 0 + var playKind = 0 + var eventId = 0 + var eventName: String = "" + var eventPoint = 0 + var playedUserId1 = 0 + var playedUserId2 = 0 + var playedUserId3 = 0 + var playedUserName1: String = "" + var playedUserName2: String = "" + var playedUserName3: String = "" + var playedMusicLevel1 = 0 + var playedMusicLevel2 = 0 + var playedMusicLevel3 = 0 + var cardId1 = 0 + var cardId2 = 0 + var cardId3 = 0 + var cardLevel1 = 0 + var cardLevel2 = 0 + var cardLevel3 = 0 + var cardAttack1 = 0 + var cardAttack2 = 0 + var cardAttack3 = 0 + var bossCharaId = 0 + var bossLevel = 0 + var bossAttribute = 0 + var clearStatus = 0 + override var achievement: Int = 0 + + var techScoreRank = 0 + var battleScore = 0 + var battleScoreRank = 0 + var platinumScore = 0 + override var maxCombo: Int = 0 + var judgeMiss = 0 + var judgeHit = 0 + var judgeBreak = 0 + var judgeCriticalBreak = 0 + var rateTap = 0 + var rateHold = 0 + var rateFlick = 0 + var rateSideTap = 0 + var rateSideHold = 0 + var bellCount = 0 + var totalBellCount = 0 + var damageCount = 0 + var overDamage = 0 + @JsonProperty("isTechNewRecord") + var isTechNewRecord = false + @JsonProperty("isBattleNewRecord") + var isBattleNewRecord = false + @JsonProperty("isOverDamageNewRecord") + var isOverDamageNewRecord = false + @JsonProperty("isFullCombo") + override var isFullCombo: Boolean = false + @JsonProperty("isFullBell") + var isFullBell = false + @JsonProperty("isAllBreak") + override var isAllPerfect: Boolean = false + + // TODO: Get before rating + override var beforeRating: Int = 0 + + var battlePoint = 0 + + override val afterRating: Int get() = 0 +} + + +@Entity(name = "OngekiUserRival") +@Table(name = "ongeki_user_rival") +class UserRival { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + + @ManyToOne + @JsonIgnore + @JoinColumn(name = "user_id") + var user: UserData? = null + + @JoinColumn(name = "rival_user_ext_id") + @JsonProperty("rivalUserId") + var rivalUserExtId: Long = 0 +} + +@Entity(name = "OngekiUserScenario") +@Table(name = "ongeki_user_scenario") +class UserScenario(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var scenarioId = 0 + var playCount = 0 +} + + +@Entity(name = "OngekiUserStory") +@Table(name = "ongeki_user_story") +class UserStory(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var storyId = 0 + var lastChapterId = 0 + var jewelCount = 0 + var lastPlayMusicId = 0 + var lastPlayMusicCategory = 0 + var lastPlayMusicLevel = 0 +} + + +@Entity(name = "OngekiUserTechCount") +@Table(name = "ongeki_user_tech_count") +class UserTechCount(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var levelId = 0 + var allBreakCount = 0 + var allBreakPlusCount = 0 +} + + +@Entity(name = "OngekiUserTechEvent") +@Table(name = "ongeki_user_tech_event") +class UserTechEvent(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var eventId = 0 + var totalTechScore = 0 + var totalPlatinumScore = 0 + var techRecordDate: String = "" + @JsonProperty("isRankingRewarded") + var isRankingRewarded = false + @JsonProperty("isTotalTechNewRecord") + var isTotalTechNewRecord = false +} + + +@Entity(name = "OngekiUserTradeItem") +@Table(name = "ongeki_user_trade_item") + +class UserTradeItem(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var chapterId = 0 + var tradeItemId = 0 + var tradeCount = 0 +} + + +@Entity(name = "OngekiTrainingRoom") +@Table(name = "ongeki_user_training_room") + +class UserTrainingRoom(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + var authKey: String = "" + var roomId: Int = 0 + var cardId: Int = 0 + var valueDate: String = "" +} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserActivity.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserActivity.java deleted file mode 100644 index 16fbe054..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserActivity.java +++ /dev/null @@ -1,55 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserActivity") -@Table(name = "ongeki_user_activity", uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id", "kind", "activity_id"})}) -@Data -@NoArgsConstructor -@AllArgsConstructor -@JsonPropertyOrder({"kind", "id", "sortNumber", "param1", "param2", "param3", "param4"}) -public class UserActivity implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int kind; - - @JsonProperty("id") - @Column(name = "activity_id") - private int activityId; - - private int sortNumber; - - private int param1; - - private int param2; - - private int param3; - - private int param4; - - public UserActivity(UserData userData) { - user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserBoss.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserBoss.java deleted file mode 100644 index 3cd61e09..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserBoss.java +++ /dev/null @@ -1,46 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserBoss") -@Table(name = "ongeki_user_boss") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserBoss implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int musicId; - - private int damage; - - @JsonProperty("isClear") - private boolean isClear; - - private int eventId; - - public UserBoss(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserCard.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserCard.java deleted file mode 100644 index 917bbb38..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserCard.java +++ /dev/null @@ -1,74 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserCard") -@Table(name = "ongeki_user_card") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserCard implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int cardId = -1; - - private int digitalStock = 1; - - private int analogStock = 0; - - private int level = 0; - - private int maxLevel = 10; - - private int exp = 0; - - private int printCount = 0; - - private int useCount = 0; - - @JsonProperty("isNew") - private boolean isNew = true; - - private String kaikaDate = "0000-00-00 00:00:00.0"; - - private String choKaikaDate = "0000-00-00 00:00:00.0"; - - private int skillId; - - @JsonProperty("isAcquired") - private boolean isAcquired = true; - - private String created = "0000-00-00 00:00:00.0"; - - public UserCard(UserData userData) { - this.user = userData; - } - - public UserCard(UserData userData, int cardId, int skillId, String created) { - this.user = userData; - this.cardId = cardId; - this.skillId = skillId; - this.created = created; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserChapter.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserChapter.java deleted file mode 100644 index c7b1e562..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserChapter.java +++ /dev/null @@ -1,57 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserChapter") -@Table(name = "ongeki_user_chapter") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserChapter implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int chapterId; - - private int jewelCount; - - private int lastPlayMusicCategory; - - private int lastPlayMusicId; - - private int lastPlayMusicLevel; - - @JsonProperty("isStoryWatched") - private boolean isStoryWatched; - - @JsonProperty("isClear") - private boolean isClear; - - private int skipTiming1; - - private int skipTiming2; - - public UserChapter(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserCharacter.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserCharacter.java deleted file mode 100644 index 27f2a4d1..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserCharacter.java +++ /dev/null @@ -1,56 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserCharacter") -@Table(name = "ongeki_user_character") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserCharacter implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int characterId; - - private int costumeId; - - private int attachmentId; - - private int playCount; - - private int intimateLevel; - - private int intimateCount; - - private int intimateCountRewarded; - - private String intimateCountDate; - - @JsonProperty("isNew") - private boolean isNew; - - public UserCharacter(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserData.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserData.java deleted file mode 100644 index 5d15951e..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserData.java +++ /dev/null @@ -1,166 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import icu.samnyan.aqua.net.games.IUserData; -import icu.samnyan.aqua.sega.general.model.Card; -import icu.samnyan.aqua.sega.util.jackson.AccessCodeSerializer; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserData") -@Table(name = "ongeki_user_data") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserData implements Serializable, IUserData { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonSerialize(using = AccessCodeSerializer.class) - @JsonProperty(value = "accessCode", access = JsonProperty.Access.READ_ONLY) - @OneToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "aime_card_id", unique = true) - private Card card; - // Access code in card - - private String userName; - - private int level; - - private int reincarnationNum; - - private long exp; - - private long point; - - private long totalPoint; - - private int playCount; - - private int jewelCount; - - private int totalJewelCount; - - private int medalCount; - - private int playerRating; - - private int highestRating; - - private int battlePoint; - - private int bestBattlePoint; - - private int overDamageBattlePoint; - - @JsonProperty("isDialogWatchedSuggestMemory") - private boolean isDialogWatchedSuggestMemory; - - private int nameplateId; - - private int trophyId; - - private int cardId; - - private int characterId; - - private int characterVoiceNo; - - private int tabSetting; - - private int tabSortSetting; - - private int cardCategorySetting; - - private int cardSortSetting; - - private int rivalScoreCategorySetting; - - private int playedTutorialBit; - - private int firstTutorialCancelNum; - - private long sumTechHighScore; - - private long sumTechBasicHighScore; - - private long sumTechAdvancedHighScore; - - private long sumTechExpertHighScore; - - private long sumTechMasterHighScore; - - private long sumTechLunaticHighScore; - - private long sumBattleHighScore; - - private long sumBattleBasicHighScore; - - private long sumBattleAdvancedHighScore; - - private long sumBattleExpertHighScore; - - private long sumBattleMasterHighScore; - - private long sumBattleLunaticHighScore; - - private String eventWatchedDate; - - private String cmEventWatchedDate; - - private String firstGameId; - - private String firstRomVersion; - - private String firstDataVersion; - - private String firstPlayDate; - - private String lastGameId; - - private String lastRomVersion; - - private String lastDataVersion; - - private String compatibleCmVersion; - - private String lastPlayDate; - - private int lastPlaceId; - - private String lastPlaceName; - - private int lastRegionId; - - private String lastRegionName; - - private int lastAllNetId; - - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private String lastClientId; - - private int lastUsedDeckId; - - private int lastPlayMusicLevel; - - private int lastEmoneyBrand; - - @Override - public long getTotalScore() { - return sumTechHighScore; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserDeck.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserDeck.java deleted file mode 100644 index 67ba2afc..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserDeck.java +++ /dev/null @@ -1,44 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserDeck") -@Table(name = "ongeki_user_deck") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserDeck implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int deckId; - - private int cardId1; - - private int cardId2; - - private int cardId3; - - public UserDeck(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserEventMusic.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserEventMusic.java deleted file mode 100644 index 2c1251db..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserEventMusic.java +++ /dev/null @@ -1,55 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserEventMusic") -@Table(name = "ongeki_user_event_music") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserEventMusic implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int eventId; - - private int type; - - private int musicId; - - private int level; - - private int techScoreMax; - - private int platinumScoreMax; - - public String techRecordDate; - - @JsonProperty("isTechNewRecord") - public boolean isTechNewRecord; - - public UserEventMusic(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserEventPoint.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserEventPoint.java deleted file mode 100644 index d8d7fe4c..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserEventPoint.java +++ /dev/null @@ -1,45 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * For chapter event. - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserEventPoint") -@Table(name = "ongeki_user_event_point") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserEventPoint implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int eventId; - - private long point; - - @JsonProperty("isRankingRewarded") - private boolean isRankingRewarded; - - public UserEventPoint(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserGeneralData.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserGeneralData.java deleted file mode 100644 index 8dbf73eb..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserGeneralData.java +++ /dev/null @@ -1,44 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * This is for storing some data only use in aqua - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserGeneralData") -@Table(name = "ongeki_user_general_data") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserGeneralData implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private String propertyKey; - - @Column(columnDefinition = "TEXT") - private String propertyValue; - - public UserGeneralData(UserData userData, String key) { - this.user = userData; - this.propertyKey = key; - this.propertyValue = ""; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserItem.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserItem.java deleted file mode 100644 index 1162bbe7..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserItem.java +++ /dev/null @@ -1,46 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserItem") -@Table(name = "ongeki_user_item") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserItem implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int itemKind; - - private int itemId; - - private int stock; - - @JsonProperty("isValid") - private boolean isValid; - - public UserItem(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserKop.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserKop.java deleted file mode 100644 index e3f603c9..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserKop.java +++ /dev/null @@ -1,53 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserKop") -@Table(name = "ongeki_user_kop") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserKop implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private String authKey; - - private int kopId; - - private int areaId; - - private int totalTechScore; - - private int totalPlatinumScore; - - private String techRecordDate; - - @JsonProperty("isTotalTechNewRecord") - private boolean isTotalTechNewRecord; - - public UserKop(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserLoginBonus.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserLoginBonus.java deleted file mode 100644 index b2033b7e..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserLoginBonus.java +++ /dev/null @@ -1,42 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserLoginBonus") -@Table(name = "ongeki_user_login_bonus") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserLoginBonus implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int bonusId; - - private int bonusCount; - - private String lastUpdateDate; - - public UserLoginBonus(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMemoryChapter.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMemoryChapter.java deleted file mode 100644 index ba4a11b8..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMemoryChapter.java +++ /dev/null @@ -1,63 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserMemoryChapter") -@Table(name = "ongeki_user_memory_chapter") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserMemoryChapter implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int chapterId; - - private int jewelCount; - - private int lastPlayMusicCategory; - - private int lastPlayMusicId; - - private int lastPlayMusicLevel; - - @JsonProperty("isDialogWatched") - private boolean isDialogWatched; - - @JsonProperty("isStoryWatched") - private boolean isStoryWatched; - - @JsonProperty("isBossWatched") - private boolean isBossWatched; - - @JsonProperty("isClear") - private boolean isClear; - - private int gaugeId; - - private int gaugeNum; - - public UserMemoryChapter(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMissionPoint.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMissionPoint.java deleted file mode 100644 index fe6d134e..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMissionPoint.java +++ /dev/null @@ -1,41 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * For mission event - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserMissionPoint") -@Table(name = "ongeki_user_mission_point") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserMissionPoint implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int eventId; - - private long point; - - public UserMissionPoint(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMusicDetail.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMusicDetail.java deleted file mode 100644 index e11894aa..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMusicDetail.java +++ /dev/null @@ -1,76 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import icu.samnyan.aqua.net.games.IGenericUserMusic; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserMusicDetail") -@Table(name = "ongeki_user_music_detail") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserMusicDetail implements Serializable, IGenericUserMusic { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int musicId; - - private int level; - - private int playCount; - - private int techScoreMax; - - private int techScoreRank; - - private int battleScoreMax; - - private int battleScoreRank; - - private int platinumScoreMax; - - private int maxComboCount; - - private int maxOverKill; - - private int maxTeamOverKill; - - @JsonProperty("isFullBell") - private boolean isFullBell; - - @JsonProperty("isFullCombo") - private boolean isFullCombo; - - @JsonProperty("isAllBreake") - private boolean isAllBreake; - - @JsonProperty("isLock") - private boolean isLock; - - private int clearStatus; - - private boolean isStoryWatched; - - public UserMusicDetail(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMusicItem.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMusicItem.java deleted file mode 100644 index f58fe6c1..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMusicItem.java +++ /dev/null @@ -1,40 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserMusicItem") -@Table(name = "ongeki_user_music_item") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserMusicItem implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int musicId; - - private int status; - - public UserMusicItem(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserOption.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserOption.java deleted file mode 100644 index d6940a50..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserOption.java +++ /dev/null @@ -1,110 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserOption") -@Table(name = "ongeki_user_option") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserOption implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int optionSet; - - private int speed; - - private int mirror; - - private int judgeTiming; - - private int judgeAdjustment; - - private int abort; - - private int stealthField; - - private int tapSound; - - private int volGuide; - - private int volAll; - - private int volTap; - - private int volCrTap; - - private int volHold; - - private int volSide; - - private int volFlick; - - private int volBell; - - private int volEnemy; - - private int volSkill; - - private int volDamage; - - private int colorField; - - private int colorLaneBright; - - private int colorWallBright; - - private int colorLane; - - private int colorSide; - - private int effectDamage; - - private int effectPos; - - private int judgeDisp; - - private int judgePos; - - private int judgeBreak; - - private int judgeHit; - - private int platinumBreakDisp; - - private int judgeCriticalBreak; - - private int matching; - - private int dispPlayerLv; - - private int dispRating; - - private int dispBP; - - private int headphone; - - public UserOption(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserPlaylog.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserPlaylog.java deleted file mode 100644 index a16ac519..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserPlaylog.java +++ /dev/null @@ -1,180 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import icu.samnyan.aqua.net.games.IGenericGamePlaylog; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; - -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserPlaylog") -@Table(name = "ongeki_user_playlog") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserPlaylog implements Serializable, IGenericGamePlaylog { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int sortNumber; - - private int placeId; - - private String placeName; - - private String playDate; - - private String userPlayDate; - - private int musicId; - - private int level; - - private int playKind; - - private int eventId; - - private String eventName; - - private int eventPoint; - - private int playedUserId1; - - private int playedUserId2; - - private int playedUserId3; - - private String playedUserName1; - - private String playedUserName2; - - private String playedUserName3; - - private int playedMusicLevel1; - - private int playedMusicLevel2; - - private int playedMusicLevel3; - - private int cardId1; - - private int cardId2; - - private int cardId3; - - private int cardLevel1; - - private int cardLevel2; - - private int cardLevel3; - - private int cardAttack1; - - private int cardAttack2; - - private int cardAttack3; - - private int bossCharaId; - - private int bossLevel; - - private int bossAttribute; - - private int clearStatus; - - private int techScore; - - private int techScoreRank; - - private int battleScore; - - private int battleScoreRank; - - private int platinumScore; - - private int maxCombo; - - private int judgeMiss; - - private int judgeHit; - - private int judgeBreak; - - private int judgeCriticalBreak; - - private int rateTap; - - private int rateHold; - - private int rateFlick; - - private int rateSideTap; - - private int rateSideHold; - - private int bellCount; - - private int totalBellCount; - - private int damageCount; - - private int overDamage; - - @JsonProperty("isTechNewRecord") - private boolean isTechNewRecord; - - @JsonProperty("isBattleNewRecord") - private boolean isBattleNewRecord; - - @JsonProperty("isOverDamageNewRecord") - private boolean isOverDamageNewRecord; - - @JsonProperty("isFullCombo") - private boolean isFullCombo; - - @JsonProperty("isFullBell") - private boolean isFullBell; - - @JsonProperty("isAllBreak") - private boolean isAllBreak; - - private int playerRating; - - private int battlePoint; - - @Override - public int getAchievement() { - return techScore; - } - - @Override - public int getAfterRating() { - return playerRating; - } - - @Override - public int getBeforeRating() { - return playerRating; // TODO: Get before rating - } - - @Override - public boolean isAllPerfect() { - return isAllBreak; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserRival.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserRival.java deleted file mode 100644 index ff469bf0..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserRival.java +++ /dev/null @@ -1,36 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserRival") -@Table(name = "ongeki_user_rival") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserRival implements Serializable { - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @ManyToOne - @JsonIgnore - @JoinColumn(name = "user_id") - private UserData user; - - @JoinColumn(name = "rival_user_ext_id") - @JsonProperty("rivalUserId") - private long rivalUserExtId; -} \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserScenario.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserScenario.java deleted file mode 100644 index adbdb0c8..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserScenario.java +++ /dev/null @@ -1,40 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserScenario") -@Table(name = "ongeki_user_scenario") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserScenario implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int scenarioId; - - private int playCount; - - public UserScenario(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserStory.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserStory.java deleted file mode 100644 index eb15d966..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserStory.java +++ /dev/null @@ -1,48 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserStory") -@Table(name = "ongeki_user_story") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserStory implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int storyId; - - private int lastChapterId; - - private int jewelCount; - - private int lastPlayMusicId; - - private int lastPlayMusicCategory; - - private int lastPlayMusicLevel; - - public UserStory(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTechCount.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTechCount.java deleted file mode 100644 index 4ce44fd7..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTechCount.java +++ /dev/null @@ -1,42 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserTechCount") -@Table(name = "ongeki_user_tech_count") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserTechCount implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int levelId; - - private int allBreakCount; - - private int allBreakPlusCount; - - public UserTechCount(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTechEvent.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTechEvent.java deleted file mode 100644 index ecee06b3..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTechEvent.java +++ /dev/null @@ -1,52 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserTechEvent") -@Table(name = "ongeki_user_tech_event") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserTechEvent implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int eventId; - - private int totalTechScore; - - private int totalPlatinumScore; - - private String techRecordDate; - - @JsonProperty("isRankingRewarded") - private boolean isRankingRewarded; - - @JsonProperty("isTotalTechNewRecord") - private boolean isTotalTechNewRecord; - - public UserTechEvent(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTradeItem.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTradeItem.java deleted file mode 100644 index 391123b7..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTradeItem.java +++ /dev/null @@ -1,42 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserTradeItem") -@Table(name = "ongeki_user_trade_item") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserTradeItem implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int chapterId; - - private int tradeItemId; - - private int tradeCount; - - public UserTradeItem(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTrainingRoom.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTrainingRoom.java deleted file mode 100644 index 09a0af95..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserTrainingRoom.java +++ /dev/null @@ -1,44 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiTrainingRoom") -@Table(name = "ongeki_user_training_room") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserTrainingRoom implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - public String authKey; - - public int roomId; - - public int cardId; - - public String valueDate; - - public UserTrainingRoom(UserData userData) { - this.user = userData; - } -} From 42ffea41abc2e05372095e51e4ca6ca87100f38c Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 18:15:15 -0400 Subject: [PATCH 13/39] [F] Ongeki: Fix field names --- .../aqua/sega/ongeki/model/userdata/All.kt | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt index d025bb7e..755ad4d6 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt @@ -180,9 +180,7 @@ class UserData : IUserData { var rivalScoreCategorySetting = 0 var playedTutorialBit = 0 var firstTutorialCancelNum = 0 - final override var totalScore: Long = 0 - private set - + var sumTechHighScore: Long = 0 var sumTechBasicHighScore: Long = 0 var sumTechAdvancedHighScore: Long = 0 var sumTechExpertHighScore: Long = 0 @@ -215,6 +213,8 @@ class UserData : IUserData { var lastUsedDeckId = 0 var lastPlayMusicLevel = 0 var lastEmoneyBrand = 0 + + override val totalScore get() = sumTechHighScore } @@ -515,8 +515,7 @@ class UserPlaylog : IGenericGamePlaylog { var bossLevel = 0 var bossAttribute = 0 var clearStatus = 0 - override var achievement: Int = 0 - + var techScore = 0 var techScoreRank = 0 var battleScore = 0 var battleScoreRank = 0 @@ -546,14 +545,15 @@ class UserPlaylog : IGenericGamePlaylog { @JsonProperty("isFullBell") var isFullBell = false @JsonProperty("isAllBreak") - override var isAllPerfect: Boolean = false - - // TODO: Get before rating - override var beforeRating: Int = 0 + var isAllBreak: Boolean = false + var playerRating: Int = 0 var battlePoint = 0 - override val afterRating: Int get() = 0 + override val isAllPerfect get() = isAllBreak + override val beforeRating get() = playerRating + override val afterRating get() = playerRating + override val achievement get() = techScore } From 7320a982f6f4474b7b26fdfef8c2f4731f7fd1af Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 18:25:25 -0400 Subject: [PATCH 14/39] [O] Ongeki: Generalize user entity --- .../aqua/sega/ongeki/model/userdata/All.kt | 385 ++++++------------ 1 file changed, 117 insertions(+), 268 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt index 755ad4d6..44090fcb 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt @@ -4,136 +4,17 @@ import com.fasterxml.jackson.annotation.JsonIgnore import com.fasterxml.jackson.annotation.JsonProperty import com.fasterxml.jackson.annotation.JsonPropertyOrder import com.fasterxml.jackson.databind.annotation.JsonSerialize -import icu.samnyan.aqua.net.games.IGenericGamePlaylog -import icu.samnyan.aqua.net.games.IGenericUserMusic -import icu.samnyan.aqua.net.games.IUserData +import icu.samnyan.aqua.net.games.* import icu.samnyan.aqua.sega.general.model.Card import icu.samnyan.aqua.sega.util.jackson.AccessCodeSerializer import jakarta.persistence.* -@Entity(name = "OngekiUserActivity") -@Table( - name = "ongeki_user_activity", - uniqueConstraints = [UniqueConstraint(columnNames = ["user_id", "kind", "activity_id"])] -) -@JsonPropertyOrder("kind", "id", "sortNumber", "param1", "param2", "param3", "param4") -class UserActivity(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 - var kind = 0 - @JsonProperty("id") - @Column(name = "activity_id") - var activityId = 0 - var sortNumber = 0 - var param1 = 0 - var param2 = 0 - var param3 = 0 - var param4 = 0 -} - - -@Entity(name = "OngekiUserBoss") -@Table(name = "ongeki_user_boss") -class UserBoss(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 - var musicId = 0 - var damage = 0 - @JsonProperty("isClear") - var isClear = false - var eventId = 0 -} - - -@Entity(name = "OngekiUserCard") -@Table(name = "ongeki_user_card") -class UserCard { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +@MappedSuperclass +class OngekiUserEntity : BaseEntity(), IUserEntity { @JsonIgnore @ManyToOne @JoinColumn(name = "user_id") - var user: UserData = UserData() - var cardId = -1 - - var digitalStock = 1 - var analogStock = 0 - var level = 0 - var maxLevel = 10 - var exp = 0 - var printCount = 0 - var useCount = 0 - @JsonProperty("isNew") - var isNew = true - var kaikaDate = "0000-00-00 00:00:00.0" - - var choKaikaDate = "0000-00-00 00:00:00.0" - - var skillId = 0 - @JsonProperty("isAcquired") - var isAcquired = true - var created = "0000-00-00 00:00:00.0" - - constructor(userData: UserData) { - this.user = userData - } - - constructor(userData: UserData, cardId: Int, skillId: Int, created: String) { - this.user = userData - this.cardId = cardId - this.skillId = skillId - this.created = created - } - -} - - -@Entity(name = "OngekiUserChapter") -@Table(name = "ongeki_user_chapter") - -class UserChapter(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 - var chapterId = 0 - var jewelCount = 0 - var lastPlayMusicCategory = 0 - var lastPlayMusicId = 0 - var lastPlayMusicLevel = 0 - @JsonProperty("isStoryWatched") - var isStoryWatched = false - @JsonProperty("isClear") - var isClear = false - var skipTiming1 = 0 - var skipTiming2 = 0 -} - - -@Entity(name = "OngekiUserCharacter") -@Table(name = "ongeki_user_character") - -class UserCharacter(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 - var characterId = 0 - var costumeId = 0 - var attachmentId = 0 - var playCount = 0 - var intimateLevel = 0 - var intimateCount = 0 - var intimateCountRewarded = 0 - var intimateCountDate: String = "" - @JsonProperty("isNew") - var isNew = false + override var user: UserData = UserData() } @@ -217,30 +98,112 @@ class UserData : IUserData { override val totalScore get() = sumTechHighScore } +@Entity(name = "OngekiUserActivity") +@Table( + name = "ongeki_user_activity", + uniqueConstraints = [UniqueConstraint(columnNames = ["user_id", "kind", "activity_id"])] +) +@JsonPropertyOrder("kind", "id", "sortNumber", "param1", "param2", "param3", "param4") +class UserActivity: OngekiUserEntity() { + var kind = 0 + @JsonProperty("id") + @Column(name = "activity_id") + var activityId = 0 + var sortNumber = 0 + var param1 = 0 + var param2 = 0 + var param3 = 0 + var param4 = 0 +} + +@Entity(name = "OngekiUserBoss") +@Table(name = "ongeki_user_boss") +class UserBoss: OngekiUserEntity() { + var musicId = 0 + var damage = 0 + @JsonProperty("isClear") + var isClear = false + var eventId = 0 +} + +@Entity(name = "OngekiUserCard") +@Table(name = "ongeki_user_card") +class UserCard(): OngekiUserEntity() { + var cardId = -1 + + var digitalStock = 1 + var analogStock = 0 + var level = 0 + var maxLevel = 10 + var exp = 0 + var printCount = 0 + var useCount = 0 + @JsonProperty("isNew") + var isNew = true + var kaikaDate = "0000-00-00 00:00:00.0" + + var choKaikaDate = "0000-00-00 00:00:00.0" + + var skillId = 0 + @JsonProperty("isAcquired") + var isAcquired = true + var created = "0000-00-00 00:00:00.0" + + constructor(userData: UserData) : this() { + this.user = userData + } + + constructor(userData: UserData, cardId: Int, skillId: Int, created: String) : this() { + this.user = userData + this.cardId = cardId + this.skillId = skillId + this.created = created + } +} + +@Entity(name = "OngekiUserChapter") +@Table(name = "ongeki_user_chapter") +class UserChapter: OngekiUserEntity() { + var chapterId = 0 + var jewelCount = 0 + var lastPlayMusicCategory = 0 + var lastPlayMusicId = 0 + var lastPlayMusicLevel = 0 + @JsonProperty("isStoryWatched") + var isStoryWatched = false + @JsonProperty("isClear") + var isClear = false + var skipTiming1 = 0 + var skipTiming2 = 0 +} + +@Entity(name = "OngekiUserCharacter") +@Table(name = "ongeki_user_character") +class UserCharacter: OngekiUserEntity() { + var characterId = 0 + var costumeId = 0 + var attachmentId = 0 + var playCount = 0 + var intimateLevel = 0 + var intimateCount = 0 + var intimateCountRewarded = 0 + var intimateCountDate: String = "" + @JsonProperty("isNew") + var isNew = false +} @Entity(name = "OngekiUserDeck") @Table(name = "ongeki_user_deck") - -class UserDeck(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserDeck: OngekiUserEntity() { var deckId = 0 var cardId1 = 0 var cardId2 = 0 var cardId3 = 0 } - @Entity(name = "OngekiUserEventMusic") @Table(name = "ongeki_user_event_music") - -class UserEventMusic(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserEventMusic: OngekiUserEntity() { var eventId = 0 var type = 0 var musicId = 0 @@ -252,55 +215,26 @@ class UserEventMusic(@field:JoinColumn(name = "user_id") @field:ManyToOne @field var isTechNewRecord: Boolean = false } - -/** - * For chapter event. - * @author samnyan (privateamusement@protonmail.com) - */ @Entity(name = "OngekiUserEventPoint") @Table(name = "ongeki_user_event_point") -class UserEventPoint(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserEventPoint: OngekiUserEntity() { var eventId = 0 var point: Long = 0 @JsonProperty("isRankingRewarded") var isRankingRewarded = false } - -/** - * This is for storing some data only use in aqua - * @author samnyan (privateamusement@protonmail.com) - */ @Entity(name = "OngekiUserGeneralData") @Table(name = "ongeki_user_general_data") - -class UserGeneralData( - @field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData, - var propertyKey: String -) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserGeneralData(var propertyKey: String): OngekiUserEntity() { @Column(columnDefinition = "TEXT") var propertyValue = "" - } - @Entity(name = "OngekiUserItem") @Table(name = "ongeki_user_item") - -class UserItem(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserItem: OngekiUserEntity() { var itemKind = 0 var itemId = 0 var stock = 0 @@ -308,15 +242,9 @@ class UserItem(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonI var isValid = false } - @Entity(name = "OngekiUserKop") @Table(name = "ongeki_user_kop") - -class UserKop(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserKop: OngekiUserEntity() { var authKey: String = "" var kopId = 0 var areaId = 0 @@ -327,29 +255,17 @@ class UserKop(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIg var isTotalTechNewRecord = false } - @Entity(name = "OngekiUserLoginBonus") @Table(name = "ongeki_user_login_bonus") - -class UserLoginBonus(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserLoginBonus: OngekiUserEntity() { var bonusId = 0 var bonusCount = 0 var lastUpdateDate: String = "" } - @Entity(name = "OngekiUserMemoryChapter") @Table(name = "ongeki_user_memory_chapter") - -class UserMemoryChapter(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserMemoryChapter: OngekiUserEntity() { var chapterId = 0 var jewelCount = 0 var lastPlayMusicCategory = 0 @@ -369,24 +285,14 @@ class UserMemoryChapter(@field:JoinColumn(name = "user_id") @field:ManyToOne @fi @Entity(name = "OngekiUserMissionPoint") @Table(name = "ongeki_user_mission_point") -class UserMissionPoint(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserMissionPoint: OngekiUserEntity() { var eventId = 0 var point: Long = 0 } - @Entity(name = "OngekiUserMusicDetail") @Table(name = "ongeki_user_music_detail") -class UserMusicDetail(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) : - IGenericUserMusic { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserMusicDetail: OngekiUserEntity(), IGenericUserMusic { override var musicId: Int = 0 var level = 0 var playCount = 0 @@ -410,28 +316,16 @@ class UserMusicDetail(@field:JoinColumn(name = "user_id") @field:ManyToOne @fiel var isStoryWatched = false } - @Entity(name = "OngekiUserMusicItem") @Table(name = "ongeki_user_music_item") - -class UserMusicItem(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserMusicItem: OngekiUserEntity() { var musicId = 0 var status = 0 } - @Entity(name = "OngekiUserOption") @Table(name = "ongeki_user_option") - -class UserOption(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserOption: OngekiUserEntity() { var optionSet = 0 var speed = 0 var mirror = 0 @@ -474,10 +368,7 @@ class UserOption(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:Jso @Entity(name = "OngekiUserPlaylog") @Table(name = "ongeki_user_playlog") -class UserPlaylog : IGenericGamePlaylog { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - var id: Long = 0 +class UserPlaylog : OngekiUserEntity(), IGenericGamePlaylog { @JsonIgnore @ManyToOne @JoinColumn(name = "user_id") @@ -556,20 +447,9 @@ class UserPlaylog : IGenericGamePlaylog { override val achievement get() = techScore } - @Entity(name = "OngekiUserRival") @Table(name = "ongeki_user_rival") -class UserRival { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 - - @ManyToOne - @JsonIgnore - @JoinColumn(name = "user_id") - var user: UserData? = null - +class UserRival: OngekiUserEntity() { @JoinColumn(name = "rival_user_ext_id") @JsonProperty("rivalUserId") var rivalUserExtId: Long = 0 @@ -577,23 +457,14 @@ class UserRival { @Entity(name = "OngekiUserScenario") @Table(name = "ongeki_user_scenario") -class UserScenario(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserScenario: OngekiUserEntity() { var scenarioId = 0 var playCount = 0 } - @Entity(name = "OngekiUserStory") @Table(name = "ongeki_user_story") -class UserStory(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserStory: OngekiUserEntity() { var storyId = 0 var lastChapterId = 0 var jewelCount = 0 @@ -602,27 +473,17 @@ class UserStory(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:Json var lastPlayMusicLevel = 0 } - @Entity(name = "OngekiUserTechCount") @Table(name = "ongeki_user_tech_count") -class UserTechCount(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserTechCount: OngekiUserEntity() { var levelId = 0 var allBreakCount = 0 var allBreakPlusCount = 0 } - @Entity(name = "OngekiUserTechEvent") @Table(name = "ongeki_user_tech_event") -class UserTechEvent(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserTechEvent: OngekiUserEntity() { var eventId = 0 var totalTechScore = 0 var totalPlatinumScore = 0 @@ -633,29 +494,17 @@ class UserTechEvent(@field:JoinColumn(name = "user_id") @field:ManyToOne @field: var isTotalTechNewRecord = false } - @Entity(name = "OngekiUserTradeItem") @Table(name = "ongeki_user_trade_item") - -class UserTradeItem(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserTradeItem: OngekiUserEntity() { var chapterId = 0 var tradeItemId = 0 var tradeCount = 0 } - @Entity(name = "OngekiTrainingRoom") @Table(name = "ongeki_user_training_room") - -class UserTrainingRoom(@field:JoinColumn(name = "user_id") @field:ManyToOne @field:JsonIgnore var user: UserData) { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - var id: Long = 0 +class UserTrainingRoom: OngekiUserEntity() { var authKey: String = "" var roomId: Int = 0 var cardId: Int = 0 From 57d83439f31ddb46fa6d800add7a91a5e9b253c1 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 18:36:30 -0400 Subject: [PATCH 15/39] [F] Ongeki: Fix constructor inconsistencies --- .../handler/impl/UpsertUserAllHandler.java | 586 ------------------ .../handler/impl/UpsertUserAllHandler.kt | 561 +++++++++++++++++ .../aqua/sega/ongeki/model/userdata/All.kt | 60 +- 3 files changed, 586 insertions(+), 621 deletions(-) delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java create mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java deleted file mode 100644 index ed628164..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java +++ /dev/null @@ -1,586 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.general.model.Card; -import icu.samnyan.aqua.sega.general.model.response.UserRecentRating; -import icu.samnyan.aqua.sega.general.service.CardService; -import icu.samnyan.aqua.sega.ongeki.*; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.request.UpsertUserAll; -import icu.samnyan.aqua.sega.ongeki.model.response.CodeResp; -import icu.samnyan.aqua.sega.ongeki.model.userdata.*; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -/** - * The handler for saving all data of a ONGEKI profile - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiUserAllHandler") -public class UpsertUserAllHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(UpsertUserAllHandler.class); - - private final BasicMapper mapper; - - private final CardService cardService; - - private final OgkUserDataRepo userDataRepository; - private final OgkUserOptionRepo userOptionRepository; - private final OgkUserPlaylogRepo userPlaylogRepository; - private final OgkUserActivityRepo userActivityRepository; - private final OgkUserMusicDetailRepo userMusicDetailRepository; - private final OgkUserCharacterRepo userCharacterRepository; - private final OgkUserCardRepo userCardRepository; - private final OgkUserDeckRepo userDeckRepository; - private final OgkUserStoryRepo userStoryRepository; - private final OgkUserChapterRepo userChapterRepository; - private final OgkUserMemoryChapterRepo userMemoryChapterRepository; - private final OgkUserItemRepo userItemRepository; - private final OgkUserMusicItemRepo userMusicItemRepository; - private final OgkUserLoginBonusRepo userLoginBonusRepository; - private final OgkUserEventPointRepo userEventPointRepository; - private final OgkUserMissionPointRepo userMissionPointRepository; - private final OgkUserTrainingRoomRepo userTrainingRoomRepository; - private final OgkUserGeneralDataRepo userGeneralDataRepository; - private final OgkUserBossRepo userBossRepository; - private final OgkUserScenarioRepo userScenarioRepository; - private final OgkUserTechCountRepo userTechCountRepository; - private final OgkUserTradeItemRepo userTradeItemRepository; - private final OgkUserEventMusicRepo userEventMusicRepository; - private final OgkUserTechEventRepo userTechEventRepository; - private final OgkUserKopRepo userKopRepository; - - @Autowired - public UpsertUserAllHandler(BasicMapper mapper, - CardService cardService, OgkUserDataRepo userDataRepository, OgkUserOptionRepo userOptionRepository, OgkUserPlaylogRepo userPlaylogRepository, OgkUserActivityRepo userActivityRepository, OgkUserMusicDetailRepo userMusicDetailRepository, OgkUserCharacterRepo userCharacterRepository, OgkUserCardRepo userCardRepository, OgkUserDeckRepo userDeckRepository, OgkUserStoryRepo userStoryRepository, OgkUserChapterRepo userChapterRepository, OgkUserItemRepo userItemRepository, OgkUserMusicItemRepo userMusicItemRepository, OgkUserLoginBonusRepo userLoginBonusRepository, OgkUserEventPointRepo userEventPointRepository, OgkUserMissionPointRepo userMissionPointRepository, OgkUserTrainingRoomRepo userTrainingRoomRepository, OgkUserGeneralDataRepo userGeneralDataRepository, OgkUserBossRepo userBossRepository, OgkUserScenarioRepo userScenarioRepository, OgkUserTechCountRepo userTechCountRepository, OgkUserTradeItemRepo userTradeItemRepository, OgkUserEventMusicRepo userEventMusicRepository, OgkUserTechEventRepo userTechEventRepository, OgkUserKopRepo userKopRepository, OgkUserMemoryChapterRepo userMemoryChapterRepository) { - this.mapper = mapper; - this.cardService = cardService; - this.userDataRepository = userDataRepository; - this.userOptionRepository = userOptionRepository; - this.userPlaylogRepository = userPlaylogRepository; - this.userActivityRepository = userActivityRepository; - this.userMusicDetailRepository = userMusicDetailRepository; - this.userCharacterRepository = userCharacterRepository; - this.userCardRepository = userCardRepository; - this.userDeckRepository = userDeckRepository; - this.userStoryRepository = userStoryRepository; - this.userChapterRepository = userChapterRepository; - this.userMemoryChapterRepository = userMemoryChapterRepository; - this.userItemRepository = userItemRepository; - this.userMusicItemRepository = userMusicItemRepository; - this.userLoginBonusRepository = userLoginBonusRepository; - this.userEventPointRepository = userEventPointRepository; - this.userMissionPointRepository = userMissionPointRepository; - this.userTrainingRoomRepository = userTrainingRoomRepository; - this.userGeneralDataRepository = userGeneralDataRepository; - this.userBossRepository = userBossRepository; - this.userScenarioRepository = userScenarioRepository; - this.userTechCountRepository = userTechCountRepository; - this.userTradeItemRepository = userTradeItemRepository; - this.userEventMusicRepository = userEventMusicRepository; - this.userTechEventRepository = userTechEventRepository; - this.userKopRepository = userKopRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - UpsertUserAll upsertUserAll = mapper.convert(request.get("upsertUserAll"), UpsertUserAll.class); - - // All the field should exist, no need to check now. - // UserData - UserData newUserData; - { - UserData userData; - - Optional userOptional = userDataRepository.findByCard_ExtId(userId); - - // UserData might be empty on later runs - if (userOptional.isEmpty() && upsertUserAll.getUserData().isEmpty()) { - return null; - } - - if (userOptional.isPresent()) { - userData = userOptional.get(); - } else { - userData = new UserData(); - Card card = cardService.getCardByExtId(userId).orElseThrow(); - userData.setCard(card); - } - - // If new data exists, use new data. Otherwise, use old data - newUserData = !upsertUserAll.getUserData().isEmpty() ? upsertUserAll.getUserData().get(0) : userData; - - newUserData.setId(userData.getId()); - newUserData.setCard(userData.getCard()); - - // Set eventWatchedDate with lastPlayDate, because client doesn't update it - newUserData.setEventWatchedDate(userData.getLastPlayDate()); - newUserData.setCmEventWatchedDate(userData.getLastPlayDate()); - - userDataRepository.save(newUserData); - } - - - // UserOption - UserOption newUserOption = upsertUserAll.getUserOption().get(0); - - Optional userOptionOptional = userOptionRepository.findSingleByUser(newUserData); - UserOption userOption = userOptionOptional.orElseGet(() -> new UserOption(newUserData)); - - newUserOption.setId(userOption.getId()); - newUserOption.setUser(userOption.getUser()); - - userOptionRepository.save(newUserOption); - - - // UserPlaylogList - List userPlaylogList = upsertUserAll.getUserPlaylogList(); - List newUserPlaylogList = new ArrayList<>(); - - for (UserPlaylog newUserPlaylog : userPlaylogList) { - newUserPlaylog.setUser(newUserData); - newUserPlaylogList.add(newUserPlaylog); - } - - userPlaylogRepository.saveAll(newUserPlaylogList); - - - // UserSessionlogList, UserJewelboostlogLost doesn't need to be saved for a private server - - - // UserActivityList - List userActivityList = upsertUserAll.getUserActivityList(); - List newUserActivityList = new ArrayList<>(); - - for (UserActivity newUserActivity : userActivityList) { - int kind = newUserActivity.getKind(); - int id = newUserActivity.getActivityId(); - - if (kind != 0 && id != 0) { - Optional activityOptional = userActivityRepository.findByUserAndKindAndActivityId(newUserData, kind, id); - UserActivity userActivity = activityOptional.orElseGet(() -> new UserActivity(newUserData)); - - newUserActivity.setId(userActivity.getId()); - newUserActivity.setUser(newUserData); - newUserActivityList.add(newUserActivity); - } - } - newUserActivityList.sort((a, b) -> Integer.compare(b.getSortNumber(), a.getSortNumber())); - userActivityRepository.saveAll(newUserActivityList); - - - // UserRecentRatingList - // This thing still need to save to solve the rating drop - this.saveGeneralData(upsertUserAll.getUserRecentRatingList(), newUserData, "recent_rating_list"); - - - /* - * The rating and battle point calculation is little bit complex. - * So I just create a UserGeneralData class to store this value - * into a csv format for convenience - */ - // UserBpBaseList (For calculating Battle point) - this.saveGeneralData(upsertUserAll.getUserBpBaseList(), newUserData, "battle_point_base"); - - - // This is the best rating of all charts. Best 30 + 10 after that. - // userRatingBaseBestList - this.saveGeneralData(upsertUserAll.getUserRatingBaseBestList(), newUserData, "rating_base_best"); - - - // userRatingBaseNextList - this.saveGeneralData(upsertUserAll.getUserRatingBaseNextList(), newUserData, "rating_base_next"); - - - // This is the best rating of new charts. Best 15 + 10 after that. - // New chart means same version - // userRatingBaseBestNewList - this.saveGeneralData(upsertUserAll.getUserRatingBaseBestNewList(), newUserData, "rating_base_new_best"); - - // userRatingBaseNextNewList - this.saveGeneralData(upsertUserAll.getUserRatingBaseNextNewList(), newUserData, "rating_base_new_next"); - - // This is the recent best - // userRatingBaseHotList - this.saveGeneralData(upsertUserAll.getUserRatingBaseHotList(), newUserData, "rating_base_hot_best"); - - // userRatingBaseHotNextList - this.saveGeneralData(upsertUserAll.getUserRatingBaseHotNextList(), newUserData, "rating_base_hot_next"); - - - // UserMusicDetailList - List userMusicDetailList = upsertUserAll.getUserMusicDetailList(); - List newUserMusicDetailList = new ArrayList<>(); - - for (UserMusicDetail newUserMusicDetail : userMusicDetailList) { - int musicId = newUserMusicDetail.getMusicId(); - int level = newUserMusicDetail.getLevel(); - - Optional musicDetailOptional = userMusicDetailRepository.findByUserAndMusicIdAndLevel(newUserData, musicId, level); - UserMusicDetail userMusicDetail = musicDetailOptional.orElseGet(() -> new UserMusicDetail(newUserData)); - - newUserMusicDetail.setId(userMusicDetail.getId()); - newUserMusicDetail.setUser(newUserData); - newUserMusicDetailList.add(newUserMusicDetail); - } - userMusicDetailRepository.saveAll(newUserMusicDetailList); - - - // UserCharacterList - List userCharacterList = upsertUserAll.getUserCharacterList(); - List newUserCharacterList = new ArrayList<>(); - - for (UserCharacter newUserCharacter : userCharacterList) { - int characterId = newUserCharacter.getCharacterId(); - - Optional characterOptional = userCharacterRepository.findByUserAndCharacterId(newUserData, characterId); - UserCharacter userCharacter = characterOptional.orElseGet(() -> new UserCharacter(newUserData)); - - newUserCharacter.setId(userCharacter.getId()); - newUserCharacter.setUser(newUserData); - newUserCharacterList.add(newUserCharacter); - } - userCharacterRepository.saveAll(newUserCharacterList); - - // UserCardList - List userCardList = upsertUserAll.getUserCardList(); - List newUserCardList = new ArrayList<>(); - - for (UserCard newUserCard : userCardList) { - int cardId = newUserCard.getCardId(); - - Optional cardOptional = userCardRepository.findByUserAndCardId(newUserData, cardId); - UserCard userCard = cardOptional.orElseGet(() -> new UserCard(newUserData)); - - newUserCard.setId(userCard.getId()); - newUserCard.setUser(newUserData); - newUserCardList.add(newUserCard); - } - userCardRepository.saveAll(newUserCardList); - - - // UserDeckList - List userDeckList = upsertUserAll.getUserDeckList(); - List newUserDeckList = new ArrayList<>(); - - for (UserDeck newUserDeck : userDeckList) { - int deckId = newUserDeck.getDeckId(); - - Optional deckOptional = userDeckRepository.findByUserAndDeckId(newUserData, deckId); - UserDeck userDeck = deckOptional.orElseGet(() -> new UserDeck(newUserData)); - - newUserDeck.setId(userDeck.getId()); - newUserDeck.setUser(newUserData); - newUserDeckList.add(newUserDeck); - } - userDeckRepository.saveAll(newUserDeckList); - - - // userTrainingRoomList - List userTrainingRoomList = upsertUserAll.getUserTrainingRoomList(); - List newUserTrainingRoomList = new ArrayList<>(); - - for (UserTrainingRoom newUserTrainingRoom : userTrainingRoomList) { - int roomId = newUserTrainingRoom.getRoomId(); - - Optional trainingRoomOptional = userTrainingRoomRepository.findByUserAndRoomId(newUserData, roomId); - UserTrainingRoom trainingRoom = trainingRoomOptional.orElseGet(() -> new UserTrainingRoom(newUserData)); - - newUserTrainingRoom.setId(trainingRoom.getId()); - newUserTrainingRoom.setUser(newUserData); - newUserTrainingRoomList.add(newUserTrainingRoom); - } - userTrainingRoomRepository.saveAll(newUserTrainingRoomList); - - - // UserStoryList - List userStoryList = upsertUserAll.getUserStoryList(); - List newUserStoryList = new ArrayList<>(); - - for (UserStory newUserStory : userStoryList) { - int storyId = newUserStory.getStoryId(); - - Optional storyOptional = userStoryRepository.findByUserAndStoryId(newUserData, storyId); - UserStory userStory = storyOptional.orElseGet(() -> new UserStory(newUserData)); - - newUserStory.setId(userStory.getId()); - newUserStory.setUser(newUserData); - newUserStoryList.add(newUserStory); - } - userStoryRepository.saveAll(newUserStoryList); - - - // UserChapterList - List userChapterList = upsertUserAll.getUserChapterList(); - List newUserChapterList = new ArrayList<>(); - - for (UserChapter newUserChapter : userChapterList) { - int chapterId = newUserChapter.getChapterId(); - - Optional chapterOptional = userChapterRepository.findByUserAndChapterId(newUserData, chapterId); - UserChapter userChapter = chapterOptional.orElseGet(() -> new UserChapter(newUserData)); - - newUserChapter.setId(userChapter.getId()); - newUserChapter.setUser(newUserData); - newUserChapterList.add(newUserChapter); - } - userChapterRepository.saveAll(newUserChapterList); - - - // UserMemoryChapterList - List userMemoryChapterList = upsertUserAll.getUserMemoryChapterList(); - - if (userMemoryChapterList != null) { - List newUserMemoryChapterList = new ArrayList<>(); - - for (UserMemoryChapter newUserMemoryChapter : userMemoryChapterList) { - int chapterId = newUserMemoryChapter.getChapterId(); - - Optional chapterOptional = userMemoryChapterRepository.findByUserAndChapterId(newUserData, chapterId); - UserMemoryChapter userChapter = chapterOptional.orElseGet(() -> new UserMemoryChapter(newUserData)); - - newUserMemoryChapter.setId(userChapter.getId()); - newUserMemoryChapter.setUser(newUserData); - newUserMemoryChapterList.add(newUserMemoryChapter); - } - userMemoryChapterRepository.saveAll(newUserMemoryChapterList); - } - - // UserItemList - List userItemList = upsertUserAll.getUserItemList(); - List newUserItemList = new ArrayList<>(); - - for (UserItem newUserItem : userItemList) { - int itemKind = newUserItem.getItemKind(); - int itemId = newUserItem.getItemId(); - - Optional itemOptional = userItemRepository.findByUserAndItemKindAndItemId(newUserData, itemKind, itemId); - UserItem userItem = itemOptional.orElseGet(() -> new UserItem(newUserData)); - - newUserItem.setId(userItem.getId()); - newUserItem.setUser(newUserData); - newUserItemList.add(newUserItem); - } - userItemRepository.saveAll(newUserItemList); - - // UserMusicItemList - List userMusicItemList = upsertUserAll.getUserMusicItemList(); - List newUserMusicItemList = new ArrayList<>(); - - for (UserMusicItem newUserMusicItem : userMusicItemList) { - int musicId = newUserMusicItem.getMusicId(); - - Optional musicItemOptional = userMusicItemRepository.findByUserAndMusicId(newUserData, musicId); - UserMusicItem userMusicItem = musicItemOptional.orElseGet(() -> new UserMusicItem(newUserData)); - - newUserMusicItem.setId(userMusicItem.getId()); - newUserMusicItem.setUser(newUserData); - newUserMusicItemList.add(newUserMusicItem); - } - userMusicItemRepository.saveAll(newUserMusicItemList); - - - // userLoginBonusList - List userLoginBonusList = upsertUserAll.getUserLoginBonusList(); - List newUserLoginBonusList = new ArrayList<>(); - - for (UserLoginBonus newUserLoginBonus : userLoginBonusList) { - int bonusId = newUserLoginBonus.getBonusId(); - - Optional loginBonusOptional = userLoginBonusRepository.findByUserAndBonusId(newUserData, bonusId); - UserLoginBonus userLoginBonus = loginBonusOptional.orElseGet(() -> new UserLoginBonus(newUserData)); - - newUserLoginBonus.setId(userLoginBonus.getId()); - newUserLoginBonus.setUser(newUserData); - newUserLoginBonusList.add(newUserLoginBonus); - } - userLoginBonusRepository.saveAll(newUserLoginBonusList); - - - // UserEventPointList - List userEventPointList = upsertUserAll.getUserEventPointList(); - List newUserEventPointList = new ArrayList<>(); - - for (UserEventPoint newUserEventPoint : userEventPointList) { - int eventId = newUserEventPoint.getEventId(); - - Optional eventPointOptional = userEventPointRepository.findByUserAndEventId(newUserData, eventId); - UserEventPoint userEventPoint = eventPointOptional.orElseGet(() -> new UserEventPoint(newUserData)); - - newUserEventPoint.setId(userEventPoint.getId()); - newUserEventPoint.setUser(newUserData); - newUserEventPointList.add(newUserEventPoint); - } - userEventPointRepository.saveAll(newUserEventPointList); - - - // UserMissionPointList - List userMissionPointList = upsertUserAll.getUserMissionPointList(); - List newUserMissionPointList = new ArrayList<>(); - - for (UserMissionPoint newUserMissionPoint : userMissionPointList) { - int eventId = newUserMissionPoint.getEventId(); - - Optional userMissionPointOptional = userMissionPointRepository.findByUserAndEventId(newUserData, eventId); - UserMissionPoint userMissionPoint = userMissionPointOptional.orElseGet(() -> new UserMissionPoint(newUserData)); - - newUserMissionPoint.setId(userMissionPoint.getId()); - newUserMissionPoint.setUser(newUserData); - newUserMissionPointList.add(newUserMissionPoint); - } - userMissionPointRepository.saveAll(newUserMissionPointList); - - // UserRatinglogList (For the highest rating of each version) - - // UserBossList - List userBossList = upsertUserAll.getUserBossList(); - if (userBossList != null) { - List newUserBossList = new ArrayList<>(); - for (UserBoss newUserBoss : userBossList) { - int musicId = newUserBoss.getMusicId(); - - Optional userBossOptional = userBossRepository.findByUserAndMusicId(newUserData, musicId); - UserBoss userBoss = userBossOptional.orElseGet(() -> new UserBoss(newUserData)); - - newUserBoss.setId(userBoss.getId()); - newUserBoss.setUser(userBoss.getUser()); - newUserBossList.add(newUserBoss); - } - userBossRepository.saveAll(newUserBossList); - } - - // UserTechCountList - List userTechCountList = upsertUserAll.getUserTechCountList(); - if (userTechCountList != null) { - List newUserTechCountList = new ArrayList<>(); - for (UserTechCount newUserTechCount : userTechCountList) { - int levelId = newUserTechCount.getLevelId(); - - Optional userTechCountOptional = userTechCountRepository.findByUserAndLevelId(newUserData, levelId); - UserTechCount userTechCount = userTechCountOptional.orElseGet(() -> new UserTechCount(newUserData)); - - newUserTechCount.setId(userTechCount.getId()); - newUserTechCount.setUser(userTechCount.getUser()); - newUserTechCountList.add(newUserTechCount); - } - userTechCountRepository.saveAll(newUserTechCountList); - } - - // UserScenarioList - List userScenarioList = upsertUserAll.getUserScenarioList(); - if (userScenarioList != null) { - List newUserScenarioList = new ArrayList<>(); - for (UserScenario newUserScenario : userScenarioList) { - int scenarioId = newUserScenario.getScenarioId(); - - Optional userScenarioOptional = userScenarioRepository.findByUserAndScenarioId(newUserData, scenarioId); - UserScenario userScenario = userScenarioOptional.orElseGet(() -> new UserScenario(newUserData)); - - newUserScenario.setId(userScenario.getId()); - newUserScenario.setUser(userScenario.getUser()); - newUserScenarioList.add(newUserScenario); - } - userScenarioRepository.saveAll(newUserScenarioList); - } - - // UserTradeItemList - List userTradeItemList = upsertUserAll.getUserTradeItemList(); - List newUserTradeItemList = new ArrayList<>(); - - for (UserTradeItem newUserTradeItem : userTradeItemList) { - int chapterId = newUserTradeItem.getChapterId(); - int tradeItemId = newUserTradeItem.getTradeItemId(); - - Optional tradeItemOptional = userTradeItemRepository.findByUserAndChapterIdAndTradeItemId(newUserData, chapterId, tradeItemId); - UserTradeItem userTradeItem = tradeItemOptional.orElseGet(() -> new UserTradeItem(newUserData)); - - newUserTradeItem.setId(userTradeItem.getId()); - newUserTradeItem.setUser(newUserData); - newUserTradeItemList.add(newUserTradeItem); - } - userTradeItemRepository.saveAll(newUserTradeItemList); - - // UserEventMusicList - List userEventMusicList = upsertUserAll.getUserEventMusicList(); - List newUserEventMusicList = new ArrayList<>(); - - for (UserEventMusic newUserEventMusic : userEventMusicList) { - int eventId = newUserEventMusic.getEventId(); - int type = newUserEventMusic.getType(); - int musicId = newUserEventMusic.getMusicId(); - - Optional eventMusicOptional = userEventMusicRepository.findByUserAndEventIdAndTypeAndMusicId(newUserData, eventId, type, musicId); - UserEventMusic userEventMusic = eventMusicOptional.orElseGet(() -> new UserEventMusic(newUserData)); - - newUserEventMusic.setId(userEventMusic.getId()); - newUserEventMusic.setUser(newUserData); - newUserEventMusicList.add(newUserEventMusic); - } - userEventMusicRepository.saveAll(newUserEventMusicList); - - // UserTechEventList - List userTechEventList = upsertUserAll.getUserTechEventList(); - List newUserTechEventList = new ArrayList<>(); - - for (UserTechEvent newUserTechEvent : userTechEventList) { - int eventId = newUserTechEvent.getEventId(); - - Optional techEventOptional = userTechEventRepository.findByUserAndEventId(newUserData, eventId); - UserTechEvent userTechEvent = techEventOptional.orElseGet(() -> new UserTechEvent(newUserData)); - - newUserTechEvent.setId(userTechEvent.getId()); - newUserTechEvent.setUser(newUserData); - newUserTechEventList.add(newUserTechEvent); - } - userTechEventRepository.saveAll(newUserTechEventList); - - // UserKopList - List userKopList = upsertUserAll.getUserKopList(); - List newUserKopList = new ArrayList<>(); - - for (UserKop newUserKop : userKopList) { - int kopId = newUserKop.getKopId(); - int areaId = newUserKop.getAreaId(); - - Optional kopOptional = userKopRepository.findByUserAndKopIdAndAreaId(newUserData, kopId, areaId); - UserKop userKop = kopOptional.orElseGet(() -> new UserKop(newUserData)); - - newUserKop.setId(userKop.getId()); - newUserKop.setUser(newUserData); - newUserKopList.add(newUserKop); - } - userKopRepository.saveAll(newUserKopList); - - String json = mapper.write(new CodeResp(1, "upsertUserAll")); - logger.info("Response: " + json); - return json; - - } - - private void saveGeneralData(List itemList, UserData newUserData, String key) { - StringBuilder sb = new StringBuilder(); - // Convert to a string - for (UserRecentRating item : - itemList) { - sb.append(item.getMusicId()).append(":").append(item.getDifficultId()).append(":").append(item.getScore()); - sb.append(","); - } - if (sb.length() > 0) { - sb.deleteCharAt(sb.length() - 1); - } - Optional uOptional = userGeneralDataRepository.findByUserAndPropertyKey(newUserData, key); - UserGeneralData userGeneralData = uOptional.orElseGet(() -> new UserGeneralData(newUserData, key)); - userGeneralData.setPropertyValue(sb.toString()); - userGeneralDataRepository.save(userGeneralData); - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt new file mode 100644 index 00000000..c0c5c3f2 --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt @@ -0,0 +1,561 @@ +package icu.samnyan.aqua.sega.ongeki.handler.impl + +import ext.logger +import icu.samnyan.aqua.sega.general.BaseHandler +import icu.samnyan.aqua.sega.general.model.response.UserRecentRating +import icu.samnyan.aqua.sega.general.service.CardService +import icu.samnyan.aqua.sega.ongeki.* +import icu.samnyan.aqua.sega.ongeki.model.request.UpsertUserAll +import icu.samnyan.aqua.sega.ongeki.model.response.CodeResp +import icu.samnyan.aqua.sega.ongeki.model.userdata.* +import icu.samnyan.aqua.sega.util.jackson.BasicMapper +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.stereotype.Component + +/** + * The handler for saving all data of a ONGEKI profile + * @author samnyan (privateamusement@protonmail.com) + */ +@Component("OngekiUserAllHandler") +class UpsertUserAllHandler @Autowired constructor( + private val mapper: BasicMapper, + private val cardService: CardService, + private val userDataRepository: OgkUserDataRepo, + private val userOptionRepository: OgkUserOptionRepo, + private val userPlaylogRepository: OgkUserPlaylogRepo, + private val userActivityRepository: OgkUserActivityRepo, + private val userMusicDetailRepository: OgkUserMusicDetailRepo, + private val userCharacterRepository: OgkUserCharacterRepo, + private val userCardRepository: OgkUserCardRepo, + private val userDeckRepository: OgkUserDeckRepo, + private val userStoryRepository: OgkUserStoryRepo, + private val userChapterRepository: OgkUserChapterRepo, + private val userItemRepository: OgkUserItemRepo, + private val userMusicItemRepository: OgkUserMusicItemRepo, + private val userLoginBonusRepository: OgkUserLoginBonusRepo, + private val userEventPointRepository: OgkUserEventPointRepo, + private val userMissionPointRepository: OgkUserMissionPointRepo, + private val userTrainingRoomRepository: OgkUserTrainingRoomRepo, + private val userGeneralDataRepository: OgkUserGeneralDataRepo, + private val userBossRepository: OgkUserBossRepo, + private val userScenarioRepository: OgkUserScenarioRepo, + private val userTechCountRepository: OgkUserTechCountRepo, + private val userTradeItemRepository: OgkUserTradeItemRepo, + private val userEventMusicRepository: OgkUserEventMusicRepo, + private val userTechEventRepository: OgkUserTechEventRepo, + private val userKopRepository: OgkUserKopRepo, + private val userMemoryChapterRepository: OgkUserMemoryChapterRepo +) : BaseHandler { + override fun handle(request: Map): Any? { + val userId = (request["userId"] as Number).toLong() + val upsertUserAll = mapper.convert( + request["upsertUserAll"]!!, + UpsertUserAll::class.java + ) + + // All the field should exist, no need to check now. + // UserData + val u: UserData + run { + val userData: UserData + val userOptional = userDataRepository.findByCard_ExtId(userId) + + // UserData might be empty on later runs + if (userOptional.isEmpty && upsertUserAll.userData.isEmpty()) { + return null + } + + if (userOptional.isPresent) { + userData = userOptional.get() + } else { + userData = UserData() + val card = cardService.getCardByExtId(userId).orElseThrow() + userData.card = card + } + + // If new data exists, use new data. Otherwise, use old data + u = if (!upsertUserAll.userData.isEmpty()) upsertUserAll.userData[0] else userData + + u.id = userData.id + u.card = userData.card + + // Set eventWatchedDate with lastPlayDate, because client doesn't update it + u.eventWatchedDate = userData.lastPlayDate + u.cmEventWatchedDate = userData.lastPlayDate + userDataRepository.save(u) + } + + + // UserOption + val newUserOption = upsertUserAll.userOption[0] + + val userOptionOptional = userOptionRepository.findSingleByUser(u) + val userOption = userOptionOptional.orElseGet { UserOption().apply { user = u } } + + newUserOption.id = userOption.id + newUserOption.user = userOption.user + + userOptionRepository.save(newUserOption) + + + // UserPlaylogList + val userPlaylogList = upsertUserAll.userPlaylogList + val newUserPlaylogList: MutableList = ArrayList() + + for (newUserPlaylog in userPlaylogList) { + newUserPlaylog.user = u + newUserPlaylogList.add(newUserPlaylog) + } + + userPlaylogRepository.saveAll(newUserPlaylogList) + + + // UserSessionlogList, UserJewelboostlogLost doesn't need to be saved for a private server + + + // UserActivityList + val userActivityList = upsertUserAll.userActivityList + val newUserActivityList: MutableList = ArrayList() + + for (newUserActivity in userActivityList) { + val kind = newUserActivity.kind + val id = newUserActivity.activityId + + if (kind != 0 && id != 0) { + val activityOptional = userActivityRepository.findByUserAndKindAndActivityId(u, kind, id) + val userActivity = activityOptional.orElseGet { + UserActivity().apply { user = u } + } + + newUserActivity.id = userActivity.id + newUserActivity.user = u + newUserActivityList.add(newUserActivity) + } + } + newUserActivityList.sortWith { a, b -> b.sortNumber.compareTo(a.sortNumber) } + userActivityRepository.saveAll(newUserActivityList) + + + // UserRecentRatingList + // This thing still need to save to solve the rating drop + this.saveGeneralData(upsertUserAll.userRecentRatingList, u, "recent_rating_list") + + + /* + * The rating and battle point calculation is little bit complex. + * So I just create a UserGeneralData class to store this value + * into a csv format for convenience + */ + // UserBpBaseList (For calculating Battle point) + this.saveGeneralData(upsertUserAll.userBpBaseList, u, "battle_point_base") + + + // This is the best rating of all charts. Best 30 + 10 after that. + // userRatingBaseBestList + this.saveGeneralData(upsertUserAll.userRatingBaseBestList, u, "rating_base_best") + + + // userRatingBaseNextList + this.saveGeneralData(upsertUserAll.userRatingBaseNextList, u, "rating_base_next") + + + // This is the best rating of new charts. Best 15 + 10 after that. + // New chart means same version + // userRatingBaseBestNewList + this.saveGeneralData(upsertUserAll.userRatingBaseBestNewList, u, "rating_base_new_best") + + // userRatingBaseNextNewList + this.saveGeneralData(upsertUserAll.userRatingBaseNextNewList, u, "rating_base_new_next") + + // This is the recent best + // userRatingBaseHotList + this.saveGeneralData(upsertUserAll.userRatingBaseHotList, u, "rating_base_hot_best") + + // userRatingBaseHotNextList + this.saveGeneralData(upsertUserAll.userRatingBaseHotNextList, u, "rating_base_hot_next") + + + // UserMusicDetailList + val userMusicDetailList = upsertUserAll.userMusicDetailList + val newUserMusicDetailList: MutableList = ArrayList() + + for (newUserMusicDetail in userMusicDetailList) { + val musicId = newUserMusicDetail.musicId + val level = newUserMusicDetail.level + + val musicDetailOptional = + userMusicDetailRepository.findByUserAndMusicIdAndLevel(u, musicId, level) + val userMusicDetail = musicDetailOptional.orElseGet { + UserMusicDetail().apply { user = u } + } + + newUserMusicDetail.id = userMusicDetail.id + newUserMusicDetail.user = u + newUserMusicDetailList.add(newUserMusicDetail) + } + userMusicDetailRepository.saveAll(newUserMusicDetailList) + + + // UserCharacterList + val userCharacterList = upsertUserAll.userCharacterList + val newUserCharacterList: MutableList = ArrayList() + + for (newUserCharacter in userCharacterList) { + val characterId = newUserCharacter.characterId + + val characterOptional = userCharacterRepository.findByUserAndCharacterId(u, characterId) + val userCharacter = characterOptional.orElseGet { + UserCharacter().apply { user = u } + } + + newUserCharacter.id = userCharacter.id + newUserCharacter.user = u + newUserCharacterList.add(newUserCharacter) + } + userCharacterRepository.saveAll(newUserCharacterList) + + // UserCardList + val userCardList = upsertUserAll.userCardList + val newUserCardList: MutableList = ArrayList() + + for (newUserCard in userCardList) { + val cardId = newUserCard.cardId + + val cardOptional = userCardRepository.findByUserAndCardId(u, cardId) + val userCard = cardOptional.orElseGet { UserCard().apply { user = u } } + + newUserCard.id = userCard.id + newUserCard.user = u + newUserCardList.add(newUserCard) + } + userCardRepository.saveAll(newUserCardList) + + + // UserDeckList + val userDeckList = upsertUserAll.userDeckList + val newUserDeckList: MutableList = ArrayList() + + for (newUserDeck in userDeckList) { + val deckId = newUserDeck.deckId + + val deckOptional = userDeckRepository.findByUserAndDeckId(u, deckId) + val userDeck = deckOptional.orElseGet { UserDeck().apply { user = u } } + + newUserDeck.id = userDeck.id + newUserDeck.user = u + newUserDeckList.add(newUserDeck) + } + userDeckRepository.saveAll(newUserDeckList) + + + // userTrainingRoomList + val userTrainingRoomList = upsertUserAll.userTrainingRoomList + val newUserTrainingRoomList: MutableList = ArrayList() + + for (newUserTrainingRoom in userTrainingRoomList) { + val roomId = newUserTrainingRoom.roomId + + val trainingRoomOptional = userTrainingRoomRepository.findByUserAndRoomId(u, roomId) + val trainingRoom = trainingRoomOptional.orElseGet { UserTrainingRoom().apply { user = u } } + + newUserTrainingRoom.id = trainingRoom.id + newUserTrainingRoom.user = u + newUserTrainingRoomList.add(newUserTrainingRoom) + } + userTrainingRoomRepository.saveAll(newUserTrainingRoomList) + + + // UserStoryList + val userStoryList = upsertUserAll.userStoryList + val newUserStoryList: MutableList = ArrayList() + + for (newUserStory in userStoryList) { + val storyId = newUserStory.storyId + + val storyOptional = userStoryRepository.findByUserAndStoryId(u, storyId) + val userStory = storyOptional.orElseGet { UserStory().apply { user = u } } + + newUserStory.id = userStory.id + newUserStory.user = u + newUserStoryList.add(newUserStory) + } + userStoryRepository.saveAll(newUserStoryList) + + + // UserChapterList + val userChapterList = upsertUserAll.userChapterList + val newUserChapterList: MutableList = ArrayList() + + for (newUserChapter in userChapterList) { + val chapterId = newUserChapter.chapterId + + val chapterOptional = userChapterRepository.findByUserAndChapterId(u, chapterId) + val userChapter = chapterOptional.orElseGet { UserChapter().apply { user = u } } + + newUserChapter.id = userChapter.id + newUserChapter.user = u + newUserChapterList.add(newUserChapter) + } + userChapterRepository.saveAll(newUserChapterList) + + + // UserMemoryChapterList + val userMemoryChapterList = upsertUserAll.userMemoryChapterList + + if (userMemoryChapterList != null) { + val newUserMemoryChapterList: MutableList = ArrayList() + + for (newUserMemoryChapter in userMemoryChapterList) { + val chapterId = newUserMemoryChapter.chapterId + + val chapterOptional = userMemoryChapterRepository.findByUserAndChapterId(u, chapterId) + val userChapter = chapterOptional.orElseGet { UserMemoryChapter().apply { user = u } } + + newUserMemoryChapter.id = userChapter.id + newUserMemoryChapter.user = u + newUserMemoryChapterList.add(newUserMemoryChapter) + } + userMemoryChapterRepository.saveAll(newUserMemoryChapterList) + } + + // UserItemList + val userItemList = upsertUserAll.userItemList + val newUserItemList: MutableList = ArrayList() + + for (newUserItem in userItemList) { + val itemKind = newUserItem.itemKind + val itemId = newUserItem.itemId + + val itemOptional = userItemRepository.findByUserAndItemKindAndItemId(u, itemKind, itemId) + val userItem = itemOptional.orElseGet { UserItem().apply { user = u } } + + newUserItem.id = userItem.id + newUserItem.user = u + newUserItemList.add(newUserItem) + } + userItemRepository.saveAll(newUserItemList) + + // UserMusicItemList + val userMusicItemList = upsertUserAll.userMusicItemList + val newUserMusicItemList: MutableList = ArrayList() + + for (newUserMusicItem in userMusicItemList) { + val musicId = newUserMusicItem.musicId + + val musicItemOptional = userMusicItemRepository.findByUserAndMusicId(u, musicId) + val userMusicItem = musicItemOptional.orElseGet { UserMusicItem().apply { user = u } } + + newUserMusicItem.id = userMusicItem.id + newUserMusicItem.user = u + newUserMusicItemList.add(newUserMusicItem) + } + userMusicItemRepository.saveAll(newUserMusicItemList) + + + // userLoginBonusList + val userLoginBonusList = upsertUserAll.userLoginBonusList + val newUserLoginBonusList: MutableList = ArrayList() + + for (newUserLoginBonus in userLoginBonusList) { + val bonusId = newUserLoginBonus.bonusId + + val loginBonusOptional = userLoginBonusRepository.findByUserAndBonusId(u, bonusId) + val userLoginBonus = loginBonusOptional.orElseGet { + UserLoginBonus().apply { user = u } + } + + newUserLoginBonus.id = userLoginBonus.id + newUserLoginBonus.user = u + newUserLoginBonusList.add(newUserLoginBonus) + } + userLoginBonusRepository.saveAll(newUserLoginBonusList) + + + // UserEventPointList + val userEventPointList = upsertUserAll.userEventPointList + val newUserEventPointList: MutableList = ArrayList() + + for (newUserEventPoint in userEventPointList) { + val eventId = newUserEventPoint.eventId + + val eventPointOptional = userEventPointRepository.findByUserAndEventId(u, eventId) + val userEventPoint = eventPointOptional.orElseGet { UserEventPoint().apply { user = u } } + + newUserEventPoint.id = userEventPoint.id + newUserEventPoint.user = u + newUserEventPointList.add(newUserEventPoint) + } + userEventPointRepository.saveAll(newUserEventPointList) + + + // UserMissionPointList + val userMissionPointList = upsertUserAll.userMissionPointList + val newUserMissionPointList: MutableList = ArrayList() + + for (newUserMissionPoint in userMissionPointList) { + val eventId = newUserMissionPoint.eventId + + val userMissionPointOptional = userMissionPointRepository.findByUserAndEventId(u, eventId) + val userMissionPoint = userMissionPointOptional.orElseGet { UserMissionPoint().apply { user = u } } + + newUserMissionPoint.id = userMissionPoint.id + newUserMissionPoint.user = u + newUserMissionPointList.add(newUserMissionPoint) + } + userMissionPointRepository.saveAll(newUserMissionPointList) + + // UserRatinglogList (For the highest rating of each version) + + // UserBossList + val userBossList = upsertUserAll.userBossList + if (userBossList != null) { + val newUserBossList: MutableList = ArrayList() + for (newUserBoss in userBossList) { + val musicId = newUserBoss.musicId + + val userBossOptional = userBossRepository.findByUserAndMusicId(u, musicId) + val userBoss = userBossOptional.orElseGet { + UserBoss().apply { user = u } + } + + newUserBoss.id = userBoss.id + newUserBoss.user = userBoss.user + newUserBossList.add(newUserBoss) + } + userBossRepository.saveAll(newUserBossList) + } + + // UserTechCountList + val userTechCountList = upsertUserAll.userTechCountList + if (userTechCountList != null) { + val newUserTechCountList: MutableList = ArrayList() + for (newUserTechCount in userTechCountList) { + val levelId = newUserTechCount.levelId + + val userTechCountOptional = userTechCountRepository.findByUserAndLevelId(u, levelId) + val userTechCount = userTechCountOptional.orElseGet { UserTechCount().apply { user = u } } + + newUserTechCount.id = userTechCount.id + newUserTechCount.user = userTechCount.user + newUserTechCountList.add(newUserTechCount) + } + userTechCountRepository.saveAll(newUserTechCountList) + } + + // UserScenarioList + val userScenarioList = upsertUserAll.userScenarioList + if (userScenarioList != null) { + val newUserScenarioList: MutableList = ArrayList() + for (newUserScenario in userScenarioList) { + val scenarioId = newUserScenario.scenarioId + + val userScenarioOptional = userScenarioRepository.findByUserAndScenarioId(u, scenarioId) + val userScenario = userScenarioOptional.orElseGet { UserScenario().apply { user = u } } + + newUserScenario.id = userScenario.id + newUserScenario.user = userScenario.user + newUserScenarioList.add(newUserScenario) + } + userScenarioRepository.saveAll(newUserScenarioList) + } + + // UserTradeItemList + val userTradeItemList = upsertUserAll.userTradeItemList + val newUserTradeItemList: MutableList = ArrayList() + + for (newUserTradeItem in userTradeItemList) { + val chapterId = newUserTradeItem.chapterId + val tradeItemId = newUserTradeItem.tradeItemId + + val tradeItemOptional = + userTradeItemRepository.findByUserAndChapterIdAndTradeItemId(u, chapterId, tradeItemId) + val userTradeItem = tradeItemOptional.orElseGet { UserTradeItem().apply { user = u } } + + newUserTradeItem.id = userTradeItem.id + newUserTradeItem.user = u + newUserTradeItemList.add(newUserTradeItem) + } + userTradeItemRepository.saveAll(newUserTradeItemList) + + // UserEventMusicList + val userEventMusicList = upsertUserAll.userEventMusicList + val newUserEventMusicList: MutableList = ArrayList() + + for (newUserEventMusic in userEventMusicList) { + val eventId = newUserEventMusic.eventId + val type = newUserEventMusic.type + val musicId = newUserEventMusic.musicId + + val eventMusicOptional = + userEventMusicRepository.findByUserAndEventIdAndTypeAndMusicId(u, eventId, type, musicId) + val userEventMusic = eventMusicOptional.orElseGet { UserEventMusic().apply { user = u } } + + newUserEventMusic.id = userEventMusic.id + newUserEventMusic.user = u + newUserEventMusicList.add(newUserEventMusic) + } + userEventMusicRepository.saveAll(newUserEventMusicList) + + // UserTechEventList + val userTechEventList = upsertUserAll.userTechEventList + val newUserTechEventList: MutableList = ArrayList() + + for (newUserTechEvent in userTechEventList) { + val eventId = newUserTechEvent.eventId + + val techEventOptional = userTechEventRepository.findByUserAndEventId(u, eventId) + val userTechEvent = techEventOptional.orElseGet { UserTechEvent().apply { user = u } } + + newUserTechEvent.id = userTechEvent.id + newUserTechEvent.user = u + newUserTechEventList.add(newUserTechEvent) + } + userTechEventRepository.saveAll(newUserTechEventList) + + // UserKopList + val userKopList = upsertUserAll.userKopList + val newUserKopList: MutableList = ArrayList() + + for (newUserKop in userKopList) { + val kopId = newUserKop.kopId + val areaId = newUserKop.areaId + + val kopOptional = userKopRepository.findByUserAndKopIdAndAreaId(u, kopId, areaId) + val userKop = kopOptional.orElseGet { UserKop().apply { user = u } } + + newUserKop.id = userKop.id + newUserKop.user = u + newUserKopList.add(newUserKop) + } + userKopRepository.saveAll(newUserKopList) + + val json = mapper.write(CodeResp(1, "upsertUserAll")) + logger.info("Response: $json") + return json + } + + private fun saveGeneralData(itemList: List, newUserData: UserData, key: String) { + val sb = StringBuilder() + // Convert to a string + for (item in itemList) { + sb.append(item.musicId).append(":").append(item.difficultId).append(":").append(item.score) + sb.append(",") + } + if (sb.length > 0) { + sb.deleteCharAt(sb.length - 1) + } + val uOptional = userGeneralDataRepository.findByUserAndPropertyKey(newUserData, key) + val userGeneralData = uOptional.orElseGet { + UserGeneralData().apply { + user = newUserData + propertyKey = key + } + } + userGeneralData.propertyValue = sb.toString() + userGeneralDataRepository.save(userGeneralData) + } + + companion object { + private val logger = logger() + } +} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt index 44090fcb..dde6584e 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt @@ -104,7 +104,7 @@ class UserData : IUserData { uniqueConstraints = [UniqueConstraint(columnNames = ["user_id", "kind", "activity_id"])] ) @JsonPropertyOrder("kind", "id", "sortNumber", "param1", "param2", "param3", "param4") -class UserActivity: OngekiUserEntity() { +class UserActivity : OngekiUserEntity() { var kind = 0 @JsonProperty("id") @Column(name = "activity_id") @@ -118,7 +118,7 @@ class UserActivity: OngekiUserEntity() { @Entity(name = "OngekiUserBoss") @Table(name = "ongeki_user_boss") -class UserBoss: OngekiUserEntity() { +class UserBoss : OngekiUserEntity() { var musicId = 0 var damage = 0 @JsonProperty("isClear") @@ -128,7 +128,7 @@ class UserBoss: OngekiUserEntity() { @Entity(name = "OngekiUserCard") @Table(name = "ongeki_user_card") -class UserCard(): OngekiUserEntity() { +class UserCard: OngekiUserEntity() { var cardId = -1 var digitalStock = 1 @@ -148,22 +148,11 @@ class UserCard(): OngekiUserEntity() { @JsonProperty("isAcquired") var isAcquired = true var created = "0000-00-00 00:00:00.0" - - constructor(userData: UserData) : this() { - this.user = userData - } - - constructor(userData: UserData, cardId: Int, skillId: Int, created: String) : this() { - this.user = userData - this.cardId = cardId - this.skillId = skillId - this.created = created - } } @Entity(name = "OngekiUserChapter") @Table(name = "ongeki_user_chapter") -class UserChapter: OngekiUserEntity() { +class UserChapter : OngekiUserEntity() { var chapterId = 0 var jewelCount = 0 var lastPlayMusicCategory = 0 @@ -179,7 +168,7 @@ class UserChapter: OngekiUserEntity() { @Entity(name = "OngekiUserCharacter") @Table(name = "ongeki_user_character") -class UserCharacter: OngekiUserEntity() { +class UserCharacter : OngekiUserEntity() { var characterId = 0 var costumeId = 0 var attachmentId = 0 @@ -194,7 +183,7 @@ class UserCharacter: OngekiUserEntity() { @Entity(name = "OngekiUserDeck") @Table(name = "ongeki_user_deck") -class UserDeck: OngekiUserEntity() { +class UserDeck : OngekiUserEntity() { var deckId = 0 var cardId1 = 0 var cardId2 = 0 @@ -203,7 +192,7 @@ class UserDeck: OngekiUserEntity() { @Entity(name = "OngekiUserEventMusic") @Table(name = "ongeki_user_event_music") -class UserEventMusic: OngekiUserEntity() { +class UserEventMusic : OngekiUserEntity() { var eventId = 0 var type = 0 var musicId = 0 @@ -218,7 +207,7 @@ class UserEventMusic: OngekiUserEntity() { @Entity(name = "OngekiUserEventPoint") @Table(name = "ongeki_user_event_point") -class UserEventPoint: OngekiUserEntity() { +class UserEventPoint : OngekiUserEntity() { var eventId = 0 var point: Long = 0 @JsonProperty("isRankingRewarded") @@ -227,14 +216,15 @@ class UserEventPoint: OngekiUserEntity() { @Entity(name = "OngekiUserGeneralData") @Table(name = "ongeki_user_general_data") -class UserGeneralData(var propertyKey: String): OngekiUserEntity() { +class UserGeneralData : OngekiUserEntity() { + var propertyKey = "" @Column(columnDefinition = "TEXT") var propertyValue = "" } @Entity(name = "OngekiUserItem") @Table(name = "ongeki_user_item") -class UserItem: OngekiUserEntity() { +class UserItem : OngekiUserEntity() { var itemKind = 0 var itemId = 0 var stock = 0 @@ -244,7 +234,7 @@ class UserItem: OngekiUserEntity() { @Entity(name = "OngekiUserKop") @Table(name = "ongeki_user_kop") -class UserKop: OngekiUserEntity() { +class UserKop : OngekiUserEntity() { var authKey: String = "" var kopId = 0 var areaId = 0 @@ -257,7 +247,7 @@ class UserKop: OngekiUserEntity() { @Entity(name = "OngekiUserLoginBonus") @Table(name = "ongeki_user_login_bonus") -class UserLoginBonus: OngekiUserEntity() { +class UserLoginBonus : OngekiUserEntity() { var bonusId = 0 var bonusCount = 0 var lastUpdateDate: String = "" @@ -265,7 +255,7 @@ class UserLoginBonus: OngekiUserEntity() { @Entity(name = "OngekiUserMemoryChapter") @Table(name = "ongeki_user_memory_chapter") -class UserMemoryChapter: OngekiUserEntity() { +class UserMemoryChapter : OngekiUserEntity() { var chapterId = 0 var jewelCount = 0 var lastPlayMusicCategory = 0 @@ -285,14 +275,14 @@ class UserMemoryChapter: OngekiUserEntity() { @Entity(name = "OngekiUserMissionPoint") @Table(name = "ongeki_user_mission_point") -class UserMissionPoint: OngekiUserEntity() { +class UserMissionPoint : OngekiUserEntity() { var eventId = 0 var point: Long = 0 } @Entity(name = "OngekiUserMusicDetail") @Table(name = "ongeki_user_music_detail") -class UserMusicDetail: OngekiUserEntity(), IGenericUserMusic { +class UserMusicDetail : OngekiUserEntity(), IGenericUserMusic { override var musicId: Int = 0 var level = 0 var playCount = 0 @@ -318,14 +308,14 @@ class UserMusicDetail: OngekiUserEntity(), IGenericUserMusic { @Entity(name = "OngekiUserMusicItem") @Table(name = "ongeki_user_music_item") -class UserMusicItem: OngekiUserEntity() { +class UserMusicItem : OngekiUserEntity() { var musicId = 0 var status = 0 } @Entity(name = "OngekiUserOption") @Table(name = "ongeki_user_option") -class UserOption: OngekiUserEntity() { +class UserOption : OngekiUserEntity() { var optionSet = 0 var speed = 0 var mirror = 0 @@ -449,7 +439,7 @@ class UserPlaylog : OngekiUserEntity(), IGenericGamePlaylog { @Entity(name = "OngekiUserRival") @Table(name = "ongeki_user_rival") -class UserRival: OngekiUserEntity() { +class UserRival : OngekiUserEntity() { @JoinColumn(name = "rival_user_ext_id") @JsonProperty("rivalUserId") var rivalUserExtId: Long = 0 @@ -457,14 +447,14 @@ class UserRival: OngekiUserEntity() { @Entity(name = "OngekiUserScenario") @Table(name = "ongeki_user_scenario") -class UserScenario: OngekiUserEntity() { +class UserScenario : OngekiUserEntity() { var scenarioId = 0 var playCount = 0 } @Entity(name = "OngekiUserStory") @Table(name = "ongeki_user_story") -class UserStory: OngekiUserEntity() { +class UserStory : OngekiUserEntity() { var storyId = 0 var lastChapterId = 0 var jewelCount = 0 @@ -475,7 +465,7 @@ class UserStory: OngekiUserEntity() { @Entity(name = "OngekiUserTechCount") @Table(name = "ongeki_user_tech_count") -class UserTechCount: OngekiUserEntity() { +class UserTechCount : OngekiUserEntity() { var levelId = 0 var allBreakCount = 0 var allBreakPlusCount = 0 @@ -483,7 +473,7 @@ class UserTechCount: OngekiUserEntity() { @Entity(name = "OngekiUserTechEvent") @Table(name = "ongeki_user_tech_event") -class UserTechEvent: OngekiUserEntity() { +class UserTechEvent : OngekiUserEntity() { var eventId = 0 var totalTechScore = 0 var totalPlatinumScore = 0 @@ -496,7 +486,7 @@ class UserTechEvent: OngekiUserEntity() { @Entity(name = "OngekiUserTradeItem") @Table(name = "ongeki_user_trade_item") -class UserTradeItem: OngekiUserEntity() { +class UserTradeItem : OngekiUserEntity() { var chapterId = 0 var tradeItemId = 0 var tradeCount = 0 @@ -504,7 +494,7 @@ class UserTradeItem: OngekiUserEntity() { @Entity(name = "OngekiTrainingRoom") @Table(name = "ongeki_user_training_room") -class UserTrainingRoom: OngekiUserEntity() { +class UserTrainingRoom : OngekiUserEntity() { var authKey: String = "" var roomId: Int = 0 var cardId: Int = 0 From 9c295f60129825ce6ab45618954d1bcf30e829e8 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 18:48:25 -0400 Subject: [PATCH 16/39] [-] Ongeki: Remove unnecessary JsonProperty --- .../handler/impl/UpsertUserAllHandler.kt | 2 +- .../aqua/sega/ongeki/model/userdata/All.kt | 27 ------------------- 2 files changed, 1 insertion(+), 28 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt index c0c5c3f2..a84cb479 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt @@ -46,7 +46,7 @@ class UpsertUserAllHandler @Autowired constructor( private val userKopRepository: OgkUserKopRepo, private val userMemoryChapterRepository: OgkUserMemoryChapterRepo ) : BaseHandler { - override fun handle(request: Map): Any? { + override fun handle(request: Map): String? { val userId = (request["userId"] as Number).toLong() val upsertUserAll = mapper.convert( request["upsertUserAll"]!!, diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt index dde6584e..5a61f229 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt @@ -47,7 +47,6 @@ class UserData : IUserData { var battlePoint = 0 var bestBattlePoint = 0 var overDamageBattlePoint = 0 - @JsonProperty("isDialogWatchedSuggestMemory") var isDialogWatchedSuggestMemory = false var nameplateId = 0 var trophyId = 0 @@ -121,7 +120,6 @@ class UserActivity : OngekiUserEntity() { class UserBoss : OngekiUserEntity() { var musicId = 0 var damage = 0 - @JsonProperty("isClear") var isClear = false var eventId = 0 } @@ -138,14 +136,12 @@ class UserCard: OngekiUserEntity() { var exp = 0 var printCount = 0 var useCount = 0 - @JsonProperty("isNew") var isNew = true var kaikaDate = "0000-00-00 00:00:00.0" var choKaikaDate = "0000-00-00 00:00:00.0" var skillId = 0 - @JsonProperty("isAcquired") var isAcquired = true var created = "0000-00-00 00:00:00.0" } @@ -158,9 +154,7 @@ class UserChapter : OngekiUserEntity() { var lastPlayMusicCategory = 0 var lastPlayMusicId = 0 var lastPlayMusicLevel = 0 - @JsonProperty("isStoryWatched") var isStoryWatched = false - @JsonProperty("isClear") var isClear = false var skipTiming1 = 0 var skipTiming2 = 0 @@ -177,7 +171,6 @@ class UserCharacter : OngekiUserEntity() { var intimateCount = 0 var intimateCountRewarded = 0 var intimateCountDate: String = "" - @JsonProperty("isNew") var isNew = false } @@ -200,7 +193,6 @@ class UserEventMusic : OngekiUserEntity() { var techScoreMax = 0 var platinumScoreMax = 0 var techRecordDate: String = "" - @JsonProperty("isTechNewRecord") var isTechNewRecord: Boolean = false } @@ -210,7 +202,6 @@ class UserEventMusic : OngekiUserEntity() { class UserEventPoint : OngekiUserEntity() { var eventId = 0 var point: Long = 0 - @JsonProperty("isRankingRewarded") var isRankingRewarded = false } @@ -228,7 +219,6 @@ class UserItem : OngekiUserEntity() { var itemKind = 0 var itemId = 0 var stock = 0 - @JsonProperty("isValid") var isValid = false } @@ -241,7 +231,6 @@ class UserKop : OngekiUserEntity() { var totalTechScore = 0 var totalPlatinumScore = 0 var techRecordDate: String = "" - @JsonProperty("isTotalTechNewRecord") var isTotalTechNewRecord = false } @@ -261,13 +250,9 @@ class UserMemoryChapter : OngekiUserEntity() { var lastPlayMusicCategory = 0 var lastPlayMusicId = 0 var lastPlayMusicLevel = 0 - @JsonProperty("isDialogWatched") var isDialogWatched = false - @JsonProperty("isStoryWatched") var isStoryWatched = false - @JsonProperty("isBossWatched") var isBossWatched = false - @JsonProperty("isClear") var isClear = false var gaugeId = 0 var gaugeNum = 0 @@ -294,13 +279,9 @@ class UserMusicDetail : OngekiUserEntity(), IGenericUserMusic { var maxComboCount = 0 var maxOverKill = 0 var maxTeamOverKill = 0 - @JsonProperty("isFullBell") var isFullBell = false - @JsonProperty("isFullCombo") var isFullCombo = false - @JsonProperty("isAllBreake") var isAllBreake = false - @JsonProperty("isLock") var isLock = false var clearStatus = 0 var isStoryWatched = false @@ -415,17 +396,11 @@ class UserPlaylog : OngekiUserEntity(), IGenericGamePlaylog { var totalBellCount = 0 var damageCount = 0 var overDamage = 0 - @JsonProperty("isTechNewRecord") var isTechNewRecord = false - @JsonProperty("isBattleNewRecord") var isBattleNewRecord = false - @JsonProperty("isOverDamageNewRecord") var isOverDamageNewRecord = false - @JsonProperty("isFullCombo") override var isFullCombo: Boolean = false - @JsonProperty("isFullBell") var isFullBell = false - @JsonProperty("isAllBreak") var isAllBreak: Boolean = false var playerRating: Int = 0 @@ -478,9 +453,7 @@ class UserTechEvent : OngekiUserEntity() { var totalTechScore = 0 var totalPlatinumScore = 0 var techRecordDate: String = "" - @JsonProperty("isRankingRewarded") var isRankingRewarded = false - @JsonProperty("isTotalTechNewRecord") var isTotalTechNewRecord = false } From 9af383af886b3fe2b99575f2b6d543e475a54961 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 18:51:58 -0400 Subject: [PATCH 17/39] [O] Ongeki: Merge response pojo --- .../sega/ongeki/model/response/data/All.kt | 105 ++++++++++++++++++ .../model/response/data/GameEventItem.java | 18 --- .../model/response/data/GameIdListItem.java | 16 --- .../model/response/data/GameRankingItem.java | 20 ---- .../model/response/data/GameSetting.java | 31 ------ .../response/data/UserEventRankingItem.java | 19 ---- .../response/data/UserMusicListItem.java | 19 ---- .../model/response/data/UserRivalData.java | 16 --- .../model/response/data/UserRivalMusic.java | 19 ---- .../data/UserTechEventRankingItem.java | 19 ---- 10 files changed, 105 insertions(+), 177 deletions(-) create mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/All.kt delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameEventItem.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameIdListItem.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameRankingItem.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameSetting.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserEventRankingItem.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserMusicListItem.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserRivalData.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserRivalMusic.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserTechEventRankingItem.java diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/All.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/All.kt new file mode 100644 index 00000000..8875b07c --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/All.kt @@ -0,0 +1,105 @@ +package icu.samnyan.aqua.sega.ongeki.model.response.data + +import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMusicDetail +import lombok.AllArgsConstructor +import lombok.Data +import lombok.NoArgsConstructor + +@Data +@AllArgsConstructor +@NoArgsConstructor +class GameEventItem { + var id: Long = 0 + var type = 0 + var startDate: String = "" + var endDate: String = "" +} + +@Data +@AllArgsConstructor +@NoArgsConstructor +class GameIdListItem { + var id = 0 + var type = 0 +} + +/** + * Fro getGameRanking request + * @author samnyan (privateamusement@protonmail.com) + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +class GameRankingItem { + var id: Long = 0 + + // this 2 field never use in game code, + // maybe for the future update like in game player ranking + var point: Long = 0 + var userName: String = "" +} + +@Data +@AllArgsConstructor +@NoArgsConstructor +class GameSetting { + var dataVersion: String = "" + var onlineDataVersion: String = "" + var isMaintenance = false + var requestInterval = 0 + var rebootStartTime: String = "" + var rebootEndTime: String = "" + var isBackgroundDistribute = false + var maxCountCharacter = 0 + var maxCountCard = 0 + var maxCountItem = 0 + var maxCountMusic = 0 + var maxCountMusicItem = 0 + var maxCountRivalMusic = 0 +} + +@Data +@AllArgsConstructor +@NoArgsConstructor +class UserEventRankingItem { + var eventId = 0 + var type = 0 + var date: String = "" + var rank = 0 + var point: Long = 0 +} + +@Data +@AllArgsConstructor +@NoArgsConstructor +class UserMusicListItem { + var length = 0 + var userMusicDetailList: List? = null +} + +@Data +@AllArgsConstructor +@NoArgsConstructor +class UserRivalData { + var rivalUserId: Long = 0 + var rivalUserName: String = "" +} + +@Data +@AllArgsConstructor +@NoArgsConstructor +class UserRivalMusic { + var userRivalMusicDetailList: List? = null + var length = 0 +} + +@Data +@AllArgsConstructor +@NoArgsConstructor +class UserTechEventRankingItem { + var eventId = 0 + var date: String = "" + var rank = 0 + var totalTechScore = 0 + var totalPlatinumScore = 0 +} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameEventItem.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameEventItem.java deleted file mode 100644 index c8c6aba2..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameEventItem.java +++ /dev/null @@ -1,18 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.response.data; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class GameEventItem { - private long id; - private int type; - private String startDate; - private String endDate; -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameIdListItem.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameIdListItem.java deleted file mode 100644 index 3eed677e..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameIdListItem.java +++ /dev/null @@ -1,16 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.response.data; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class GameIdListItem { - private int id; - private int type; -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameRankingItem.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameRankingItem.java deleted file mode 100644 index 59e2e4e8..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameRankingItem.java +++ /dev/null @@ -1,20 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.response.data; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * Fro getGameRanking request - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class GameRankingItem { - private long id; - // this 2 field never use in game code, - // maybe for the future update like in game player ranking - private long point; - private String userName; -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameSetting.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameSetting.java deleted file mode 100644 index d6ef6d52..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/GameSetting.java +++ /dev/null @@ -1,31 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.response.data; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class GameSetting { - private String dataVersion; - private String onlineDataVersion; - @JsonProperty("isMaintenance") - private boolean isMaintenance; - private int requestInterval; - private String rebootStartTime; - private String rebootEndTime; - @JsonProperty("isBackgroundDistribute") - private boolean isBackgroundDistribute; - private int maxCountCharacter; - private int maxCountCard; - private int maxCountItem; - private int maxCountMusic; - private int maxCountMusicItem; - private int maxCountRivalMusic; -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserEventRankingItem.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserEventRankingItem.java deleted file mode 100644 index 46b7f3f7..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserEventRankingItem.java +++ /dev/null @@ -1,19 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.response.data; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class UserEventRankingItem { - private int eventId; - private int type; - private String date; - private int rank; - private long point; -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserMusicListItem.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserMusicListItem.java deleted file mode 100644 index 4c4b80a1..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserMusicListItem.java +++ /dev/null @@ -1,19 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.response.data; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMusicDetail; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class UserMusicListItem { - private int length; - private List userMusicDetailList; -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserRivalData.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserRivalData.java deleted file mode 100644 index 6e1ae559..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserRivalData.java +++ /dev/null @@ -1,16 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.response.data; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class UserRivalData { - private long rivalUserId; - private String rivalUserName; -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserRivalMusic.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserRivalMusic.java deleted file mode 100644 index 3dd0e4ca..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserRivalMusic.java +++ /dev/null @@ -1,19 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.response.data; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMusicDetail; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class UserRivalMusic { - private List userRivalMusicDetailList; - private int length; -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserTechEventRankingItem.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserTechEventRankingItem.java deleted file mode 100644 index f56539ed..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/UserTechEventRankingItem.java +++ /dev/null @@ -1,19 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.response.data; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class UserTechEventRankingItem { - private int eventId; - private String date; - private int rank; - private int totalTechScore; - private int totalPlatinumScore; -} From c0604bc98998bb918f57215f69db32261a5e7bba Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 18:56:33 -0400 Subject: [PATCH 18/39] [M] Ongeki: Move model --- .../icu/samnyan/aqua/net/games/ongeki/Ongeki.kt | 2 +- .../icu/samnyan/aqua/net/transfer/DataBroker.kt | 2 +- .../icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt | 2 +- .../handler/impl/GetUserActivityHandler.java | 2 +- .../ongeki/handler/impl/GetUserBossHandler.java | 2 +- .../ongeki/handler/impl/GetUserCardHandler.java | 2 +- .../handler/impl/GetUserChapterHandler.java | 2 +- .../handler/impl/GetUserCharacterHandler.java | 2 +- .../ongeki/handler/impl/GetUserDataHandler.java | 2 +- .../handler/impl/GetUserDeckByKeyHandler.java | 2 +- .../handler/impl/GetUserEventMusicHandler.java | 2 +- .../handler/impl/GetUserEventPointHandler.java | 2 +- .../impl/GetUserEventRankingHandler.java | 2 +- .../ongeki/handler/impl/GetUserItemHandler.kt | 2 +- .../ongeki/handler/impl/GetUserKopHandler.java | 2 +- .../handler/impl/GetUserLoginBonusHandler.java | 2 +- .../impl/GetUserMemoryChapterHandler.java | 2 +- .../impl/GetUserMissionPointHandler.java | 2 +- .../handler/impl/GetUserMusicHandler.java | 2 +- .../handler/impl/GetUserMusicItemHandler.java | 2 +- .../handler/impl/GetUserOptionHandler.java | 2 +- .../handler/impl/GetUserPreviewHandler.java | 2 +- .../impl/GetUserRecentRatingHandler.java | 4 ++-- .../handler/impl/GetUserScenarioHandler.java | 2 +- .../handler/impl/GetUserStoryHandler.java | 2 +- .../handler/impl/GetUserTechCountHandler.java | 2 +- .../handler/impl/GetUserTechEventHandler.java | 2 +- .../impl/GetUserTechEventRankingHandler.java | 2 +- .../handler/impl/GetUserTradeItemHandler.java | 2 +- .../impl/GetUserTrainingRoomByKeyHandler.java | 2 +- .../ongeki/handler/impl/UpsertUserAllHandler.kt | 2 +- .../{userdata/All.kt => OngekiUserEntities.kt} | 3 +-- .../ongeki/model/request/UpsertUserAll.java | 2 +- .../aqua/sega/ongeki/model/response/data/All.kt | 2 +- .../sega/ongeki/model/userdata/ZUserDataTest.kt | 17 ----------------- 35 files changed, 35 insertions(+), 53 deletions(-) rename src/main/java/icu/samnyan/aqua/sega/ongeki/model/{userdata/All.kt => OngekiUserEntities.kt} (98%) delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/ZUserDataTest.kt diff --git a/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt b/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt index dcd613f0..78abb905 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt @@ -8,7 +8,7 @@ import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo import icu.samnyan.aqua.sega.ongeki.OgkUserGeneralDataRepo import icu.samnyan.aqua.sega.ongeki.OgkUserMusicDetailRepo import icu.samnyan.aqua.sega.ongeki.OgkUserPlaylogRepo -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData +import icu.samnyan.aqua.sega.ongeki.model.UserData import org.springframework.web.bind.annotation.RestController @RestController diff --git a/src/main/java/icu/samnyan/aqua/net/transfer/DataBroker.kt b/src/main/java/icu/samnyan/aqua/net/transfer/DataBroker.kt index b3753a28..d3537da1 100644 --- a/src/main/java/icu/samnyan/aqua/net/transfer/DataBroker.kt +++ b/src/main/java/icu/samnyan/aqua/net/transfer/DataBroker.kt @@ -10,7 +10,7 @@ import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserFavorite import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserItem import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserMusicDetail import icu.samnyan.aqua.sega.ongeki.model.request.UpsertUserAll -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserItem +import icu.samnyan.aqua.sega.ongeki.model.UserItem import icu.samnyan.aqua.sega.util.jackson.BasicMapper import icu.samnyan.aqua.sega.util.jackson.IMapper import icu.samnyan.aqua.sega.util.jackson.StringMapper diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt index 2e349906..66125a7f 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt @@ -5,8 +5,8 @@ import icu.samnyan.aqua.net.games.GenericPlaylogRepo import icu.samnyan.aqua.net.games.GenericUserDataRepo import icu.samnyan.aqua.net.games.GenericUserMusicRepo import icu.samnyan.aqua.net.games.IUserRepo +import icu.samnyan.aqua.sega.ongeki.model.* import icu.samnyan.aqua.sega.ongeki.model.gamedata.* -import icu.samnyan.aqua.sega.ongeki.model.userdata.* import org.springframework.data.domain.Page import org.springframework.data.domain.Pageable import org.springframework.data.jpa.repository.JpaRepository diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java index 6bb09866..b6435b46 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserActivityRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserActivity; +import icu.samnyan.aqua.sega.ongeki.model.UserActivity; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java index 5af59ac9..fba064d1 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserBossRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserBoss; +import icu.samnyan.aqua.sega.ongeki.model.UserBoss; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java index 9af2356d..b565e700 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserCardRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserCard; +import icu.samnyan.aqua.sega.ongeki.model.UserCard; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java index 3d24ec38..5d146f43 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserChapterRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserChapter; +import icu.samnyan.aqua.sega.ongeki.model.UserChapter; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java index 31b2468f..f3e980fe 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserCharacterRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserCharacter; +import icu.samnyan.aqua.sega.ongeki.model.UserCharacter; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java index 7da7cf82..4c24125a 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; +import icu.samnyan.aqua.sega.ongeki.model.UserData; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java index 9a418bcd..e3b54764 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserDeckRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserDeck; +import icu.samnyan.aqua.sega.ongeki.model.UserDeck; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java index 3c37cfbf..4259a460 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserEventMusicRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventMusic; +import icu.samnyan.aqua.sega.ongeki.model.UserEventMusic; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java index eddffcbd..e79ff890 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserEventPointRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventPoint; +import icu.samnyan.aqua.sega.ongeki.model.UserEventPoint; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java index 89a4ccc4..43841b08 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserEventPointRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.data.UserEventRankingItem; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventPoint; +import icu.samnyan.aqua.sega.ongeki.model.UserEventPoint; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt index afd9a074..a28c1312 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt @@ -5,7 +5,7 @@ import icu.samnyan.aqua.sega.general.BaseHandler import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo import icu.samnyan.aqua.sega.ongeki.OgkUserItemRepo import icu.samnyan.aqua.sega.ongeki.model.common.ItemType -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserItem +import icu.samnyan.aqua.sega.ongeki.model.UserItem import icu.samnyan.aqua.sega.util.jackson.BasicMapper import org.springframework.data.domain.PageRequest import org.springframework.stereotype.Component diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java index 37918861..f05a9a6b 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserKopRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserKop; +import icu.samnyan.aqua.sega.ongeki.model.UserKop; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java index 4fd7cdca..569234c6 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserLoginBonusRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserLoginBonus; +import icu.samnyan.aqua.sega.ongeki.model.UserLoginBonus; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java index 804f03e7..72867288 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserMemoryChapterRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMemoryChapter; +import icu.samnyan.aqua.sega.ongeki.model.UserMemoryChapter; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java index b6063114..d74d2888 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserMissionPointRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMissionPoint; +import icu.samnyan.aqua.sega.ongeki.model.UserMissionPoint; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java index 4fa143ea..a59a3a3b 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserMusicDetailRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.data.UserMusicListItem; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMusicDetail; +import icu.samnyan.aqua.sega.ongeki.model.UserMusicDetail; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import icu.samnyan.aqua.spring.data.OffsetPageRequest; import org.slf4j.Logger; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java index ba94d2ed..0c1635a4 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserMusicItemRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMusicItem; +import icu.samnyan.aqua.sega.ongeki.model.UserMusicItem; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java index 1869252b..78604d5e 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserOptionRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserOption; +import icu.samnyan.aqua.sega.ongeki.model.UserOption; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java index 58c16195..68ca2ae8 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java @@ -5,7 +5,7 @@ import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo; import icu.samnyan.aqua.sega.ongeki.OgkUserOptionRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.GetUserPreviewResp; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; +import icu.samnyan.aqua.sega.ongeki.model.UserData; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java index 6709551f..5907eec1 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java @@ -5,8 +5,8 @@ import icu.samnyan.aqua.sega.general.model.response.UserRecentRating; import icu.samnyan.aqua.sega.ongeki.OgkUserGeneralDataRepo; import icu.samnyan.aqua.sega.ongeki.OgkUserPlaylogRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserGeneralData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserPlaylog; +import icu.samnyan.aqua.sega.ongeki.model.UserGeneralData; +import icu.samnyan.aqua.sega.ongeki.model.UserPlaylog; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java index 3811f5c5..447032be 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserScenarioRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserScenario; +import icu.samnyan.aqua.sega.ongeki.model.UserScenario; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java index 2144c433..093b7713 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserStoryRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserStory; +import icu.samnyan.aqua.sega.ongeki.model.UserStory; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java index 633f547c..fe44d9e5 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserTechCountRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechCount; +import icu.samnyan.aqua.sega.ongeki.model.UserTechCount; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java index c947d973..76c70e5e 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserTechEventRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechEvent; +import icu.samnyan.aqua.sega.ongeki.model.UserTechEvent; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java index 5e6c88af..65262915 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java @@ -5,7 +5,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserTechEventRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.response.data.UserTechEventRankingItem; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechEvent; +import icu.samnyan.aqua.sega.ongeki.model.UserTechEvent; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java index b25d0745..b5589be4 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserTradeItemRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTradeItem; +import icu.samnyan.aqua.sega.ongeki.model.UserTradeItem; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java index e9a237a5..bb56df0f 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserTrainingRoomRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTrainingRoom; +import icu.samnyan.aqua.sega.ongeki.model.UserTrainingRoom; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt index a84cb479..51bf9aad 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt @@ -5,9 +5,9 @@ import icu.samnyan.aqua.sega.general.BaseHandler import icu.samnyan.aqua.sega.general.model.response.UserRecentRating import icu.samnyan.aqua.sega.general.service.CardService import icu.samnyan.aqua.sega.ongeki.* +import icu.samnyan.aqua.sega.ongeki.model.* import icu.samnyan.aqua.sega.ongeki.model.request.UpsertUserAll import icu.samnyan.aqua.sega.ongeki.model.response.CodeResp -import icu.samnyan.aqua.sega.ongeki.model.userdata.* import icu.samnyan.aqua.sega.util.jackson.BasicMapper import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Component diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUserEntities.kt similarity index 98% rename from src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt rename to src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUserEntities.kt index 5a61f229..839c860e 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/All.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUserEntities.kt @@ -1,4 +1,4 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata +package icu.samnyan.aqua.sega.ongeki.model import com.fasterxml.jackson.annotation.JsonIgnore import com.fasterxml.jackson.annotation.JsonProperty @@ -102,7 +102,6 @@ class UserData : IUserData { name = "ongeki_user_activity", uniqueConstraints = [UniqueConstraint(columnNames = ["user_id", "kind", "activity_id"])] ) -@JsonPropertyOrder("kind", "id", "sortNumber", "param1", "param2", "param3", "param4") class UserActivity : OngekiUserEntity() { var kind = 0 @JsonProperty("id") diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/request/UpsertUserAll.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/request/UpsertUserAll.java index 89d2173a..b56975f3 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/request/UpsertUserAll.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/request/UpsertUserAll.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.model.request; import com.fasterxml.jackson.annotation.JsonProperty; import icu.samnyan.aqua.sega.general.model.response.UserRecentRating; -import icu.samnyan.aqua.sega.ongeki.model.userdata.*; +import icu.samnyan.aqua.sega.ongeki.model.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/All.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/All.kt index 8875b07c..fb714719 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/All.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/All.kt @@ -1,6 +1,6 @@ package icu.samnyan.aqua.sega.ongeki.model.response.data -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMusicDetail +import icu.samnyan.aqua.sega.ongeki.model.UserMusicDetail import lombok.AllArgsConstructor import lombok.Data import lombok.NoArgsConstructor diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/ZUserDataTest.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/ZUserDataTest.kt deleted file mode 100644 index 6e349e30..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/ZUserDataTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata - -import icu.samnyan.aqua.sega.util.jackson.BasicMapper -import kotlin.io.path.Path -import kotlin.io.path.writeText - -fun main(args: Array) { - val classes = listOf(UserActivity(), UserBoss(), UserCard(), UserChapter(), UserCharacter(), UserData(), UserDeck(), UserEventMusic(), UserEventPoint(), UserGeneralData(), UserItem(), UserKop(), UserLoginBonus(), UserMemoryChapter(), UserMissionPoint(), UserMusicDetail(), UserMusicItem(), UserOption(), UserPlaylog(), UserRival(), UserScenario(), UserStory(), UserTechCount(), UserTechEvent(), UserTradeItem(), UserTrainingRoom()) - val mapper = BasicMapper() - - // Json stringify all of them - var str = "" - classes.forEach { - str += mapper.write(it) + "\n" - } - Path("ogk-userdata.jsonl").writeText(str) -} \ No newline at end of file From f3e83193d6b9ae7515b013c2bd37634bcf985c32 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 19:02:45 -0400 Subject: [PATCH 19/39] [O] Ongeki: Merge game entities --- .../samnyan/aqua/sega/ongeki/OngekiRepos.kt | 1 - .../handler/impl/GetGameEventHandler.java | 2 +- .../handler/impl/GetGamePointHandler.java | 2 +- .../handler/impl/GetGamePresentHandler.java | 2 +- .../handler/impl/GetGameRewardHandler.java | 2 +- .../sega/ongeki/model/OngekiGameEntities.kt | 118 ++++++++++++++++++ .../sega/ongeki/model/OngekiUserEntities.kt | 1 - .../sega/ongeki/model/gamedata/GameCard.java | 52 -------- .../sega/ongeki/model/gamedata/GameChara.java | 33 ----- .../sega/ongeki/model/gamedata/GameEvent.java | 26 ---- .../sega/ongeki/model/gamedata/GameMusic.java | 49 -------- .../sega/ongeki/model/gamedata/GamePoint.java | 42 ------- .../ongeki/model/gamedata/GamePresent.java | 47 ------- .../ongeki/model/gamedata/GameReward.java | 37 ------ .../sega/ongeki/model/gamedata/GameSkill.java | 33 ----- 15 files changed, 122 insertions(+), 325 deletions(-) create mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiGameEntities.kt delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameCard.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameChara.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameEvent.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameMusic.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GamePoint.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GamePresent.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameReward.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameSkill.java diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt index 66125a7f..38030c8f 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt @@ -6,7 +6,6 @@ import icu.samnyan.aqua.net.games.GenericUserDataRepo import icu.samnyan.aqua.net.games.GenericUserMusicRepo import icu.samnyan.aqua.net.games.IUserRepo import icu.samnyan.aqua.sega.ongeki.model.* -import icu.samnyan.aqua.sega.ongeki.model.gamedata.* import org.springframework.data.domain.Page import org.springframework.data.domain.Pageable import org.springframework.data.jpa.repository.JpaRepository diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java index fb993c22..882a8c88 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkGameEventRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.gamedata.GameEvent; +import icu.samnyan.aqua.sega.ongeki.model.GameEvent; import icu.samnyan.aqua.sega.ongeki.model.response.data.GameEventItem; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java index d6aeb0c5..970b6034 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkGamePointRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.gamedata.GamePoint; +import icu.samnyan.aqua.sega.ongeki.model.GamePoint; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java index 98307cce..605eff2a 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkGamePresentRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.gamedata.GamePresent; +import icu.samnyan.aqua.sega.ongeki.model.GamePresent; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java index c8960c09..f152a8cc 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkGameRewardRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.gamedata.GameReward; +import icu.samnyan.aqua.sega.ongeki.model.GameReward; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiGameEntities.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiGameEntities.kt new file mode 100644 index 00000000..02976812 --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiGameEntities.kt @@ -0,0 +1,118 @@ +package icu.samnyan.aqua.sega.ongeki.model + +import com.fasterxml.jackson.annotation.JsonIgnore +import icu.samnyan.aqua.sega.ongeki.model.common.GpProductID +import icu.samnyan.aqua.sega.ongeki.model.common.ItemType +import jakarta.persistence.* +import java.io.Serializable + +@Entity(name = "OngekiGameCard") +@Table(name = "ongeki_game_card") +class GameCard { + @Id + var id: Long = 0 + var name: String = "" + var nickName: String = "" + var attribute: String = "" + var charaId = 0 + var school: String = "" + var gakunen: String = "" + var rarity: String = "" + // csv + var levelParam: String = "" + var skillId = 0 + var choKaikaSkillId = 0 + var cardNumber: String = "" + var version: String = "" +} + + +@Entity(name = "OngekiGameChara") +@Table(name = "ongeki_game_chara") +class GameChara { + @Id + var id: Long = 0 + var name: String = "" + var cv: String = "" + var modelId = 0 +} + + +@Entity(name = "OngekiGameEvent") +@Table(name = "ongeki_game_event") +class GameEvent { + @Id + var id: Long = 0 +} + + +@Entity(name = "OngekiGameMusic") +@Table(name = "ongeki_game_music") +class GameMusic { + @Id + var id: Long = 0 + var name: String = "" + var sortName: String = "" + var artistName: String = "" + var genre: String = "" + var bossCardId = 0 + var bossLevel = 0 + var level0: String = "" + var level1: String = "" + var level2: String = "" + var level3: String = "" + var level4: String = "" +} + + +@Entity(name = "OngekiGamePoint") +@Table(name = "ongeki_game_point", uniqueConstraints = [UniqueConstraint(columnNames = ["type"])]) +class GamePoint(@field:Enumerated(EnumType.ORDINAL) var type: GpProductID, var cost: Int) : + Serializable { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @JsonIgnore + var id: Long = 0 + val startDate = "2000-01-01 05:00:00.0" + val endDate = "2099-01-01 05:00:00.0" +} + + +@Entity(name = "OngekiGamePresent") +@Table(name = "ongeki_game_present") +class GamePresent( + presentId: Int, var presentName: String, var rewardId: Int, // count + var stock: Int, // acquisitionCondition + var message: String +) : + Serializable { + @Id + @Column(name = "id") + var presentId = presentId.toLong() + val startDate = "2000-01-01 05:00:00.0" + val endDate = "2099-01-01 05:00:00.0" +} + + +@Entity(name = "OngekiGameReward") +@Table(name = "ongeki_game_reward") +class GameReward( + rewardId: Int, + @field:Enumerated(EnumType.ORDINAL) var itemKind: ItemType, + var itemId: Int +) { + @Id + @Column(name = "id") + var rewardId = rewardId.toLong() +} + + +@Entity(name = "OngekiGameSkill") +@Table(name = "ongeki_game_skill") +class GameSkill { + @Id + var id: Long = 0 + var name: String = "" + var category: String = "" + var info: String = "" +} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUserEntities.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUserEntities.kt index 839c860e..009d02fe 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUserEntities.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUserEntities.kt @@ -2,7 +2,6 @@ package icu.samnyan.aqua.sega.ongeki.model import com.fasterxml.jackson.annotation.JsonIgnore import com.fasterxml.jackson.annotation.JsonProperty -import com.fasterxml.jackson.annotation.JsonPropertyOrder import com.fasterxml.jackson.databind.annotation.JsonSerialize import icu.samnyan.aqua.net.games.* import icu.samnyan.aqua.sega.general.model.Card diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameCard.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameCard.java deleted file mode 100644 index d52e37cf..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameCard.java +++ /dev/null @@ -1,52 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.gamedata; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.Entity; -import jakarta.persistence.Id; -import jakarta.persistence.Table; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiGameCard") -@Table(name = "ongeki_game_card") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class GameCard implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - private long id; - - private String name; - - private String nickName; - - private String attribute; - - private int charaId; - - private String school; - - private String gakunen; - - private String rarity; - - // csv - private String levelParam; - - private int skillId; - - private int choKaikaSkillId; - - private String cardNumber; - - private String version; - -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameChara.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameChara.java deleted file mode 100644 index 84e47db2..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameChara.java +++ /dev/null @@ -1,33 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.gamedata; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.Entity; -import jakarta.persistence.Id; -import jakarta.persistence.Table; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiGameChara") -@Table(name = "ongeki_game_chara") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class GameChara implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - private long id; - - private String name; - - private String cv; - - private int modelId; - -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameEvent.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameEvent.java deleted file mode 100644 index 7330dc38..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameEvent.java +++ /dev/null @@ -1,26 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.gamedata; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.Entity; -import jakarta.persistence.Id; -import jakarta.persistence.Table; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiGameEvent") -@Table(name = "ongeki_game_event") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class GameEvent implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - private long id; -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameMusic.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameMusic.java deleted file mode 100644 index 22a9d1f4..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameMusic.java +++ /dev/null @@ -1,49 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.gamedata; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.Entity; -import jakarta.persistence.Id; -import jakarta.persistence.Table; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiGameMusic") -@Table(name = "ongeki_game_music") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class GameMusic implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - private long id; - - private String name; - - private String sortName; - - private String artistName; - - private String genre; - - private int bossCardId; - - private int bossLevel; - - private String level0; - - private String level1; - - private String level2; - - private String level3; - - private String level4; - -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GamePoint.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GamePoint.java deleted file mode 100644 index 29e2f281..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GamePoint.java +++ /dev/null @@ -1,42 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.gamedata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import icu.samnyan.aqua.sega.ongeki.model.common.GpProductID; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiGamePoint") -@Table(name = "ongeki_game_point", uniqueConstraints = {@UniqueConstraint(columnNames = {"type"})}) -@Data -@NoArgsConstructor -@AllArgsConstructor -public class GamePoint implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @Enumerated(EnumType.ORDINAL) - private GpProductID type; - - private int cost; - - private String startDate = "2000-01-01 05:00:00.0"; - - private String endDate = "2099-01-01 05:00:00.0"; - - public GamePoint(GpProductID type, int cost) { - this.type = type; - this.cost = cost; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GamePresent.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GamePresent.java deleted file mode 100644 index 48e68f0a..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GamePresent.java +++ /dev/null @@ -1,47 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.gamedata; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiGamePresent") -@Table(name = "ongeki_game_present") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class GamePresent implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @Column(name = "id") - private long presentId; - - private String presentName; - - private int rewardId; - - // count - private int stock; - - // acquisitionCondition - private String message; - - private String startDate = "2000-01-01 05:00:00.0"; - - private String endDate = "2099-01-01 05:00:00.0"; - - public GamePresent(int presentId, String presentName, int rewardId, int stock, String message) { - this.presentId = presentId; - this.presentName = presentName; - this.rewardId = rewardId; - this.stock = stock; - this.message = message; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameReward.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameReward.java deleted file mode 100644 index 2ee9dcff..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameReward.java +++ /dev/null @@ -1,37 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.gamedata; - -import icu.samnyan.aqua.sega.ongeki.model.common.ItemType; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiGameReward") -@Table(name = "ongeki_game_reward") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class GameReward implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @Column(name = "id") - private long rewardId; - - @Enumerated(EnumType.ORDINAL) - private ItemType itemKind; - - private int itemId; - - public GameReward(int rewardId, ItemType itemKind, int itemId) { - this.rewardId = rewardId; - this.itemKind = itemKind; - this.itemId = itemId; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameSkill.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameSkill.java deleted file mode 100644 index 4191d498..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/GameSkill.java +++ /dev/null @@ -1,33 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.gamedata; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.Entity; -import jakarta.persistence.Id; -import jakarta.persistence.Table; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiGameSkill") -@Table(name = "ongeki_game_skill") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class GameSkill implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - private long id; - - private String name; - - private String category; - - private String info; - -} From c98e73883b58d4e0c130bd010ed478e76324688e Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 19:06:53 -0400 Subject: [PATCH 20/39] [O] Ongeki: Make game entities constructor consistent --- .../sega/ongeki/model/OngekiGameEntities.kt | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiGameEntities.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiGameEntities.kt index 02976812..9976631f 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiGameEntities.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiGameEntities.kt @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore import icu.samnyan.aqua.sega.ongeki.model.common.GpProductID import icu.samnyan.aqua.sega.ongeki.model.common.ItemType import jakarta.persistence.* -import java.io.Serializable @Entity(name = "OngekiGameCard") @Table(name = "ongeki_game_card") @@ -67,12 +66,14 @@ class GameMusic { @Entity(name = "OngekiGamePoint") @Table(name = "ongeki_game_point", uniqueConstraints = [UniqueConstraint(columnNames = ["type"])]) -class GamePoint(@field:Enumerated(EnumType.ORDINAL) var type: GpProductID, var cost: Int) : - Serializable { +class GamePoint { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @JsonIgnore var id: Long = 0 + @Enumerated(EnumType.ORDINAL) + var type: GpProductID = GpProductID.A_Credit1 + var cost: Int = 0 val startDate = "2000-01-01 05:00:00.0" val endDate = "2099-01-01 05:00:00.0" } @@ -80,15 +81,13 @@ class GamePoint(@field:Enumerated(EnumType.ORDINAL) var type: GpProductID, var c @Entity(name = "OngekiGamePresent") @Table(name = "ongeki_game_present") -class GamePresent( - presentId: Int, var presentName: String, var rewardId: Int, // count - var stock: Int, // acquisitionCondition - var message: String -) : - Serializable { +class GamePresent { @Id - @Column(name = "id") - var presentId = presentId.toLong() + var id: Long = 0 + var presentName: String = "" + var rewardId: Int = 0 // count + var stock: Int = 0 // acquisitionCondition + var message: String = "" val startDate = "2000-01-01 05:00:00.0" val endDate = "2099-01-01 05:00:00.0" } @@ -96,14 +95,13 @@ class GamePresent( @Entity(name = "OngekiGameReward") @Table(name = "ongeki_game_reward") -class GameReward( - rewardId: Int, - @field:Enumerated(EnumType.ORDINAL) var itemKind: ItemType, - var itemId: Int -) { +class GameReward { @Id - @Column(name = "id") - var rewardId = rewardId.toLong() + var id: Long = 0 + + @Enumerated(EnumType.ORDINAL) + var itemKind: ItemType = ItemType.None + var itemId = 0 } From 8a35cf002f1b9a5c9ea3431239e85ec2d2b473ab Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 19:10:30 -0400 Subject: [PATCH 21/39] [F] Ongeki: AllArgsConstructor --- .../sega/ongeki/model/response/data/All.kt | 147 +++++++----------- 1 file changed, 57 insertions(+), 90 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/All.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/All.kt index fb714719..aa802abf 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/All.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/All.kt @@ -1,105 +1,72 @@ package icu.samnyan.aqua.sega.ongeki.model.response.data +import ext.Bool import icu.samnyan.aqua.sega.ongeki.model.UserMusicDetail -import lombok.AllArgsConstructor -import lombok.Data -import lombok.NoArgsConstructor -@Data -@AllArgsConstructor -@NoArgsConstructor -class GameEventItem { - var id: Long = 0 - var type = 0 - var startDate: String = "" - var endDate: String = "" -} +class GameEventItem( + var id: Long = 0, + var type: Int = 0, + var startDate: String = "", + var endDate: String = "", +) -@Data -@AllArgsConstructor -@NoArgsConstructor -class GameIdListItem { - var id = 0 - var type = 0 -} +class GameIdListItem( + var id: Int = 0, + var type: Int = 0, +) -/** - * Fro getGameRanking request - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -class GameRankingItem { - var id: Long = 0 +class GameRankingItem( + var id: Long = 0, // this 2 field never use in game code, // maybe for the future update like in game player ranking - var point: Long = 0 - var userName: String = "" -} + var point: Long = 0, + var userName: String = "", +) -@Data -@AllArgsConstructor -@NoArgsConstructor -class GameSetting { - var dataVersion: String = "" - var onlineDataVersion: String = "" - var isMaintenance = false - var requestInterval = 0 - var rebootStartTime: String = "" - var rebootEndTime: String = "" - var isBackgroundDistribute = false - var maxCountCharacter = 0 - var maxCountCard = 0 - var maxCountItem = 0 - var maxCountMusic = 0 - var maxCountMusicItem = 0 - var maxCountRivalMusic = 0 -} +class GameSetting( + var dataVersion: String = "", + var onlineDataVersion: String = "", + var isMaintenance: Bool = false, + var requestInterval: Int = 0, + var rebootStartTime: String = "", + var rebootEndTime: String = "", + var isBackgroundDistribute: Bool = false, + var maxCountCharacter: Int = 0, + var maxCountCard: Int = 0, + var maxCountItem: Int = 0, + var maxCountMusic: Int = 0, + var maxCountMusicItem: Int = 0, + var maxCountRivalMusic: Int = 0, +) -@Data -@AllArgsConstructor -@NoArgsConstructor -class UserEventRankingItem { - var eventId = 0 - var type = 0 - var date: String = "" - var rank = 0 - var point: Long = 0 -} +class UserEventRankingItem( + var eventId: Int = 0, + var type: Int = 0, + var date: String = "", + var rank: Int = 0, + var point: Long = 0, +) -@Data -@AllArgsConstructor -@NoArgsConstructor -class UserMusicListItem { - var length = 0 - var userMusicDetailList: List? = null -} +class UserMusicListItem( + var length: Int = 0, + var userMusicDetailList: List? = null, +) -@Data -@AllArgsConstructor -@NoArgsConstructor -class UserRivalData { - var rivalUserId: Long = 0 - var rivalUserName: String = "" -} +class UserRivalData( + var rivalUserId: Long = 0, + var rivalUserName: String = "", +) -@Data -@AllArgsConstructor -@NoArgsConstructor -class UserRivalMusic { - var userRivalMusicDetailList: List? = null - var length = 0 -} +class UserRivalMusic( + var userRivalMusicDetailList: List? = null, + var length: Int = 0, +) -@Data -@AllArgsConstructor -@NoArgsConstructor -class UserTechEventRankingItem { - var eventId = 0 - var date: String = "" - var rank = 0 - var totalTechScore = 0 - var totalPlatinumScore = 0 -} +class UserTechEventRankingItem( + var eventId: Int = 0, + var date: String = "", + var rank: Int = 0, + var totalTechScore: Int = 0, + var totalPlatinumScore: Int = 0, +) From e58e84da3545553d8d155d4674cfac2e77e69fcb Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 19:23:30 -0400 Subject: [PATCH 22/39] [O] Ongeki: Response models --- docs/dev/kt.md | 13 + .../samnyan/aqua/net/transfer/DataBroker.kt | 2 +- .../handler/impl/GetGameEventHandler.java | 2 +- .../handler/impl/GetGameIdlistHandler.java | 2 +- .../handler/impl/GetGameRankingHandler.java | 2 +- .../handler/impl/GetGameSettingHandler.java | 4 +- .../impl/GetUserEventRankingHandler.java | 2 +- .../handler/impl/GetUserMusicHandler.java | 2 +- .../handler/impl/GetUserPreviewHandler.java | 2 +- .../handler/impl/GetUserRivalDataHandler.java | 2 +- .../impl/GetUserRivalMusicHandler.java | 2 +- .../impl/GetUserTechEventRankingHandler.java | 2 +- .../handler/impl/UpsertUserAllHandler.kt | 346 ++++++++++-------- .../data/All.kt => OngekiResponse.kt} | 40 +- .../aqua/sega/ongeki/model/UpsertUserAll.kt | 62 ++++ .../ongeki/model/request/UpsertUserAll.java | 157 -------- .../sega/ongeki/model/response/CodeResp.java | 16 - .../model/response/GetGameSettingResp.java | 21 -- .../model/response/GetUserPreviewResp.java | 41 --- 19 files changed, 314 insertions(+), 406 deletions(-) create mode 100644 docs/dev/kt.md rename src/main/java/icu/samnyan/aqua/sega/ongeki/model/{response/data/All.kt => OngekiResponse.kt} (60%) create mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/UpsertUserAll.kt delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/request/UpsertUserAll.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/CodeResp.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/GetGameSettingResp.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/GetUserPreviewResp.java diff --git a/docs/dev/kt.md b/docs/dev/kt.md new file mode 100644 index 00000000..0ce99b24 --- /dev/null +++ b/docs/dev/kt.md @@ -0,0 +1,13 @@ +```regexp +(var \w+) = 0 +$1: Int = 0 + + \= false +: Bool = false + +(var [\w: =?"]+[^,])\n +$1,\n + +(var \w+) \= \"\" +$1: String = "" +``` \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/net/transfer/DataBroker.kt b/src/main/java/icu/samnyan/aqua/net/transfer/DataBroker.kt index d3537da1..dbd7228f 100644 --- a/src/main/java/icu/samnyan/aqua/net/transfer/DataBroker.kt +++ b/src/main/java/icu/samnyan/aqua/net/transfer/DataBroker.kt @@ -9,7 +9,7 @@ import icu.samnyan.aqua.sega.maimai2.model.request.Mai2UserAll import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserFavorite import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserItem import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserMusicDetail -import icu.samnyan.aqua.sega.ongeki.model.request.UpsertUserAll +import icu.samnyan.aqua.sega.ongeki.model.UpsertUserAll import icu.samnyan.aqua.sega.ongeki.model.UserItem import icu.samnyan.aqua.sega.util.jackson.BasicMapper import icu.samnyan.aqua.sega.util.jackson.IMapper diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java index 882a8c88..abce2726 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkGameEventRepo; import icu.samnyan.aqua.sega.general.BaseHandler; import icu.samnyan.aqua.sega.ongeki.model.GameEvent; -import icu.samnyan.aqua.sega.ongeki.model.response.data.GameEventItem; +import icu.samnyan.aqua.sega.ongeki.model.GameEventItem; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameIdlistHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameIdlistHandler.java index d109dace..55d96652 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameIdlistHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameIdlistHandler.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.general.dao.PropertyEntryRepository; import icu.samnyan.aqua.sega.general.model.PropertyEntry; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.response.data.GameIdListItem; +import icu.samnyan.aqua.sega.ongeki.model.GameIdListItem; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRankingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRankingHandler.java index f30c1e84..862e28f8 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRankingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRankingHandler.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.general.dao.PropertyEntryRepository; import icu.samnyan.aqua.sega.general.model.PropertyEntry; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.response.data.GameRankingItem; +import icu.samnyan.aqua.sega.ongeki.model.GameRankingItem; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameSettingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameSettingHandler.java index 6e2a8e22..a5f1eb63 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameSettingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameSettingHandler.java @@ -4,8 +4,8 @@ import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.general.dao.PropertyEntryRepository; import icu.samnyan.aqua.sega.general.model.PropertyEntry; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.response.GetGameSettingResp; -import icu.samnyan.aqua.sega.ongeki.model.response.data.GameSetting; +import icu.samnyan.aqua.sega.ongeki.model.GetGameSettingResp; +import icu.samnyan.aqua.sega.ongeki.model.GameSetting; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java index 43841b08..17d92136 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserEventPointRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.response.data.UserEventRankingItem; +import icu.samnyan.aqua.sega.ongeki.model.UserEventRankingItem; import icu.samnyan.aqua.sega.ongeki.model.UserEventPoint; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java index a59a3a3b..455d0d71 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserMusicDetailRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.response.data.UserMusicListItem; +import icu.samnyan.aqua.sega.ongeki.model.UserMusicListItem; import icu.samnyan.aqua.sega.ongeki.model.UserMusicDetail; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import icu.samnyan.aqua.spring.data.OffsetPageRequest; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java index 68ca2ae8..1794bb64 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo; import icu.samnyan.aqua.sega.ongeki.OgkUserOptionRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.response.GetUserPreviewResp; +import icu.samnyan.aqua.sega.ongeki.model.GetUserPreviewResp; import icu.samnyan.aqua.sega.ongeki.model.UserData; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java index 84c8f974..c6b3b51c 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo; import icu.samnyan.aqua.sega.ongeki.OgkUserRivalDataRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.response.data.UserRivalData; +import icu.samnyan.aqua.sega.ongeki.model.UserRivalData; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java index d088ceff..9a5876b4 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java @@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserMusicDetailRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.response.data.UserRivalMusic; +import icu.samnyan.aqua.sega.ongeki.model.UserRivalMusic; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import icu.samnyan.aqua.spring.data.OffsetPageRequest; import org.slf4j.Logger; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java index 65262915..93914bf8 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.ongeki.OgkUserTechEventRepo; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.response.data.UserTechEventRankingItem; +import icu.samnyan.aqua.sega.ongeki.model.UserTechEventRankingItem; import icu.samnyan.aqua.sega.ongeki.model.UserTechEvent; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt index 51bf9aad..aeedcfe8 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt @@ -6,8 +6,6 @@ import icu.samnyan.aqua.sega.general.model.response.UserRecentRating import icu.samnyan.aqua.sega.general.service.CardService import icu.samnyan.aqua.sega.ongeki.* import icu.samnyan.aqua.sega.ongeki.model.* -import icu.samnyan.aqua.sega.ongeki.model.request.UpsertUserAll -import icu.samnyan.aqua.sega.ongeki.model.response.CodeResp import icu.samnyan.aqua.sega.util.jackson.BasicMapper import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Component @@ -61,7 +59,7 @@ class UpsertUserAllHandler @Autowired constructor( val userOptional = userDataRepository.findByCard_ExtId(userId) // UserData might be empty on later runs - if (userOptional.isEmpty && upsertUserAll.userData.isEmpty()) { + if (userOptional.isEmpty && upsertUserAll.userData.isNullOrEmpty()) { return null } @@ -74,7 +72,7 @@ class UpsertUserAllHandler @Autowired constructor( } // If new data exists, use new data. Otherwise, use old data - u = if (!upsertUserAll.userData.isEmpty()) upsertUserAll.userData[0] else userData + u = if (!upsertUserAll.userData.isNullOrEmpty()) upsertUserAll.userData!![0] else userData u.id = userData.id u.card = userData.card @@ -82,12 +80,12 @@ class UpsertUserAllHandler @Autowired constructor( // Set eventWatchedDate with lastPlayDate, because client doesn't update it u.eventWatchedDate = userData.lastPlayDate u.cmEventWatchedDate = userData.lastPlayDate - userDataRepository.save(u) + userDataRepository.save(u) } // UserOption - val newUserOption = upsertUserAll.userOption[0] + val newUserOption = upsertUserAll.userOption!![0] val userOptionOptional = userOptionRepository.findSingleByUser(u) val userOption = userOptionOptional.orElseGet { UserOption().apply { user = u } } @@ -102,9 +100,11 @@ class UpsertUserAllHandler @Autowired constructor( val userPlaylogList = upsertUserAll.userPlaylogList val newUserPlaylogList: MutableList = ArrayList() - for (newUserPlaylog in userPlaylogList) { - newUserPlaylog.user = u - newUserPlaylogList.add(newUserPlaylog) + if (userPlaylogList != null) { + for (newUserPlaylog in userPlaylogList) { + newUserPlaylog.user = u + newUserPlaylogList.add(newUserPlaylog) + } } userPlaylogRepository.saveAll(newUserPlaylogList) @@ -117,19 +117,21 @@ class UpsertUserAllHandler @Autowired constructor( val userActivityList = upsertUserAll.userActivityList val newUserActivityList: MutableList = ArrayList() - for (newUserActivity in userActivityList) { - val kind = newUserActivity.kind - val id = newUserActivity.activityId + if (userActivityList != null) { + for (newUserActivity in userActivityList) { + val kind = newUserActivity.kind + val id = newUserActivity.activityId - if (kind != 0 && id != 0) { - val activityOptional = userActivityRepository.findByUserAndKindAndActivityId(u, kind, id) - val userActivity = activityOptional.orElseGet { - UserActivity().apply { user = u } + if (kind != 0 && id != 0) { + val activityOptional = userActivityRepository.findByUserAndKindAndActivityId(u, kind, id) + val userActivity = activityOptional.orElseGet { + UserActivity().apply { user = u } + } + + newUserActivity.id = userActivity.id + newUserActivity.user = u + newUserActivityList.add(newUserActivity) } - - newUserActivity.id = userActivity.id - newUserActivity.user = u - newUserActivityList.add(newUserActivity) } } newUserActivityList.sortWith { a, b -> b.sortNumber.compareTo(a.sortNumber) } @@ -138,8 +140,7 @@ class UpsertUserAllHandler @Autowired constructor( // UserRecentRatingList // This thing still need to save to solve the rating drop - this.saveGeneralData(upsertUserAll.userRecentRatingList, u, "recent_rating_list") - + upsertUserAll.userRecentRatingList?.let { this.saveGeneralData(it, u, "recent_rating_list") } /* * The rating and battle point calculation is little bit complex. @@ -147,51 +148,52 @@ class UpsertUserAllHandler @Autowired constructor( * into a csv format for convenience */ // UserBpBaseList (For calculating Battle point) - this.saveGeneralData(upsertUserAll.userBpBaseList, u, "battle_point_base") + upsertUserAll.userBpBaseList?.let { this.saveGeneralData(it, u, "battle_point_base") } // This is the best rating of all charts. Best 30 + 10 after that. // userRatingBaseBestList - this.saveGeneralData(upsertUserAll.userRatingBaseBestList, u, "rating_base_best") + upsertUserAll.userRatingBaseBestList?.let { this.saveGeneralData(it, u, "rating_base_best") } // userRatingBaseNextList - this.saveGeneralData(upsertUserAll.userRatingBaseNextList, u, "rating_base_next") - + upsertUserAll.userRatingBaseNextList?.let { this.saveGeneralData(it, u, "rating_base_next") } // This is the best rating of new charts. Best 15 + 10 after that. // New chart means same version // userRatingBaseBestNewList - this.saveGeneralData(upsertUserAll.userRatingBaseBestNewList, u, "rating_base_new_best") + upsertUserAll.userRatingBaseBestNewList?.let { this.saveGeneralData(it, u, "rating_base_new_best") } // userRatingBaseNextNewList - this.saveGeneralData(upsertUserAll.userRatingBaseNextNewList, u, "rating_base_new_next") + upsertUserAll.userRatingBaseNextNewList?.let { this.saveGeneralData(it, u, "rating_base_new_next") } // This is the recent best // userRatingBaseHotList - this.saveGeneralData(upsertUserAll.userRatingBaseHotList, u, "rating_base_hot_best") + upsertUserAll.userRatingBaseHotList?.let { this.saveGeneralData(it, u, "rating_base_hot_best") } // userRatingBaseHotNextList - this.saveGeneralData(upsertUserAll.userRatingBaseHotNextList, u, "rating_base_hot_next") + upsertUserAll.userRatingBaseHotNextList?.let { this.saveGeneralData(it, u, "rating_base_hot_next") } // UserMusicDetailList val userMusicDetailList = upsertUserAll.userMusicDetailList val newUserMusicDetailList: MutableList = ArrayList() - for (newUserMusicDetail in userMusicDetailList) { - val musicId = newUserMusicDetail.musicId - val level = newUserMusicDetail.level + if (userMusicDetailList != null) { + for (newUserMusicDetail in userMusicDetailList) { + val musicId = newUserMusicDetail.musicId + val level = newUserMusicDetail.level - val musicDetailOptional = - userMusicDetailRepository.findByUserAndMusicIdAndLevel(u, musicId, level) - val userMusicDetail = musicDetailOptional.orElseGet { - UserMusicDetail().apply { user = u } + val musicDetailOptional = + userMusicDetailRepository.findByUserAndMusicIdAndLevel(u, musicId, level) + val userMusicDetail = musicDetailOptional.orElseGet { + UserMusicDetail().apply { user = u } + } + + newUserMusicDetail.id = userMusicDetail.id + newUserMusicDetail.user = u + newUserMusicDetailList.add(newUserMusicDetail) } - - newUserMusicDetail.id = userMusicDetail.id - newUserMusicDetail.user = u - newUserMusicDetailList.add(newUserMusicDetail) } userMusicDetailRepository.saveAll(newUserMusicDetailList) @@ -200,17 +202,19 @@ class UpsertUserAllHandler @Autowired constructor( val userCharacterList = upsertUserAll.userCharacterList val newUserCharacterList: MutableList = ArrayList() - for (newUserCharacter in userCharacterList) { - val characterId = newUserCharacter.characterId + if (userCharacterList != null) { + for (newUserCharacter in userCharacterList) { + val characterId = newUserCharacter.characterId - val characterOptional = userCharacterRepository.findByUserAndCharacterId(u, characterId) - val userCharacter = characterOptional.orElseGet { - UserCharacter().apply { user = u } + val characterOptional = userCharacterRepository.findByUserAndCharacterId(u, characterId) + val userCharacter = characterOptional.orElseGet { + UserCharacter().apply { user = u } + } + + newUserCharacter.id = userCharacter.id + newUserCharacter.user = u + newUserCharacterList.add(newUserCharacter) } - - newUserCharacter.id = userCharacter.id - newUserCharacter.user = u - newUserCharacterList.add(newUserCharacter) } userCharacterRepository.saveAll(newUserCharacterList) @@ -218,15 +222,17 @@ class UpsertUserAllHandler @Autowired constructor( val userCardList = upsertUserAll.userCardList val newUserCardList: MutableList = ArrayList() - for (newUserCard in userCardList) { - val cardId = newUserCard.cardId + if (userCardList != null) { + for (newUserCard in userCardList) { + val cardId = newUserCard.cardId - val cardOptional = userCardRepository.findByUserAndCardId(u, cardId) - val userCard = cardOptional.orElseGet { UserCard().apply { user = u } } + val cardOptional = userCardRepository.findByUserAndCardId(u, cardId) + val userCard = cardOptional.orElseGet { UserCard().apply { user = u } } - newUserCard.id = userCard.id - newUserCard.user = u - newUserCardList.add(newUserCard) + newUserCard.id = userCard.id + newUserCard.user = u + newUserCardList.add(newUserCard) + } } userCardRepository.saveAll(newUserCardList) @@ -235,15 +241,17 @@ class UpsertUserAllHandler @Autowired constructor( val userDeckList = upsertUserAll.userDeckList val newUserDeckList: MutableList = ArrayList() - for (newUserDeck in userDeckList) { - val deckId = newUserDeck.deckId + if (userDeckList != null) { + for (newUserDeck in userDeckList) { + val deckId = newUserDeck.deckId - val deckOptional = userDeckRepository.findByUserAndDeckId(u, deckId) - val userDeck = deckOptional.orElseGet { UserDeck().apply { user = u } } + val deckOptional = userDeckRepository.findByUserAndDeckId(u, deckId) + val userDeck = deckOptional.orElseGet { UserDeck().apply { user = u } } - newUserDeck.id = userDeck.id - newUserDeck.user = u - newUserDeckList.add(newUserDeck) + newUserDeck.id = userDeck.id + newUserDeck.user = u + newUserDeckList.add(newUserDeck) + } } userDeckRepository.saveAll(newUserDeckList) @@ -252,15 +260,17 @@ class UpsertUserAllHandler @Autowired constructor( val userTrainingRoomList = upsertUserAll.userTrainingRoomList val newUserTrainingRoomList: MutableList = ArrayList() - for (newUserTrainingRoom in userTrainingRoomList) { - val roomId = newUserTrainingRoom.roomId + if (userTrainingRoomList != null) { + for (newUserTrainingRoom in userTrainingRoomList) { + val roomId = newUserTrainingRoom.roomId - val trainingRoomOptional = userTrainingRoomRepository.findByUserAndRoomId(u, roomId) - val trainingRoom = trainingRoomOptional.orElseGet { UserTrainingRoom().apply { user = u } } + val trainingRoomOptional = userTrainingRoomRepository.findByUserAndRoomId(u, roomId) + val trainingRoom = trainingRoomOptional.orElseGet { UserTrainingRoom().apply { user = u } } - newUserTrainingRoom.id = trainingRoom.id - newUserTrainingRoom.user = u - newUserTrainingRoomList.add(newUserTrainingRoom) + newUserTrainingRoom.id = trainingRoom.id + newUserTrainingRoom.user = u + newUserTrainingRoomList.add(newUserTrainingRoom) + } } userTrainingRoomRepository.saveAll(newUserTrainingRoomList) @@ -269,15 +279,17 @@ class UpsertUserAllHandler @Autowired constructor( val userStoryList = upsertUserAll.userStoryList val newUserStoryList: MutableList = ArrayList() - for (newUserStory in userStoryList) { - val storyId = newUserStory.storyId + if (userStoryList != null) { + for (newUserStory in userStoryList) { + val storyId = newUserStory.storyId - val storyOptional = userStoryRepository.findByUserAndStoryId(u, storyId) - val userStory = storyOptional.orElseGet { UserStory().apply { user = u } } + val storyOptional = userStoryRepository.findByUserAndStoryId(u, storyId) + val userStory = storyOptional.orElseGet { UserStory().apply { user = u } } - newUserStory.id = userStory.id - newUserStory.user = u - newUserStoryList.add(newUserStory) + newUserStory.id = userStory.id + newUserStory.user = u + newUserStoryList.add(newUserStory) + } } userStoryRepository.saveAll(newUserStoryList) @@ -286,15 +298,17 @@ class UpsertUserAllHandler @Autowired constructor( val userChapterList = upsertUserAll.userChapterList val newUserChapterList: MutableList = ArrayList() - for (newUserChapter in userChapterList) { - val chapterId = newUserChapter.chapterId + if (userChapterList != null) { + for (newUserChapter in userChapterList) { + val chapterId = newUserChapter.chapterId - val chapterOptional = userChapterRepository.findByUserAndChapterId(u, chapterId) - val userChapter = chapterOptional.orElseGet { UserChapter().apply { user = u } } + val chapterOptional = userChapterRepository.findByUserAndChapterId(u, chapterId) + val userChapter = chapterOptional.orElseGet { UserChapter().apply { user = u } } - newUserChapter.id = userChapter.id - newUserChapter.user = u - newUserChapterList.add(newUserChapter) + newUserChapter.id = userChapter.id + newUserChapter.user = u + newUserChapterList.add(newUserChapter) + } } userChapterRepository.saveAll(newUserChapterList) @@ -322,16 +336,18 @@ class UpsertUserAllHandler @Autowired constructor( val userItemList = upsertUserAll.userItemList val newUserItemList: MutableList = ArrayList() - for (newUserItem in userItemList) { - val itemKind = newUserItem.itemKind - val itemId = newUserItem.itemId + if (userItemList != null) { + for (newUserItem in userItemList) { + val itemKind = newUserItem.itemKind + val itemId = newUserItem.itemId - val itemOptional = userItemRepository.findByUserAndItemKindAndItemId(u, itemKind, itemId) - val userItem = itemOptional.orElseGet { UserItem().apply { user = u } } + val itemOptional = userItemRepository.findByUserAndItemKindAndItemId(u, itemKind, itemId) + val userItem = itemOptional.orElseGet { UserItem().apply { user = u } } - newUserItem.id = userItem.id - newUserItem.user = u - newUserItemList.add(newUserItem) + newUserItem.id = userItem.id + newUserItem.user = u + newUserItemList.add(newUserItem) + } } userItemRepository.saveAll(newUserItemList) @@ -339,15 +355,17 @@ class UpsertUserAllHandler @Autowired constructor( val userMusicItemList = upsertUserAll.userMusicItemList val newUserMusicItemList: MutableList = ArrayList() - for (newUserMusicItem in userMusicItemList) { - val musicId = newUserMusicItem.musicId + if (userMusicItemList != null) { + for (newUserMusicItem in userMusicItemList) { + val musicId = newUserMusicItem.musicId - val musicItemOptional = userMusicItemRepository.findByUserAndMusicId(u, musicId) - val userMusicItem = musicItemOptional.orElseGet { UserMusicItem().apply { user = u } } + val musicItemOptional = userMusicItemRepository.findByUserAndMusicId(u, musicId) + val userMusicItem = musicItemOptional.orElseGet { UserMusicItem().apply { user = u } } - newUserMusicItem.id = userMusicItem.id - newUserMusicItem.user = u - newUserMusicItemList.add(newUserMusicItem) + newUserMusicItem.id = userMusicItem.id + newUserMusicItem.user = u + newUserMusicItemList.add(newUserMusicItem) + } } userMusicItemRepository.saveAll(newUserMusicItemList) @@ -356,17 +374,19 @@ class UpsertUserAllHandler @Autowired constructor( val userLoginBonusList = upsertUserAll.userLoginBonusList val newUserLoginBonusList: MutableList = ArrayList() - for (newUserLoginBonus in userLoginBonusList) { - val bonusId = newUserLoginBonus.bonusId + if (userLoginBonusList != null) { + for (newUserLoginBonus in userLoginBonusList) { + val bonusId = newUserLoginBonus.bonusId - val loginBonusOptional = userLoginBonusRepository.findByUserAndBonusId(u, bonusId) - val userLoginBonus = loginBonusOptional.orElseGet { - UserLoginBonus().apply { user = u } + val loginBonusOptional = userLoginBonusRepository.findByUserAndBonusId(u, bonusId) + val userLoginBonus = loginBonusOptional.orElseGet { + UserLoginBonus().apply { user = u } + } + + newUserLoginBonus.id = userLoginBonus.id + newUserLoginBonus.user = u + newUserLoginBonusList.add(newUserLoginBonus) } - - newUserLoginBonus.id = userLoginBonus.id - newUserLoginBonus.user = u - newUserLoginBonusList.add(newUserLoginBonus) } userLoginBonusRepository.saveAll(newUserLoginBonusList) @@ -375,15 +395,17 @@ class UpsertUserAllHandler @Autowired constructor( val userEventPointList = upsertUserAll.userEventPointList val newUserEventPointList: MutableList = ArrayList() - for (newUserEventPoint in userEventPointList) { - val eventId = newUserEventPoint.eventId + if (userEventPointList != null) { + for (newUserEventPoint in userEventPointList) { + val eventId = newUserEventPoint.eventId - val eventPointOptional = userEventPointRepository.findByUserAndEventId(u, eventId) - val userEventPoint = eventPointOptional.orElseGet { UserEventPoint().apply { user = u } } + val eventPointOptional = userEventPointRepository.findByUserAndEventId(u, eventId) + val userEventPoint = eventPointOptional.orElseGet { UserEventPoint().apply { user = u } } - newUserEventPoint.id = userEventPoint.id - newUserEventPoint.user = u - newUserEventPointList.add(newUserEventPoint) + newUserEventPoint.id = userEventPoint.id + newUserEventPoint.user = u + newUserEventPointList.add(newUserEventPoint) + } } userEventPointRepository.saveAll(newUserEventPointList) @@ -392,15 +414,17 @@ class UpsertUserAllHandler @Autowired constructor( val userMissionPointList = upsertUserAll.userMissionPointList val newUserMissionPointList: MutableList = ArrayList() - for (newUserMissionPoint in userMissionPointList) { - val eventId = newUserMissionPoint.eventId + if (userMissionPointList != null) { + for (newUserMissionPoint in userMissionPointList) { + val eventId = newUserMissionPoint.eventId - val userMissionPointOptional = userMissionPointRepository.findByUserAndEventId(u, eventId) - val userMissionPoint = userMissionPointOptional.orElseGet { UserMissionPoint().apply { user = u } } + val userMissionPointOptional = userMissionPointRepository.findByUserAndEventId(u, eventId) + val userMissionPoint = userMissionPointOptional.orElseGet { UserMissionPoint().apply { user = u } } - newUserMissionPoint.id = userMissionPoint.id - newUserMissionPoint.user = u - newUserMissionPointList.add(newUserMissionPoint) + newUserMissionPoint.id = userMissionPoint.id + newUserMissionPoint.user = u + newUserMissionPointList.add(newUserMissionPoint) + } } userMissionPointRepository.saveAll(newUserMissionPointList) @@ -463,17 +487,19 @@ class UpsertUserAllHandler @Autowired constructor( val userTradeItemList = upsertUserAll.userTradeItemList val newUserTradeItemList: MutableList = ArrayList() - for (newUserTradeItem in userTradeItemList) { - val chapterId = newUserTradeItem.chapterId - val tradeItemId = newUserTradeItem.tradeItemId + if (userTradeItemList != null) { + for (newUserTradeItem in userTradeItemList) { + val chapterId = newUserTradeItem.chapterId + val tradeItemId = newUserTradeItem.tradeItemId - val tradeItemOptional = - userTradeItemRepository.findByUserAndChapterIdAndTradeItemId(u, chapterId, tradeItemId) - val userTradeItem = tradeItemOptional.orElseGet { UserTradeItem().apply { user = u } } + val tradeItemOptional = + userTradeItemRepository.findByUserAndChapterIdAndTradeItemId(u, chapterId, tradeItemId) + val userTradeItem = tradeItemOptional.orElseGet { UserTradeItem().apply { user = u } } - newUserTradeItem.id = userTradeItem.id - newUserTradeItem.user = u - newUserTradeItemList.add(newUserTradeItem) + newUserTradeItem.id = userTradeItem.id + newUserTradeItem.user = u + newUserTradeItemList.add(newUserTradeItem) + } } userTradeItemRepository.saveAll(newUserTradeItemList) @@ -481,18 +507,20 @@ class UpsertUserAllHandler @Autowired constructor( val userEventMusicList = upsertUserAll.userEventMusicList val newUserEventMusicList: MutableList = ArrayList() - for (newUserEventMusic in userEventMusicList) { - val eventId = newUserEventMusic.eventId - val type = newUserEventMusic.type - val musicId = newUserEventMusic.musicId + if (userEventMusicList != null) { + for (newUserEventMusic in userEventMusicList) { + val eventId = newUserEventMusic.eventId + val type = newUserEventMusic.type + val musicId = newUserEventMusic.musicId - val eventMusicOptional = - userEventMusicRepository.findByUserAndEventIdAndTypeAndMusicId(u, eventId, type, musicId) - val userEventMusic = eventMusicOptional.orElseGet { UserEventMusic().apply { user = u } } + val eventMusicOptional = + userEventMusicRepository.findByUserAndEventIdAndTypeAndMusicId(u, eventId, type, musicId) + val userEventMusic = eventMusicOptional.orElseGet { UserEventMusic().apply { user = u } } - newUserEventMusic.id = userEventMusic.id - newUserEventMusic.user = u - newUserEventMusicList.add(newUserEventMusic) + newUserEventMusic.id = userEventMusic.id + newUserEventMusic.user = u + newUserEventMusicList.add(newUserEventMusic) + } } userEventMusicRepository.saveAll(newUserEventMusicList) @@ -500,15 +528,17 @@ class UpsertUserAllHandler @Autowired constructor( val userTechEventList = upsertUserAll.userTechEventList val newUserTechEventList: MutableList = ArrayList() - for (newUserTechEvent in userTechEventList) { - val eventId = newUserTechEvent.eventId + if (userTechEventList != null) { + for (newUserTechEvent in userTechEventList) { + val eventId = newUserTechEvent.eventId - val techEventOptional = userTechEventRepository.findByUserAndEventId(u, eventId) - val userTechEvent = techEventOptional.orElseGet { UserTechEvent().apply { user = u } } + val techEventOptional = userTechEventRepository.findByUserAndEventId(u, eventId) + val userTechEvent = techEventOptional.orElseGet { UserTechEvent().apply { user = u } } - newUserTechEvent.id = userTechEvent.id - newUserTechEvent.user = u - newUserTechEventList.add(newUserTechEvent) + newUserTechEvent.id = userTechEvent.id + newUserTechEvent.user = u + newUserTechEventList.add(newUserTechEvent) + } } userTechEventRepository.saveAll(newUserTechEventList) @@ -516,16 +546,18 @@ class UpsertUserAllHandler @Autowired constructor( val userKopList = upsertUserAll.userKopList val newUserKopList: MutableList = ArrayList() - for (newUserKop in userKopList) { - val kopId = newUserKop.kopId - val areaId = newUserKop.areaId + if (userKopList != null) { + for (newUserKop in userKopList) { + val kopId = newUserKop.kopId + val areaId = newUserKop.areaId - val kopOptional = userKopRepository.findByUserAndKopIdAndAreaId(u, kopId, areaId) - val userKop = kopOptional.orElseGet { UserKop().apply { user = u } } + val kopOptional = userKopRepository.findByUserAndKopIdAndAreaId(u, kopId, areaId) + val userKop = kopOptional.orElseGet { UserKop().apply { user = u } } - newUserKop.id = userKop.id - newUserKop.user = u - newUserKopList.add(newUserKop) + newUserKop.id = userKop.id + newUserKop.user = u + newUserKopList.add(newUserKop) + } } userKopRepository.saveAll(newUserKopList) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/All.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt similarity index 60% rename from src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/All.kt rename to src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt index aa802abf..fe889e7e 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/data/All.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt @@ -1,7 +1,43 @@ -package icu.samnyan.aqua.sega.ongeki.model.response.data +package icu.samnyan.aqua.sega.ongeki.model import ext.Bool -import icu.samnyan.aqua.sega.ongeki.model.UserMusicDetail + +class CodeResp( + var returnCode: Int = 0, + var apiName: String? = null, +) + +class GetGameSettingResp( + var gameSetting: GameSetting? = null, + var isDumpUpload: Bool = false, + var isAou: Bool = false, +) + +class GetUserPreviewResp( + var userId: Long = 0, + var isLogin: Bool = false, + var lastLoginDate: String? = null, + var userName: String = "", + var reincarnationNum: Int = 0, + var level: Int = 0, + var exp: Long = 0, + var playerRating: Long = 0, + var lastGameId: String = "", + var lastRomVersion: String = "", + var lastDataVersion: String = "", + var lastPlayDate: String? = null, + var nameplateId: Int = 0, + var trophyId: Int = 0, + var cardId: Int = 0, + var dispPlayerLv: Int = 0, + var dispRating: Int = 0, + var dispBP: Int = 0, + var headphone: Int = 0, + var banStatus: Int = 0, + var isWarningConfirmed: Bool = false, + var lastEmoneyBrand: Int = 0, + var lastEmoneyCredit: Int = 0, +) class GameEventItem( var id: Long = 0, diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/UpsertUserAll.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/UpsertUserAll.kt new file mode 100644 index 00000000..c942adb0 --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/UpsertUserAll.kt @@ -0,0 +1,62 @@ +package icu.samnyan.aqua.sega.ongeki.model +import icu.samnyan.aqua.sega.general.model.response.UserRecentRating + +class UpsertUserAll { + var userData: List? = null + var userOption: List? = null + var userPlaylogList: List? = null + var userJewelboostlogList: List>? = null + var userSessionlogList: List>? = null + var userActivityList: List? = null + var userRecentRatingList: List? = null + var userBpBaseList: List? = null + var userRatingBaseBestNewList: List? = null + var userRatingBaseBestList: List? = null + var userRatingBaseHotList: List? = null + var userRatingBaseNextNewList: List? = null + var userRatingBaseNextList: List? = null + var userRatingBaseHotNextList: List? = null + var userMusicDetailList: List? = null + var userCharacterList: List? = null + var userCardList: List? = null + var userDeckList: List? = null + var userTrainingRoomList: List? = null + var userStoryList: List? = null + var userChapterList: List? = null + var userMemoryChapterList: List? = null + var userItemList: List? = null + var userMusicItemList: List? = null + var userLoginBonusList: List? = null + var userEventPointList: List? = null + var userMissionPointList: List? = null + var userRatinglogList: List>? = null + var userBossList: List? = null + var userTechCountList: List? = null + var userScenarioList: List? = null + var userTradeItemList: List? = null + var userEventMusicList: List? = null + var userTechEventList: List? = null + var userKopList: List? = null + var clientSystemInfo: Map? = null + var isNewMusicDetailList: String? = null + var isNewCharacterList: String? = null + var isNewCardList: String? = null + var isNewDeckList: String? = null + var isNewTrainingRoomList: String? = null + var isNewStoryList: String? = null + var isNewChapterList: String? = null + var isNewMemoryChapterList: String? = null + var isNewItemList: String? = null + var isNewMusicItemList: String? = null + var isNewLoginBonusList: String? = null + var isNewEventPointList: String? = null + var isNewMissionPointList: String? = null + var isNewRatinglogList: String? = null + var isNewBossList: String? = null + var isNewTechCountList: String? = null + var isNewScenarioList: String? = null + var isNewTradeItemList: String? = null + var isNewEventMusicList: String? = null + var isNewTechEventList: String? = null + var isNewKopList: String? = null +} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/request/UpsertUserAll.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/request/UpsertUserAll.java deleted file mode 100644 index b56975f3..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/request/UpsertUserAll.java +++ /dev/null @@ -1,157 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.request; - -import com.fasterxml.jackson.annotation.JsonProperty; -import icu.samnyan.aqua.sega.general.model.response.UserRecentRating; -import icu.samnyan.aqua.sega.ongeki.model.*; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class UpsertUserAll implements Serializable { - - private List userData; - - private List userOption; - - private List userPlaylogList; - - private List> userJewelboostlogList; - - private List> userSessionlogList; - - private List userActivityList; - - private List userRecentRatingList; - - private List userBpBaseList; - - private List userRatingBaseBestNewList; - - private List userRatingBaseBestList; - - private List userRatingBaseHotList; - - private List userRatingBaseNextNewList; - - private List userRatingBaseNextList; - - private List userRatingBaseHotNextList; - - private List userMusicDetailList; - - private List userCharacterList; - - private List userCardList; - - private List userDeckList; - - private List userTrainingRoomList; - - private List userStoryList; - - private List userChapterList; - - private List userMemoryChapterList; - - private List userItemList; - - private List userMusicItemList; - - private List userLoginBonusList; - - private List userEventPointList; - - private List userMissionPointList; - - private List> userRatinglogList; - - private List userBossList; - - private List userTechCountList; - - private List userScenarioList; - - private List userTradeItemList; - - private List userEventMusicList; - - private List userTechEventList; - - private List userKopList; - - private Map clientSystemInfo; - - @JsonProperty("isNewMusicDetailList") - private String isNewMusicDetailList; - - @JsonProperty("isNewCharacterList") - private String isNewCharacterList; - - @JsonProperty("isNewCardList") - private String isNewCardList; - - @JsonProperty("isNewDeckList") - private String isNewDeckList; - - @JsonProperty("isNewTrainingRoomList") - private String isNewTrainingRoomList; - - @JsonProperty("isNewStoryList") - private String isNewStoryList; - - @JsonProperty("isNewChapterList") - private String isNewChapterList; - - @JsonProperty("isNewMemoryChapterList") - private String isNewMemoryChapterList; - - @JsonProperty("isNewItemList") - private String isNewItemList; - - @JsonProperty("isNewMusicItemList") - private String isNewMusicItemList; - - @JsonProperty("isNewLoginBonusList") - private String isNewLoginBonusList; - - @JsonProperty("isNewEventPointList") - private String isNewEventPointList; - - @JsonProperty("isNewMissionPointList") - private String isNewMissionPointList; - - @JsonProperty("isNewRatinglogList") - private String isNewRatinglogList; - - @JsonProperty("isNewBossList") - private String isNewBossList; - - @JsonProperty("isNewTechCountList") - private String isNewTechCountList; - - @JsonProperty("isNewScenarioList") - private String isNewScenarioList; - - @JsonProperty("isNewTradeItemList") - private String isNewTradeItemList; - - @JsonProperty("isNewEventMusicList") - private String isNewEventMusicList; - - @JsonProperty("isNewTechEventList") - private String isNewTechEventList; - - @JsonProperty("isNewKopList") - private String isNewKopList; - -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/CodeResp.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/CodeResp.java deleted file mode 100644 index 50a60cd8..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/CodeResp.java +++ /dev/null @@ -1,16 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.response; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class CodeResp { - private int returnCode; - private String apiName; -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/GetGameSettingResp.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/GetGameSettingResp.java deleted file mode 100644 index 650e7d00..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/GetGameSettingResp.java +++ /dev/null @@ -1,21 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.response; - -import com.fasterxml.jackson.annotation.JsonProperty; -import icu.samnyan.aqua.sega.ongeki.model.response.data.GameSetting; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class GetGameSettingResp { - private GameSetting gameSetting; - @JsonProperty("isDumpUpload") - private boolean isDumpUpload; - @JsonProperty("isAou") - private boolean isAou; -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/GetUserPreviewResp.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/GetUserPreviewResp.java deleted file mode 100644 index 85d56d38..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/GetUserPreviewResp.java +++ /dev/null @@ -1,41 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.response; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class GetUserPreviewResp { - - private long userId = 0; - @JsonProperty("isLogin") - private boolean isLogin = false; - private String lastLoginDate = null; - private String userName = ""; - private int reincarnationNum = 0; - private int level = 0; - private long exp = 0; - private long playerRating = 0; - private String lastGameId = ""; - private String lastRomVersion = ""; - private String lastDataVersion = ""; - private String lastPlayDate = null; - private int nameplateId = 0; - private int trophyId = 0; - private int cardId = 0; - private int dispPlayerLv = 0; - private int dispRating = 0; - private int dispBP = 0; - private int headphone = 0; - private int banStatus = 0; - @JsonProperty("isWarningConfirmed") - private boolean isWarningConfirmed = false; - private int lastEmoneyBrand = 0; - private int lastEmoneyCredit = 0; -} From 90f8cd8c6547b926c8145fef3720361844c8e8e4 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 20:23:24 -0400 Subject: [PATCH 23/39] [O] Ongeki: Static and game handlers --- .../samnyan/aqua/sega/ongeki/OngekiApis.kt | 61 +++++++++ .../aqua/sega/ongeki/OngekiController.kt | 74 +++++++++++ .../ongeki/controller/OngekiController.java | 117 ------------------ .../controller/OngekiControllerAdvice.java | 39 ------ .../handler/impl/GetGameEventHandler.java | 59 --------- .../handler/impl/GetGameIdlistHandler.java | 80 ------------ .../handler/impl/GetGameMessageHandler.java | 45 ------- .../impl/GetGameMusicReleaseStateHandler.java | 45 ------- .../handler/impl/GetGamePointHandler.java | 53 -------- .../handler/impl/GetGamePresentHandler.java | 51 -------- .../handler/impl/GetGameRankingHandler.java | 84 ------------- .../handler/impl/GetGameRewardHandler.java | 51 -------- .../handler/impl/GetGameSettingHandler.java | 74 ----------- .../handler/impl/GetGameTechMusicHandler.java | 46 ------- .../aqua/sega/ongeki/model/OngekiResponse.kt | 22 ---- 15 files changed, 135 insertions(+), 766 deletions(-) create mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt create mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiControllerAdvice.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameIdlistHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMessageHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMusicReleaseStateHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRankingHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameSettingHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameTechMusicHandler.java diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt new file mode 100644 index 00000000..2a579031 --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt @@ -0,0 +1,61 @@ +package icu.samnyan.aqua.sega.ongeki + +import ext.empty +import ext.int +import ext.parsing +import ext.plus +import icu.samnyan.aqua.sega.ongeki.model.GameEventItem + +fun OngekiController.ongekiInit() { + fun List.staticLst(key: String) = mapOf("length" to size, key to this) + + // Has type, but type is always 1 + "GetGameEvent".static { + gdb.event.findAll().map { GameEventItem(it.id, 1, "2005-01-01 00:00:00.0", "2099-01-01 05:00:00.0") } + .staticLst("gameEventList") + mapOf("type" to 1) + } + + "GetGamePoint".static { gdb.point.findAll().staticLst("gamePointList") } + "GetGamePresent".static { gdb.present.findAll().staticLst("gamePresentList") } + "GetGameReward".static { gdb.reward.findAll().staticLst("gameRewardList") } + + // Dummy endpoints + "GetGameTechMusic".static { empty.staticLst("gameTechMusicList") } + "GetGameMessage" { mapOf("type" to data["type"], "length" to 0, "gameMessageList" to empty) } + "GetGameMusicReleaseState".static { mapOf("techScore" to 0, "cardNum" to 0) } + + "GetGameIdlist" { + // type 1: Music NG List, 2: Music Recommend List + val type = parsing { data["type"]!!.int } + empty.staticLst("gameIdlistList") + mapOf("type" to type) + } + + "GetGameRanking" { + // type 1: Music current ranking, 2: Music past ranking + val type = parsing { data["type"]!!.int } + empty.staticLst("gameRankingList") + mapOf("type" to type) + } + + "GetGameSetting" { + val ver = (data["version"] ?: "1.50.00") + mapOf( + "isAou" to false, + "isDumpUpload" to false, + "gameSetting" to mapOf( + "dataVersion" to ver, + "onlineDataVersion" to ver, + "isMaintenance" to false, + "requestInterval" to 10, + "rebootStartTime" to "2020-01-01 23:59:00.0", + "rebootEndTime" to "2020-01-01 23:59:00.0", + "isBackgroundDistribute" to false, + "maxCountCharacter" to 50, + "maxCountCard" to 300, + "maxCountItem" to 300, + "maxCountMusic" to 50, + "maxCountMusicItem" to 300, + "maxCountRivalMusic" to 300 + ) + ) + } +} \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt new file mode 100644 index 00000000..c35933cf --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt @@ -0,0 +1,74 @@ +package icu.samnyan.aqua.sega.ongeki + +import ext.* +import icu.samnyan.aqua.net.db.AquaUserServices +import icu.samnyan.aqua.net.utils.simpleDescribe +import icu.samnyan.aqua.sega.allnet.TokenChecker +import icu.samnyan.aqua.sega.general.GameMusicPopularity +import icu.samnyan.aqua.sega.general.MeowApi +import icu.samnyan.aqua.sega.general.RequestContext +import icu.samnyan.aqua.sega.util.jackson.BasicMapper +import icu.samnyan.aqua.spring.Metrics +import jakarta.servlet.http.HttpServletRequest +import org.springframework.web.bind.annotation.RestController +import kotlin.collections.set + +@Suppress("unused") +@RestController +@API("/g/ongeki/{version}", "/g/ongeki") +class OngekiController( + val mapper: BasicMapper, + val db: OngekiUserRepos, + val gdb: OngekiGameRepos, + val us: AquaUserServices, + val pop: GameMusicPopularity, +): MeowApi({ _, resp -> if (resp is String) resp else mapper.write(resp) }) { + + val log = logger() + + val noopEndpoint = setOf("ExtendLockTimeApi", "GameLoginApi", "GameLogoutApi", "RegisterPromotionCardApi", + "UpsertClientBookkeepingApi", "UpsertClientDevelopApi", "UpsertClientErrorApi", "UpsertClientSettingApi", + "UpsertClientTestmodeApi", "UpsertUserGplogApi", "Ping") + + init { ongekiInit() } + val handlers = initH + + @API("/{endpoint}", "/MatchingServer/{endpoint}") + fun handle(@PV endpoint: Str, @RB data: MutableMap, @PV version: Str, req: HttpServletRequest): Any { + val ctx = RequestContext(req, data) + val api = endpoint + data["version"] = version + +// if (api.startsWith("CM") && api !in handlers) api = api.removePrefix("CM") + val token = TokenChecker.getCurrentSession()?.token?.substring(0, 6) ?: "NO-TOKEN" + log.info("Ongeki < $api : ${data.toJson()} : [$token]") + + val noop = """{"returnCode":"1","apiName":"${api.substringBefore("Api").firstCharLower()}"}""" + if (api !in noopEndpoint && !handlers.containsKey(api)) { + log.warn("Ongeki > $api not found") + return noop + } + + // Only record the counter metrics if the API is known. + Metrics.counter("aquadx_ongeki_api_call", "api" to api).increment() + if (api in noopEndpoint) { + log.info("Ongeki > $api no-op") + return noop + } + + return try { + Metrics.timer("aquadx_ongeki_api_latency", "api" to api).recordCallable { + serialize(api, handlers[api]!!(ctx) ?: noop).also { + if (api !in setOf("GetUserItemApi", "GetGameEventApi")) + log.info("Ongeki > $api : $it") + } + } + } catch (e: Exception) { + Metrics.counter( + "aquadx_ongeki_api_error", + "api" to api, "error" to e.simpleDescribe() + ).increment() + throw e + } + } +} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java index fa65e8cc..c3870447 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java @@ -19,16 +19,6 @@ import java.util.Map; @RequestMapping("/g/ongeki") @AllArgsConstructor public class OngekiController { - - private final GetGameEventHandler getGameEventHandler; - private final GetGameIdlistHandler getGameIdlistHandler; - private final GetGameMessageHandler getGameMessageHandler; - private final GetGamePointHandler getGamePointHandler; - private final GetGamePresentHandler getGamePresentHandler; - private final GetGameTechMusicHandler getGameTechMusicHandler; - private final GetGameRankingHandler getGameRankingHandler; - private final GetGameRewardHandler getGameRewardHandler; - private final GetGameSettingHandler getGameSettingHandler; private final GetUserActivityHandler getUserActivityHandler; private final GetUserBossHandler getUserBossHandler; private final GetUserBpBaseHandler getUserBpBaseHandler; @@ -65,57 +55,6 @@ public class OngekiController { private final UpsertUserAllHandler upsertUserAllHandler; private final GetClientBookkeepingHandler getClientBookkeepingHandler; private final GetClientTestmodeHandler getClientTestmodeHandler; - private final GetGameMusicReleaseStateHandler getGameMusicReleaseStateHandler; - - @PostMapping("ExtendLockTimeApi") - public String extendLockTime(@ModelAttribute Map request) { - return "{\"returnCode\":1,\"apiName\":\"extendLockTime\"}"; - } - - @PostMapping("GameLoginApi") - public String gameLogin(@ModelAttribute Map request) { - return "{\"returnCode\":1,\"apiName\":\"gameLogin\"}"; - } - - @PostMapping("GameLogoutApi") - public String gameLogout(@ModelAttribute Map request) { - return "{\"returnCode\":1,\"apiName\": \"gameLogout\"}"; - } - - @PostMapping("GetGameEventApi") - public String getGameEvent(@ModelAttribute Map request) throws JsonProcessingException { - return getGameEventHandler.handle(request); - } - - @PostMapping("GetGameIdlistApi") - public String getGameIdList(@ModelAttribute Map request) throws JsonProcessingException { - return getGameIdlistHandler.handle(request); - } - - @PostMapping("GetGameMessageApi") - public String getGameMessage(@ModelAttribute Map request) throws JsonProcessingException { - return getGameMessageHandler.handle(request); - } - - @PostMapping("GetGamePointApi") - public String getGamePoint(@ModelAttribute Map request) throws JsonProcessingException { - return getGamePointHandler.handle(request); - } - - @PostMapping("GetGamePresentApi") - public String getGamePresent(@ModelAttribute Map request) throws JsonProcessingException { - return getGamePresentHandler.handle(request); - } - - @PostMapping("GetGameTechMusicApi") - public String getGameTechMusic(@ModelAttribute Map request) throws JsonProcessingException { - return getGameTechMusicHandler.handle(request); - } - - @PostMapping("GetGameMusicReleaseStateApi") - public String GetGameMusicReleaseState(@ModelAttribute Map request) throws JsonProcessingException { - return getGameMusicReleaseStateHandler.handle(request); - } @PostMapping("GetUserTechEventApi") public String getUserTechEvent(@ModelAttribute Map request) throws JsonProcessingException { @@ -127,21 +66,6 @@ public class OngekiController { return getUserTechEventRankingHandler.handle(request); } - @PostMapping("GetGameRankingApi") - public String getGameRanking(@ModelAttribute Map request) throws JsonProcessingException { - return getGameRankingHandler.handle(request); - } - - @PostMapping("GetGameRewardApi") - public String getGameReward(@ModelAttribute Map request) throws JsonProcessingException { - return getGameRewardHandler.handle(request); - } - - @PostMapping("GetGameSettingApi") - public String getGameSetting(@ModelAttribute Map request) throws JsonProcessingException { - return getGameSettingHandler.handle(request); - } - @PostMapping("GetUserActivityApi") public String getUserActivity(@ModelAttribute Map request) throws JsonProcessingException { return getUserActivityHandler.handle(request); @@ -307,49 +231,8 @@ public class OngekiController { return getClientTestmodeHandler.handle(request); } - @PostMapping("RegisterPromotionCardApi") - public String registerPromotionCard(@ModelAttribute Map request) { - return "{\"returnCode\":1,\"apiName\":\"registerPromotionCard\"}"; - } - - @PostMapping("UpsertClientBookkeepingApi") - public String upsertClientBookkeeping(@ModelAttribute Map request) { - return "{\"returnCode\":1},\"apiName\":\"upsertClientBookkeeping\""; - } - - @PostMapping("UpsertClientDevelopApi") - public String upsertClientDevelop(@ModelAttribute Map request) { - return "{\"returnCode\":1},\"apiName\":\"upsertClientDevelop\""; - } - - @PostMapping("UpsertClientErrorApi") - public String upsertClientError(@ModelAttribute Map request) { - return "{\"returnCode\":1,\"apiName\":\"upsertClientError\"}"; - } - - @PostMapping("UpsertClientSettingApi") - public String upsertClientSetting(@ModelAttribute Map request) { - return "{\"returnCode\":1,\"apiName\":\"upsertClientSetting\"}"; - } - - @PostMapping("UpsertClientTestmodeApi") - public String upsertClientTestmode(@ModelAttribute Map request) { - return "{\"returnCode\":1,\"apiName\":\"upsertClientTestmode\"}"; - } - - @PostMapping("UpsertUserGplogApi") - public String upsertUserGplog(@ModelAttribute Map request) { - return "{\"returnCode\":1,\"apiName\":\"upsertUserGplog\"}"; - } - @PostMapping("UpsertUserAllApi") public String upsertUserAll(@ModelAttribute Map request) throws JsonProcessingException { return upsertUserAllHandler.handle(request); } - - @PostMapping("Ping") - String ping(@ModelAttribute Map request) { - return "{\"returnCode\":\"1\"}"; - } - } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiControllerAdvice.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiControllerAdvice.java deleted file mode 100644 index f1b6e603..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiControllerAdvice.java +++ /dev/null @@ -1,39 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.controller; - -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RestControllerAdvice; - -import jakarta.servlet.http.HttpServletRequest; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@RestControllerAdvice(basePackages = "icu.samnyan.aqua.sega.ongeki") -public class OngekiControllerAdvice { - - private static final Logger logger = LoggerFactory.getLogger(OngekiControllerAdvice.class); - - - /** - * Get the map object from json string - * - * @param request HttpServletRequest - */ - @ModelAttribute - public Map preHandle(HttpServletRequest request) throws IOException { - byte[] src = request.getInputStream().readAllBytes(); - String outputString = new String(src, StandardCharsets.UTF_8).trim(); - logger.info("Request " + request.getRequestURI() + ": " + outputString); - ObjectMapper mapper = new ObjectMapper(); - - return mapper.readValue(outputString, new TypeReference<>() { - }); - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java deleted file mode 100644 index abce2726..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameEventHandler.java +++ /dev/null @@ -1,59 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkGameEventRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.GameEvent; -import icu.samnyan.aqua.sega.ongeki.model.GameEventItem; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetGameEventHandler") -public class GetGameEventHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetGameEventHandler.class); - - private final BasicMapper mapper; - - private final OgkGameEventRepo gameEventRepository; - - @Autowired - public GetGameEventHandler(BasicMapper mapper, OgkGameEventRepo gameEventRepository) { - this.mapper = mapper; - this.gameEventRepository = gameEventRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - Integer type = (Integer) request.get("type"); - - List eventIdList = gameEventRepository.findAll(); - List eventList = new ArrayList<>(); - eventIdList.forEach(x -> eventList.add(new GameEventItem( - x.getId(), - type, - "2005-01-01 00:00:00.0", - "2099-01-01 05:00:00.0" - ))); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("type", type); - resultMap.put("length", eventList.size()); - resultMap.put("gameEventList", eventList); - - String json = mapper.write(resultMap); - logger.info("Response: {} events", eventList.size()); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameIdlistHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameIdlistHandler.java deleted file mode 100644 index 55d96652..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameIdlistHandler.java +++ /dev/null @@ -1,80 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.general.dao.PropertyEntryRepository; -import icu.samnyan.aqua.sega.general.model.PropertyEntry; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.GameIdListItem; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.*; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetGameIdlistHandler") -public class GetGameIdlistHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetGameIdlistHandler.class); - - private final BasicMapper mapper; - - private final PropertyEntryRepository propertyEntryRepository; - - @Autowired - public GetGameIdlistHandler(BasicMapper mapper, PropertyEntryRepository propertyEntryRepository) { - this.mapper = mapper; - this.propertyEntryRepository = propertyEntryRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - Integer type = (Integer) request.get("type"); - - Optional propertyEntryOptional; - if(type == 1) { - propertyEntryOptional = propertyEntryRepository.findByPropertyKey("ongeki_music_ng_list"); - } else if(type == 2) { - propertyEntryOptional = propertyEntryRepository.findByPropertyKey("ongeki_music_recommend_list"); - } else { - propertyEntryOptional = Optional.empty(); - } - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("type", type); - - if (propertyEntryOptional.isPresent()) { - String value = propertyEntryOptional.get().getPropertyValue(); - - if(StringUtils.isNotBlank(value) && value.contains(",")) { - String[] ids = value.split(","); - List idList = new LinkedList<>(); - - for (String id : ids) { - try { - idList.add(new GameIdListItem(Integer.parseInt(id), type)); - } catch (NumberFormatException ignored) { - } - } - resultMap.put("length", idList.size()); - resultMap.put("gameIdlistList", idList); - - } else { - resultMap.put("length", 0); - resultMap.put("gameIdlistList", new List[]{}); - } - } else { - resultMap.put("length", 0); - resultMap.put("gameIdlistList", new List[]{}); - } - - String json = mapper.write(resultMap); - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMessageHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMessageHandler.java deleted file mode 100644 index 0b561ecd..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMessageHandler.java +++ /dev/null @@ -1,45 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetGameMessageHHandler") -public class GetGameMessageHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetGameMessageHandler.class); - - private final BasicMapper mapper; - - @Autowired - public GetGameMessageHandler(BasicMapper mapper) { - this.mapper = mapper; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - Integer type = (Integer) request.get("type"); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("type", type); - resultMap.put("length", 0); - resultMap.put("gameMessageList", new List[]{}); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMusicReleaseStateHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMusicReleaseStateHandler.java deleted file mode 100644 index 8ff09488..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameMusicReleaseStateHandler.java +++ /dev/null @@ -1,45 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; - -import icu.samnyan.aqua.sega.ongeki.OgkUserKopRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetGameMusicReleaseStateHandler") -public class GetGameMusicReleaseStateHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetGameMusicReleaseStateHandler.class); - - private final BasicMapper mapper; - - @Autowired - public GetGameMusicReleaseStateHandler(BasicMapper mapper, OgkUserKopRepo userKopRepository) { - this.mapper = mapper; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - - // TODO: Find out what this does - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("techScore", 0); - resultMap.put("cardNum", 0); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java deleted file mode 100644 index 970b6034..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePointHandler.java +++ /dev/null @@ -1,53 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkGamePointRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.GamePoint; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetGamePointHandler") -public class GetGamePointHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetGamePointHandler.class); - - private final BasicMapper mapper; - - private final OgkGamePointRepo gamePointRepository; - - @Autowired - public GetGamePointHandler(BasicMapper mapper, OgkGamePointRepo gamePointRepository) { - this.mapper = mapper; - this.gamePointRepository = gamePointRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - // This value is always false - Boolean isAllGP = (Boolean) request.get("isAllGP"); - - Map resultMap = new LinkedHashMap<>(); - - List gpList = gamePointRepository.findAll(); - - resultMap.put("length", gpList.size()); - resultMap.put("gamePointList", gpList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java deleted file mode 100644 index 605eff2a..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGamePresentHandler.java +++ /dev/null @@ -1,51 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkGamePresentRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.GamePresent; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetGamePresentHandler") -public class GetGamePresentHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetGamePresentHandler.class); - - private final BasicMapper mapper; - - private final OgkGamePresentRepo gamePresentRepository; - - @Autowired - public GetGamePresentHandler(BasicMapper mapper, OgkGamePresentRepo gamePresentRepository) { - this.mapper = mapper; - this.gamePresentRepository = gamePresentRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - Boolean isAllPresent = (Boolean) request.get("isAllPresent"); - - List presentList = gamePresentRepository.findAll(); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("length", presentList.size()); - resultMap.put("gamePresentList", presentList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRankingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRankingHandler.java deleted file mode 100644 index 862e28f8..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRankingHandler.java +++ /dev/null @@ -1,84 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.general.dao.PropertyEntryRepository; -import icu.samnyan.aqua.sega.general.model.PropertyEntry; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.GameRankingItem; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.*; - -/** - * Get game music hot ranking list. - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetGameRankingHandler") -public class GetGameRankingHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetGameRankingHandler.class); - - private final BasicMapper mapper; - - private final PropertyEntryRepository propertyEntryRepository; - - @Autowired - public GetGameRankingHandler(BasicMapper mapper, PropertyEntryRepository propertyEntryRepository) { - this.mapper = mapper; - this.propertyEntryRepository = propertyEntryRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - // 1 is current, 2 is old - // See ADT_Ranking.cs - Integer type = (Integer) request.get("type"); - Optional propertyEntryOptional; - if(type == 1) { - propertyEntryOptional = propertyEntryRepository.findByPropertyKey("ongeki_music_ranking_current"); - } else if(type == 2) { - propertyEntryOptional = propertyEntryRepository.findByPropertyKey("ongeki_music_ranking_old"); - } else { - propertyEntryOptional = Optional.empty(); - } - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("type", type); - - if (propertyEntryOptional.isPresent()) { - String value = propertyEntryOptional.get().getPropertyValue(); - - if(StringUtils.isNotBlank(value) && value.contains(",")) { - String[] ids = value.split(","); - List list = new LinkedList<>(); - - for (String id : ids) { - try { - list.add(new GameRankingItem(Integer.parseInt(id), 0, "")); - } catch (NumberFormatException ignored) { - } - // in ADT_Ranking.cs, the game read this array and expected it has 10 value here. - while (list.size() < 10) { - list.add(new GameRankingItem(0, 0, "")); - } - } - - resultMap.put("gameRankingList", list); - - } else { - resultMap.put("gameRankingList", new List[]{}); - } - } else { - resultMap.put("gameRankingList", new List[]{}); - } - - String json = mapper.write(resultMap); - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java deleted file mode 100644 index f152a8cc..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameRewardHandler.java +++ /dev/null @@ -1,51 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkGameRewardRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.GameReward; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetGameRewardHandler") -public class GetGameRewardHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetGameRewardHandler.class); - - private final BasicMapper mapper; - - private final OgkGameRewardRepo gameRewardRepository; - - @Autowired - public GetGameRewardHandler(BasicMapper mapper, OgkGameRewardRepo gameRewardRepository) { - this.mapper = mapper; - this.gameRewardRepository = gameRewardRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - Boolean isAllGP = (Boolean) request.get("isAllReward"); - - List rewardList = gameRewardRepository.findAll(); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("length", rewardList.size()); - resultMap.put("gameRewardList", rewardList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameSettingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameSettingHandler.java deleted file mode 100644 index a5f1eb63..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameSettingHandler.java +++ /dev/null @@ -1,74 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.general.dao.PropertyEntryRepository; -import icu.samnyan.aqua.sega.general.model.PropertyEntry; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.GetGameSettingResp; -import icu.samnyan.aqua.sega.ongeki.model.GameSetting; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetGameSettingHandler") -public class GetGameSettingHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetGameSettingHandler.class); - - private final BasicMapper mapper; - - private final PropertyEntryRepository propertyEntryRepository; - - private final String GAME_VERSION; - - @Autowired - public GetGameSettingHandler(BasicMapper mapper, PropertyEntryRepository propertyEntryRepository, @Value("${game.ongeki.version:1.05.00}") String GAME_VERSION) { - this.mapper = mapper; - this.propertyEntryRepository = propertyEntryRepository; - this.GAME_VERSION = GAME_VERSION; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - - PropertyEntry start = propertyEntryRepository.findByPropertyKey("reboot_start_time") - .orElseGet(() -> new PropertyEntry("reboot_start_time", "2020-01-01 23:59:00.0")); - PropertyEntry end = propertyEntryRepository.findByPropertyKey("reboot_end_time") - .orElseGet(() -> new PropertyEntry("reboot_end_time", "2020-01-01 23:59:00.0")); - - GameSetting gameSetting = new GameSetting( - GAME_VERSION, - GAME_VERSION, - false, - 10, - start.getPropertyValue(), - end.getPropertyValue(), - false, - 50, - 300, - 300, - 50, - 300, - 300); - - GetGameSettingResp resp = new GetGameSettingResp( - gameSetting, - false, - false - ); - - String json = mapper.write(resp); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameTechMusicHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameTechMusicHandler.java deleted file mode 100644 index dad89e8c..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetGameTechMusicHandler.java +++ /dev/null @@ -1,46 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetGameTechMusicHandler") -public class GetGameTechMusicHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetGameTechMusicHandler.class); - - private final BasicMapper mapper; - - @Autowired - public GetGameTechMusicHandler(BasicMapper mapper) { - this.mapper = mapper; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - List techMusicList = new ArrayList<>(); - - // This endpoint seems related to "techchallengeevent" in game data, TBD - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("length", 0); - resultMap.put("gameTechMusicList", techMusicList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt index fe889e7e..b0e173e1 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt @@ -7,12 +7,6 @@ class CodeResp( var apiName: String? = null, ) -class GetGameSettingResp( - var gameSetting: GameSetting? = null, - var isDumpUpload: Bool = false, - var isAou: Bool = false, -) - class GetUserPreviewResp( var userId: Long = 0, var isLogin: Bool = false, @@ -60,22 +54,6 @@ class GameRankingItem( var userName: String = "", ) -class GameSetting( - var dataVersion: String = "", - var onlineDataVersion: String = "", - var isMaintenance: Bool = false, - var requestInterval: Int = 0, - var rebootStartTime: String = "", - var rebootEndTime: String = "", - var isBackgroundDistribute: Bool = false, - var maxCountCharacter: Int = 0, - var maxCountCard: Int = 0, - var maxCountItem: Int = 0, - var maxCountMusic: Int = 0, - var maxCountMusicItem: Int = 0, - var maxCountRivalMusic: Int = 0, -) - class UserEventRankingItem( var eventId: Int = 0, var type: Int = 0, From a2b27090dbd74a3fdaeffcb74621000ed9f896e0 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 20:56:21 -0400 Subject: [PATCH 24/39] [+] Ongeki: Solve Re:Fresh conflicts --- .../samnyan/aqua/sega/ongeki/OngekiRepos.kt | 8 + .../dao/userdata/UserEventMapRepository.java | 23 - .../dao/userdata/UserSkinRepository.java | 21 - .../handler/impl/GetUserEventMapHandler.java | 6 +- .../handler/impl/GetUserSkinHandler.java | 8 +- .../handler/impl/UpsertUserAllHandler.java | 634 ------------------ .../handler/impl/UpsertUserAllHandler.kt | 240 +++---- .../aqua/sega/ongeki/model/OngekiResponse.kt | 10 + .../sega/ongeki/model/OngekiUserEntities.kt | 45 ++ .../aqua/sega/ongeki/model/UpsertUserAll.kt | 11 + .../model/gamedata/OngekiFumenScore.java | 17 - .../model/response/GetUserPreviewResp.java | 42 -- .../sega/ongeki/model/userdata/UserData.java | 183 ----- .../ongeki/model/userdata/UserEventMap.java | 47 -- .../model/userdata/UserMemoryChapter.java | 66 -- .../model/userdata/UserMusicDetail.java | 78 --- .../ongeki/model/userdata/UserOption.java | 112 ---- .../sega/ongeki/model/userdata/UserSkin.java | 47 -- 18 files changed, 206 insertions(+), 1392 deletions(-) delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventMapRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserSkinRepository.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/OngekiFumenScore.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/GetUserPreviewResp.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserData.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserEventMap.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMemoryChapter.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMusicDetail.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserOption.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserSkin.java diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt index 38030c8f..688127e3 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt @@ -6,6 +6,8 @@ import icu.samnyan.aqua.net.games.GenericUserDataRepo import icu.samnyan.aqua.net.games.GenericUserMusicRepo import icu.samnyan.aqua.net.games.IUserRepo import icu.samnyan.aqua.sega.ongeki.model.* +import icu.samnyan.aqua.sega.ongeki.model.UserEventMap +import icu.samnyan.aqua.sega.ongeki.model.UserSkin import org.springframework.data.domain.Page import org.springframework.data.domain.Pageable import org.springframework.data.jpa.repository.JpaRepository @@ -144,6 +146,10 @@ interface OgkUserTrainingRoomRepo : OngekiUserLinked { fun findByUserAndRoomId(user: UserData, roomId: Int): Optional } +// Re:Fresh +interface OgkUserEventMapRepo : OngekiUserLinked +interface OgkUserSkinRepo : OngekiUserLinked + interface OgkGameCardRepo : JpaRepository interface OgkGameCharaRepo : JpaRepository interface OgkGameEventRepo : JpaRepository @@ -181,6 +187,8 @@ class OngekiUserRepos( val techEvent: OgkUserTechEventRepo, val tradeItem: OgkUserTradeItemRepo, val trainingRoom: OgkUserTrainingRoomRepo, + val eventMap: OgkUserEventMapRepo, + val skin: OgkUserSkinRepo, ) @Component diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventMapRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventMapRepository.java deleted file mode 100644 index e3a1e979..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventMapRepository.java +++ /dev/null @@ -1,23 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventMap; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserEventMapRepository") -public interface UserEventMapRepository extends JpaRepository { - - Optional findByUser(UserData userData); - - Optional findByUser_Card_ExtId(long userId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserSkinRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserSkinRepository.java deleted file mode 100644 index fd1e1c73..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserSkinRepository.java +++ /dev/null @@ -1,21 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.dao.userdata; - -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserSkin; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Repository("OngekiUserSkinRepository") -public interface UserSkinRepository extends JpaRepository { - - List findByUser_Card_ExtId(long userId); - - @Transactional - void deleteByUser(UserData user); -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMapHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMapHandler.java index a447ecd8..467a2387 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMapHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMapHandler.java @@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserEventMapRepository; +import icu.samnyan.aqua.sega.ongeki.OgkUserEventMapRepo; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,10 +22,10 @@ public class GetUserEventMapHandler implements BaseHandler { private final BasicMapper mapper; - private final UserEventMapRepository userEventMapRepository; + private final OgkUserEventMapRepo userEventMapRepository; @Autowired - public GetUserEventMapHandler(BasicMapper mapper, UserEventMapRepository userEventMapRepository) { + public GetUserEventMapHandler(BasicMapper mapper, OgkUserEventMapRepo userEventMapRepository) { this.mapper = mapper; this.userEventMapRepository = userEventMapRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserSkinHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserSkinHandler.java index 7963c908..f206e009 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserSkinHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserSkinHandler.java @@ -2,8 +2,8 @@ package icu.samnyan.aqua.sega.ongeki.handler.impl; import com.fasterxml.jackson.core.JsonProcessingException; import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserSkinRepository; -import icu.samnyan.aqua.sega.ongeki.model.userdata.UserSkin; +import icu.samnyan.aqua.sega.ongeki.OgkUserSkinRepo; +import icu.samnyan.aqua.sega.ongeki.model.UserSkin; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -24,10 +24,10 @@ public class GetUserSkinHandler implements BaseHandler { private final BasicMapper mapper; - private final UserSkinRepository userSkinRepository; + private final OgkUserSkinRepo userSkinRepository; @Autowired - public GetUserSkinHandler(BasicMapper mapper, UserSkinRepository userSkinRepository) { + public GetUserSkinHandler(BasicMapper mapper, OgkUserSkinRepo userSkinRepository) { this.mapper = mapper; this.userSkinRepository = userSkinRepository; } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java deleted file mode 100644 index 513427d9..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.java +++ /dev/null @@ -1,634 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.general.model.Card; -import icu.samnyan.aqua.sega.general.model.response.UserRecentRating; -import icu.samnyan.aqua.sega.general.service.CardService; -import icu.samnyan.aqua.sega.ongeki.dao.userdata.*; -import icu.samnyan.aqua.sega.ongeki.model.gamedata.OngekiFumenScore; -import icu.samnyan.aqua.sega.ongeki.model.request.UpsertUserAll; -import icu.samnyan.aqua.sega.ongeki.model.response.CodeResp; -import icu.samnyan.aqua.sega.ongeki.model.userdata.*; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -/** - * The handler for saving all data of a ONGEKI profile - * - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiUserAllHandler") -public class UpsertUserAllHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(UpsertUserAllHandler.class); - - private final BasicMapper mapper; - - private final CardService cardService; - - private final UserDataRepository userDataRepository; - private final UserOptionRepository userOptionRepository; - private final UserPlaylogRepository userPlaylogRepository; - private final UserActivityRepository userActivityRepository; - private final UserMusicDetailRepository userMusicDetailRepository; - private final UserCharacterRepository userCharacterRepository; - private final UserCardRepository userCardRepository; - private final UserDeckRepository userDeckRepository; - private final UserStoryRepository userStoryRepository; - private final UserChapterRepository userChapterRepository; - private final UserMemoryChapterRepository userMemoryChapterRepository; - private final UserItemRepository userItemRepository; - private final UserMusicItemRepository userMusicItemRepository; - private final UserLoginBonusRepository userLoginBonusRepository; - private final UserEventPointRepository userEventPointRepository; - private final UserMissionPointRepository userMissionPointRepository; - private final UserTrainingRoomRepository userTrainingRoomRepository; - private final UserGeneralDataRepository userGeneralDataRepository; - private final UserBossRepository userBossRepository; - private final UserScenarioRepository userScenarioRepository; - private final UserTechCountRepository userTechCountRepository; - private final UserTradeItemRepository userTradeItemRepository; - private final UserEventMusicRepository userEventMusicRepository; - private final UserTechEventRepository userTechEventRepository; - private final UserKopRepository userKopRepository; - private final UserEventMapRepository userEventMapRepository; - - @Autowired - public UpsertUserAllHandler(BasicMapper mapper, - CardService cardService, UserDataRepository userDataRepository, UserOptionRepository userOptionRepository, UserPlaylogRepository userPlaylogRepository, UserActivityRepository userActivityRepository, UserMusicDetailRepository userMusicDetailRepository, UserCharacterRepository userCharacterRepository, UserCardRepository userCardRepository, UserDeckRepository userDeckRepository, UserStoryRepository userStoryRepository, UserChapterRepository userChapterRepository, UserItemRepository userItemRepository, UserMusicItemRepository userMusicItemRepository, UserLoginBonusRepository userLoginBonusRepository, UserEventPointRepository userEventPointRepository, UserMissionPointRepository userMissionPointRepository, UserTrainingRoomRepository userTrainingRoomRepository, UserGeneralDataRepository userGeneralDataRepository, UserBossRepository userBossRepository, UserScenarioRepository userScenarioRepository, UserTechCountRepository userTechCountRepository, UserTradeItemRepository userTradeItemRepository, UserEventMusicRepository userEventMusicRepository, UserTechEventRepository userTechEventRepository, UserKopRepository userKopRepository, UserMemoryChapterRepository userMemoryChapterRepository, UserEventMapRepository userEventMapRepository) { - this.mapper = mapper; - this.cardService = cardService; - this.userDataRepository = userDataRepository; - this.userOptionRepository = userOptionRepository; - this.userPlaylogRepository = userPlaylogRepository; - this.userActivityRepository = userActivityRepository; - this.userMusicDetailRepository = userMusicDetailRepository; - this.userCharacterRepository = userCharacterRepository; - this.userCardRepository = userCardRepository; - this.userDeckRepository = userDeckRepository; - this.userStoryRepository = userStoryRepository; - this.userChapterRepository = userChapterRepository; - this.userMemoryChapterRepository = userMemoryChapterRepository; - this.userItemRepository = userItemRepository; - this.userMusicItemRepository = userMusicItemRepository; - this.userLoginBonusRepository = userLoginBonusRepository; - this.userEventPointRepository = userEventPointRepository; - this.userMissionPointRepository = userMissionPointRepository; - this.userTrainingRoomRepository = userTrainingRoomRepository; - this.userGeneralDataRepository = userGeneralDataRepository; - this.userBossRepository = userBossRepository; - this.userScenarioRepository = userScenarioRepository; - this.userTechCountRepository = userTechCountRepository; - this.userTradeItemRepository = userTradeItemRepository; - this.userEventMusicRepository = userEventMusicRepository; - this.userTechEventRepository = userTechEventRepository; - this.userKopRepository = userKopRepository; - this.userEventMapRepository = userEventMapRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - UpsertUserAll upsertUserAll = mapper.convert(request.get("upsertUserAll"), UpsertUserAll.class); - - // All the field should exist, no need to check now. - // UserData - UserData newUserData; - { - UserData userData; - - Optional userOptional = userDataRepository.findByCard_ExtId(userId); - - // UserData might be empty on later runs - if (userOptional.isEmpty() && upsertUserAll.getUserData().isEmpty()) { - return null; - } - - if (userOptional.isPresent()) { - userData = userOptional.get(); - } else { - userData = new UserData(); - Card card = cardService.getCardByExtId(userId).orElseThrow(); - userData.setCard(card); - } - - // If new data exists, use new data. Otherwise, use old data - newUserData = !upsertUserAll.getUserData().isEmpty() ? upsertUserAll.getUserData().getFirst() : userData; - - newUserData.setId(userData.getId()); - newUserData.setCard(userData.getCard()); - - // Set eventWatchedDate with lastPlayDate, because client doesn't update it - newUserData.setEventWatchedDate(userData.getLastPlayDate()); - newUserData.setCmEventWatchedDate(userData.getLastPlayDate()); - - userDataRepository.save(newUserData); - } - - - // UserOption - UserOption newUserOption = upsertUserAll.getUserOption().getFirst(); - - Optional userOptionOptional = userOptionRepository.findByUser(newUserData); - UserOption userOption = userOptionOptional.orElseGet(() -> new UserOption(newUserData)); - - newUserOption.setId(userOption.getId()); - newUserOption.setUser(userOption.getUser()); - - userOptionRepository.save(newUserOption); - - - // UserPlaylogList - List userPlaylogList = upsertUserAll.getUserPlaylogList(); - List newUserPlaylogList = new ArrayList<>(); - - for (UserPlaylog newUserPlaylog : userPlaylogList) { - newUserPlaylog.setUser(newUserData); - newUserPlaylogList.add(newUserPlaylog); - } - - userPlaylogRepository.saveAll(newUserPlaylogList); - - - // UserSessionlogList, UserJewelboostlogLost doesn't need to be saved for a private server - - - // UserActivityList - List userActivityList = upsertUserAll.getUserActivityList(); - List newUserActivityList = new ArrayList<>(); - - for (UserActivity newUserActivity : userActivityList) { - int kind = newUserActivity.getKind(); - int id = newUserActivity.getActivityId(); - - if (kind != 0 && id != 0) { - Optional activityOptional = userActivityRepository.findByUserAndKindAndActivityId(newUserData, kind, id); - UserActivity userActivity = activityOptional.orElseGet(() -> new UserActivity(newUserData)); - - newUserActivity.setId(userActivity.getId()); - newUserActivity.setUser(newUserData); - newUserActivityList.add(newUserActivity); - } - } - newUserActivityList.sort((a, b) -> Integer.compare(b.getSortNumber(), a.getSortNumber())); - userActivityRepository.saveAll(newUserActivityList); - - - // UserRecentRatingList - // This thing still need to save to solve the rating drop - this.saveRecentRatingData(upsertUserAll.getUserRecentRatingList(), newUserData, "recent_rating_list"); - - - /* - * The rating and battle point calculation is little bit complex. - * So I just create a UserGeneralData class to store this value - * into a csv format for convenience - */ - // UserBpBaseList (For calculating Battle point) - this.saveRecentRatingData(upsertUserAll.getUserBpBaseList(), newUserData, "battle_point_base"); - - - // This is the best rating of all charts. Best 30 + 10 after that. - // userRatingBaseBestList - this.saveRecentRatingData(upsertUserAll.getUserRatingBaseBestList(), newUserData, "rating_base_best"); - - - // userRatingBaseNextList - this.saveRecentRatingData(upsertUserAll.getUserRatingBaseNextList(), newUserData, "rating_base_next"); - - - // This is the best rating of new charts. Best 15 + 10 after that. - // New chart means same version - // userRatingBaseBestNewList - this.saveRecentRatingData(upsertUserAll.getUserRatingBaseBestNewList(), newUserData, "rating_base_new_best"); - - // userRatingBaseNextNewList - this.saveRecentRatingData(upsertUserAll.getUserRatingBaseNextNewList(), newUserData, "rating_base_new_next"); - - // This is the recent best - // userRatingBaseHotList - this.saveRecentRatingData(upsertUserAll.getUserRatingBaseHotList(), newUserData, "rating_base_hot_best"); - - // userRatingBaseHotNextList - this.saveRecentRatingData(upsertUserAll.getUserRatingBaseHotNextList(), newUserData, "rating_base_hot_next"); - - this.saveFumenScoreData(upsertUserAll.getUserNewRatingBaseBestList(), newUserData, "new_rating_base_best"); - - this.saveFumenScoreData(upsertUserAll.getUserNewRatingBaseNextBestList(), newUserData, "new_rating_base_next_best"); - - this.saveFumenScoreData(upsertUserAll.getUserNewRatingBaseBestNewList(), newUserData, "new_rating_base_new_best"); - - this.saveFumenScoreData(upsertUserAll.getUserNewRatingBaseNextBestNewList(), newUserData, "new_rating_base_new_next_best"); - - this.saveFumenScoreData(upsertUserAll.getUserNewRatingBasePScoreList(), newUserData, "new_rating_base_pscore"); - - this.saveFumenScoreData(upsertUserAll.getUserNewRatingBaseNextPScoreList(), newUserData, "new_rating_base_next_pscore"); - - // UserMusicDetailList - List userMusicDetailList = upsertUserAll.getUserMusicDetailList(); - List newUserMusicDetailList = new ArrayList<>(); - - for (UserMusicDetail newUserMusicDetail : userMusicDetailList) { - int musicId = newUserMusicDetail.getMusicId(); - int level = newUserMusicDetail.getLevel(); - - Optional musicDetailOptional = userMusicDetailRepository.findByUserAndMusicIdAndLevel(newUserData, musicId, level); - UserMusicDetail userMusicDetail = musicDetailOptional.orElseGet(() -> new UserMusicDetail(newUserData)); - - newUserMusicDetail.setId(userMusicDetail.getId()); - newUserMusicDetail.setUser(newUserData); - newUserMusicDetailList.add(newUserMusicDetail); - } - userMusicDetailRepository.saveAll(newUserMusicDetailList); - - - // UserCharacterList - List userCharacterList = upsertUserAll.getUserCharacterList(); - List newUserCharacterList = new ArrayList<>(); - - for (UserCharacter newUserCharacter : userCharacterList) { - int characterId = newUserCharacter.getCharacterId(); - - Optional characterOptional = userCharacterRepository.findByUserAndCharacterId(newUserData, characterId); - UserCharacter userCharacter = characterOptional.orElseGet(() -> new UserCharacter(newUserData)); - - newUserCharacter.setId(userCharacter.getId()); - newUserCharacter.setUser(newUserData); - newUserCharacterList.add(newUserCharacter); - } - userCharacterRepository.saveAll(newUserCharacterList); - - // UserCardList - List userCardList = upsertUserAll.getUserCardList(); - List newUserCardList = new ArrayList<>(); - - for (UserCard newUserCard : userCardList) { - int cardId = newUserCard.getCardId(); - - Optional cardOptional = userCardRepository.findByUserAndCardId(newUserData, cardId); - UserCard userCard = cardOptional.orElseGet(() -> new UserCard(newUserData)); - - newUserCard.setId(userCard.getId()); - newUserCard.setUser(newUserData); - newUserCardList.add(newUserCard); - } - userCardRepository.saveAll(newUserCardList); - - - // UserDeckList - List userDeckList = upsertUserAll.getUserDeckList(); - List newUserDeckList = new ArrayList<>(); - - for (UserDeck newUserDeck : userDeckList) { - int deckId = newUserDeck.getDeckId(); - - Optional deckOptional = userDeckRepository.findByUserAndDeckId(newUserData, deckId); - UserDeck userDeck = deckOptional.orElseGet(() -> new UserDeck(newUserData)); - - newUserDeck.setId(userDeck.getId()); - newUserDeck.setUser(newUserData); - newUserDeckList.add(newUserDeck); - } - userDeckRepository.saveAll(newUserDeckList); - - - // userTrainingRoomList - List userTrainingRoomList = upsertUserAll.getUserTrainingRoomList(); - List newUserTrainingRoomList = new ArrayList<>(); - - for (UserTrainingRoom newUserTrainingRoom : userTrainingRoomList) { - int roomId = newUserTrainingRoom.getRoomId(); - - Optional trainingRoomOptional = userTrainingRoomRepository.findByUserAndRoomId(newUserData, roomId); - UserTrainingRoom trainingRoom = trainingRoomOptional.orElseGet(() -> new UserTrainingRoom(newUserData)); - - newUserTrainingRoom.setId(trainingRoom.getId()); - newUserTrainingRoom.setUser(newUserData); - newUserTrainingRoomList.add(newUserTrainingRoom); - } - userTrainingRoomRepository.saveAll(newUserTrainingRoomList); - - - // UserStoryList - List userStoryList = upsertUserAll.getUserStoryList(); - List newUserStoryList = new ArrayList<>(); - - for (UserStory newUserStory : userStoryList) { - int storyId = newUserStory.getStoryId(); - - Optional storyOptional = userStoryRepository.findByUserAndStoryId(newUserData, storyId); - UserStory userStory = storyOptional.orElseGet(() -> new UserStory(newUserData)); - - newUserStory.setId(userStory.getId()); - newUserStory.setUser(newUserData); - newUserStoryList.add(newUserStory); - } - userStoryRepository.saveAll(newUserStoryList); - - - // UserChapterList - List userChapterList = upsertUserAll.getUserChapterList(); - List newUserChapterList = new ArrayList<>(); - - for (UserChapter newUserChapter : userChapterList) { - int chapterId = newUserChapter.getChapterId(); - - Optional chapterOptional = userChapterRepository.findByUserAndChapterId(newUserData, chapterId); - UserChapter userChapter = chapterOptional.orElseGet(() -> new UserChapter(newUserData)); - - newUserChapter.setId(userChapter.getId()); - newUserChapter.setUser(newUserData); - newUserChapterList.add(newUserChapter); - } - userChapterRepository.saveAll(newUserChapterList); - - - // UserMemoryChapterList - List userMemoryChapterList = upsertUserAll.getUserMemoryChapterList(); - - if (userMemoryChapterList != null) { - List newUserMemoryChapterList = new ArrayList<>(); - - for (UserMemoryChapter newUserMemoryChapter : userMemoryChapterList) { - int chapterId = newUserMemoryChapter.getChapterId(); - - Optional chapterOptional = userMemoryChapterRepository.findByUserAndChapterId(newUserData, chapterId); - UserMemoryChapter userChapter = chapterOptional.orElseGet(() -> new UserMemoryChapter(newUserData)); - - newUserMemoryChapter.setId(userChapter.getId()); - newUserMemoryChapter.setUser(newUserData); - newUserMemoryChapterList.add(newUserMemoryChapter); - } - userMemoryChapterRepository.saveAll(newUserMemoryChapterList); - } - - // UserItemList - List userItemList = upsertUserAll.getUserItemList(); - List newUserItemList = new ArrayList<>(); - - for (UserItem newUserItem : userItemList) { - int itemKind = newUserItem.getItemKind(); - int itemId = newUserItem.getItemId(); - - Optional itemOptional = userItemRepository.findByUserAndItemKindAndItemId(newUserData, itemKind, itemId); - UserItem userItem = itemOptional.orElseGet(() -> new UserItem(newUserData)); - - newUserItem.setId(userItem.getId()); - newUserItem.setUser(newUserData); - newUserItemList.add(newUserItem); - } - userItemRepository.saveAll(newUserItemList); - - // UserMusicItemList - List userMusicItemList = upsertUserAll.getUserMusicItemList(); - List newUserMusicItemList = new ArrayList<>(); - - for (UserMusicItem newUserMusicItem : userMusicItemList) { - int musicId = newUserMusicItem.getMusicId(); - - Optional musicItemOptional = userMusicItemRepository.findByUserAndMusicId(newUserData, musicId); - UserMusicItem userMusicItem = musicItemOptional.orElseGet(() -> new UserMusicItem(newUserData)); - - newUserMusicItem.setId(userMusicItem.getId()); - newUserMusicItem.setUser(newUserData); - newUserMusicItemList.add(newUserMusicItem); - } - userMusicItemRepository.saveAll(newUserMusicItemList); - - - // userLoginBonusList - List userLoginBonusList = upsertUserAll.getUserLoginBonusList(); - List newUserLoginBonusList = new ArrayList<>(); - - for (UserLoginBonus newUserLoginBonus : userLoginBonusList) { - int bonusId = newUserLoginBonus.getBonusId(); - - Optional loginBonusOptional = userLoginBonusRepository.findByUserAndBonusId(newUserData, bonusId); - UserLoginBonus userLoginBonus = loginBonusOptional.orElseGet(() -> new UserLoginBonus(newUserData)); - - newUserLoginBonus.setId(userLoginBonus.getId()); - newUserLoginBonus.setUser(newUserData); - newUserLoginBonusList.add(newUserLoginBonus); - } - userLoginBonusRepository.saveAll(newUserLoginBonusList); - - - // UserEventPointList - List userEventPointList = upsertUserAll.getUserEventPointList(); - List newUserEventPointList = new ArrayList<>(); - - for (UserEventPoint newUserEventPoint : userEventPointList) { - int eventId = newUserEventPoint.getEventId(); - - Optional eventPointOptional = userEventPointRepository.findByUserAndEventId(newUserData, eventId); - UserEventPoint userEventPoint = eventPointOptional.orElseGet(() -> new UserEventPoint(newUserData)); - - newUserEventPoint.setId(userEventPoint.getId()); - newUserEventPoint.setUser(newUserData); - newUserEventPointList.add(newUserEventPoint); - } - userEventPointRepository.saveAll(newUserEventPointList); - - - // UserMissionPointList - List userMissionPointList = upsertUserAll.getUserMissionPointList(); - List newUserMissionPointList = new ArrayList<>(); - - for (UserMissionPoint newUserMissionPoint : userMissionPointList) { - int eventId = newUserMissionPoint.getEventId(); - - Optional userMissionPointOptional = userMissionPointRepository.findByUserAndEventId(newUserData, eventId); - UserMissionPoint userMissionPoint = userMissionPointOptional.orElseGet(() -> new UserMissionPoint(newUserData)); - - newUserMissionPoint.setId(userMissionPoint.getId()); - newUserMissionPoint.setUser(newUserData); - newUserMissionPointList.add(newUserMissionPoint); - } - userMissionPointRepository.saveAll(newUserMissionPointList); - - // UserRatinglogList (For the highest rating of each version) - - // UserBossList - List userBossList = upsertUserAll.getUserBossList(); - if (userBossList != null) { - List newUserBossList = new ArrayList<>(); - for (UserBoss newUserBoss : userBossList) { - int musicId = newUserBoss.getMusicId(); - - Optional userBossOptional = userBossRepository.findByUserAndMusicId(newUserData, musicId); - UserBoss userBoss = userBossOptional.orElseGet(() -> new UserBoss(newUserData)); - - newUserBoss.setId(userBoss.getId()); - newUserBoss.setUser(userBoss.getUser()); - newUserBossList.add(newUserBoss); - } - userBossRepository.saveAll(newUserBossList); - } - - // UserTechCountList - List userTechCountList = upsertUserAll.getUserTechCountList(); - if (userTechCountList != null) { - List newUserTechCountList = new ArrayList<>(); - for (UserTechCount newUserTechCount : userTechCountList) { - int levelId = newUserTechCount.getLevelId(); - - Optional userTechCountOptional = userTechCountRepository.findByUserAndLevelId(newUserData, levelId); - UserTechCount userTechCount = userTechCountOptional.orElseGet(() -> new UserTechCount(newUserData)); - - newUserTechCount.setId(userTechCount.getId()); - newUserTechCount.setUser(userTechCount.getUser()); - newUserTechCountList.add(newUserTechCount); - } - userTechCountRepository.saveAll(newUserTechCountList); - } - - // UserScenarioList - List userScenarioList = upsertUserAll.getUserScenarioList(); - if (userScenarioList != null) { - List newUserScenarioList = new ArrayList<>(); - for (UserScenario newUserScenario : userScenarioList) { - int scenarioId = newUserScenario.getScenarioId(); - - Optional userScenarioOptional = userScenarioRepository.findByUserAndScenarioId(newUserData, scenarioId); - UserScenario userScenario = userScenarioOptional.orElseGet(() -> new UserScenario(newUserData)); - - newUserScenario.setId(userScenario.getId()); - newUserScenario.setUser(userScenario.getUser()); - newUserScenarioList.add(newUserScenario); - } - userScenarioRepository.saveAll(newUserScenarioList); - } - - // UserTradeItemList - List userTradeItemList = upsertUserAll.getUserTradeItemList(); - List newUserTradeItemList = new ArrayList<>(); - - for (UserTradeItem newUserTradeItem : userTradeItemList) { - int chapterId = newUserTradeItem.getChapterId(); - int tradeItemId = newUserTradeItem.getTradeItemId(); - - Optional tradeItemOptional = userTradeItemRepository.findByUserAndChapterIdAndTradeItemId(newUserData, chapterId, tradeItemId); - UserTradeItem userTradeItem = tradeItemOptional.orElseGet(() -> new UserTradeItem(newUserData)); - - newUserTradeItem.setId(userTradeItem.getId()); - newUserTradeItem.setUser(newUserData); - newUserTradeItemList.add(newUserTradeItem); - } - userTradeItemRepository.saveAll(newUserTradeItemList); - - // UserEventMusicList - List userEventMusicList = upsertUserAll.getUserEventMusicList(); - List newUserEventMusicList = new ArrayList<>(); - - for (UserEventMusic newUserEventMusic : userEventMusicList) { - int eventId = newUserEventMusic.getEventId(); - int type = newUserEventMusic.getType(); - int musicId = newUserEventMusic.getMusicId(); - - Optional eventMusicOptional = userEventMusicRepository.findByUserAndEventIdAndTypeAndMusicId(newUserData, eventId, type, musicId); - UserEventMusic userEventMusic = eventMusicOptional.orElseGet(() -> new UserEventMusic(newUserData)); - - newUserEventMusic.setId(userEventMusic.getId()); - newUserEventMusic.setUser(newUserData); - newUserEventMusicList.add(newUserEventMusic); - } - userEventMusicRepository.saveAll(newUserEventMusicList); - - // UserTechEventList - List userTechEventList = upsertUserAll.getUserTechEventList(); - List newUserTechEventList = new ArrayList<>(); - - for (UserTechEvent newUserTechEvent : userTechEventList) { - int eventId = newUserTechEvent.getEventId(); - - Optional techEventOptional = userTechEventRepository.findByUserAndEventId(newUserData, eventId); - UserTechEvent userTechEvent = techEventOptional.orElseGet(() -> new UserTechEvent(newUserData)); - - newUserTechEvent.setId(userTechEvent.getId()); - newUserTechEvent.setUser(newUserData); - newUserTechEventList.add(newUserTechEvent); - } - userTechEventRepository.saveAll(newUserTechEventList); - - // UserKopList - List userKopList = upsertUserAll.getUserKopList(); - List newUserKopList = new ArrayList<>(); - - for (UserKop newUserKop : userKopList) { - int kopId = newUserKop.getKopId(); - int areaId = newUserKop.getAreaId(); - - Optional kopOptional = userKopRepository.findByUserAndKopIdAndAreaId(newUserData, kopId, areaId); - UserKop userKop = kopOptional.orElseGet(() -> new UserKop(newUserData)); - - newUserKop.setId(userKop.getId()); - newUserKop.setUser(newUserData); - newUserKopList.add(newUserKop); - } - userKopRepository.saveAll(newUserKopList); - - // UserEventMap - UserEventMap newUserEventMap = upsertUserAll.getUserEventMap(); - if (newUserEventMap != null) { - Optional userEventOptional = userEventMapRepository.findByUser(newUserData); - UserEventMap userEventMap = userEventOptional.orElseGet(() -> new UserEventMap(newUserData)); - - newUserEventMap.setId(userEventMap.getId()); - newUserEventMap.setUser(newUserData); - userEventMapRepository.save(newUserEventMap); - } - - String json = mapper.write(new CodeResp(1, "upsertUserAll")); - logger.info("Response: " + json); - return json; - - } - - private void saveRecentRatingData(List itemList, UserData newUserData, String key) { - StringBuilder sb = new StringBuilder(); - // Convert to a string - for (UserRecentRating item : - itemList) { - sb.append(item.getMusicId()).append(":").append(item.getDifficultId()).append(":").append(item.getScore()); - sb.append(","); - } - if (!sb.isEmpty()) { - sb.deleteCharAt(sb.length() - 1); - } - saveGeneralData(newUserData, key, sb.toString()); - } - - private void saveFumenScoreData(List itemList, UserData newUserData, String key) { - StringBuilder sb = new StringBuilder(); - for (OngekiFumenScore item : itemList) { - sb.append(item.getMusicId()).append(":") - .append(item.getDifficultId()).append(":") - .append(item.getScore()).append(":") - .append(item.getPlatinumScoreStar()).append(":") - .append(item.getPlatinumScoreMax()); - sb.append(","); - } - - if (!sb.isEmpty()) { - sb.deleteCharAt(sb.length() - 1); - } - saveGeneralData(newUserData, key, sb.toString()); - } - - private void saveGeneralData(UserData newUserData, String key, String data) { - Optional uOptional = userGeneralDataRepository.findByUserAndPropertyKey(newUserData, key); - UserGeneralData userGeneralData = uOptional.orElseGet(() -> new UserGeneralData(newUserData, key)); - userGeneralData.setPropertyValue(data); - userGeneralDataRepository.save(userGeneralData); - } - -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt index aeedcfe8..adb66105 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt @@ -4,12 +4,13 @@ import ext.logger import icu.samnyan.aqua.sega.general.BaseHandler import icu.samnyan.aqua.sega.general.model.response.UserRecentRating import icu.samnyan.aqua.sega.general.service.CardService -import icu.samnyan.aqua.sega.ongeki.* +import icu.samnyan.aqua.sega.ongeki.OngekiUserRepos import icu.samnyan.aqua.sega.ongeki.model.* import icu.samnyan.aqua.sega.util.jackson.BasicMapper import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Component + /** * The handler for saving all data of a ONGEKI profile * @author samnyan (privateamusement@protonmail.com) @@ -18,35 +19,11 @@ import org.springframework.stereotype.Component class UpsertUserAllHandler @Autowired constructor( private val mapper: BasicMapper, private val cardService: CardService, - private val userDataRepository: OgkUserDataRepo, - private val userOptionRepository: OgkUserOptionRepo, - private val userPlaylogRepository: OgkUserPlaylogRepo, - private val userActivityRepository: OgkUserActivityRepo, - private val userMusicDetailRepository: OgkUserMusicDetailRepo, - private val userCharacterRepository: OgkUserCharacterRepo, - private val userCardRepository: OgkUserCardRepo, - private val userDeckRepository: OgkUserDeckRepo, - private val userStoryRepository: OgkUserStoryRepo, - private val userChapterRepository: OgkUserChapterRepo, - private val userItemRepository: OgkUserItemRepo, - private val userMusicItemRepository: OgkUserMusicItemRepo, - private val userLoginBonusRepository: OgkUserLoginBonusRepo, - private val userEventPointRepository: OgkUserEventPointRepo, - private val userMissionPointRepository: OgkUserMissionPointRepo, - private val userTrainingRoomRepository: OgkUserTrainingRoomRepo, - private val userGeneralDataRepository: OgkUserGeneralDataRepo, - private val userBossRepository: OgkUserBossRepo, - private val userScenarioRepository: OgkUserScenarioRepo, - private val userTechCountRepository: OgkUserTechCountRepo, - private val userTradeItemRepository: OgkUserTradeItemRepo, - private val userEventMusicRepository: OgkUserEventMusicRepo, - private val userTechEventRepository: OgkUserTechEventRepo, - private val userKopRepository: OgkUserKopRepo, - private val userMemoryChapterRepository: OgkUserMemoryChapterRepo + val db: OngekiUserRepos ) : BaseHandler { override fun handle(request: Map): String? { val userId = (request["userId"] as Number).toLong() - val upsertUserAll = mapper.convert( + val all = mapper.convert( request["upsertUserAll"]!!, UpsertUserAll::class.java ) @@ -56,10 +33,10 @@ class UpsertUserAllHandler @Autowired constructor( val u: UserData run { val userData: UserData - val userOptional = userDataRepository.findByCard_ExtId(userId) + val userOptional = db.data.findByCard_ExtId(userId) // UserData might be empty on later runs - if (userOptional.isEmpty && upsertUserAll.userData.isNullOrEmpty()) { + if (userOptional.isEmpty && all.userData.isNullOrEmpty()) { return null } @@ -72,7 +49,7 @@ class UpsertUserAllHandler @Autowired constructor( } // If new data exists, use new data. Otherwise, use old data - u = if (!upsertUserAll.userData.isNullOrEmpty()) upsertUserAll.userData!![0] else userData + u = if (!all.userData.isNullOrEmpty()) all.userData!![0] else userData u.id = userData.id u.card = userData.card @@ -80,24 +57,24 @@ class UpsertUserAllHandler @Autowired constructor( // Set eventWatchedDate with lastPlayDate, because client doesn't update it u.eventWatchedDate = userData.lastPlayDate u.cmEventWatchedDate = userData.lastPlayDate - userDataRepository.save(u) + db.data.save(u) } // UserOption - val newUserOption = upsertUserAll.userOption!![0] + val newUserOption = all.userOption!![0] - val userOptionOptional = userOptionRepository.findSingleByUser(u) + val userOptionOptional = db.option.findSingleByUser(u) val userOption = userOptionOptional.orElseGet { UserOption().apply { user = u } } newUserOption.id = userOption.id newUserOption.user = userOption.user - userOptionRepository.save(newUserOption) + db.option.save(newUserOption) // UserPlaylogList - val userPlaylogList = upsertUserAll.userPlaylogList + val userPlaylogList = all.userPlaylogList val newUserPlaylogList: MutableList = ArrayList() if (userPlaylogList != null) { @@ -107,14 +84,14 @@ class UpsertUserAllHandler @Autowired constructor( } } - userPlaylogRepository.saveAll(newUserPlaylogList) + db.playlog.saveAll(newUserPlaylogList) // UserSessionlogList, UserJewelboostlogLost doesn't need to be saved for a private server // UserActivityList - val userActivityList = upsertUserAll.userActivityList + val userActivityList = all.userActivityList val newUserActivityList: MutableList = ArrayList() if (userActivityList != null) { @@ -123,7 +100,7 @@ class UpsertUserAllHandler @Autowired constructor( val id = newUserActivity.activityId if (kind != 0 && id != 0) { - val activityOptional = userActivityRepository.findByUserAndKindAndActivityId(u, kind, id) + val activityOptional = db.activity.findByUserAndKindAndActivityId(u, kind, id) val userActivity = activityOptional.orElseGet { UserActivity().apply { user = u } } @@ -135,12 +112,12 @@ class UpsertUserAllHandler @Autowired constructor( } } newUserActivityList.sortWith { a, b -> b.sortNumber.compareTo(a.sortNumber) } - userActivityRepository.saveAll(newUserActivityList) + db.activity.saveAll(newUserActivityList) // UserRecentRatingList // This thing still need to save to solve the rating drop - upsertUserAll.userRecentRatingList?.let { this.saveGeneralData(it, u, "recent_rating_list") } + all.userRecentRatingList?.let { this.saveRecentRatingData(it, u, "recent_rating_list") } /* * The rating and battle point calculation is little bit complex. @@ -148,35 +125,40 @@ class UpsertUserAllHandler @Autowired constructor( * into a csv format for convenience */ // UserBpBaseList (For calculating Battle point) - upsertUserAll.userBpBaseList?.let { this.saveGeneralData(it, u, "battle_point_base") } - + all.userBpBaseList?.let { this.saveRecentRatingData(it, u, "battle_point_base") } // This is the best rating of all charts. Best 30 + 10 after that. // userRatingBaseBestList - upsertUserAll.userRatingBaseBestList?.let { this.saveGeneralData(it, u, "rating_base_best") } - + all.userRatingBaseBestList?.let { this.saveRecentRatingData(it, u, "rating_base_best") } // userRatingBaseNextList - upsertUserAll.userRatingBaseNextList?.let { this.saveGeneralData(it, u, "rating_base_next") } + all.userRatingBaseNextList?.let { this.saveRecentRatingData(it, u, "rating_base_next") } // This is the best rating of new charts. Best 15 + 10 after that. // New chart means same version // userRatingBaseBestNewList - upsertUserAll.userRatingBaseBestNewList?.let { this.saveGeneralData(it, u, "rating_base_new_best") } + all.userRatingBaseBestNewList?.let { this.saveRecentRatingData(it, u, "rating_base_new_best") } // userRatingBaseNextNewList - upsertUserAll.userRatingBaseNextNewList?.let { this.saveGeneralData(it, u, "rating_base_new_next") } + all.userRatingBaseNextNewList?.let { this.saveRecentRatingData(it, u, "rating_base_new_next") } // This is the recent best // userRatingBaseHotList - upsertUserAll.userRatingBaseHotList?.let { this.saveGeneralData(it, u, "rating_base_hot_best") } + all.userRatingBaseHotList?.let { this.saveRecentRatingData(it, u, "rating_base_hot_best") } // userRatingBaseHotNextList - upsertUserAll.userRatingBaseHotNextList?.let { this.saveGeneralData(it, u, "rating_base_hot_next") } + all.userRatingBaseHotNextList?.let { this.saveRecentRatingData(it, u, "rating_base_hot_next") } + // Re:Fresh + all.userNewRatingBaseBestList?.let { this.saveFumenScoreData(it, u, "new_rating_base_best") } + all.userNewRatingBaseNextBestList?.let { this.saveFumenScoreData(it, u, "new_rating_base_next_best") } + all.userNewRatingBaseBestNewList?.let { this.saveFumenScoreData(it, u, "new_rating_base_new_best") } + all.userNewRatingBaseNextBestNewList?.let { this.saveFumenScoreData(it, u, "new_rating_base_new_next_best") } + all.userNewRatingBasePScoreList?.let { this.saveFumenScoreData(it, u, "new_rating_base_pscore") } + all.userNewRatingBaseNextPScoreList?.let { this.saveFumenScoreData(it, u, "new_rating_base_next_pscore") } // UserMusicDetailList - val userMusicDetailList = upsertUserAll.userMusicDetailList + val userMusicDetailList = all.userMusicDetailList val newUserMusicDetailList: MutableList = ArrayList() if (userMusicDetailList != null) { @@ -185,7 +167,7 @@ class UpsertUserAllHandler @Autowired constructor( val level = newUserMusicDetail.level val musicDetailOptional = - userMusicDetailRepository.findByUserAndMusicIdAndLevel(u, musicId, level) + db.musicDetail.findByUserAndMusicIdAndLevel(u, musicId, level) val userMusicDetail = musicDetailOptional.orElseGet { UserMusicDetail().apply { user = u } } @@ -195,18 +177,18 @@ class UpsertUserAllHandler @Autowired constructor( newUserMusicDetailList.add(newUserMusicDetail) } } - userMusicDetailRepository.saveAll(newUserMusicDetailList) + db.musicDetail.saveAll(newUserMusicDetailList) // UserCharacterList - val userCharacterList = upsertUserAll.userCharacterList + val userCharacterList = all.userCharacterList val newUserCharacterList: MutableList = ArrayList() if (userCharacterList != null) { for (newUserCharacter in userCharacterList) { val characterId = newUserCharacter.characterId - val characterOptional = userCharacterRepository.findByUserAndCharacterId(u, characterId) + val characterOptional = db.character.findByUserAndCharacterId(u, characterId) val userCharacter = characterOptional.orElseGet { UserCharacter().apply { user = u } } @@ -216,17 +198,17 @@ class UpsertUserAllHandler @Autowired constructor( newUserCharacterList.add(newUserCharacter) } } - userCharacterRepository.saveAll(newUserCharacterList) + db.character.saveAll(newUserCharacterList) // UserCardList - val userCardList = upsertUserAll.userCardList + val userCardList = all.userCardList val newUserCardList: MutableList = ArrayList() if (userCardList != null) { for (newUserCard in userCardList) { val cardId = newUserCard.cardId - val cardOptional = userCardRepository.findByUserAndCardId(u, cardId) + val cardOptional = db.card.findByUserAndCardId(u, cardId) val userCard = cardOptional.orElseGet { UserCard().apply { user = u } } newUserCard.id = userCard.id @@ -234,18 +216,18 @@ class UpsertUserAllHandler @Autowired constructor( newUserCardList.add(newUserCard) } } - userCardRepository.saveAll(newUserCardList) + db.card.saveAll(newUserCardList) // UserDeckList - val userDeckList = upsertUserAll.userDeckList + val userDeckList = all.userDeckList val newUserDeckList: MutableList = ArrayList() if (userDeckList != null) { for (newUserDeck in userDeckList) { val deckId = newUserDeck.deckId - val deckOptional = userDeckRepository.findByUserAndDeckId(u, deckId) + val deckOptional = db.deck.findByUserAndDeckId(u, deckId) val userDeck = deckOptional.orElseGet { UserDeck().apply { user = u } } newUserDeck.id = userDeck.id @@ -253,18 +235,18 @@ class UpsertUserAllHandler @Autowired constructor( newUserDeckList.add(newUserDeck) } } - userDeckRepository.saveAll(newUserDeckList) + db.deck.saveAll(newUserDeckList) // userTrainingRoomList - val userTrainingRoomList = upsertUserAll.userTrainingRoomList + val userTrainingRoomList = all.userTrainingRoomList val newUserTrainingRoomList: MutableList = ArrayList() if (userTrainingRoomList != null) { for (newUserTrainingRoom in userTrainingRoomList) { val roomId = newUserTrainingRoom.roomId - val trainingRoomOptional = userTrainingRoomRepository.findByUserAndRoomId(u, roomId) + val trainingRoomOptional = db.trainingRoom.findByUserAndRoomId(u, roomId) val trainingRoom = trainingRoomOptional.orElseGet { UserTrainingRoom().apply { user = u } } newUserTrainingRoom.id = trainingRoom.id @@ -272,18 +254,18 @@ class UpsertUserAllHandler @Autowired constructor( newUserTrainingRoomList.add(newUserTrainingRoom) } } - userTrainingRoomRepository.saveAll(newUserTrainingRoomList) + db.trainingRoom.saveAll(newUserTrainingRoomList) // UserStoryList - val userStoryList = upsertUserAll.userStoryList + val userStoryList = all.userStoryList val newUserStoryList: MutableList = ArrayList() if (userStoryList != null) { for (newUserStory in userStoryList) { val storyId = newUserStory.storyId - val storyOptional = userStoryRepository.findByUserAndStoryId(u, storyId) + val storyOptional = db.story.findByUserAndStoryId(u, storyId) val userStory = storyOptional.orElseGet { UserStory().apply { user = u } } newUserStory.id = userStory.id @@ -291,18 +273,18 @@ class UpsertUserAllHandler @Autowired constructor( newUserStoryList.add(newUserStory) } } - userStoryRepository.saveAll(newUserStoryList) + db.story.saveAll(newUserStoryList) // UserChapterList - val userChapterList = upsertUserAll.userChapterList + val userChapterList = all.userChapterList val newUserChapterList: MutableList = ArrayList() if (userChapterList != null) { for (newUserChapter in userChapterList) { val chapterId = newUserChapter.chapterId - val chapterOptional = userChapterRepository.findByUserAndChapterId(u, chapterId) + val chapterOptional = db.chapter.findByUserAndChapterId(u, chapterId) val userChapter = chapterOptional.orElseGet { UserChapter().apply { user = u } } newUserChapter.id = userChapter.id @@ -310,11 +292,11 @@ class UpsertUserAllHandler @Autowired constructor( newUserChapterList.add(newUserChapter) } } - userChapterRepository.saveAll(newUserChapterList) + db.chapter.saveAll(newUserChapterList) // UserMemoryChapterList - val userMemoryChapterList = upsertUserAll.userMemoryChapterList + val userMemoryChapterList = all.userMemoryChapterList if (userMemoryChapterList != null) { val newUserMemoryChapterList: MutableList = ArrayList() @@ -322,18 +304,18 @@ class UpsertUserAllHandler @Autowired constructor( for (newUserMemoryChapter in userMemoryChapterList) { val chapterId = newUserMemoryChapter.chapterId - val chapterOptional = userMemoryChapterRepository.findByUserAndChapterId(u, chapterId) + val chapterOptional = db.memoryChapter.findByUserAndChapterId(u, chapterId) val userChapter = chapterOptional.orElseGet { UserMemoryChapter().apply { user = u } } newUserMemoryChapter.id = userChapter.id newUserMemoryChapter.user = u newUserMemoryChapterList.add(newUserMemoryChapter) } - userMemoryChapterRepository.saveAll(newUserMemoryChapterList) + db.memoryChapter.saveAll(newUserMemoryChapterList) } // UserItemList - val userItemList = upsertUserAll.userItemList + val userItemList = all.userItemList val newUserItemList: MutableList = ArrayList() if (userItemList != null) { @@ -341,7 +323,7 @@ class UpsertUserAllHandler @Autowired constructor( val itemKind = newUserItem.itemKind val itemId = newUserItem.itemId - val itemOptional = userItemRepository.findByUserAndItemKindAndItemId(u, itemKind, itemId) + val itemOptional = db.item.findByUserAndItemKindAndItemId(u, itemKind, itemId) val userItem = itemOptional.orElseGet { UserItem().apply { user = u } } newUserItem.id = userItem.id @@ -349,17 +331,17 @@ class UpsertUserAllHandler @Autowired constructor( newUserItemList.add(newUserItem) } } - userItemRepository.saveAll(newUserItemList) + db.item.saveAll(newUserItemList) // UserMusicItemList - val userMusicItemList = upsertUserAll.userMusicItemList + val userMusicItemList = all.userMusicItemList val newUserMusicItemList: MutableList = ArrayList() if (userMusicItemList != null) { for (newUserMusicItem in userMusicItemList) { val musicId = newUserMusicItem.musicId - val musicItemOptional = userMusicItemRepository.findByUserAndMusicId(u, musicId) + val musicItemOptional = db.musicItem.findByUserAndMusicId(u, musicId) val userMusicItem = musicItemOptional.orElseGet { UserMusicItem().apply { user = u } } newUserMusicItem.id = userMusicItem.id @@ -367,18 +349,18 @@ class UpsertUserAllHandler @Autowired constructor( newUserMusicItemList.add(newUserMusicItem) } } - userMusicItemRepository.saveAll(newUserMusicItemList) + db.musicItem.saveAll(newUserMusicItemList) // userLoginBonusList - val userLoginBonusList = upsertUserAll.userLoginBonusList + val userLoginBonusList = all.userLoginBonusList val newUserLoginBonusList: MutableList = ArrayList() if (userLoginBonusList != null) { for (newUserLoginBonus in userLoginBonusList) { val bonusId = newUserLoginBonus.bonusId - val loginBonusOptional = userLoginBonusRepository.findByUserAndBonusId(u, bonusId) + val loginBonusOptional = db.loginBonus.findByUserAndBonusId(u, bonusId) val userLoginBonus = loginBonusOptional.orElseGet { UserLoginBonus().apply { user = u } } @@ -388,18 +370,18 @@ class UpsertUserAllHandler @Autowired constructor( newUserLoginBonusList.add(newUserLoginBonus) } } - userLoginBonusRepository.saveAll(newUserLoginBonusList) + db.loginBonus.saveAll(newUserLoginBonusList) // UserEventPointList - val userEventPointList = upsertUserAll.userEventPointList + val userEventPointList = all.userEventPointList val newUserEventPointList: MutableList = ArrayList() if (userEventPointList != null) { for (newUserEventPoint in userEventPointList) { val eventId = newUserEventPoint.eventId - val eventPointOptional = userEventPointRepository.findByUserAndEventId(u, eventId) + val eventPointOptional = db.eventPoint.findByUserAndEventId(u, eventId) val userEventPoint = eventPointOptional.orElseGet { UserEventPoint().apply { user = u } } newUserEventPoint.id = userEventPoint.id @@ -407,18 +389,18 @@ class UpsertUserAllHandler @Autowired constructor( newUserEventPointList.add(newUserEventPoint) } } - userEventPointRepository.saveAll(newUserEventPointList) + db.eventPoint.saveAll(newUserEventPointList) // UserMissionPointList - val userMissionPointList = upsertUserAll.userMissionPointList + val userMissionPointList = all.userMissionPointList val newUserMissionPointList: MutableList = ArrayList() if (userMissionPointList != null) { for (newUserMissionPoint in userMissionPointList) { val eventId = newUserMissionPoint.eventId - val userMissionPointOptional = userMissionPointRepository.findByUserAndEventId(u, eventId) + val userMissionPointOptional = db.missionPoint.findByUserAndEventId(u, eventId) val userMissionPoint = userMissionPointOptional.orElseGet { UserMissionPoint().apply { user = u } } newUserMissionPoint.id = userMissionPoint.id @@ -426,18 +408,18 @@ class UpsertUserAllHandler @Autowired constructor( newUserMissionPointList.add(newUserMissionPoint) } } - userMissionPointRepository.saveAll(newUserMissionPointList) + db.missionPoint.saveAll(newUserMissionPointList) // UserRatinglogList (For the highest rating of each version) // UserBossList - val userBossList = upsertUserAll.userBossList + val userBossList = all.userBossList if (userBossList != null) { val newUserBossList: MutableList = ArrayList() for (newUserBoss in userBossList) { val musicId = newUserBoss.musicId - val userBossOptional = userBossRepository.findByUserAndMusicId(u, musicId) + val userBossOptional = db.boss.findByUserAndMusicId(u, musicId) val userBoss = userBossOptional.orElseGet { UserBoss().apply { user = u } } @@ -446,45 +428,45 @@ class UpsertUserAllHandler @Autowired constructor( newUserBoss.user = userBoss.user newUserBossList.add(newUserBoss) } - userBossRepository.saveAll(newUserBossList) + db.boss.saveAll(newUserBossList) } // UserTechCountList - val userTechCountList = upsertUserAll.userTechCountList + val userTechCountList = all.userTechCountList if (userTechCountList != null) { val newUserTechCountList: MutableList = ArrayList() for (newUserTechCount in userTechCountList) { val levelId = newUserTechCount.levelId - val userTechCountOptional = userTechCountRepository.findByUserAndLevelId(u, levelId) + val userTechCountOptional = db.techCount.findByUserAndLevelId(u, levelId) val userTechCount = userTechCountOptional.orElseGet { UserTechCount().apply { user = u } } newUserTechCount.id = userTechCount.id newUserTechCount.user = userTechCount.user newUserTechCountList.add(newUserTechCount) } - userTechCountRepository.saveAll(newUserTechCountList) + db.techCount.saveAll(newUserTechCountList) } // UserScenarioList - val userScenarioList = upsertUserAll.userScenarioList + val userScenarioList = all.userScenarioList if (userScenarioList != null) { val newUserScenarioList: MutableList = ArrayList() for (newUserScenario in userScenarioList) { val scenarioId = newUserScenario.scenarioId - val userScenarioOptional = userScenarioRepository.findByUserAndScenarioId(u, scenarioId) + val userScenarioOptional = db.scenario.findByUserAndScenarioId(u, scenarioId) val userScenario = userScenarioOptional.orElseGet { UserScenario().apply { user = u } } newUserScenario.id = userScenario.id newUserScenario.user = userScenario.user newUserScenarioList.add(newUserScenario) } - userScenarioRepository.saveAll(newUserScenarioList) + db.scenario.saveAll(newUserScenarioList) } // UserTradeItemList - val userTradeItemList = upsertUserAll.userTradeItemList + val userTradeItemList = all.userTradeItemList val newUserTradeItemList: MutableList = ArrayList() if (userTradeItemList != null) { @@ -493,7 +475,7 @@ class UpsertUserAllHandler @Autowired constructor( val tradeItemId = newUserTradeItem.tradeItemId val tradeItemOptional = - userTradeItemRepository.findByUserAndChapterIdAndTradeItemId(u, chapterId, tradeItemId) + db.tradeItem.findByUserAndChapterIdAndTradeItemId(u, chapterId, tradeItemId) val userTradeItem = tradeItemOptional.orElseGet { UserTradeItem().apply { user = u } } newUserTradeItem.id = userTradeItem.id @@ -501,10 +483,10 @@ class UpsertUserAllHandler @Autowired constructor( newUserTradeItemList.add(newUserTradeItem) } } - userTradeItemRepository.saveAll(newUserTradeItemList) + db.tradeItem.saveAll(newUserTradeItemList) // UserEventMusicList - val userEventMusicList = upsertUserAll.userEventMusicList + val userEventMusicList = all.userEventMusicList val newUserEventMusicList: MutableList = ArrayList() if (userEventMusicList != null) { @@ -514,7 +496,7 @@ class UpsertUserAllHandler @Autowired constructor( val musicId = newUserEventMusic.musicId val eventMusicOptional = - userEventMusicRepository.findByUserAndEventIdAndTypeAndMusicId(u, eventId, type, musicId) + db.eventMusic.findByUserAndEventIdAndTypeAndMusicId(u, eventId, type, musicId) val userEventMusic = eventMusicOptional.orElseGet { UserEventMusic().apply { user = u } } newUserEventMusic.id = userEventMusic.id @@ -522,17 +504,17 @@ class UpsertUserAllHandler @Autowired constructor( newUserEventMusicList.add(newUserEventMusic) } } - userEventMusicRepository.saveAll(newUserEventMusicList) + db.eventMusic.saveAll(newUserEventMusicList) // UserTechEventList - val userTechEventList = upsertUserAll.userTechEventList + val userTechEventList = all.userTechEventList val newUserTechEventList: MutableList = ArrayList() if (userTechEventList != null) { for (newUserTechEvent in userTechEventList) { val eventId = newUserTechEvent.eventId - val techEventOptional = userTechEventRepository.findByUserAndEventId(u, eventId) + val techEventOptional = db.techEvent.findByUserAndEventId(u, eventId) val userTechEvent = techEventOptional.orElseGet { UserTechEvent().apply { user = u } } newUserTechEvent.id = userTechEvent.id @@ -540,10 +522,10 @@ class UpsertUserAllHandler @Autowired constructor( newUserTechEventList.add(newUserTechEvent) } } - userTechEventRepository.saveAll(newUserTechEventList) + db.techEvent.saveAll(newUserTechEventList) // UserKopList - val userKopList = upsertUserAll.userKopList + val userKopList = all.userKopList val newUserKopList: MutableList = ArrayList() if (userKopList != null) { @@ -551,7 +533,7 @@ class UpsertUserAllHandler @Autowired constructor( val kopId = newUserKop.kopId val areaId = newUserKop.areaId - val kopOptional = userKopRepository.findByUserAndKopIdAndAreaId(u, kopId, areaId) + val kopOptional = db.kop.findByUserAndKopIdAndAreaId(u, kopId, areaId) val userKop = kopOptional.orElseGet { UserKop().apply { user = u } } newUserKop.id = userKop.id @@ -559,32 +541,60 @@ class UpsertUserAllHandler @Autowired constructor( newUserKopList.add(newUserKop) } } - userKopRepository.saveAll(newUserKopList) + db.kop.saveAll(newUserKopList) + + // UserEventMap + val newUserEventMap = all.userEventMap + if (newUserEventMap != null) { + val userEventOptional = db.eventMap.findSingleByUser(u) + val userEventMap: UserEventMap = userEventOptional.orElseGet { UserEventMap().apply { user = u } } + + newUserEventMap.id = userEventMap.id + newUserEventMap.user = u + db.eventMap.save(newUserEventMap) + } val json = mapper.write(CodeResp(1, "upsertUserAll")) logger.info("Response: $json") return json } - private fun saveGeneralData(itemList: List, newUserData: UserData, key: String) { + private fun saveRecentRatingData(itemList: List, newUserData: UserData, key: String) { val sb = StringBuilder() // Convert to a string for (item in itemList) { sb.append(item.musicId).append(":").append(item.difficultId).append(":").append(item.score) sb.append(",") } - if (sb.length > 0) { - sb.deleteCharAt(sb.length - 1) + if (sb.isNotEmpty()) { sb.deleteCharAt(sb.length - 1) } + saveGeneralData(newUserData, key, sb.toString()) + } + + private fun saveFumenScoreData(itemList: List, newUserData: UserData, key: String) { + val sb = StringBuilder() + for (item in itemList) { + sb.append(item.musicId).append(":") + .append(item.difficultId).append(":") + .append(item.score).append(":") + .append(item.platinumScoreStar).append(":") + .append(item.platinumScoreMax) + sb.append(",") } - val uOptional = userGeneralDataRepository.findByUserAndPropertyKey(newUserData, key) + + if (sb.isNotEmpty()) { sb.deleteCharAt(sb.length - 1) } + saveGeneralData(newUserData, key, sb.toString()) + } + + private fun saveGeneralData(newUserData: UserData, key: String, data: String) { + val uOptional = db.generalData.findByUserAndPropertyKey(newUserData, key) val userGeneralData = uOptional.orElseGet { UserGeneralData().apply { user = newUserData propertyKey = key } } - userGeneralData.propertyValue = sb.toString() - userGeneralDataRepository.save(userGeneralData) + userGeneralData.propertyValue = data + db.generalData.save(userGeneralData) } companion object { diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt index b0e173e1..ccec8800 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt @@ -7,6 +7,15 @@ class CodeResp( var apiName: String? = null, ) +class OngekiFumenScore( + var musicId: Int = 0, + var difficultId: Int = 0, + var romVersionCode: String? = null, + var score: Int = 0, + var platinumScoreMax: Int = 0, + var platinumScoreStar: Int = 0, +) + class GetUserPreviewResp( var userId: Long = 0, var isLogin: Bool = false, @@ -16,6 +25,7 @@ class GetUserPreviewResp( var level: Int = 0, var exp: Long = 0, var playerRating: Long = 0, + var newPlayerRating: Long = 0, var lastGameId: String = "", var lastRomVersion: String = "", var lastDataVersion: String = "", diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUserEntities.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUserEntities.kt index 009d02fe..a98539a9 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUserEntities.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUserEntities.kt @@ -93,6 +93,17 @@ class UserData : IUserData { var lastPlayMusicLevel = 0 var lastEmoneyBrand = 0 + // Re:Fresh + var shizukuCount = 0 + var newPlayerRating = 0 + var newHighestRating = 0 + var sumPlatinumScoreStar = 0 + var sumBasicPlatinumScoreStar = 0 + var sumAdvancedPlatinumScoreStar = 0 + var sumExpertPlatinumScoreStar = 0 + var sumMasterPlatinumScoreStar = 0 + var sumLunaticPlatinumScoreStar = 0 + override val totalScore get() = sumTechHighScore } @@ -254,6 +265,9 @@ class UserMemoryChapter : OngekiUserEntity() { var isClear = false var gaugeId = 0 var gaugeNum = 0 + + // Re:Fresh + var isEndingWatched = false } @Entity(name = "OngekiUserMissionPoint") @@ -283,6 +297,9 @@ class UserMusicDetail : OngekiUserEntity(), IGenericUserMusic { var isLock = false var clearStatus = 0 var isStoryWatched = false + + // Re:Fresh + var platinumScoreStar = 0 } @Entity(name = "OngekiUserMusicItem") @@ -332,6 +349,9 @@ class UserOption : OngekiUserEntity() { var dispRating = 0 var dispBP = 0 var headphone = 0 + + // Re:Fresh + var effectAttack = 0 } @@ -471,3 +491,28 @@ class UserTrainingRoom : OngekiUserEntity() { var cardId: Int = 0 var valueDate: String = "" } + +// Re:Fresh +@Entity(name = "OngekiUserEventMap") +@Table(name = "ongeki_user_event_map") +class UserEventMap : OngekiUserEntity() { + var eventId = 0 + var mapId = 0 + var mapData: String? = null + var totalPoint = 0 + var totalUsePoint = 0 +} + +/** + * @author samnyan (privateamusement@protonmail.com) + */ +@Entity(name = "OngekiUserSkin") +@Table(name = "ongeki_user_skin") +class UserSkin : OngekiUserEntity() { + // TODO: should be updated on net when changing skin + var isValid = false + var deckId = 0 + var cardId1 = 0 + var cardId2 = 0 + var cardId3 = 0 +} \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/UpsertUserAll.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/UpsertUserAll.kt index c942adb0..0985e85f 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/UpsertUserAll.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/UpsertUserAll.kt @@ -8,6 +8,7 @@ class UpsertUserAll { var userJewelboostlogList: List>? = null var userSessionlogList: List>? = null var userActivityList: List? = null + var userRecentRatingList: List? = null var userBpBaseList: List? = null var userRatingBaseBestNewList: List? = null @@ -16,6 +17,7 @@ class UpsertUserAll { var userRatingBaseNextNewList: List? = null var userRatingBaseNextList: List? = null var userRatingBaseHotNextList: List? = null + var userMusicDetailList: List? = null var userCharacterList: List? = null var userCardList: List? = null @@ -59,4 +61,13 @@ class UpsertUserAll { var isNewEventMusicList: String? = null var isNewTechEventList: String? = null var isNewKopList: String? = null + + // Re:Fresh + var userNewRatingBasePScoreList: List? = null + var userNewRatingBaseBestList: List? = null + var userNewRatingBaseBestNewList: List? = null + var userNewRatingBaseNextPScoreList: List? = null + var userNewRatingBaseNextBestList: List? = null + var userNewRatingBaseNextBestNewList: List? = null + var userEventMap: UserEventMap? = null } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/OngekiFumenScore.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/OngekiFumenScore.java deleted file mode 100644 index ceedea12..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/gamedata/OngekiFumenScore.java +++ /dev/null @@ -1,17 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.gamedata; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@NoArgsConstructor -@AllArgsConstructor -public class OngekiFumenScore { - private int musicId; - private int difficultId; - private String romVersionCode; - private int score; - public int platinumScoreMax; - public int platinumScoreStar; -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/GetUserPreviewResp.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/GetUserPreviewResp.java deleted file mode 100644 index 7fe63eb8..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/response/GetUserPreviewResp.java +++ /dev/null @@ -1,42 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.response; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -public class GetUserPreviewResp { - - private long userId = 0; - @JsonProperty("isLogin") - private boolean isLogin = false; - private String lastLoginDate = null; - private String userName = ""; - private int reincarnationNum = 0; - private int level = 0; - private long exp = 0; - private long playerRating = 0; - private long newPlayerRating = 0; - private String lastGameId = ""; - private String lastRomVersion = ""; - private String lastDataVersion = ""; - private String lastPlayDate = null; - private int nameplateId = 0; - private int trophyId = 0; - private int cardId = 0; - private int dispPlayerLv = 0; - private int dispRating = 0; - private int dispBP = 0; - private int headphone = 0; - private int banStatus = 0; - @JsonProperty("isWarningConfirmed") - private boolean isWarningConfirmed = false; - private int lastEmoneyBrand = 0; - private int lastEmoneyCredit = 0; -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserData.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserData.java deleted file mode 100644 index 7dbff99f..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserData.java +++ /dev/null @@ -1,183 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import icu.samnyan.aqua.net.games.IUserData; -import icu.samnyan.aqua.sega.general.model.Card; -import icu.samnyan.aqua.sega.util.jackson.AccessCodeSerializer; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserData") -@Table(name = "ongeki_user_data") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserData implements Serializable, IUserData { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonSerialize(using = AccessCodeSerializer.class) - @JsonProperty(value = "accessCode", access = JsonProperty.Access.READ_ONLY) - @OneToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "aime_card_id", unique = true) - private Card card; - - private String userName; - - private int level; - - private int reincarnationNum; - - private long exp; - - private long point; - - private long totalPoint; - - private int playCount; - - private int jewelCount; - - private int totalJewelCount; - - private int medalCount; - - private int shizukuCount; - - private int playerRating; - - private int highestRating; - - private int newPlayerRating; - - private int newHighestRating; - - private int battlePoint; - - private int bestBattlePoint; - - private int overDamageBattlePoint; - - @JsonProperty("isDialogWatchedSuggestMemory") - private boolean isDialogWatchedSuggestMemory; - - private int nameplateId; - - private int trophyId; - - private int cardId; - - private int characterId; - - private int characterVoiceNo; - - private int tabSetting; - - private int tabSortSetting; - - private int cardCategorySetting; - - private int cardSortSetting; - - private int rivalScoreCategorySetting; - - private int playedTutorialBit; - - private int firstTutorialCancelNum; - - private long sumTechHighScore; - - private long sumTechBasicHighScore; - - private long sumTechAdvancedHighScore; - - private long sumTechExpertHighScore; - - private long sumTechMasterHighScore; - - private long sumTechLunaticHighScore; - - private long sumBattleHighScore; - - private long sumBattleBasicHighScore; - - private long sumBattleAdvancedHighScore; - - private long sumBattleExpertHighScore; - - private long sumBattleMasterHighScore; - - private long sumBattleLunaticHighScore; - - private int sumPlatinumScoreStar; - - private int sumBasicPlatinumScoreStar; - - private int sumAdvancedPlatinumScoreStar; - - private int sumExpertPlatinumScoreStar; - - private int sumMasterPlatinumScoreStar; - - private int sumLunaticPlatinumScoreStar; - - private String eventWatchedDate; - - private String cmEventWatchedDate; - - private String firstGameId; - - private String firstRomVersion; - - private String firstDataVersion; - - private String firstPlayDate; - - private String lastGameId; - - private String lastRomVersion; - - private String lastDataVersion; - - private String compatibleCmVersion; - - private String lastPlayDate; - - private int lastPlaceId; - - private String lastPlaceName; - - private int lastRegionId; - - private String lastRegionName; - - private int lastAllNetId; - - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private String lastClientId; - - private int lastUsedDeckId; - - private int lastPlayMusicLevel; - - private int lastEmoneyBrand; - - @Override - public long getTotalScore() { - return sumTechHighScore; - } -} \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserEventMap.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserEventMap.java deleted file mode 100644 index 0a841a9d..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserEventMap.java +++ /dev/null @@ -1,47 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserEventMap") -@Table(name = "ongeki_user_event_map") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserEventMap implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int eventId; - - private int mapId; - - private String mapData; - - private int totalPoint; - - private int totalUsePoint; - - public UserEventMap(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMemoryChapter.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMemoryChapter.java deleted file mode 100644 index 2ed5a1d2..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMemoryChapter.java +++ /dev/null @@ -1,66 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserMemoryChapter") -@Table(name = "ongeki_user_memory_chapter") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserMemoryChapter implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int chapterId; - - private int jewelCount; - - private int lastPlayMusicCategory; - - private int lastPlayMusicId; - - private int lastPlayMusicLevel; - - @JsonProperty("isDialogWatched") - private boolean isDialogWatched; - - @JsonProperty("isStoryWatched") - private boolean isStoryWatched; - - @JsonProperty("isBossWatched") - private boolean isBossWatched; - - @JsonProperty("isEndingWatched") - private boolean isEndingWatched; - - @JsonProperty("isClear") - private boolean isClear; - - private int gaugeId; - - private int gaugeNum; - - public UserMemoryChapter(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMusicDetail.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMusicDetail.java deleted file mode 100644 index 4496bee2..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserMusicDetail.java +++ /dev/null @@ -1,78 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import icu.samnyan.aqua.net.games.IGenericUserMusic; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserMusicDetail") -@Table(name = "ongeki_user_music_detail") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserMusicDetail implements Serializable, IGenericUserMusic { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int musicId; - - private int level; - - private int playCount; - - private int techScoreMax; - - private int techScoreRank; - - private int battleScoreMax; - - private int battleScoreRank; - - private int platinumScoreMax; - - private int platinumScoreStar; - - private int maxComboCount; - - private int maxOverKill; - - private int maxTeamOverKill; - - @JsonProperty("isFullBell") - private boolean isFullBell; - - @JsonProperty("isFullCombo") - private boolean isFullCombo; - - @JsonProperty("isAllBreake") - private boolean isAllBreake; - - @JsonProperty("isLock") - private boolean isLock; - - private int clearStatus; - - private boolean isStoryWatched; - - public UserMusicDetail(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserOption.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserOption.java deleted file mode 100644 index 94739ba4..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserOption.java +++ /dev/null @@ -1,112 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import jakarta.persistence.*; -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserOption") -@Table(name = "ongeki_user_option") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserOption implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - private int optionSet; - - private int speed; - - private int mirror; - - private int judgeTiming; - - private int judgeAdjustment; - - private int abort; - - private int stealthField; - - private int tapSound; - - private int volGuide; - - private int volAll; - - private int volTap; - - private int volCrTap; - - private int volHold; - - private int volSide; - - private int volFlick; - - private int volBell; - - private int volEnemy; - - private int volSkill; - - private int volDamage; - - private int colorField; - - private int colorLaneBright; - - private int colorWallBright; - - private int colorLane; - - private int colorSide; - - private int effectDamage; - - private int effectPos; - - private int effectAttack; - - private int judgeDisp; - - private int judgePos; - - private int judgeBreak; - - private int judgeHit; - - private int platinumBreakDisp; - - private int judgeCriticalBreak; - - private int matching; - - private int dispPlayerLv; - - private int dispRating; - - private int dispBP; - - private int headphone; - - public UserOption(UserData userData) { - this.user = userData; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserSkin.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserSkin.java deleted file mode 100644 index d0c35d51..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/userdata/UserSkin.java +++ /dev/null @@ -1,47 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.userdata; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import jakarta.persistence.*; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.io.Serializable; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Entity(name = "OngekiUserSkin") -@Table(name = "ongeki_user_skin") -@Data -@NoArgsConstructor -@AllArgsConstructor -public class UserSkin implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @JsonIgnore - private long id; - - @JsonIgnore - @ManyToOne - @JoinColumn(name = "user_id") - private UserData user; - - //TODO: should be updated on net when changing skin - private boolean isValid; - - private int deckId; - - private int cardId1; - - private int cardId2; - - private int cardId3; - - public UserSkin(UserData userData) { - this.user = userData; - } -} From 654cda736dd5f99bf5b793616a4241aad9bce541 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 21:45:13 -0400 Subject: [PATCH 25/39] [O] Ongeki: User unpaged apis --- .../samnyan/aqua/sega/general/BaseHandler.kt | 18 +++ .../samnyan/aqua/sega/maimai2/Maimai2Apis.kt | 9 -- .../samnyan/aqua/sega/ongeki/OngekiApis.kt | 10 ++ .../aqua/sega/ongeki/OngekiUserApis.kt | 62 +++++++++ .../ongeki/controller/OngekiController.java | 126 ------------------ .../impl/GetClientBookkeepingHandler.java | 46 ------- .../impl/GetClientTestmodeHandler.java | 46 ------- .../handler/impl/GetUserActivityHandler.java | 64 --------- .../handler/impl/GetUserBossHandler.java | 52 -------- .../handler/impl/GetUserBpBaseHandler.java | 46 ------- .../handler/impl/GetUserCardHandler.java | 60 --------- .../handler/impl/GetUserChapterHandler.java | 51 ------- .../handler/impl/GetUserCharacterHandler.java | 60 --------- .../handler/impl/GetUserDataHandler.java | 55 -------- .../handler/impl/GetUserDeckByKeyHandler.java | 52 -------- .../handler/impl/GetUserEventMapHandler.java | 51 ------- .../impl/GetUserEventMusicHandler.java | 51 ------- .../impl/GetUserEventPointHandler.java | 52 -------- .../impl/GetUserEventRankingHandler.java | 65 --------- .../impl/GetUserLoginBonusHandler.java | 52 -------- .../impl/GetUserMemoryChapterHandler.java | 51 ------- .../impl/GetUserMissionPointHandler.java | 52 -------- .../handler/impl/GetUserMusicItemHandler.java | 60 --------- .../handler/impl/GetUserOptionHandler.java | 56 -------- .../handler/impl/GetUserTechEventHandler.java | 51 ------- .../impl/GetUserTechEventRankingHandler.java | 66 --------- .../aqua/sega/ongeki/model/OngekiResponse.kt | 16 --- 27 files changed, 90 insertions(+), 1290 deletions(-) create mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientBookkeepingHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientTestmodeHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBpBaseHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMapHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java diff --git a/src/main/java/icu/samnyan/aqua/sega/general/BaseHandler.kt b/src/main/java/icu/samnyan/aqua/sega/general/BaseHandler.kt index 0a11905a..8459652b 100644 --- a/src/main/java/icu/samnyan/aqua/sega/general/BaseHandler.kt +++ b/src/main/java/icu/samnyan/aqua/sega/general/BaseHandler.kt @@ -25,6 +25,7 @@ typealias SpecialHandler = RequestContext.() -> Any? fun BaseHandler.toSpecial() = { ctx: RequestContext -> handle(ctx.data) } typealias PagedHandler = RequestContext.() -> List +typealias PagedExtraHandler = RequestContext.() -> Pair, JDict> typealias AddFn = RequestContext.() -> PagedProcessor typealias PagePost = (MutJDict) -> Unit data class PagedProcessor(val add: JDict?, val fn: PagedHandler, var post: PagePost? = null) @@ -75,4 +76,21 @@ abstract class MeowApi(val serialize: (String, Any) -> String) { val minTime = millis() - (1000 * 60) pageCache.entries.removeIf { it.value.l < minTime } } + + // Used because maimai and ongeki does not actually require paging implementation + fun String.unpaged(key: String? = null, fn: PagedHandler) { + val k = key ?: (this.replace("Get", "").firstCharLower() + "List") + this { + val l = fn(this) + mapOf("userId" to uid, "nextIndex" to 0, "length" to l.size, k to l) + } + } + + fun String.unpagedExtra(key: String? = null, fn: PagedExtraHandler) { + val k = key ?: (this.replace("Get", "").firstCharLower() + "List") + this { + val (l, e) = fn(this) + mapOf("userId" to uid, "nextIndex" to 0, "length" to l.size, k to l) + e + } + } } diff --git a/src/main/java/icu/samnyan/aqua/sega/maimai2/Maimai2Apis.kt b/src/main/java/icu/samnyan/aqua/sega/maimai2/Maimai2Apis.kt index 8eaa8b24..c594e19f 100644 --- a/src/main/java/icu/samnyan/aqua/sega/maimai2/Maimai2Apis.kt +++ b/src/main/java/icu/samnyan/aqua/sega/maimai2/Maimai2Apis.kt @@ -3,21 +3,12 @@ package icu.samnyan.aqua.sega.maimai2 import ext.* -import icu.samnyan.aqua.sega.general.PagedHandler import icu.samnyan.aqua.sega.maimai2.model.UserRivalMusic import icu.samnyan.aqua.sega.maimai2.model.UserRivalMusicDetail import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserKaleidx import java.time.LocalDate fun Maimai2ServletController.initApis() { - // Used because maimai does not actually require paging implementation - fun String.unpaged(key: String? = null, fn: PagedHandler) { - val k = key ?: (this.replace("Get", "").firstCharLower() + "List") - this { - fn(this).let { mapOf("userId" to uid, "nextIndex" to 0, "length" to it.size, k to it) } - } - } - "GetUserExtend" { mapOf( "userId" to uid, "userExtend" to (db.userExtend.findSingleByUser_Card_ExtId(uid)() ?: (404 - "User not found")) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt index 2a579031..0836cdc3 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt @@ -9,6 +9,8 @@ import icu.samnyan.aqua.sega.ongeki.model.GameEventItem fun OngekiController.ongekiInit() { fun List.staticLst(key: String) = mapOf("length" to size, key to this) + initUser() + // Has type, but type is always 1 "GetGameEvent".static { gdb.event.findAll().map { GameEventItem(it.id, 1, "2005-01-01 00:00:00.0", "2099-01-01 05:00:00.0") } @@ -58,4 +60,12 @@ fun OngekiController.ongekiInit() { ) ) } + + "GetClientBookkeeping" { + empty.staticLst("clientBookkeepingList") + mapOf("placeId" to data["placeId"]) + } + + "GetClientTestmode" { + empty.staticLst("clientTestmodeList") + mapOf("placeId" to data["placeId"]) + } } \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt new file mode 100644 index 00000000..7834c93c --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt @@ -0,0 +1,62 @@ +package icu.samnyan.aqua.sega.ongeki + +import ext.empty +import ext.int +import ext.invoke +import ext.parsing +import java.time.LocalDateTime +import java.time.format.DateTimeFormatter + + +fun OngekiController.initUser() { + "GetUserData" { mapOf("userId" to uid, "userData" to db.data.findByCard_ExtId(uid)()) } + "GetUserOption" { mapOf("userId" to uid, "userOption" to db.option.findSingleByUser_Card_ExtId(uid)()) } + "GetUserEventMap" { mapOf("userId" to uid, "userEventMap" to db.eventMap.findSingleByUser_Card_ExtId(uid)()) } + + "GetUserTechEvent".unpaged { db.techEvent.findByUser_Card_ExtId(uid) } + "GetUserBoss".unpaged { db.boss.findByUser_Card_ExtId(uid) } + "GetUserCard".unpaged { db.card.findByUser_Card_ExtId(uid) } + "GetUserChapter".unpaged { db.chapter.findByUser_Card_ExtId(uid) } + "GetUserMemoryChapter".unpaged { db.memoryChapter.findByUser_Card_ExtId(uid) } + "GetUserCharacter".unpaged { db.character.findByUser_Card_ExtId(uid) } + "GetUserDeckByKey".unpaged { db.deck.findByUser_Card_ExtId(uid) } + "GetUserEventMusic".unpaged { db.eventMusic.findByUser_Card_ExtId(uid) } + "GetUserEventPoint".unpaged { db.eventPoint.findByUser_Card_ExtId(uid) } + "GetUserLoginBonus".unpaged { db.loginBonus.findByUser_Card_ExtId(uid) } + "GetUserMissionPoint".unpaged { db.missionPoint.findByUser_Card_ExtId(uid) } + "GetUserMusicItem".unpaged { db.musicItem.findByUser_Card_ExtId(uid) } + + val dtPattern = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.0") + + "GetUserTechEventRanking".unpaged { + val time = LocalDateTime.now().format(dtPattern) + + db.techEvent.findByUser_Card_ExtId(uid).map { mapOf( + "eventId" to it.eventId, + "date" to time, + "rank" to 1, + "totalTechScore" to it.totalTechScore, + "totalPlatinumScore" to it.totalPlatinumScore + ) } + } + + "GetUserEventRanking".unpaged { + val time = LocalDateTime.now().format(dtPattern) + + db.eventPoint.findByUser_Card_ExtId(uid).map { mapOf( + "eventId" to it.eventId, + "type" to 1, // Latest ranking + "date" to time, + "rank" to db.eventPoint.calculateRankByUserAndEventId(uid, it.eventId), + "point" to it.point + ) } + } + + "GetUserActivity".unpagedExtra { + val kind = parsing { data["kind"]!!.int } + db.activity.findByUser_Card_ExtIdAndKindOrderBySortNumberDesc(uid, kind) + .take(if (kind == 1) 15 else 10) to mapOf("kind" to kind) + } + + "GetUserBpBase".unpaged { empty } +} \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java index 64b8dbaf..40877258 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java @@ -18,25 +18,8 @@ import java.util.Map; @RequestMapping("/g/ongeki") @AllArgsConstructor public class OngekiController { - private final GetUserActivityHandler getUserActivityHandler; - private final GetUserBossHandler getUserBossHandler; - private final GetUserBpBaseHandler getUserBpBaseHandler; - private final GetUserCardHandler getUserCardHandler; - private final GetUserChapterHandler getUserChapterHandler; - private final GetUserMemoryChapterHandler getUserMemoryChapterHandler; - private final GetUserCharacterHandler getUserCharacterHandler; - private final GetUserDataHandler getUserDataHandler; - private final GetUserDeckByKeyHandler getUserDeckByKeyHandler; - private final GetUserEventMapHandler getUserEventMapHandler; - private final GetUserEventPointHandler getUserEventPointHandler; - private final GetUserEventRankingHandler getUserEventRankingHandler; - private final GetUserEventMusicHandler getUserEventMusicHandler; private final GetUserItemHandler getUserItemHandler; - private final GetUserLoginBonusHandler getUserLoginBonusHandler; - private final GetUserMissionPointHandler getUserMissionPointHandler; private final GetUserMusicHandler getUserMusicHandler; - private final GetUserMusicItemHandler getUserMusicItemHandler; - private final GetUserOptionHandler getUserOptionHandler; private final GetUserPreviewHandler getUserPreviewHandler; private final GetUserRatinglogListHandler getUserRatinglogListHandler; private final GetUserRecentRatingHandler getUserRecentRatingHandler; @@ -48,125 +31,26 @@ public class OngekiController { private final GetUserSkinHandler getUserSkinHandler; private final GetUserStoryHandler getUserStoryHandler; private final GetUserTechCountHandler getUserTechCountHandler; - private final GetUserTechEventHandler getUserTechEventHandler; - private final GetUserTechEventRankingHandler getUserTechEventRankingHandler; private final GetUserTradeItemHandler getUserTradeItemHandler; private final GetUserTrainingRoomByKeyHandler getUserTrainingRoomByKeyHandler; private final GetUserKopHandler getUserKopHandler; private final UpsertUserAllHandler upsertUserAllHandler; - private final GetClientBookkeepingHandler getClientBookkeepingHandler; - private final GetClientTestmodeHandler getClientTestmodeHandler; - - @PostMapping("GetUserTechEventApi") - public String getUserTechEvent(@ModelAttribute Map request) throws JsonProcessingException { - return getUserTechEventHandler.handle(request); - } - - @PostMapping("GetUserTechEventRankingApi") - public String getUserTechEventRanking(@ModelAttribute Map request) throws JsonProcessingException { - return getUserTechEventRankingHandler.handle(request); - } - - @PostMapping("GetUserActivityApi") - public String getUserActivity(@ModelAttribute Map request) throws JsonProcessingException { - return getUserActivityHandler.handle(request); - } - - @PostMapping("GetUserBossApi") - public String getUserBoss(@ModelAttribute Map request) throws JsonProcessingException { - return getUserBossHandler.handle(request); - } - - @PostMapping("GetUserBpBaseApi") - public String getUserBpBase(@ModelAttribute Map request) throws JsonProcessingException { - return getUserBpBaseHandler.handle(request); - } - - @PostMapping("GetUserCardApi") - public String getUserCard(@ModelAttribute Map request) throws JsonProcessingException { - return getUserCardHandler.handle(request); - } - - @PostMapping("GetUserChapterApi") - public String getUserChapter(@ModelAttribute Map request) throws JsonProcessingException { - return getUserChapterHandler.handle(request); - } - - @PostMapping("GetUserMemoryChapterApi") - public String getUserMemoryChapter(@ModelAttribute Map request) throws JsonProcessingException { - return getUserMemoryChapterHandler.handle(request); - } - - @PostMapping("GetUserCharacterApi") - public String getUserCharacter(@ModelAttribute Map request) throws JsonProcessingException { - return getUserCharacterHandler.handle(request); - } - - @PostMapping("GetUserDataApi") - public String getUserData(@ModelAttribute Map request) throws JsonProcessingException { - return getUserDataHandler.handle(request); - } - - @PostMapping("GetUserDeckByKeyApi") - public String getUserDeckByKey(@ModelAttribute Map request) throws JsonProcessingException { - return getUserDeckByKeyHandler.handle(request); - } - - @PostMapping("GetUserEventMapApi") - public String getUserEventMap(@ModelAttribute Map request) throws JsonProcessingException { - return getUserEventMapHandler.handle(request); - } - - @PostMapping("GetUserEventPointApi") - public String getUserEventPoint(@ModelAttribute Map request) throws JsonProcessingException { - return getUserEventPointHandler.handle(request); - } - - @PostMapping("GetUserEventMusicApi") - public String getUserEventMusic(@ModelAttribute Map request) throws JsonProcessingException { - return getUserEventMusicHandler.handle(request); - } @PostMapping("GetUserTradeItemApi") public String getUserTradeItem(@ModelAttribute Map request) throws JsonProcessingException { return getUserTradeItemHandler.handle(request); } - @PostMapping("GetUserEventRankingApi") - public String getUserEventRanking(@ModelAttribute Map request) throws JsonProcessingException { - return getUserEventRankingHandler.handle(request); - } - @PostMapping("GetUserItemApi") public String getUserItem(@ModelAttribute Map request) throws JsonProcessingException { return getUserItemHandler.handle(request); } - @PostMapping("GetUserLoginBonusApi") - public String getUserLoginBonus(@ModelAttribute Map request) throws JsonProcessingException { - return getUserLoginBonusHandler.handle(request); - } - - @PostMapping("GetUserMissionPointApi") - public String getUserMissionPoint(@ModelAttribute Map request) throws JsonProcessingException { - return getUserMissionPointHandler.handle(request); - } - @PostMapping("GetUserMusicApi") public String getUserMusic(@ModelAttribute Map request) throws JsonProcessingException { return getUserMusicHandler.handle(request); } - @PostMapping("GetUserMusicItemApi") - public String getUserMusicItem(@ModelAttribute Map request) throws JsonProcessingException { - return getUserMusicItemHandler.handle(request); - } - - @PostMapping("GetUserOptionApi") - public String getUserOption(@ModelAttribute Map request) throws JsonProcessingException { - return getUserOptionHandler.handle(request); - } - @PostMapping("GetUserPreviewApi") public String getUserPreview(@ModelAttribute Map request) throws JsonProcessingException { return getUserPreviewHandler.handle(request); @@ -232,16 +116,6 @@ public class OngekiController { return getUserKopHandler.handle(request); } - @PostMapping("GetClientBookkeepingApi") - public String getClientBookkeeping(@ModelAttribute Map request) throws JsonProcessingException { - return getClientBookkeepingHandler.handle(request); - } - - @PostMapping("GetClientTestmodeApi") - public String getClientTestmode(@ModelAttribute Map request) throws JsonProcessingException { - return getClientTestmodeHandler.handle(request); - } - @PostMapping("UpsertUserAllApi") public String upsertUserAll(@ModelAttribute Map request) throws JsonProcessingException { return upsertUserAllHandler.handle(request); diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientBookkeepingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientBookkeepingHandler.java deleted file mode 100644 index 177cba81..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientBookkeepingHandler.java +++ /dev/null @@ -1,46 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; - -import icu.samnyan.aqua.sega.ongeki.OgkUserKopRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetClientBookkeepingHandler") -public class GetClientBookkeepingHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetClientBookkeepingHandler.class); - - private final BasicMapper mapper; - - @Autowired - public GetClientBookkeepingHandler(BasicMapper mapper, OgkUserKopRepo userKopRepository) { - this.mapper = mapper; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - long placeId = ((Number) request.get("placeId")).longValue(); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("placeId", placeId); - resultMap.put("length", 0); - resultMap.put("clientBookkeepingList", List.of()); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientTestmodeHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientTestmodeHandler.java deleted file mode 100644 index f7da6573..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetClientTestmodeHandler.java +++ /dev/null @@ -1,46 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; - -import icu.samnyan.aqua.sega.ongeki.OgkUserKopRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetClientTestmodeHandler") -public class GetClientTestmodeHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetClientTestmodeHandler.class); - - private final BasicMapper mapper; - - @Autowired - public GetClientTestmodeHandler(BasicMapper mapper, OgkUserKopRepo userKopRepository) { - this.mapper = mapper; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - long placeId = ((Number) request.get("placeId")).longValue(); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("placeId", placeId); - resultMap.put("length", 0); - resultMap.put("clientTestmodeList", List.of()); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java deleted file mode 100644 index b6435b46..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserActivityHandler.java +++ /dev/null @@ -1,64 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserActivityRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserActivity; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserActivityHandler") -public class GetUserActivityHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserActivityHandler.class); - - private final BasicMapper mapper; - - private final OgkUserActivityRepo userActivityRepository; - - @Autowired - public GetUserActivityHandler(BasicMapper mapper, OgkUserActivityRepo userActivityRepository) { - this.mapper = mapper; - this.userActivityRepository = userActivityRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - Integer kind = (Integer) request.get("kind"); - - List activityList = userActivityRepository.findByUser_Card_ExtIdAndKindOrderBySortNumberDesc(userId,kind); - - // Game crash workaround. Ported from minime @ Felix, commit 7efa1d7fd8d6b31cfba5f1755bf7bf3b9bc7aeb0 - if (kind == 1) { - // PlayActivity: 15 - activityList = new ArrayList<>(activityList.subList(0, activityList.size() < 15 ? activityList.size() : 15)); - } else if (kind == 2) { - // Music: 10 - activityList = new ArrayList<>(activityList.subList(0, activityList.size() < 10 ? activityList.size() : 10)); - } - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", activityList.size()); - resultMap.put("kind", kind); - resultMap.put("userActivityList", activityList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java deleted file mode 100644 index fba064d1..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBossHandler.java +++ /dev/null @@ -1,52 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserBossRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserBoss; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserBossHandler") -public class GetUserBossHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserBossHandler.class); - - private final BasicMapper mapper; - - private final OgkUserBossRepo userBossRepository; - - @Autowired - public GetUserBossHandler(BasicMapper mapper, OgkUserBossRepo userBossRepository) { - this.mapper = mapper; - this.userBossRepository = userBossRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - List userBossList = userBossRepository.findByUser_Card_ExtId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", userBossList.size()); - resultMap.put("userBossList", userBossList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBpBaseHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBpBaseHandler.java deleted file mode 100644 index 9706b104..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserBpBaseHandler.java +++ /dev/null @@ -1,46 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * The game doesn't use this request. It will calculate from the music detail request. - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserBpBaseHandler") -public class GetUserBpBaseHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserBpBaseHandler.class); - - private final BasicMapper mapper; - - @Autowired - public GetUserBpBaseHandler(BasicMapper mapper) { - this.mapper = mapper; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", 0); - resultMap.put("userBpBaseList", new List[]{}); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java deleted file mode 100644 index b565e700..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCardHandler.java +++ /dev/null @@ -1,60 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserCardRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserCard; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserCardHandler") -public class GetUserCardHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserCardHandler.class); - - private final BasicMapper mapper; - - private final OgkUserCardRepo userCardRepository; - - @Autowired - public GetUserCardHandler(BasicMapper mapper, OgkUserCardRepo userCardRepository) { - this.mapper = mapper; - this.userCardRepository = userCardRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - Integer maxCount = (Integer) request.get("maxCount"); - Integer nextIndex = (Integer) request.get("nextIndex"); - - int pageNum = nextIndex / maxCount; - - Page dbPage = userCardRepository.findByUser_Card_ExtId(userId, PageRequest.of(pageNum, maxCount)); - - long currentIndex = maxCount * pageNum + dbPage.getNumberOfElements(); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", dbPage.getNumberOfElements()); - resultMap.put("nextIndex", dbPage.getNumberOfElements() < maxCount ? -1 : currentIndex); - resultMap.put("userCardList", dbPage.getContent()); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java deleted file mode 100644 index 5d146f43..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserChapterHandler.java +++ /dev/null @@ -1,51 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserChapterRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserChapter; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserChapterHandler") -public class GetUserChapterHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserChapterHandler.class); - - private final BasicMapper mapper; - - private final OgkUserChapterRepo userChapterRepository; - - @Autowired - public GetUserChapterHandler(BasicMapper mapper, OgkUserChapterRepo userChapterRepository) { - this.mapper = mapper; - this.userChapterRepository = userChapterRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - List chapterList = userChapterRepository.findByUser_Card_ExtId(userId); - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", chapterList.size()); - resultMap.put("userChapterList", chapterList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java deleted file mode 100644 index f3e980fe..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserCharacterHandler.java +++ /dev/null @@ -1,60 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserCharacterRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserCharacter; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserCharacterHandler") -public class GetUserCharacterHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserCharacterHandler.class); - - private final BasicMapper mapper; - - private final OgkUserCharacterRepo userCharacterRepository; - - @Autowired - public GetUserCharacterHandler(BasicMapper mapper, OgkUserCharacterRepo userCharacterRepository) { - this.mapper = mapper; - this.userCharacterRepository = userCharacterRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - Integer maxCount = (Integer) request.get("maxCount"); - Integer nextIndex = (Integer) request.get("nextIndex"); - - int pageNum = nextIndex / maxCount; - - Page dbPage = userCharacterRepository.findByUser_Card_ExtId(userId, PageRequest.of(pageNum, maxCount)); - - long currentIndex = maxCount * pageNum + dbPage.getNumberOfElements(); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", dbPage.getNumberOfElements()); - resultMap.put("nextIndex", dbPage.getNumberOfElements() < maxCount ? -1 : currentIndex); - resultMap.put("userCharacterList", dbPage.getContent()); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java deleted file mode 100644 index 4c24125a..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDataHandler.java +++ /dev/null @@ -1,55 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserData; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserDataHandler") -public class GetUserDataHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserDataHandler.class); - - private final BasicMapper mapper; - - private final OgkUserDataRepo userDataRepository; - - @Autowired - public GetUserDataHandler(BasicMapper mapper, OgkUserDataRepo userDataRepository) { - this.mapper = mapper; - this.userDataRepository = userDataRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - Optional userDataOptional = userDataRepository.findByCard_ExtId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - if(userDataOptional.isPresent()) { - resultMap.put("userData", userDataOptional.get()); - } else { - resultMap.put("userData",null); - } - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java deleted file mode 100644 index e3b54764..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserDeckByKeyHandler.java +++ /dev/null @@ -1,52 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserDeckRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserDeck; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserDeckByKeyHandler") -public class GetUserDeckByKeyHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserDeckByKeyHandler.class); - - private final BasicMapper mapper; - - private final OgkUserDeckRepo userDeckRepository; - - @Autowired - public GetUserDeckByKeyHandler(BasicMapper mapper, OgkUserDeckRepo userDeckRepository) { - this.mapper = mapper; - this.userDeckRepository = userDeckRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - List deckList = userDeckRepository.findByUser_Card_ExtId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", deckList.size()); - resultMap.put("userDeckList", deckList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMapHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMapHandler.java deleted file mode 100644 index 467a2387..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMapHandler.java +++ /dev/null @@ -1,51 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.OgkUserEventMapRepo; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserEventMapHandler") -public class GetUserEventMapHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserEventMapHandler.class); - - private final BasicMapper mapper; - - private final OgkUserEventMapRepo userEventMapRepository; - - @Autowired - public GetUserEventMapHandler(BasicMapper mapper, OgkUserEventMapRepo userEventMapRepository) { - this.mapper = mapper; - this.userEventMapRepository = userEventMapRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - var eventMapOptional = userEventMapRepository.findByUser_Card_ExtId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - if(eventMapOptional.isPresent()) { - resultMap.put("userEventMap", eventMapOptional.get()); - } else { - resultMap.put("userEventMap", null); - } - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java deleted file mode 100644 index 4259a460..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventMusicHandler.java +++ /dev/null @@ -1,51 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; - -import icu.samnyan.aqua.sega.ongeki.OgkUserEventMusicRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserEventMusic; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserEventMusicHandler") -public class GetUserEventMusicHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserEventMusicHandler.class); - - private final BasicMapper mapper; - - private final OgkUserEventMusicRepo userEventMusicRepository; - - @Autowired - public GetUserEventMusicHandler(BasicMapper mapper, OgkUserEventMusicRepo userEventMusicRepository) { - this.mapper = mapper; - this.userEventMusicRepository = userEventMusicRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - List eventMusicList = userEventMusicRepository.findByUser_Card_ExtId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", eventMusicList.size()); - resultMap.put("userEventMusicList", eventMusicList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java deleted file mode 100644 index e79ff890..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventPointHandler.java +++ /dev/null @@ -1,52 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserEventPointRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserEventPoint; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserEventPointHandler") -public class GetUserEventPointHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserEventPointHandler.class); - - private final BasicMapper mapper; - - private final OgkUserEventPointRepo userEventPointRepository; - - @Autowired - public GetUserEventPointHandler(BasicMapper mapper, OgkUserEventPointRepo userEventPointRepository) { - this.mapper = mapper; - this.userEventPointRepository = userEventPointRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - List eventPointList = userEventPointRepository.findByUser_Card_ExtId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", eventPointList.size()); - resultMap.put("userEventPointList", eventPointList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java deleted file mode 100644 index 17d92136..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserEventRankingHandler.java +++ /dev/null @@ -1,65 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserEventPointRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserEventRankingItem; -import icu.samnyan.aqua.sega.ongeki.model.UserEventPoint; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.LinkedHashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserEventRankingHandler") -public class GetUserEventRankingHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserEventRankingHandler.class); - - private final BasicMapper mapper; - - private final OgkUserEventPointRepo userEventPointRepository; - - @Autowired - public GetUserEventRankingHandler(BasicMapper mapper, OgkUserEventPointRepo userEventPointRepository) { - this.mapper = mapper; - this.userEventPointRepository = userEventPointRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.0")); - - List eventPointList = userEventPointRepository.findByUser_Card_ExtId(userId); - List rankingItemList = new LinkedList<>(); - eventPointList.forEach(x -> rankingItemList.add(new UserEventRankingItem( - x.getEventId(), - 1, // Type 1 is latest ranking - time, - userEventPointRepository.calculateRankByUserAndEventId(x.getUser().getId(), x.getEventId()), - x.getPoint() - ))); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", rankingItemList.size()); - resultMap.put("userEventRankingList", rankingItemList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java deleted file mode 100644 index 569234c6..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserLoginBonusHandler.java +++ /dev/null @@ -1,52 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserLoginBonusRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserLoginBonus; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserLoginBonusHandler") -public class GetUserLoginBonusHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserLoginBonusHandler.class); - - private final BasicMapper mapper; - - private final OgkUserLoginBonusRepo userLoginBonusRepository; - - @Autowired - public GetUserLoginBonusHandler(BasicMapper mapper, OgkUserLoginBonusRepo userLoginBonusRepository) { - this.mapper = mapper; - this.userLoginBonusRepository = userLoginBonusRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - List loginBonusList = userLoginBonusRepository.findByUser_Card_ExtId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", loginBonusList.size()); - resultMap.put("userLoginBonusList", loginBonusList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java deleted file mode 100644 index 72867288..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMemoryChapterHandler.java +++ /dev/null @@ -1,51 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserMemoryChapterRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserMemoryChapter; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserMemoryChapterHandler") -public class GetUserMemoryChapterHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserMemoryChapterHandler.class); - - private final BasicMapper mapper; - - private final OgkUserMemoryChapterRepo userMemoryChapterRepository; - - @Autowired - public GetUserMemoryChapterHandler(BasicMapper mapper, OgkUserMemoryChapterRepo userMemoryChapterRepository) { - this.mapper = mapper; - this.userMemoryChapterRepository = userMemoryChapterRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - List MemoryChapterList = userMemoryChapterRepository.findByUser_Card_ExtId(userId); - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", MemoryChapterList.size()); - resultMap.put("userMemoryChapterList", MemoryChapterList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java deleted file mode 100644 index d74d2888..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMissionPointHandler.java +++ /dev/null @@ -1,52 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserMissionPointRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserMissionPoint; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserMissionPointHandler") -public class GetUserMissionPointHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserMissionPointHandler.class); - - private final BasicMapper mapper; - - private final OgkUserMissionPointRepo userMissionPointRepository; - - @Autowired - public GetUserMissionPointHandler(BasicMapper mapper, OgkUserMissionPointRepo userMissionPointRepository) { - this.mapper = mapper; - this.userMissionPointRepository = userMissionPointRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - List missionPointList = userMissionPointRepository.findByUser_Card_ExtId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", missionPointList.size()); - resultMap.put("userMissionPointList", missionPointList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java deleted file mode 100644 index 0c1635a4..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicItemHandler.java +++ /dev/null @@ -1,60 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserMusicItemRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserMusicItem; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserMusicItemHandler") -public class GetUserMusicItemHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserMusicItemHandler.class); - - private final BasicMapper mapper; - - private final OgkUserMusicItemRepo userMusicItemRepository; - - @Autowired - public GetUserMusicItemHandler(BasicMapper mapper, OgkUserMusicItemRepo userMusicItemRepository) { - this.mapper = mapper; - this.userMusicItemRepository = userMusicItemRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - Integer maxCount = (Integer) request.get("maxCount"); - Integer nextIndex = (Integer) request.get("nextIndex"); - - int pageNum = nextIndex / maxCount; - - Page dbPage = userMusicItemRepository.findByUser_Card_ExtId(userId, PageRequest.of(pageNum, maxCount)); - - long currentIndex = maxCount * pageNum + dbPage.getNumberOfElements(); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", dbPage.getNumberOfElements()); - resultMap.put("nextIndex", dbPage.getNumberOfElements() < maxCount ? -1 : currentIndex); - resultMap.put("userMusicItemList", dbPage.getContent()); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java deleted file mode 100644 index 78604d5e..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserOptionHandler.java +++ /dev/null @@ -1,56 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserOptionRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserOption; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Optional; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserOptionHandler") -public class GetUserOptionHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserOptionHandler.class); - - private final BasicMapper mapper; - - private final OgkUserOptionRepo userOptionRepository; - - @Autowired - public GetUserOptionHandler(BasicMapper mapper, OgkUserOptionRepo userOptionRepository) { - this.mapper = mapper; - this.userOptionRepository = userOptionRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - Optional userOptionOptional = userOptionRepository.findSingleByUser_Card_ExtId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - if(userOptionOptional.isPresent()) { - resultMap.put("userOption", userOptionOptional.get()); - } else { - resultMap.put("userOption", null); - } - - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java deleted file mode 100644 index 76c70e5e..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventHandler.java +++ /dev/null @@ -1,51 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; - -import icu.samnyan.aqua.sega.ongeki.OgkUserTechEventRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserTechEvent; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserTechEventHandler") -public class GetUserTechEventHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserTechEventHandler.class); - - private final BasicMapper mapper; - - private final OgkUserTechEventRepo userTechEventRepository; - - @Autowired - public GetUserTechEventHandler(BasicMapper mapper, OgkUserTechEventRepo userTechEventRepository) { - this.mapper = mapper; - this.userTechEventRepository = userTechEventRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - List techEventList = userTechEventRepository.findByUser_Card_ExtId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", techEventList.size()); - resultMap.put("userTechEventList", techEventList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java deleted file mode 100644 index 93914bf8..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechEventRankingHandler.java +++ /dev/null @@ -1,66 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; - -import icu.samnyan.aqua.sega.ongeki.OgkUserTechEventRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserTechEventRankingItem; -import icu.samnyan.aqua.sega.ongeki.model.UserTechEvent; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserTechEventRankingHandler") -public class GetUserTechEventRankingHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserTechEventRankingHandler.class); - - private final BasicMapper mapper; - - private final OgkUserTechEventRepo userTechEventRepository; - - @Autowired - public GetUserTechEventRankingHandler(BasicMapper mapper, OgkUserTechEventRepo userTechEventRepository) { - this.mapper = mapper; - this.userTechEventRepository = userTechEventRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.0")); - - List techEventList = userTechEventRepository.findByUser_Card_ExtId(userId); - List techEventRankingList = new ArrayList<>(); - techEventList.forEach(x -> techEventRankingList.add(new UserTechEventRankingItem( - x.getEventId(), - time, - 1, - x.getTotalTechScore(), - x.getTotalPlatinumScore() - ))); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", techEventRankingList.size()); - resultMap.put("userTechEventRankingList", techEventRankingList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt index ccec8800..9c5ae010 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt @@ -64,14 +64,6 @@ class GameRankingItem( var userName: String = "", ) -class UserEventRankingItem( - var eventId: Int = 0, - var type: Int = 0, - var date: String = "", - var rank: Int = 0, - var point: Long = 0, -) - class UserMusicListItem( var length: Int = 0, var userMusicDetailList: List? = null, @@ -86,11 +78,3 @@ class UserRivalMusic( var userRivalMusicDetailList: List? = null, var length: Int = 0, ) - -class UserTechEventRankingItem( - var eventId: Int = 0, - var date: String = "", - var rank: Int = 0, - var totalTechScore: Int = 0, - var totalPlatinumScore: Int = 0, -) From 95286bae1c900381e87efbc6064e95aa7ea2a493 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Wed, 26 Mar 2025 22:19:49 -0400 Subject: [PATCH 26/39] [O] Ongeki: Transform user list endpoints --- .../aqua/sega/ongeki/OngekiUserApis.kt | 16 ++++++ .../ongeki/controller/OngekiController.java | 54 ------------------- .../impl/GetUserRatinglogListHandler.java | 45 ---------------- .../handler/impl/GetUserRegionHandler.java | 46 ---------------- .../handler/impl/GetUserRivalHandler.java | 47 ---------------- .../handler/impl/GetUserScenarioHandler.java | 52 ------------------ .../handler/impl/GetUserSkinHandler.java | 51 ------------------ .../handler/impl/GetUserStoryHandler.java | 52 ------------------ .../handler/impl/GetUserTechCountHandler.java | 52 ------------------ .../handler/impl/GetUserTradeItemHandler.java | 54 ------------------- .../impl/GetUserTrainingRoomByKeyHandler.java | 52 ------------------ 11 files changed, 16 insertions(+), 505 deletions(-) delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRatinglogListHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRegionHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserSkinHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt index 7834c93c..4f94bee6 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt @@ -10,6 +10,7 @@ import java.time.format.DateTimeFormatter fun OngekiController.initUser() { "GetUserData" { mapOf("userId" to uid, "userData" to db.data.findByCard_ExtId(uid)()) } + "GetUserOption" { mapOf("userId" to uid, "userOption" to db.option.findSingleByUser_Card_ExtId(uid)()) } "GetUserEventMap" { mapOf("userId" to uid, "userEventMap" to db.eventMap.findSingleByUser_Card_ExtId(uid)()) } @@ -25,6 +26,19 @@ fun OngekiController.initUser() { "GetUserLoginBonus".unpaged { db.loginBonus.findByUser_Card_ExtId(uid) } "GetUserMissionPoint".unpaged { db.missionPoint.findByUser_Card_ExtId(uid) } "GetUserMusicItem".unpaged { db.musicItem.findByUser_Card_ExtId(uid) } + "GetUserRival".unpaged { db.rivalData.findByUser_Card_ExtId(uid) } + "GetUserScenario".unpaged { db.scenario.findByUser_Card_ExtId(uid) } + "GetUserSkin".unpaged { db.skin.findByUser_Card_ExtId(uid) } + "GetUserStory".unpaged { db.story.findByUser_Card_ExtId(uid) } + "GetUserTechCount".unpaged { db.techCount.findByUser_Card_ExtId(uid) } + "GetUserTrainingRoomByKey".unpaged("userTrainingRoomList") { db.trainingRoom.findByUser_Card_ExtId(uid) } + + "GetUserTradeItem".unpaged { + val start = parsing { data["startChapterId"]!!.int } + val end = parsing { data["endChapterId"]!!.int } + + db.tradeItem.findByUser_Card_ExtIdAndChapterIdGreaterThanEqualAndChapterIdLessThanEqual(uid, start, end) + } val dtPattern = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.0") @@ -59,4 +73,6 @@ fun OngekiController.initUser() { } "GetUserBpBase".unpaged { empty } + "GetUserRatinglog".unpaged { empty } + "GetUserRegion".unpaged { empty } } \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java index 40877258..df1eea4b 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java @@ -21,26 +21,12 @@ public class OngekiController { private final GetUserItemHandler getUserItemHandler; private final GetUserMusicHandler getUserMusicHandler; private final GetUserPreviewHandler getUserPreviewHandler; - private final GetUserRatinglogListHandler getUserRatinglogListHandler; private final GetUserRecentRatingHandler getUserRecentRatingHandler; - private final GetUserRegionHandler getUserRegionHandler; - private final GetUserRivalHandler getUserRivalHandler; private final GetUserRivalMusicHandler getUserRivalMusicHandler; private final GetUserRivalDataHandler getUserRivalDataHandler; - private final GetUserScenarioHandler getUserScenarioHandler; - private final GetUserSkinHandler getUserSkinHandler; - private final GetUserStoryHandler getUserStoryHandler; - private final GetUserTechCountHandler getUserTechCountHandler; - private final GetUserTradeItemHandler getUserTradeItemHandler; - private final GetUserTrainingRoomByKeyHandler getUserTrainingRoomByKeyHandler; private final GetUserKopHandler getUserKopHandler; private final UpsertUserAllHandler upsertUserAllHandler; - @PostMapping("GetUserTradeItemApi") - public String getUserTradeItem(@ModelAttribute Map request) throws JsonProcessingException { - return getUserTradeItemHandler.handle(request); - } - @PostMapping("GetUserItemApi") public String getUserItem(@ModelAttribute Map request) throws JsonProcessingException { return getUserItemHandler.handle(request); @@ -56,26 +42,11 @@ public class OngekiController { return getUserPreviewHandler.handle(request); } - @PostMapping("GetUserRatinglogApi") - public String getUserRatinglog(@ModelAttribute Map request) throws JsonProcessingException { - return getUserRatinglogListHandler.handle(request); - } - @PostMapping("GetUserRecentRatingApi") public String getUserRecentRating(@ModelAttribute Map request) throws JsonProcessingException { return getUserRecentRatingHandler.handle(request); } - @PostMapping("GetUserRegionApi") - public String getUserRegion(@ModelAttribute Map request) throws JsonProcessingException { - return getUserRegionHandler.handle(request); - } - - @PostMapping("GetUserRivalApi") - public String getUserRival(@ModelAttribute Map request) throws JsonProcessingException { - return getUserRivalHandler.handle(request); - } - @PostMapping("GetUserRivalDataApi") public String getUserRivalData(@ModelAttribute Map request) throws JsonProcessingException { return getUserRivalDataHandler.handle(request); @@ -86,31 +57,6 @@ public class OngekiController { return getUserRivalMusicHandler.handle(request); } - @PostMapping("GetUserScenarioApi") - public String getUserScenario(@ModelAttribute Map request) throws JsonProcessingException { - return getUserScenarioHandler.handle(request); - } - - @PostMapping("GetUserSkinApi") - public String getUserSkin(@ModelAttribute Map request) throws JsonProcessingException { - return getUserSkinHandler.handle(request); - } - - @PostMapping("GetUserStoryApi") - public String getUserStory(@ModelAttribute Map request) throws JsonProcessingException { - return getUserStoryHandler.handle(request); - } - - @PostMapping("GetUserTechCountApi") - public String getUserTechCount(@ModelAttribute Map request) throws JsonProcessingException { - return getUserTechCountHandler.handle(request); - } - - @PostMapping("GetUserTrainingRoomByKeyApi") - public String getUserTrainingRoomByKey(@ModelAttribute Map request) throws JsonProcessingException { - return getUserTrainingRoomByKeyHandler.handle(request); - } - @PostMapping("GetUserKopApi") public String getUserKop(@ModelAttribute Map request) throws JsonProcessingException { return getUserKopHandler.handle(request); diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRatinglogListHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRatinglogListHandler.java deleted file mode 100644 index 691a8ef6..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRatinglogListHandler.java +++ /dev/null @@ -1,45 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserRatinglogHandler") -public class GetUserRatinglogListHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserRatinglogListHandler.class); - - private final BasicMapper mapper; - - @Autowired - public GetUserRatinglogListHandler(BasicMapper mapper) { - this.mapper = mapper; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", 0); - resultMap.put("userRatinglogList", new List[]{}); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRegionHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRegionHandler.java deleted file mode 100644 index 16ad0fc5..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRegionHandler.java +++ /dev/null @@ -1,46 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * The game doesn't send this to save - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserRegionHandler") -public class GetUserRegionHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserRegionHandler.class); - - private final BasicMapper mapper; - - @Autowired - public GetUserRegionHandler(BasicMapper mapper) { - this.mapper = mapper; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", 0); - resultMap.put("userRegionList", new List[]{}); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalHandler.java deleted file mode 100644 index f3fd4ce0..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalHandler.java +++ /dev/null @@ -1,47 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserRivalDataRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.Map; - -/** - * @author GEEKiDoS (geek_ds@foxmail.com) - */ -@Component("OngekiGetUserRivalHandler") -public class GetUserRivalHandler implements BaseHandler { - private static final Logger logger = LoggerFactory.getLogger(GetUserRivalHandler.class); - - private final BasicMapper mapper; - private final OgkUserRivalDataRepo userRivalDataRepository; - - @Autowired - public GetUserRivalHandler(BasicMapper mapper, OgkUserRivalDataRepo userRivalDataRepository) { - this.mapper = mapper; - this.userRivalDataRepository = userRivalDataRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - var userRivalId = ((Number) request.get("userId")).longValue(); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userRivalId); - - var result = userRivalDataRepository.findByUser_Card_ExtId(userRivalId);//.stream().map(x->x.getUser().getCard().getExtId()).toArray(); - resultMap.put("length", result.size()); - resultMap.put("userRivalList", result); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java deleted file mode 100644 index 447032be..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserScenarioHandler.java +++ /dev/null @@ -1,52 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserScenarioRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserScenario; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserScenarioHandler") -public class GetUserScenarioHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserScenarioHandler.class); - - private final BasicMapper mapper; - - private final OgkUserScenarioRepo userScenarioRepository; - - @Autowired - public GetUserScenarioHandler(BasicMapper mapper, OgkUserScenarioRepo userScenarioRepository) { - this.mapper = mapper; - this.userScenarioRepository = userScenarioRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - List userScenarioList = userScenarioRepository.findByUser_Card_ExtId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", userScenarioList.size()); - resultMap.put("userScenarioList", userScenarioList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserSkinHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserSkinHandler.java deleted file mode 100644 index f206e009..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserSkinHandler.java +++ /dev/null @@ -1,51 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.OgkUserSkinRepo; -import icu.samnyan.aqua.sega.ongeki.model.UserSkin; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserSkinHandler") -public class GetUserSkinHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserSkinHandler.class); - - private final BasicMapper mapper; - - private final OgkUserSkinRepo userSkinRepository; - - @Autowired - public GetUserSkinHandler(BasicMapper mapper, OgkUserSkinRepo userSkinRepository) { - this.mapper = mapper; - this.userSkinRepository = userSkinRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - List userSkinList = userSkinRepository.findByUser_Card_ExtId(userId); - resultMap.put("length", userSkinList.size()); - resultMap.put("userSkinList", userSkinList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java deleted file mode 100644 index 093b7713..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserStoryHandler.java +++ /dev/null @@ -1,52 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserStoryRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserStory; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserStoryHandler") -public class GetUserStoryHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserStoryHandler.class); - - private final BasicMapper mapper; - - private final OgkUserStoryRepo userStoryRepository; - - @Autowired - public GetUserStoryHandler(BasicMapper mapper, OgkUserStoryRepo userStoryRepository) { - this.mapper = mapper; - this.userStoryRepository = userStoryRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - List userStoryList = userStoryRepository.findByUser_Card_ExtId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", userStoryList.size()); - resultMap.put("userStoryList", userStoryList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java deleted file mode 100644 index fe44d9e5..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTechCountHandler.java +++ /dev/null @@ -1,52 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserTechCountRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserTechCount; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetTechCountHandler") -public class GetUserTechCountHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserTechCountHandler.class); - - private final BasicMapper mapper; - - private final OgkUserTechCountRepo userTechCountRepository; - - @Autowired - public GetUserTechCountHandler(BasicMapper mapper, OgkUserTechCountRepo userTechCountRepository) { - this.mapper = mapper; - this.userTechCountRepository = userTechCountRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - List userTechCountList = userTechCountRepository.findByUser_Card_ExtId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", userTechCountList.size()); - resultMap.put("userTechCountList", userTechCountList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java deleted file mode 100644 index b5589be4..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTradeItemHandler.java +++ /dev/null @@ -1,54 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; - -import icu.samnyan.aqua.sega.ongeki.OgkUserTradeItemRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserTradeItem; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserTradeItemHandler") -public class GetUserTradeItemHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserTradeItemHandler.class); - - private final BasicMapper mapper; - - private final OgkUserTradeItemRepo userTradeItemRepository; - - @Autowired - public GetUserTradeItemHandler(BasicMapper mapper, OgkUserTradeItemRepo userTradeItemRepository) { - this.mapper = mapper; - this.userTradeItemRepository = userTradeItemRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - int startChapterId = ((Number) request.get("startChapterId")).intValue(); - int endChapterId = ((Number) request.get("endChapterId")).intValue(); - - List tradeItemList = userTradeItemRepository.findByUser_Card_ExtIdAndChapterIdGreaterThanEqualAndChapterIdLessThanEqual(userId, startChapterId, endChapterId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", tradeItemList.size()); - resultMap.put("userTradeItemList", tradeItemList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java deleted file mode 100644 index bb56df0f..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserTrainingRoomByKeyHandler.java +++ /dev/null @@ -1,52 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserTrainingRoomRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserTrainingRoom; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserTrainingRoomByKeyHandler") -public class GetUserTrainingRoomByKeyHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserTrainingRoomByKeyHandler.class); - - private final BasicMapper mapper; - - private final OgkUserTrainingRoomRepo userTrainingRoomRepository; - - @Autowired - public GetUserTrainingRoomByKeyHandler(BasicMapper mapper, OgkUserTrainingRoomRepo userTrainingRoomRepository) { - this.mapper = mapper; - this.userTrainingRoomRepository = userTrainingRoomRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - List trainingRoomList = userTrainingRoomRepository.findByUser_Card_ExtId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", trainingRoomList.size()); - resultMap.put("userTrainingRoomList", trainingRoomList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} From 1193192e814acfd9c5fb5171a8735e134056074f Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Thu, 27 Mar 2025 00:16:25 -0400 Subject: [PATCH 27/39] [O] Ongeki: Refactor other endpoints --- .../samnyan/aqua/net/transfer/DataBroker.kt | 4 +- .../model/response/UserRecentRating.java | 5 + .../samnyan/aqua/sega/ongeki/OngekiRepos.kt | 1 + .../aqua/sega/ongeki/OngekiUserApis.kt | 100 +++++++++++++++-- .../ongeki/controller/OngekiController.java | 69 ------------ .../ongeki/handler/impl/GetUserItemHandler.kt | 57 ---------- .../handler/impl/GetUserKopHandler.java | 51 --------- .../handler/impl/GetUserMusicHandler.java | 90 ---------------- .../handler/impl/GetUserPreviewHandler.java | 102 ------------------ .../impl/GetUserRecentRatingHandler.java | 84 --------------- .../handler/impl/GetUserRivalDataHandler.java | 63 ----------- .../impl/GetUserRivalMusicHandler.java | 83 -------------- .../aqua/sega/ongeki/model/OngekiEnums.kt | 50 +++++++++ .../sega/ongeki/model/OngekiGameEntities.kt | 6 +- .../aqua/sega/ongeki/model/OngekiResponse.kt | 62 +---------- ...psertUserAll.kt => OngekiUpsertUserAll.kt} | 2 +- .../sega/ongeki/model/common/GpProductID.java | 26 ----- .../sega/ongeki/model/common/IdListType.java | 17 --- .../sega/ongeki/model/common/ItemType.java | 36 ------- 19 files changed, 157 insertions(+), 751 deletions(-) delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java create mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiEnums.kt rename src/main/java/icu/samnyan/aqua/sega/ongeki/model/{UpsertUserAll.kt => OngekiUpsertUserAll.kt} (99%) delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/common/GpProductID.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/common/IdListType.java delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/common/ItemType.java diff --git a/src/main/java/icu/samnyan/aqua/net/transfer/DataBroker.kt b/src/main/java/icu/samnyan/aqua/net/transfer/DataBroker.kt index dbd7228f..bc881253 100644 --- a/src/main/java/icu/samnyan/aqua/net/transfer/DataBroker.kt +++ b/src/main/java/icu/samnyan/aqua/net/transfer/DataBroker.kt @@ -9,7 +9,7 @@ import icu.samnyan.aqua.sega.maimai2.model.request.Mai2UserAll import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserFavorite import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserItem import icu.samnyan.aqua.sega.maimai2.model.userdata.Mai2UserMusicDetail -import icu.samnyan.aqua.sega.ongeki.model.UpsertUserAll +import icu.samnyan.aqua.sega.ongeki.model.OngekiUpsertUserAll import icu.samnyan.aqua.sega.ongeki.model.UserItem import icu.samnyan.aqua.sega.util.jackson.BasicMapper import icu.samnyan.aqua.sega.util.jackson.IMapper @@ -134,7 +134,7 @@ class OngekiDataBroker(allNet: AllNetClient, log: (String) -> Unit): DataBroker( override fun pull(): String { val (userId, paged) = prePull() - return UpsertUserAll().apply { + return OngekiUpsertUserAll().apply { userData = ls("GetUserDataApi".get("userData", userId)) userOption = ls("GetUserOptionApi".get("userOption", userId)) userMusicItemList = "GetUserMusicItemApi".get("userMusicItemList", paged) diff --git a/src/main/java/icu/samnyan/aqua/sega/general/model/response/UserRecentRating.java b/src/main/java/icu/samnyan/aqua/sega/general/model/response/UserRecentRating.java index 38350081..4d9fbeaa 100644 --- a/src/main/java/icu/samnyan/aqua/sega/general/model/response/UserRecentRating.java +++ b/src/main/java/icu/samnyan/aqua/sega/general/model/response/UserRecentRating.java @@ -15,4 +15,9 @@ public class UserRecentRating { private int difficultId; private String romVersionCode; private int score; + + @Override + public String toString() { + return musicId + ":" + difficultId + ":" + score; + } } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt index 688127e3..28a41842 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiRepos.kt @@ -80,6 +80,7 @@ interface OgkUserItemRepo : OngekiUserLinked { fun findByUserAndItemKindAndItemId(userData: UserData, itemKind: Int, itemId: Int): Optional fun findByUser_Card_ExtIdAndItemKind(userId: Long, kind: Int, page: Pageable): Page + fun findByUser_Card_ExtIdAndItemKind(userId: Long, kind: Int): List } interface OgkUserKopRepo : OngekiUserLinked { diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt index 4f94bee6..328fdaad 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt @@ -1,9 +1,13 @@ +@file:Suppress("UNCHECKED_CAST") + package icu.samnyan.aqua.sega.ongeki -import ext.empty -import ext.int -import ext.invoke -import ext.parsing +import ext.* +import icu.samnyan.aqua.sega.general.model.response.UserRecentRating +import icu.samnyan.aqua.sega.ongeki.model.OgkItemType +import icu.samnyan.aqua.sega.ongeki.model.UserItem +import org.springframework.data.domain.PageRequest +import org.springframework.data.domain.Sort import java.time.LocalDateTime import java.time.format.DateTimeFormatter @@ -23,6 +27,7 @@ fun OngekiController.initUser() { "GetUserDeckByKey".unpaged { db.deck.findByUser_Card_ExtId(uid) } "GetUserEventMusic".unpaged { db.eventMusic.findByUser_Card_ExtId(uid) } "GetUserEventPoint".unpaged { db.eventPoint.findByUser_Card_ExtId(uid) } + "GetUserKop".unpaged { db.kop.findByUser_Card_ExtId(uid) } "GetUserLoginBonus".unpaged { db.loginBonus.findByUser_Card_ExtId(uid) } "GetUserMissionPoint".unpaged { db.missionPoint.findByUser_Card_ExtId(uid) } "GetUserMusicItem".unpaged { db.musicItem.findByUser_Card_ExtId(uid) } @@ -33,6 +38,10 @@ fun OngekiController.initUser() { "GetUserTechCount".unpaged { db.techCount.findByUser_Card_ExtId(uid) } "GetUserTrainingRoomByKey".unpaged("userTrainingRoomList") { db.trainingRoom.findByUser_Card_ExtId(uid) } + "GetUserBpBase".unpaged { empty } + "GetUserRatinglog".unpaged { empty } + "GetUserRegion".unpaged { empty } + "GetUserTradeItem".unpaged { val start = parsing { data["startChapterId"]!!.int } val end = parsing { data["endChapterId"]!!.int } @@ -72,7 +81,84 @@ fun OngekiController.initUser() { .take(if (kind == 1) 15 else 10) to mapOf("kind" to kind) } - "GetUserBpBase".unpaged { empty } - "GetUserRatinglog".unpaged { empty } - "GetUserRegion".unpaged { empty } + "GetUserItem" { + val kind = (parsing { data["nextIndex"]!!.long } / 10000000000L).toInt() + var dat = db.item.findByUser_Card_ExtIdAndItemKind(uid, kind) + + // Check if user have infinite kaika + if (kind == OgkItemType.KaikaItem.ordinal) { + val u = db.data.findByCard_ExtId(uid)() + u?.card?.aquaUser?.gameOptions?.let { + if (it.ongekiInfiniteKaika) { + dat = listOf(UserItem().apply { + user = u + itemKind = OgkItemType.KaikaItem.ordinal + itemId = 1 + stock = 999 + }) + } + } + } + + mapOf("userId" to uid, "length" to dat.size, "nextIndex" to -1, "itemKind" to kind, "userItemList" to dat) + } + + "GetUserMusic" { + val dat = db.musicDetail.findByUser_Card_ExtId(uid).groupBy { it.musicId } + .mapValues { mapOf("length" to it.value.size, "userMusicDetailList" to it.value) } + .values.toList() + mapOf("userId" to uid, "length" to dat.size, "nextIndex" to -1, "userMusicList" to dat) + } + + "GetUserPreview" api@ { + val u = db.data.findByCard_ExtId(uid)() ?: return@api mapOf("userId" to uid, "lastPlayDate" to null) + val o = db.option.findSingleByUser(u)() + + mapOf( + "userId" to uid, "isLogin" to false, + + "userName" to u.userName, "reincarnationNum" to u.reincarnationNum, + "level" to u.level, "exp" to u.exp, "playerRating" to u.playerRating, "newPlayerRating" to u.newPlayerRating, + "lastGameId" to u.lastGameId, "lastRomVersion" to u.lastRomVersion, "lastDataVersion" to u.lastDataVersion, + "lastPlayDate" to u.lastPlayDate, "lastLoginDate" to u.lastPlayDate, + "nameplateId" to u.nameplateId, "trophyId" to u.trophyId, "cardId" to u.cardId, + + "dispPlayerLv" to (o?.dispPlayerLv ?: 1), + "dispRating" to (o?.dispRating ?: 1), + "dispBP" to (o?.dispBP ?: 1), + "headphone" to (o?.headphone ?: 0), + + "lastEmoneyBrand" to 4, + "lastEmoneyCredit" to 10000 + ) + } + + "GetUserRecentRating".unpaged { + db.generalData.findByUser_Card_ExtIdAndPropertyKey(uid, "recent_rating_list")()?.let { recent -> + recent.propertyValue.split(',').dropLastWhile { it.isEmpty() }.map { + val (m, d, s) = it.split(':').map { it.int } + UserRecentRating(m, d, "1000000", s) + } + } ?: run { + db.playlog.findByUser_Card_ExtId(uid, PageRequest.of(0, 30, Sort.by(Sort.Direction.DESC, "id"))).content + .map { UserRecentRating(it.musicId, it.level, "1000000", it.techScore) } + } + } + + "GetUserRivalData" { + val idList = (data["userRivalList"] as Collection) + .map { it["rivalUserId"]!!.long } + + db.data.findByCard_ExtIdIn(idList) + .map { mapOf("rivalUserId" to it.card!!.extId, "rivalUserName" to it.userName) } + } + + "GetUserRivalMusic".unpagedExtra { + val rivalUserId = (data["rivalUserId"] as Number).toLong() + + val l = db.musicDetail.findByUser_Card_ExtId(rivalUserId).groupBy { it.musicId } + .map { mapOf("userRivalMusicDetailList" to it.value, "length" to it.value.size) } + + l to mapOf("rivalUserId" to rivalUserId) + } } \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java deleted file mode 100644 index df1eea4b..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/controller/OngekiController.java +++ /dev/null @@ -1,69 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.controller; - - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.handler.impl.*; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@RestController -@RequestMapping("/g/ongeki") -@AllArgsConstructor -public class OngekiController { - private final GetUserItemHandler getUserItemHandler; - private final GetUserMusicHandler getUserMusicHandler; - private final GetUserPreviewHandler getUserPreviewHandler; - private final GetUserRecentRatingHandler getUserRecentRatingHandler; - private final GetUserRivalMusicHandler getUserRivalMusicHandler; - private final GetUserRivalDataHandler getUserRivalDataHandler; - private final GetUserKopHandler getUserKopHandler; - private final UpsertUserAllHandler upsertUserAllHandler; - - @PostMapping("GetUserItemApi") - public String getUserItem(@ModelAttribute Map request) throws JsonProcessingException { - return getUserItemHandler.handle(request); - } - - @PostMapping("GetUserMusicApi") - public String getUserMusic(@ModelAttribute Map request) throws JsonProcessingException { - return getUserMusicHandler.handle(request); - } - - @PostMapping("GetUserPreviewApi") - public String getUserPreview(@ModelAttribute Map request) throws JsonProcessingException { - return getUserPreviewHandler.handle(request); - } - - @PostMapping("GetUserRecentRatingApi") - public String getUserRecentRating(@ModelAttribute Map request) throws JsonProcessingException { - return getUserRecentRatingHandler.handle(request); - } - - @PostMapping("GetUserRivalDataApi") - public String getUserRivalData(@ModelAttribute Map request) throws JsonProcessingException { - return getUserRivalDataHandler.handle(request); - } - - @PostMapping("GetUserRivalMusicApi") - public String getUserRivalMusic(@ModelAttribute Map request) throws JsonProcessingException { - return getUserRivalMusicHandler.handle(request); - } - - @PostMapping("GetUserKopApi") - public String getUserKop(@ModelAttribute Map request) throws JsonProcessingException { - return getUserKopHandler.handle(request); - } - - @PostMapping("UpsertUserAllApi") - public String upsertUserAll(@ModelAttribute Map request) throws JsonProcessingException { - return upsertUserAllHandler.handle(request); - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt deleted file mode 100644 index a28c1312..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserItemHandler.kt +++ /dev/null @@ -1,57 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl - -import ext.* -import icu.samnyan.aqua.sega.general.BaseHandler -import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo -import icu.samnyan.aqua.sega.ongeki.OgkUserItemRepo -import icu.samnyan.aqua.sega.ongeki.model.common.ItemType -import icu.samnyan.aqua.sega.ongeki.model.UserItem -import icu.samnyan.aqua.sega.util.jackson.BasicMapper -import org.springframework.data.domain.PageRequest -import org.springframework.stereotype.Component - -@Component("OngekiGetUserItemHandler") -class GetUserItemHandler( - val mapper: BasicMapper, - val userDataRepo: OgkUserDataRepo, - val userItemRepo: OgkUserItemRepo -) : BaseHandler { - val log = logger() - - override fun handle(request: Map): String { - val uid = parsing { request["userId"]!!.long } - val nextIndexVal = parsing { request["nextIndex"]!!.long } - val maxCount = parsing { request["maxCount"]!!.int } - - val mul = 10000000000L - val kind = (nextIndexVal / mul).toInt() - val pg = (nextIndexVal % mul).toInt() / maxCount - - var dat = userItemRepo.findByUser_Card_ExtIdAndItemKind(uid, kind, PageRequest.of(pg, maxCount)).content - - // Check if user have infinite kaika - if (kind == ItemType.KaikaItem.ordinal) { - val u = userDataRepo.findByCard_ExtId(uid)() - u?.card?.aquaUser?.gameOptions?.let { - if (it.ongekiInfiniteKaika) { - dat = listOf(UserItem().apply { - user = u - itemKind = ItemType.KaikaItem.ordinal - itemId = 1 - stock = 999 - }) - } - } - } - - val resultMap = mapOf( - "userId" to uid, - "length" to dat.size, - "nextIndex" to if (dat.size < maxCount) -1 else kind * mul + maxCount * pg + dat.size, - "itemKind" to kind, - "userItemList" to dat - ) - - return mapper.write(resultMap).also { log.info("Response: $it") } - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java deleted file mode 100644 index f05a9a6b..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserKopHandler.java +++ /dev/null @@ -1,51 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; - -import icu.samnyan.aqua.sega.ongeki.OgkUserKopRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserKop; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserKopHandler") -public class GetUserKopHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserKopHandler.class); - - private final BasicMapper mapper; - - private final OgkUserKopRepo userKopRepository; - - @Autowired - public GetUserKopHandler(BasicMapper mapper, OgkUserKopRepo userKopRepository) { - this.mapper = mapper; - this.userKopRepository = userKopRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - List kopList = userKopRepository.findByUser_Card_ExtId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", kopList.size()); - resultMap.put("userKopList", kopList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java deleted file mode 100644 index 455d0d71..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserMusicHandler.java +++ /dev/null @@ -1,90 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserMusicDetailRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserMusicListItem; -import icu.samnyan.aqua.sega.ongeki.model.UserMusicDetail; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import icu.samnyan.aqua.spring.data.OffsetPageRequest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Sort; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserMusicHandler") -public class GetUserMusicHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserMusicHandler.class); - - private final BasicMapper mapper; - - private final OgkUserMusicDetailRepo userMusicDetailRepository; - - @Autowired - public GetUserMusicHandler(BasicMapper mapper, OgkUserMusicDetailRepo userMusicDetailRepository) { - this.mapper = mapper; - this.userMusicDetailRepository = userMusicDetailRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - Integer maxCount = (Integer) request.get("maxCount"); - Integer currentIndex = (Integer) request.get("nextIndex"); - if(currentIndex < 0) { - currentIndex = 0; - } - - Page dbPage = userMusicDetailRepository - .findByUser_Card_ExtId(userId, OffsetPageRequest.of(currentIndex, maxCount, Sort.by("musicId"))); - - Map userMusicMap = new LinkedHashMap<>(); - dbPage.getContent().forEach(userMusicDetail -> { - UserMusicListItem list; - if (userMusicMap.containsKey(userMusicDetail.getMusicId())) { - list = userMusicMap.get(userMusicDetail.getMusicId()); - } else { - list = new UserMusicListItem(0, new ArrayList<>()); - userMusicMap.put(userMusicDetail.getMusicId(), list); - } - list.getUserMusicDetailList().add(userMusicDetail); - list.setLength(list.getUserMusicDetailList().size()); - }); - - // Someone report that ongeki also has the score missing problem - int lastListSize = 0; - if(dbPage.getNumberOfElements() >= maxCount) { - // Get last key - int lastMusicId = userMusicMap.keySet().stream().reduce((a, b) -> b).orElseThrow(); - List lastList = userMusicMap.get(lastMusicId).getUserMusicDetailList(); - lastListSize = lastList.size(); - // Remove last one from map - userMusicMap.remove(lastMusicId); - } - - long nextIndex = currentIndex + dbPage.getNumberOfElements() - lastListSize; - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", userMusicMap.size()); - resultMap.put("nextIndex", dbPage.getNumberOfElements() < maxCount ? -1 : nextIndex); - resultMap.put("userMusicList", userMusicMap.values()); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java deleted file mode 100644 index 3af3b810..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserPreviewHandler.java +++ /dev/null @@ -1,102 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo; -import icu.samnyan.aqua.sega.ongeki.OgkUserOptionRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.GetUserPreviewResp; -import icu.samnyan.aqua.sega.ongeki.model.UserData; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.Map; -import java.util.Optional; - -/** - * The handler for loading basic profile information. - *

- * return null if no profile exist - * - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserPreviewHandler") -public class GetUserPreviewHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserPreviewHandler.class); - - private final BasicMapper mapper; - - private final OgkUserDataRepo userDataRepository; - - private final OgkUserOptionRepo userOptionRepository; - - @Autowired - public GetUserPreviewHandler(BasicMapper mapper, - OgkUserDataRepo userDataRepository, OgkUserOptionRepo userOptionRepository) { - this.mapper = mapper; - this.userDataRepository = userDataRepository; - this.userOptionRepository = userOptionRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - Optional userData = userDataRepository.findByCard_ExtId(userId); - - GetUserPreviewResp resp = new GetUserPreviewResp(); - resp.setUserId(userId); - if (userData.isEmpty()) { - // From BaseDialogController.cs - // if (string.IsNullOrEmpty(instance.userPreview.lastPlayDate)) - // so send a null value will trigger new user register - resp.setLastPlayDate(null); - - } else { - UserData user = userData.get(); - - resp.setLogin(false); - - resp.setLastLoginDate(user.getLastPlayDate()); - resp.setUserName(user.getUserName()); - resp.setReincarnationNum(user.getReincarnationNum()); - resp.setLevel(user.getLevel()); - resp.setExp(user.getExp()); - resp.setPlayerRating(user.getPlayerRating()); - resp.setNewPlayerRating(user.getNewPlayerRating()); - - resp.setLastGameId(user.getLastGameId()); - - resp.setLastRomVersion(user.getLastRomVersion()); - resp.setLastDataVersion(user.getLastDataVersion()); - - resp.setLastPlayDate(user.getLastPlayDate()); - resp.setNameplateId(user.getNameplateId()); - resp.setTrophyId(user.getTrophyId()); - resp.setCardId(user.getCardId()); - - resp.setDispPlayerLv(1); - resp.setDispRating(1); - resp.setDispBP(1); - resp.setHeadphone(0); - userOptionRepository.findSingleByUser(user).ifPresent(x -> { - resp.setDispPlayerLv(x.getDispPlayerLv()); - resp.setDispRating(x.getDispRating()); - resp.setDispBP(x.getDispBP()); - resp.setHeadphone(x.getHeadphone()); - }); - - // test for now - resp.setLastEmoneyBrand(4); - resp.setLastEmoneyCredit(10000); - } - - String json = mapper.write(resp); - logger.info("Response: " + json); - return json; - - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java deleted file mode 100644 index 5907eec1..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRecentRatingHandler.java +++ /dev/null @@ -1,84 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.general.model.response.UserRecentRating; -import icu.samnyan.aqua.sega.ongeki.OgkUserGeneralDataRepo; -import icu.samnyan.aqua.sega.ongeki.OgkUserPlaylogRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserGeneralData; -import icu.samnyan.aqua.sega.ongeki.model.UserPlaylog; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; -import org.springframework.data.domain.Sort; -import org.springframework.stereotype.Component; - -import java.util.*; -import java.util.stream.Collectors; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiGetUserRecentRatingHandler") -public class GetUserRecentRatingHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserRecentRatingHandler.class); - - private final BasicMapper mapper; - - private final OgkUserPlaylogRepo userPlaylogRepository; - private final OgkUserGeneralDataRepo userGeneralDataRepository; - - @Autowired - public GetUserRecentRatingHandler(BasicMapper mapper, OgkUserPlaylogRepo userPlaylogRepository, OgkUserGeneralDataRepo userGeneralDataRepository) { - this.mapper = mapper; - this.userPlaylogRepository = userPlaylogRepository; - this.userGeneralDataRepository = userGeneralDataRepository; - } - - - @Override - public String handle(Map request) throws JsonProcessingException { - long userId = ((Number) request.get("userId")).longValue(); - - Optional recentOptional = userGeneralDataRepository.findByUser_Card_ExtIdAndPropertyKey(userId, "recent_rating_list"); - - List ratingList; - if(recentOptional.isPresent()) { - ratingList = new LinkedList<>(); - String val = recentOptional.get().getPropertyValue(); - if(StringUtils.isNotBlank(val) && val.contains(",")) { - String[] records = val.split(","); - for (String record : - records) { - String[] value = record.split(":"); - ratingList.add(new UserRecentRating( - Integer.parseInt(value[0]), - Integer.parseInt(value[1]), - "1000000", - Integer.parseInt(value[2]) - )); - } - } - } else { - Pageable page = PageRequest.of(0, 30, Sort.by(Sort.Direction.DESC, "id")); - List playlogList = userPlaylogRepository.findByUser_Card_ExtId(userId, page).getContent(); - ratingList = playlogList.stream().map(log -> new UserRecentRating(log.getMusicId(), log.getLevel(), "1000000", log.getTechScore())) - .collect(Collectors.toList()); - } - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", ratingList.size()); - resultMap.put("userRecentRatingList", ratingList); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java deleted file mode 100644 index c6b3b51c..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalDataHandler.java +++ /dev/null @@ -1,63 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserDataRepo; -import icu.samnyan.aqua.sega.ongeki.OgkUserRivalDataRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserRivalData; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.Collection; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * @author GEEKiDoS (geek_ds@foxmail.com) - */ -@Component("OngekiGetUserRivalDataHandler") -public class GetUserRivalDataHandler implements BaseHandler { - private static final Logger logger = LoggerFactory.getLogger(GetUserRivalDataHandler.class); - - private final BasicMapper mapper; - private final OgkUserRivalDataRepo userRivalDataRepository; - private final OgkUserDataRepo userDataRepository; - - @Autowired - public GetUserRivalDataHandler(BasicMapper mapper, OgkUserRivalDataRepo userRivalDataRepository, OgkUserDataRepo userDataRepository) { - this.mapper = mapper; - this.userRivalDataRepository = userRivalDataRepository; - this.userDataRepository = userDataRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - var userRivalId = ((Number) request.get("userId")).longValue(); - var userRivalList = ((Collection>) request.get("userRivalList")) - .stream() - .map(x->((Number)x.get("rivalUserId")).longValue()) - .collect(Collectors.toList()); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userRivalId); - - var userInfos = userDataRepository - .findByCard_ExtIdIn(userRivalList) - .stream() - .map(x -> new UserRivalData(x.getCard().getExtId(), x.getUserName())) - .toArray(); - - resultMap.put("length", userInfos.length); - resultMap.put("userRivalDataList", userInfos); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java deleted file mode 100644 index 9a5876b4..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/GetUserRivalMusicHandler.java +++ /dev/null @@ -1,83 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.ongeki.OgkUserMusicDetailRepo; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.ongeki.model.UserRivalMusic; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import icu.samnyan.aqua.spring.data.OffsetPageRequest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Sort; -import org.springframework.stereotype.Component; - -import java.util.*; -import java.util.stream.Collectors; - -/** - * @author GEEKiDoS (geek_ds@foxmail.com) - */ -@Component("OngekiGetUserRivalMusicHandler") -public class GetUserRivalMusicHandler implements BaseHandler { - private static final Logger logger = LoggerFactory.getLogger(GetUserRivalMusicHandler.class); - - private final BasicMapper mapper; - private final OgkUserMusicDetailRepo userMusicDetailRepository; - - @Autowired - public GetUserRivalMusicHandler(BasicMapper mapper, OgkUserMusicDetailRepo userMusicDetailRepository) { - this.mapper = mapper; - this.userMusicDetailRepository = userMusicDetailRepository; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - var userId = ((Number) request.get("userId")).longValue(); - var rivalUserId = ((Number) request.get("rivalUserId")).longValue(); - var nextIndex = ((Number) request.get("nextIndex")).intValue(); - var maxCount = ((Number) request.get("maxCount")).intValue(); - - //fix maxCount and sort by musicId so that we could fetch entity music with full fumen diffs. - var fixedMaxCount = maxCount + (maxCount % 5 == 0 ? 0 : 5); - var sorter = Sort.by(Sort.Direction.ASC, "musicId"); - - var groupedMusicDetailsItor = userMusicDetailRepository - .findByUser_Card_ExtId(rivalUserId, OffsetPageRequest.of(nextIndex, fixedMaxCount, sorter)) - .stream() - .collect(Collectors.groupingBy(x -> x.getMusicId())) - .values() - .stream() - .map(x -> new UserRivalMusic(x,x.size())) - .iterator(); - - var filterMusicDetails = new ArrayList(); - - var actualReadCount = 0; - while(groupedMusicDetailsItor.hasNext()){ - var musicDetail = groupedMusicDetailsItor.next(); - if (musicDetail.getLength() + actualReadCount > maxCount) - break; - filterMusicDetails.add(musicDetail); - actualReadCount += musicDetail.getLength(); - } - - var respNextIndex = nextIndex + actualReadCount; - if (filterMusicDetails.size() <= 0) - respNextIndex = 0; //nofity client that All music details had been sent (for this rival). - else - filterMusicDetails.sort(Comparator.comparingInt(a -> a.getUserRivalMusicDetailList().get(0).getMusicId())); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("rivalUserId", rivalUserId); - resultMap.put("length", filterMusicDetails.size()); - resultMap.put("nextIndex", respNextIndex); - resultMap.put("userRivalMusicList", filterMusicDetails); - - String json = mapper.write(resultMap); - - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiEnums.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiEnums.kt new file mode 100644 index 00000000..60643a4a --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiEnums.kt @@ -0,0 +1,50 @@ +package icu.samnyan.aqua.sega.ongeki.model + +import com.fasterxml.jackson.annotation.JsonValue + +enum class OgkGpProductID(@get:JsonValue val value: Int) { + A_Credit1(0), + A_Credit2(1), + A_Credit3(2), + B_Credit1(3), + B_Credit2(4), + B_Credit3(5), + End(6) +} + +enum class OgkIdListType { + Invalid, + NgMusic, + Recommend; + + @JsonValue + fun toValue() = ordinal +} + +enum class OgkItemType { + None, + Card, + NamePlate, + Trophy, + LimitBreakItem, + AlmightyJewel, + Money, + Music, + ProfileVoice, + Present, + ChapterJewel, + GachaTicket, + KaikaItem, + ExpUpItem, + IntimateUpItem, + BookItem, + SystemVoice, + Costume, + Medal, + Attachment, + UnlockItem, + Max; + + @JsonValue + fun toValue() = ordinal +} \ No newline at end of file diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiGameEntities.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiGameEntities.kt index 9976631f..b4ec50fe 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiGameEntities.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiGameEntities.kt @@ -1,8 +1,6 @@ package icu.samnyan.aqua.sega.ongeki.model import com.fasterxml.jackson.annotation.JsonIgnore -import icu.samnyan.aqua.sega.ongeki.model.common.GpProductID -import icu.samnyan.aqua.sega.ongeki.model.common.ItemType import jakarta.persistence.* @Entity(name = "OngekiGameCard") @@ -72,7 +70,7 @@ class GamePoint { @JsonIgnore var id: Long = 0 @Enumerated(EnumType.ORDINAL) - var type: GpProductID = GpProductID.A_Credit1 + var type: OgkGpProductID = OgkGpProductID.A_Credit1 var cost: Int = 0 val startDate = "2000-01-01 05:00:00.0" val endDate = "2099-01-01 05:00:00.0" @@ -100,7 +98,7 @@ class GameReward { var id: Long = 0 @Enumerated(EnumType.ORDINAL) - var itemKind: ItemType = ItemType.None + var itemKind: OgkItemType = OgkItemType.None var itemId = 0 } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt index 9c5ae010..1424b6ac 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt @@ -1,7 +1,5 @@ package icu.samnyan.aqua.sega.ongeki.model -import ext.Bool - class CodeResp( var returnCode: Int = 0, var apiName: String? = null, @@ -14,34 +12,9 @@ class OngekiFumenScore( var score: Int = 0, var platinumScoreMax: Int = 0, var platinumScoreStar: Int = 0, -) - -class GetUserPreviewResp( - var userId: Long = 0, - var isLogin: Bool = false, - var lastLoginDate: String? = null, - var userName: String = "", - var reincarnationNum: Int = 0, - var level: Int = 0, - var exp: Long = 0, - var playerRating: Long = 0, - var newPlayerRating: Long = 0, - var lastGameId: String = "", - var lastRomVersion: String = "", - var lastDataVersion: String = "", - var lastPlayDate: String? = null, - var nameplateId: Int = 0, - var trophyId: Int = 0, - var cardId: Int = 0, - var dispPlayerLv: Int = 0, - var dispRating: Int = 0, - var dispBP: Int = 0, - var headphone: Int = 0, - var banStatus: Int = 0, - var isWarningConfirmed: Bool = false, - var lastEmoneyBrand: Int = 0, - var lastEmoneyCredit: Int = 0, -) +) { + override fun toString() = "${musicId}:${difficultId}:${score}:${platinumScoreStar}:${platinumScoreMax}" +} class GameEventItem( var id: Long = 0, @@ -49,32 +22,3 @@ class GameEventItem( var startDate: String = "", var endDate: String = "", ) - -class GameIdListItem( - var id: Int = 0, - var type: Int = 0, -) - -class GameRankingItem( - var id: Long = 0, - - // this 2 field never use in game code, - // maybe for the future update like in game player ranking - var point: Long = 0, - var userName: String = "", -) - -class UserMusicListItem( - var length: Int = 0, - var userMusicDetailList: List? = null, -) - -class UserRivalData( - var rivalUserId: Long = 0, - var rivalUserName: String = "", -) - -class UserRivalMusic( - var userRivalMusicDetailList: List? = null, - var length: Int = 0, -) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/UpsertUserAll.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUpsertUserAll.kt similarity index 99% rename from src/main/java/icu/samnyan/aqua/sega/ongeki/model/UpsertUserAll.kt rename to src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUpsertUserAll.kt index 0985e85f..45841e5f 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/UpsertUserAll.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUpsertUserAll.kt @@ -1,7 +1,7 @@ package icu.samnyan.aqua.sega.ongeki.model import icu.samnyan.aqua.sega.general.model.response.UserRecentRating -class UpsertUserAll { +class OngekiUpsertUserAll { var userData: List? = null var userOption: List? = null var userPlaylogList: List? = null diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/common/GpProductID.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/common/GpProductID.java deleted file mode 100644 index fe00e53c..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/common/GpProductID.java +++ /dev/null @@ -1,26 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.common; - -import com.fasterxml.jackson.annotation.JsonValue; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -public enum GpProductID { - A_Credit1(0), - A_Credit2(1), - A_Credit3(2), - B_Credit1(3), - B_Credit2(4), - B_Credit3(5), - End(6); - - private int value; - - GpProductID(int i) { this.value = i; } - - @JsonValue - public int getValue() { - return this.value; - } - -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/common/IdListType.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/common/IdListType.java deleted file mode 100644 index c7986c55..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/common/IdListType.java +++ /dev/null @@ -1,17 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.common; - -import com.fasterxml.jackson.annotation.JsonValue; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -public enum IdListType { - Invalid, - NgMusic, - Recommend; - - @JsonValue - public int toValue() { - return ordinal(); - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/common/ItemType.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/common/ItemType.java deleted file mode 100644 index d4363a94..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/common/ItemType.java +++ /dev/null @@ -1,36 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model.common; - -import com.fasterxml.jackson.annotation.JsonValue; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -public enum ItemType { - None, - Card, - NamePlate, - Trophy, - LimitBreakItem, - AlmightyJewel, - Money, - Music, - ProfileVoice, - Present, - ChapterJewel, - GachaTicket, - KaikaItem, - ExpUpItem, - IntimateUpItem, - BookItem, - SystemVoice, - Costume, - Medal, - Attachment, - UnlockItem, - Max; - - @JsonValue - public int toValue() { - return ordinal(); - } -} From e00bbeadde5855622d5e14d7d146a47623010280 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Thu, 27 Mar 2025 00:17:02 -0400 Subject: [PATCH 28/39] [O] Ongeki: Upsert user all --- .../samnyan/aqua/sega/ongeki/OngekiApis.kt | 1 + .../aqua/sega/ongeki/OngekiUpsertAllApi.kt | 188 ++++++ .../handler/impl/UpsertUserAllHandler.kt | 603 ------------------ 3 files changed, 189 insertions(+), 603 deletions(-) create mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt index 0836cdc3..ab45470f 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt @@ -10,6 +10,7 @@ fun OngekiController.ongekiInit() { fun List.staticLst(key: String) = mapOf("length" to size, key to this) initUser() + initUpsertAll() // Has type, but type is always 1 "GetGameEvent".static { diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt new file mode 100644 index 00000000..19b4b130 --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt @@ -0,0 +1,188 @@ +package icu.samnyan.aqua.sega.ongeki + +import ext.invoke +import ext.mapApply +import ext.minus +import icu.samnyan.aqua.sega.ongeki.model.CodeResp +import icu.samnyan.aqua.sega.ongeki.model.OngekiUpsertUserAll +import icu.samnyan.aqua.sega.ongeki.model.UserData +import icu.samnyan.aqua.sega.ongeki.model.UserGeneralData + + +fun OngekiController.initUpsertAll() { + fun saveGeneralData(items: List, u: UserData, key: String) { + db.generalData.save(UserGeneralData().apply { + id = db.generalData.findByUserAndPropertyKey(u, key)()?.id ?: 0 + user = u + propertyKey = key + propertyValue = items.joinToString(",") + }) + } + + "UpsertUserAll" api@ { + val all: OngekiUpsertUserAll = mapper.convert(data["upsertUserAll"]!!) + + // User data + val oldUser = db.data.findByCard_ExtId(uid)() + val u: UserData = all.userData?.get(0)?.apply { + id = oldUser?.id ?: 0 + card = oldUser?.card ?: us.cardRepo.findByExtId(uid)() ?: (404 - "Card not found") + + // Set eventWatchedDate with lastPlayDate, because client doesn't update it + eventWatchedDate = oldUser?.lastPlayDate ?: "" + cmEventWatchedDate = oldUser?.lastPlayDate ?: "" + db.data.save(this) + } ?: oldUser ?: return@api null + + all.run { + // Set users + listOfNotNull( + userOption, userPlaylogList, userActivityList, userMusicDetailList, userCharacterList + ).flatten().forEach { it.user = u } + + // UserOption + userOption?.get(0)?.let { + db.option.save(it.apply { + id = db.option.findSingleByUser(u)()?.id ?: 0 }) } + + // UserEventMap + userEventMap?.let { + db.eventMap.save(it.apply { + id = db.eventMap.findSingleByUser(u)()?.id ?: 0 }) } + + // UserPlaylogList + userPlaylogList?.let { db.playlog.saveAll(it) } + + // UserSessionlogList, UserJewelboostlogLost doesn't need to be saved for a private server + + // UserActivityList + userActivityList?.let { list -> + db.activity.saveAll(list.distinctBy { it.activityId to it.kind }.mapApply { + id = db.activity.findByUserAndKindAndActivityId(u, kind, activityId)()?.id ?: 0 }) } + + // Ratings + mapOf( + "recent_rating_list" to userRecentRatingList, // This thing still need to save to solve the rating drop + "battle_point_base" to userBpBaseList, // For calculating Battle point + "rating_base_best" to userRatingBaseBestList, // This is the best rating of all charts. Best 30 + 10 after that. + "rating_base_next" to userRatingBaseNextList, + "rating_base_new_best" to userRatingBaseBestNewList, // This is the best rating of new charts. Best 15 + 10 after that. + "rating_base_new_next" to userRatingBaseNextNewList, + "rating_base_hot_best" to userRatingBaseHotList, // This is the recent best + "rating_base_hot_next" to userRatingBaseHotNextList, + + // Re:Fresh + "new_rating_base_best" to userNewRatingBaseBestList, + "new_rating_base_next_best" to userNewRatingBaseNextBestList, + "new_rating_base_new_best" to userNewRatingBaseBestNewList, + "new_rating_base_new_next_best" to userNewRatingBaseNextBestNewList, + "new_rating_base_pscore" to userNewRatingBasePScoreList, + "new_rating_base_next_pscore" to userNewRatingBaseNextPScoreList + ).forEach { (k, v) -> v?.let { saveGeneralData(it, u, k) } } + + // UserMusicDetailList + userMusicDetailList?.let { list -> + db.musicDetail.saveAll(list.distinctBy { it.musicId to it.level }.mapApply { + id = db.musicDetail.findByUserAndMusicIdAndLevel(u, musicId, level)()?.id ?: 0 }) } + + // UserCharacterList + userCharacterList?.let { list -> + db.character.saveAll(list.distinctBy { it.characterId }.mapApply { + id = db.character.findByUserAndCharacterId(u, characterId)()?.id ?: 0 }) } + + // UserCardList + userCardList?.let { list -> + db.card.saveAll(list.distinctBy { it.cardId }.mapApply { + id = db.card.findByUserAndCardId(u, cardId)()?.id ?: 0 }) } + + // UserDeckList + userDeckList?.let { list -> + db.deck.saveAll(list.distinctBy { it.deckId }.mapApply { + id = db.deck.findByUserAndDeckId(u, deckId)()?.id ?: 0 }) } + + // UserTrainingRoomList + userTrainingRoomList?.let { list -> + db.trainingRoom.saveAll(list.distinctBy { it.roomId }.mapApply { + id = db.trainingRoom.findByUserAndRoomId(u, roomId)()?.id ?: 0 }) } + + // UserStoryList + userStoryList?.let { list -> + db.story.saveAll(list.distinctBy { it.storyId }.mapApply { + id = db.story.findByUserAndStoryId(u, storyId)()?.id ?: 0 }) } + + // UserChapterList + userChapterList?.let { list -> + db.chapter.saveAll(list.distinctBy { it.chapterId }.mapApply { + id = db.chapter.findByUserAndChapterId(u, chapterId)()?.id ?: 0 }) } + + // UserMemoryChapterList + userMemoryChapterList?.let { list -> + db.memoryChapter.saveAll(list.distinctBy { it.chapterId }.mapApply { + id = db.memoryChapter.findByUserAndChapterId(u, chapterId)()?.id ?: 0 }) } + + // UserItemList + userItemList?.let { list -> + db.item.saveAll(list.distinctBy { it.itemKind to it.itemId }.mapApply { + id = db.item.findByUserAndItemKindAndItemId(u, itemKind, itemId)()?.id ?: 0 }) } + + // UserMusicItemList + userMusicItemList?.let { list -> + db.musicItem.saveAll(list.distinctBy { it.musicId }.mapApply { + id = db.musicItem.findByUserAndMusicId(u, musicId)()?.id ?: 0 }) } + + // UserLoginBonusList + userLoginBonusList?.let { list -> + db.loginBonus.saveAll(list.distinctBy { it.bonusId }.mapApply { + id = db.loginBonus.findByUserAndBonusId(u, bonusId)()?.id ?: 0 }) } + + // UserEventPointList + userEventPointList?.let { list -> + db.eventPoint.saveAll(list.distinctBy { it.eventId }.mapApply { + id = db.eventPoint.findByUserAndEventId(u, eventId)()?.id ?: 0 }) } + + // UserMissionPointList + userMissionPointList?.let { list -> + db.missionPoint.saveAll(list.distinctBy { it.eventId }.mapApply { + id = db.missionPoint.findByUserAndEventId(u, eventId)()?.id ?: 0 }) } + + // UserRatinglogList (For the highest rating of each version) + + // UserBossList + userBossList?.let { list -> + db.boss.saveAll(list.distinctBy { it.musicId }.mapApply { + id = db.boss.findByUserAndMusicId(u, musicId)()?.id ?: 0 }) } + + // UserTechCountList + userTechCountList?.let { list -> + db.techCount.saveAll(list.distinctBy { it.levelId }.mapApply { + id = db.techCount.findByUserAndLevelId(u, levelId)()?.id ?: 0 }) } + + // UserScenarioList + userScenarioList?.let { list -> + db.scenario.saveAll(list.distinctBy { it.scenarioId }.mapApply { + id = db.scenario.findByUserAndScenarioId(u, scenarioId)()?.id ?: 0 }) } + + // UserTradeItemList + userTradeItemList?.let { list -> + db.tradeItem.saveAll(list.distinctBy { it.chapterId to it.tradeItemId }.mapApply { + id = db.tradeItem.findByUserAndChapterIdAndTradeItemId(u, chapterId, tradeItemId)()?.id ?: 0 }) } + + // UserEventMusicList + userEventMusicList?.let { list -> + db.eventMusic.saveAll(list.distinctBy { it.eventId to it.type to it.musicId }.mapApply { + id = db.eventMusic.findByUserAndEventIdAndTypeAndMusicId(u, eventId, type, musicId)()?.id ?: 0 }) } + + // UserTechEventList + userTechEventList?.let { list -> + db.techEvent.saveAll(list.distinctBy { it.eventId }.mapApply { + id = db.techEvent.findByUserAndEventId(u, eventId)()?.id ?: 0 }) } + + // UserKopList + userKopList?.let { list -> + db.kop.saveAll(list.distinctBy { it.kopId to it.areaId }.mapApply { + id = db.kop.findByUserAndKopIdAndAreaId(u, kopId, areaId)()?.id ?: 0 }) } + } + + CodeResp(1, "upsertUserAll") + } +} diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt deleted file mode 100644 index adb66105..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/handler/impl/UpsertUserAllHandler.kt +++ /dev/null @@ -1,603 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.handler.impl - -import ext.logger -import icu.samnyan.aqua.sega.general.BaseHandler -import icu.samnyan.aqua.sega.general.model.response.UserRecentRating -import icu.samnyan.aqua.sega.general.service.CardService -import icu.samnyan.aqua.sega.ongeki.OngekiUserRepos -import icu.samnyan.aqua.sega.ongeki.model.* -import icu.samnyan.aqua.sega.util.jackson.BasicMapper -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.stereotype.Component - - -/** - * The handler for saving all data of a ONGEKI profile - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("OngekiUserAllHandler") -class UpsertUserAllHandler @Autowired constructor( - private val mapper: BasicMapper, - private val cardService: CardService, - val db: OngekiUserRepos -) : BaseHandler { - override fun handle(request: Map): String? { - val userId = (request["userId"] as Number).toLong() - val all = mapper.convert( - request["upsertUserAll"]!!, - UpsertUserAll::class.java - ) - - // All the field should exist, no need to check now. - // UserData - val u: UserData - run { - val userData: UserData - val userOptional = db.data.findByCard_ExtId(userId) - - // UserData might be empty on later runs - if (userOptional.isEmpty && all.userData.isNullOrEmpty()) { - return null - } - - if (userOptional.isPresent) { - userData = userOptional.get() - } else { - userData = UserData() - val card = cardService.getCardByExtId(userId).orElseThrow() - userData.card = card - } - - // If new data exists, use new data. Otherwise, use old data - u = if (!all.userData.isNullOrEmpty()) all.userData!![0] else userData - - u.id = userData.id - u.card = userData.card - - // Set eventWatchedDate with lastPlayDate, because client doesn't update it - u.eventWatchedDate = userData.lastPlayDate - u.cmEventWatchedDate = userData.lastPlayDate - db.data.save(u) - } - - - // UserOption - val newUserOption = all.userOption!![0] - - val userOptionOptional = db.option.findSingleByUser(u) - val userOption = userOptionOptional.orElseGet { UserOption().apply { user = u } } - - newUserOption.id = userOption.id - newUserOption.user = userOption.user - - db.option.save(newUserOption) - - - // UserPlaylogList - val userPlaylogList = all.userPlaylogList - val newUserPlaylogList: MutableList = ArrayList() - - if (userPlaylogList != null) { - for (newUserPlaylog in userPlaylogList) { - newUserPlaylog.user = u - newUserPlaylogList.add(newUserPlaylog) - } - } - - db.playlog.saveAll(newUserPlaylogList) - - - // UserSessionlogList, UserJewelboostlogLost doesn't need to be saved for a private server - - - // UserActivityList - val userActivityList = all.userActivityList - val newUserActivityList: MutableList = ArrayList() - - if (userActivityList != null) { - for (newUserActivity in userActivityList) { - val kind = newUserActivity.kind - val id = newUserActivity.activityId - - if (kind != 0 && id != 0) { - val activityOptional = db.activity.findByUserAndKindAndActivityId(u, kind, id) - val userActivity = activityOptional.orElseGet { - UserActivity().apply { user = u } - } - - newUserActivity.id = userActivity.id - newUserActivity.user = u - newUserActivityList.add(newUserActivity) - } - } - } - newUserActivityList.sortWith { a, b -> b.sortNumber.compareTo(a.sortNumber) } - db.activity.saveAll(newUserActivityList) - - - // UserRecentRatingList - // This thing still need to save to solve the rating drop - all.userRecentRatingList?.let { this.saveRecentRatingData(it, u, "recent_rating_list") } - - /* - * The rating and battle point calculation is little bit complex. - * So I just create a UserGeneralData class to store this value - * into a csv format for convenience - */ - // UserBpBaseList (For calculating Battle point) - all.userBpBaseList?.let { this.saveRecentRatingData(it, u, "battle_point_base") } - - // This is the best rating of all charts. Best 30 + 10 after that. - // userRatingBaseBestList - all.userRatingBaseBestList?.let { this.saveRecentRatingData(it, u, "rating_base_best") } - - // userRatingBaseNextList - all.userRatingBaseNextList?.let { this.saveRecentRatingData(it, u, "rating_base_next") } - - // This is the best rating of new charts. Best 15 + 10 after that. - // New chart means same version - // userRatingBaseBestNewList - all.userRatingBaseBestNewList?.let { this.saveRecentRatingData(it, u, "rating_base_new_best") } - - // userRatingBaseNextNewList - all.userRatingBaseNextNewList?.let { this.saveRecentRatingData(it, u, "rating_base_new_next") } - - // This is the recent best - // userRatingBaseHotList - all.userRatingBaseHotList?.let { this.saveRecentRatingData(it, u, "rating_base_hot_best") } - - // userRatingBaseHotNextList - all.userRatingBaseHotNextList?.let { this.saveRecentRatingData(it, u, "rating_base_hot_next") } - - // Re:Fresh - all.userNewRatingBaseBestList?.let { this.saveFumenScoreData(it, u, "new_rating_base_best") } - all.userNewRatingBaseNextBestList?.let { this.saveFumenScoreData(it, u, "new_rating_base_next_best") } - all.userNewRatingBaseBestNewList?.let { this.saveFumenScoreData(it, u, "new_rating_base_new_best") } - all.userNewRatingBaseNextBestNewList?.let { this.saveFumenScoreData(it, u, "new_rating_base_new_next_best") } - all.userNewRatingBasePScoreList?.let { this.saveFumenScoreData(it, u, "new_rating_base_pscore") } - all.userNewRatingBaseNextPScoreList?.let { this.saveFumenScoreData(it, u, "new_rating_base_next_pscore") } - - // UserMusicDetailList - val userMusicDetailList = all.userMusicDetailList - val newUserMusicDetailList: MutableList = ArrayList() - - if (userMusicDetailList != null) { - for (newUserMusicDetail in userMusicDetailList) { - val musicId = newUserMusicDetail.musicId - val level = newUserMusicDetail.level - - val musicDetailOptional = - db.musicDetail.findByUserAndMusicIdAndLevel(u, musicId, level) - val userMusicDetail = musicDetailOptional.orElseGet { - UserMusicDetail().apply { user = u } - } - - newUserMusicDetail.id = userMusicDetail.id - newUserMusicDetail.user = u - newUserMusicDetailList.add(newUserMusicDetail) - } - } - db.musicDetail.saveAll(newUserMusicDetailList) - - - // UserCharacterList - val userCharacterList = all.userCharacterList - val newUserCharacterList: MutableList = ArrayList() - - if (userCharacterList != null) { - for (newUserCharacter in userCharacterList) { - val characterId = newUserCharacter.characterId - - val characterOptional = db.character.findByUserAndCharacterId(u, characterId) - val userCharacter = characterOptional.orElseGet { - UserCharacter().apply { user = u } - } - - newUserCharacter.id = userCharacter.id - newUserCharacter.user = u - newUserCharacterList.add(newUserCharacter) - } - } - db.character.saveAll(newUserCharacterList) - - // UserCardList - val userCardList = all.userCardList - val newUserCardList: MutableList = ArrayList() - - if (userCardList != null) { - for (newUserCard in userCardList) { - val cardId = newUserCard.cardId - - val cardOptional = db.card.findByUserAndCardId(u, cardId) - val userCard = cardOptional.orElseGet { UserCard().apply { user = u } } - - newUserCard.id = userCard.id - newUserCard.user = u - newUserCardList.add(newUserCard) - } - } - db.card.saveAll(newUserCardList) - - - // UserDeckList - val userDeckList = all.userDeckList - val newUserDeckList: MutableList = ArrayList() - - if (userDeckList != null) { - for (newUserDeck in userDeckList) { - val deckId = newUserDeck.deckId - - val deckOptional = db.deck.findByUserAndDeckId(u, deckId) - val userDeck = deckOptional.orElseGet { UserDeck().apply { user = u } } - - newUserDeck.id = userDeck.id - newUserDeck.user = u - newUserDeckList.add(newUserDeck) - } - } - db.deck.saveAll(newUserDeckList) - - - // userTrainingRoomList - val userTrainingRoomList = all.userTrainingRoomList - val newUserTrainingRoomList: MutableList = ArrayList() - - if (userTrainingRoomList != null) { - for (newUserTrainingRoom in userTrainingRoomList) { - val roomId = newUserTrainingRoom.roomId - - val trainingRoomOptional = db.trainingRoom.findByUserAndRoomId(u, roomId) - val trainingRoom = trainingRoomOptional.orElseGet { UserTrainingRoom().apply { user = u } } - - newUserTrainingRoom.id = trainingRoom.id - newUserTrainingRoom.user = u - newUserTrainingRoomList.add(newUserTrainingRoom) - } - } - db.trainingRoom.saveAll(newUserTrainingRoomList) - - - // UserStoryList - val userStoryList = all.userStoryList - val newUserStoryList: MutableList = ArrayList() - - if (userStoryList != null) { - for (newUserStory in userStoryList) { - val storyId = newUserStory.storyId - - val storyOptional = db.story.findByUserAndStoryId(u, storyId) - val userStory = storyOptional.orElseGet { UserStory().apply { user = u } } - - newUserStory.id = userStory.id - newUserStory.user = u - newUserStoryList.add(newUserStory) - } - } - db.story.saveAll(newUserStoryList) - - - // UserChapterList - val userChapterList = all.userChapterList - val newUserChapterList: MutableList = ArrayList() - - if (userChapterList != null) { - for (newUserChapter in userChapterList) { - val chapterId = newUserChapter.chapterId - - val chapterOptional = db.chapter.findByUserAndChapterId(u, chapterId) - val userChapter = chapterOptional.orElseGet { UserChapter().apply { user = u } } - - newUserChapter.id = userChapter.id - newUserChapter.user = u - newUserChapterList.add(newUserChapter) - } - } - db.chapter.saveAll(newUserChapterList) - - - // UserMemoryChapterList - val userMemoryChapterList = all.userMemoryChapterList - - if (userMemoryChapterList != null) { - val newUserMemoryChapterList: MutableList = ArrayList() - - for (newUserMemoryChapter in userMemoryChapterList) { - val chapterId = newUserMemoryChapter.chapterId - - val chapterOptional = db.memoryChapter.findByUserAndChapterId(u, chapterId) - val userChapter = chapterOptional.orElseGet { UserMemoryChapter().apply { user = u } } - - newUserMemoryChapter.id = userChapter.id - newUserMemoryChapter.user = u - newUserMemoryChapterList.add(newUserMemoryChapter) - } - db.memoryChapter.saveAll(newUserMemoryChapterList) - } - - // UserItemList - val userItemList = all.userItemList - val newUserItemList: MutableList = ArrayList() - - if (userItemList != null) { - for (newUserItem in userItemList) { - val itemKind = newUserItem.itemKind - val itemId = newUserItem.itemId - - val itemOptional = db.item.findByUserAndItemKindAndItemId(u, itemKind, itemId) - val userItem = itemOptional.orElseGet { UserItem().apply { user = u } } - - newUserItem.id = userItem.id - newUserItem.user = u - newUserItemList.add(newUserItem) - } - } - db.item.saveAll(newUserItemList) - - // UserMusicItemList - val userMusicItemList = all.userMusicItemList - val newUserMusicItemList: MutableList = ArrayList() - - if (userMusicItemList != null) { - for (newUserMusicItem in userMusicItemList) { - val musicId = newUserMusicItem.musicId - - val musicItemOptional = db.musicItem.findByUserAndMusicId(u, musicId) - val userMusicItem = musicItemOptional.orElseGet { UserMusicItem().apply { user = u } } - - newUserMusicItem.id = userMusicItem.id - newUserMusicItem.user = u - newUserMusicItemList.add(newUserMusicItem) - } - } - db.musicItem.saveAll(newUserMusicItemList) - - - // userLoginBonusList - val userLoginBonusList = all.userLoginBonusList - val newUserLoginBonusList: MutableList = ArrayList() - - if (userLoginBonusList != null) { - for (newUserLoginBonus in userLoginBonusList) { - val bonusId = newUserLoginBonus.bonusId - - val loginBonusOptional = db.loginBonus.findByUserAndBonusId(u, bonusId) - val userLoginBonus = loginBonusOptional.orElseGet { - UserLoginBonus().apply { user = u } - } - - newUserLoginBonus.id = userLoginBonus.id - newUserLoginBonus.user = u - newUserLoginBonusList.add(newUserLoginBonus) - } - } - db.loginBonus.saveAll(newUserLoginBonusList) - - - // UserEventPointList - val userEventPointList = all.userEventPointList - val newUserEventPointList: MutableList = ArrayList() - - if (userEventPointList != null) { - for (newUserEventPoint in userEventPointList) { - val eventId = newUserEventPoint.eventId - - val eventPointOptional = db.eventPoint.findByUserAndEventId(u, eventId) - val userEventPoint = eventPointOptional.orElseGet { UserEventPoint().apply { user = u } } - - newUserEventPoint.id = userEventPoint.id - newUserEventPoint.user = u - newUserEventPointList.add(newUserEventPoint) - } - } - db.eventPoint.saveAll(newUserEventPointList) - - - // UserMissionPointList - val userMissionPointList = all.userMissionPointList - val newUserMissionPointList: MutableList = ArrayList() - - if (userMissionPointList != null) { - for (newUserMissionPoint in userMissionPointList) { - val eventId = newUserMissionPoint.eventId - - val userMissionPointOptional = db.missionPoint.findByUserAndEventId(u, eventId) - val userMissionPoint = userMissionPointOptional.orElseGet { UserMissionPoint().apply { user = u } } - - newUserMissionPoint.id = userMissionPoint.id - newUserMissionPoint.user = u - newUserMissionPointList.add(newUserMissionPoint) - } - } - db.missionPoint.saveAll(newUserMissionPointList) - - // UserRatinglogList (For the highest rating of each version) - - // UserBossList - val userBossList = all.userBossList - if (userBossList != null) { - val newUserBossList: MutableList = ArrayList() - for (newUserBoss in userBossList) { - val musicId = newUserBoss.musicId - - val userBossOptional = db.boss.findByUserAndMusicId(u, musicId) - val userBoss = userBossOptional.orElseGet { - UserBoss().apply { user = u } - } - - newUserBoss.id = userBoss.id - newUserBoss.user = userBoss.user - newUserBossList.add(newUserBoss) - } - db.boss.saveAll(newUserBossList) - } - - // UserTechCountList - val userTechCountList = all.userTechCountList - if (userTechCountList != null) { - val newUserTechCountList: MutableList = ArrayList() - for (newUserTechCount in userTechCountList) { - val levelId = newUserTechCount.levelId - - val userTechCountOptional = db.techCount.findByUserAndLevelId(u, levelId) - val userTechCount = userTechCountOptional.orElseGet { UserTechCount().apply { user = u } } - - newUserTechCount.id = userTechCount.id - newUserTechCount.user = userTechCount.user - newUserTechCountList.add(newUserTechCount) - } - db.techCount.saveAll(newUserTechCountList) - } - - // UserScenarioList - val userScenarioList = all.userScenarioList - if (userScenarioList != null) { - val newUserScenarioList: MutableList = ArrayList() - for (newUserScenario in userScenarioList) { - val scenarioId = newUserScenario.scenarioId - - val userScenarioOptional = db.scenario.findByUserAndScenarioId(u, scenarioId) - val userScenario = userScenarioOptional.orElseGet { UserScenario().apply { user = u } } - - newUserScenario.id = userScenario.id - newUserScenario.user = userScenario.user - newUserScenarioList.add(newUserScenario) - } - db.scenario.saveAll(newUserScenarioList) - } - - // UserTradeItemList - val userTradeItemList = all.userTradeItemList - val newUserTradeItemList: MutableList = ArrayList() - - if (userTradeItemList != null) { - for (newUserTradeItem in userTradeItemList) { - val chapterId = newUserTradeItem.chapterId - val tradeItemId = newUserTradeItem.tradeItemId - - val tradeItemOptional = - db.tradeItem.findByUserAndChapterIdAndTradeItemId(u, chapterId, tradeItemId) - val userTradeItem = tradeItemOptional.orElseGet { UserTradeItem().apply { user = u } } - - newUserTradeItem.id = userTradeItem.id - newUserTradeItem.user = u - newUserTradeItemList.add(newUserTradeItem) - } - } - db.tradeItem.saveAll(newUserTradeItemList) - - // UserEventMusicList - val userEventMusicList = all.userEventMusicList - val newUserEventMusicList: MutableList = ArrayList() - - if (userEventMusicList != null) { - for (newUserEventMusic in userEventMusicList) { - val eventId = newUserEventMusic.eventId - val type = newUserEventMusic.type - val musicId = newUserEventMusic.musicId - - val eventMusicOptional = - db.eventMusic.findByUserAndEventIdAndTypeAndMusicId(u, eventId, type, musicId) - val userEventMusic = eventMusicOptional.orElseGet { UserEventMusic().apply { user = u } } - - newUserEventMusic.id = userEventMusic.id - newUserEventMusic.user = u - newUserEventMusicList.add(newUserEventMusic) - } - } - db.eventMusic.saveAll(newUserEventMusicList) - - // UserTechEventList - val userTechEventList = all.userTechEventList - val newUserTechEventList: MutableList = ArrayList() - - if (userTechEventList != null) { - for (newUserTechEvent in userTechEventList) { - val eventId = newUserTechEvent.eventId - - val techEventOptional = db.techEvent.findByUserAndEventId(u, eventId) - val userTechEvent = techEventOptional.orElseGet { UserTechEvent().apply { user = u } } - - newUserTechEvent.id = userTechEvent.id - newUserTechEvent.user = u - newUserTechEventList.add(newUserTechEvent) - } - } - db.techEvent.saveAll(newUserTechEventList) - - // UserKopList - val userKopList = all.userKopList - val newUserKopList: MutableList = ArrayList() - - if (userKopList != null) { - for (newUserKop in userKopList) { - val kopId = newUserKop.kopId - val areaId = newUserKop.areaId - - val kopOptional = db.kop.findByUserAndKopIdAndAreaId(u, kopId, areaId) - val userKop = kopOptional.orElseGet { UserKop().apply { user = u } } - - newUserKop.id = userKop.id - newUserKop.user = u - newUserKopList.add(newUserKop) - } - } - db.kop.saveAll(newUserKopList) - - // UserEventMap - val newUserEventMap = all.userEventMap - if (newUserEventMap != null) { - val userEventOptional = db.eventMap.findSingleByUser(u) - val userEventMap: UserEventMap = userEventOptional.orElseGet { UserEventMap().apply { user = u } } - - newUserEventMap.id = userEventMap.id - newUserEventMap.user = u - db.eventMap.save(newUserEventMap) - } - - val json = mapper.write(CodeResp(1, "upsertUserAll")) - logger.info("Response: $json") - return json - } - - private fun saveRecentRatingData(itemList: List, newUserData: UserData, key: String) { - val sb = StringBuilder() - // Convert to a string - for (item in itemList) { - sb.append(item.musicId).append(":").append(item.difficultId).append(":").append(item.score) - sb.append(",") - } - if (sb.isNotEmpty()) { sb.deleteCharAt(sb.length - 1) } - saveGeneralData(newUserData, key, sb.toString()) - } - - private fun saveFumenScoreData(itemList: List, newUserData: UserData, key: String) { - val sb = StringBuilder() - for (item in itemList) { - sb.append(item.musicId).append(":") - .append(item.difficultId).append(":") - .append(item.score).append(":") - .append(item.platinumScoreStar).append(":") - .append(item.platinumScoreMax) - sb.append(",") - } - - if (sb.isNotEmpty()) { sb.deleteCharAt(sb.length - 1) } - saveGeneralData(newUserData, key, sb.toString()) - } - - private fun saveGeneralData(newUserData: UserData, key: String, data: String) { - val uOptional = db.generalData.findByUserAndPropertyKey(newUserData, key) - val userGeneralData = uOptional.orElseGet { - UserGeneralData().apply { - user = newUserData - propertyKey = key - } - } - userGeneralData.propertyValue = data - db.generalData.save(userGeneralData) - } - - companion object { - private val logger = logger() - } -} From e65269ad29fd3754daad04669ce6f786a5067c3f Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Thu, 27 Mar 2025 00:37:27 -0400 Subject: [PATCH 29/39] [F] Ongeki: Fix unique constraints --- .../aqua/sega/ongeki/OngekiUpsertAllApi.kt | 18 ++- .../{40 => 80}/V1000_42__ongeki_refresh.sql | 0 .../db/80/V1000_43__ongeki_unique.sql | 145 ++++++++++++++++++ 3 files changed, 156 insertions(+), 7 deletions(-) rename src/main/resources/db/{40 => 80}/V1000_42__ongeki_refresh.sql (100%) create mode 100644 src/main/resources/db/80/V1000_43__ongeki_unique.sql diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt index 19b4b130..4e3d1c62 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt @@ -37,7 +37,11 @@ fun OngekiController.initUpsertAll() { all.run { // Set users listOfNotNull( - userOption, userPlaylogList, userActivityList, userMusicDetailList, userCharacterList + userOption, userPlaylogList, userActivityList, userMusicDetailList, userCharacterList, userCardList, + userDeckList, userTrainingRoomList, userStoryList, userChapterList, userMemoryChapterList, userItemList, + userMusicItemList, userLoginBonusList, userEventPointList, userMissionPointList, userBossList, + userTechCountList, userScenarioList, userTradeItemList, userEventMusicList, userTechEventList, userKopList, + userEventMap?.let { listOf(it) } ).flatten().forEach { it.user = u } // UserOption @@ -55,11 +59,6 @@ fun OngekiController.initUpsertAll() { // UserSessionlogList, UserJewelboostlogLost doesn't need to be saved for a private server - // UserActivityList - userActivityList?.let { list -> - db.activity.saveAll(list.distinctBy { it.activityId to it.kind }.mapApply { - id = db.activity.findByUserAndKindAndActivityId(u, kind, activityId)()?.id ?: 0 }) } - // Ratings mapOf( "recent_rating_list" to userRecentRatingList, // This thing still need to save to solve the rating drop @@ -80,6 +79,11 @@ fun OngekiController.initUpsertAll() { "new_rating_base_next_pscore" to userNewRatingBaseNextPScoreList ).forEach { (k, v) -> v?.let { saveGeneralData(it, u, k) } } + // UserActivityList + userActivityList?.let { list -> + db.activity.saveAll(list.distinctBy { it.activityId to it.kind }.mapApply { + id = db.activity.findByUserAndKindAndActivityId(u, kind, activityId)()?.id ?: 0 }) } + // UserMusicDetailList userMusicDetailList?.let { list -> db.musicDetail.saveAll(list.distinctBy { it.musicId to it.level }.mapApply { @@ -171,7 +175,7 @@ fun OngekiController.initUpsertAll() { userEventMusicList?.let { list -> db.eventMusic.saveAll(list.distinctBy { it.eventId to it.type to it.musicId }.mapApply { id = db.eventMusic.findByUserAndEventIdAndTypeAndMusicId(u, eventId, type, musicId)()?.id ?: 0 }) } - + // UserTechEventList userTechEventList?.let { list -> db.techEvent.saveAll(list.distinctBy { it.eventId }.mapApply { diff --git a/src/main/resources/db/40/V1000_42__ongeki_refresh.sql b/src/main/resources/db/80/V1000_42__ongeki_refresh.sql similarity index 100% rename from src/main/resources/db/40/V1000_42__ongeki_refresh.sql rename to src/main/resources/db/80/V1000_42__ongeki_refresh.sql diff --git a/src/main/resources/db/80/V1000_43__ongeki_unique.sql b/src/main/resources/db/80/V1000_43__ongeki_unique.sql new file mode 100644 index 00000000..9b7bb66b --- /dev/null +++ b/src/main/resources/db/80/V1000_43__ongeki_unique.sql @@ -0,0 +1,145 @@ +# Delete duplicate rows + +-- UserMusicDetailList +DELETE FROM ongeki_user_music_detail +WHERE id NOT IN ( + SELECT MAX(id) + FROM ongeki_user_music_detail + GROUP BY user_id, music_id, level +); + +-- UserCharacterList +DELETE FROM ongeki_user_character +WHERE id NOT IN ( + SELECT MAX(id) + FROM ongeki_user_character + GROUP BY user_id, character_id +); + +-- UserCardList +DELETE FROM ongeki_user_card +WHERE id NOT IN ( + SELECT MAX(id) + FROM ongeki_user_card + GROUP BY user_id, card_id +); + +-- UserDeckList +DELETE FROM ongeki_user_deck +WHERE id NOT IN ( + SELECT MAX(id) + FROM ongeki_user_deck + GROUP BY user_id, deck_id +); + +-- UserTrainingRoomList +DELETE FROM ongeki_user_training_room +WHERE id NOT IN ( + SELECT MAX(id) + FROM ongeki_user_training_room + GROUP BY user_id, room_id +); + +-- UserChapterList +DELETE FROM ongeki_user_chapter +WHERE id NOT IN ( + SELECT MAX(id) + FROM ongeki_user_chapter + GROUP BY user_id, chapter_id +); + +-- UserMemoryChapterList +DELETE FROM ongeki_user_memory_chapter +WHERE id NOT IN ( + SELECT MAX(id) + FROM ongeki_user_memory_chapter + GROUP BY user_id, chapter_id +); + +-- UserItemList +DELETE FROM ongeki_user_item +WHERE id NOT IN ( + SELECT MAX(id) + FROM ongeki_user_item + GROUP BY user_id, item_kind, item_id +); + +-- UserMusicItemList +DELETE FROM ongeki_user_music_item +WHERE id NOT IN ( + SELECT MAX(id) + FROM ongeki_user_music_item + GROUP BY user_id, music_id +); + +-- UserLoginBonusList +DELETE FROM ongeki_user_login_bonus +WHERE id NOT IN ( + SELECT MAX(id) + FROM ongeki_user_login_bonus + GROUP BY user_id, bonus_id +); + +-- UserEventPointList +DELETE FROM ongeki_user_event_point +WHERE id NOT IN ( + SELECT MAX(id) + FROM ongeki_user_event_point + GROUP BY user_id, event_id +); + +-- UserMissionPointList +DELETE FROM ongeki_user_mission_point +WHERE id NOT IN ( + SELECT MAX(id) + FROM ongeki_user_mission_point + GROUP BY user_id, event_id +); + +-- UserMusicDetailList +ALTER TABLE ongeki_user_music_detail + ADD UNIQUE KEY uniq_user_music_level (user_id, music_id, level); + +-- UserCharacterList +ALTER TABLE ongeki_user_character + ADD UNIQUE KEY uniq_user_character (user_id, character_id); + +-- UserCardList +ALTER TABLE ongeki_user_card + ADD UNIQUE KEY uniq_user_card (user_id, card_id); + +-- UserDeckList +ALTER TABLE ongeki_user_deck + ADD UNIQUE KEY uniq_user_deck (user_id, deck_id); + +-- UserTrainingRoomList +ALTER TABLE ongeki_user_training_room + ADD UNIQUE KEY uniq_user_room (user_id, room_id); + +-- UserChapterList +ALTER TABLE ongeki_user_chapter + ADD UNIQUE KEY uniq_user_chapter (user_id, chapter_id); + +-- UserMemoryChapterList +ALTER TABLE ongeki_user_memory_chapter + ADD UNIQUE KEY uniq_user_mem_chapter (user_id, chapter_id); + +-- UserItemList +ALTER TABLE ongeki_user_item + ADD UNIQUE KEY uniq_user_item (user_id, item_kind, item_id); + +-- UserMusicItemList +ALTER TABLE ongeki_user_music_item + ADD UNIQUE KEY uniq_user_music_item (user_id, music_id); + +-- UserLoginBonusList +ALTER TABLE ongeki_user_login_bonus + ADD UNIQUE KEY uniq_user_login_bonus (user_id, bonus_id); + +-- UserEventPointList +ALTER TABLE ongeki_user_event_point + ADD UNIQUE KEY uniq_user_event_point (user_id, event_id); + +-- UserMissionPointList +ALTER TABLE ongeki_user_mission_point + ADD UNIQUE KEY uniq_user_mission_point (user_id, event_id); From 0e6c55c56eca41a4edc67761021d8cfc9967c69a Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Thu, 27 Mar 2025 03:20:31 -0400 Subject: [PATCH 30/39] [F] Ongeki: Fix key mismatch --- src/main/java/icu/samnyan/aqua/sega/allnet/AllNet.kt | 2 +- src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/allnet/AllNet.kt b/src/main/java/icu/samnyan/aqua/sega/allnet/AllNet.kt index 25400285..00a88c86 100644 --- a/src/main/java/icu/samnyan/aqua/sega/allnet/AllNet.kt +++ b/src/main/java/icu/samnyan/aqua/sega/allnet/AllNet.kt @@ -182,7 +182,7 @@ class AllNet( "SDHD" -> "chu3/$ver/" "SDGS" -> "chu3/$ver/" // International (c3exp) "SBZV" -> "diva/" - "SDDT" -> "ongeki/" + "SDDT" -> "ongeki/$ver/" "SDEY" -> "mai/" "SDGA" -> "mai2/" // International (Exp) "SDGB" -> "mai2/" // International (China) - TODO: Test it diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt index 328fdaad..2115d663 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt @@ -24,7 +24,7 @@ fun OngekiController.initUser() { "GetUserChapter".unpaged { db.chapter.findByUser_Card_ExtId(uid) } "GetUserMemoryChapter".unpaged { db.memoryChapter.findByUser_Card_ExtId(uid) } "GetUserCharacter".unpaged { db.character.findByUser_Card_ExtId(uid) } - "GetUserDeckByKey".unpaged { db.deck.findByUser_Card_ExtId(uid) } + "GetUserDeckByKey".unpaged("userDeckList") { db.deck.findByUser_Card_ExtId(uid) } "GetUserEventMusic".unpaged { db.eventMusic.findByUser_Card_ExtId(uid) } "GetUserEventPoint".unpaged { db.eventPoint.findByUser_Card_ExtId(uid) } "GetUserKop".unpaged { db.kop.findByUser_Card_ExtId(uid) } From 8b9797595a4096798fa9b85fe3e2e35ed6ffef82 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Thu, 27 Mar 2025 04:58:43 -0400 Subject: [PATCH 31/39] [O] Better logging --- .../java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt index c35933cf..6400fb49 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt @@ -41,18 +41,18 @@ class OngekiController( // if (api.startsWith("CM") && api !in handlers) api = api.removePrefix("CM") val token = TokenChecker.getCurrentSession()?.token?.substring(0, 6) ?: "NO-TOKEN" - log.info("Ongeki < $api : ${data.toJson()} : [$token]") + log.info("< $api : ${data.toJson()} : [$token]") val noop = """{"returnCode":"1","apiName":"${api.substringBefore("Api").firstCharLower()}"}""" if (api !in noopEndpoint && !handlers.containsKey(api)) { - log.warn("Ongeki > $api not found") + log.warn("> $api not found") return noop } // Only record the counter metrics if the API is known. Metrics.counter("aquadx_ongeki_api_call", "api" to api).increment() if (api in noopEndpoint) { - log.info("Ongeki > $api no-op") + log.info("> $api no-op") return noop } @@ -60,7 +60,7 @@ class OngekiController( Metrics.timer("aquadx_ongeki_api_latency", "api" to api).recordCallable { serialize(api, handlers[api]!!(ctx) ?: noop).also { if (api !in setOf("GetUserItemApi", "GetGameEventApi")) - log.info("Ongeki > $api : $it") + log.info("> $api : $it") } } } catch (e: Exception) { From 577b758c995b6e4cec720daaa3e70958c2294bc7 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Thu, 27 Mar 2025 05:00:47 -0400 Subject: [PATCH 32/39] [F] Ongeki: Fix path vars --- .../icu/samnyan/aqua/sega/ongeki/OngekiController.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt index 6400fb49..e383b7dc 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt @@ -33,17 +33,15 @@ class OngekiController( init { ongekiInit() } val handlers = initH - @API("/{endpoint}", "/MatchingServer/{endpoint}") - fun handle(@PV endpoint: Str, @RB data: MutableMap, @PV version: Str, req: HttpServletRequest): Any { + @API("/{api}") + fun handle(@PV api: Str, @RB data: MutableMap, @PV version: Str?, req: HttpServletRequest): Any { val ctx = RequestContext(req, data) - val api = endpoint - data["version"] = version + version?.let { data["version"] = it } -// if (api.startsWith("CM") && api !in handlers) api = api.removePrefix("CM") val token = TokenChecker.getCurrentSession()?.token?.substring(0, 6) ?: "NO-TOKEN" log.info("< $api : ${data.toJson()} : [$token]") - val noop = """{"returnCode":"1","apiName":"${api.substringBefore("Api").firstCharLower()}"}""" + val noop = """{"returnCode":"1","apiName":"$api"}""" if (api !in noopEndpoint && !handlers.containsKey(api)) { log.warn("> $api not found") return noop From c32d334aabfd32934fee81524c5f71eee7a02fa9 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Thu, 27 Mar 2025 05:01:42 -0400 Subject: [PATCH 33/39] [M] Move sql --- src/main/resources/db/{ => 40}/V1000_39__net_country_override.sql | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/main/resources/db/{ => 40}/V1000_39__net_country_override.sql (100%) diff --git a/src/main/resources/db/V1000_39__net_country_override.sql b/src/main/resources/db/40/V1000_39__net_country_override.sql similarity index 100% rename from src/main/resources/db/V1000_39__net_country_override.sql rename to src/main/resources/db/40/V1000_39__net_country_override.sql From 685129fede9d3ce17e483e8ef4f79248a8bdb25a Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Thu, 27 Mar 2025 05:16:24 -0400 Subject: [PATCH 34/39] [O] Optimize logging --- .../samnyan/aqua/sega/allnet/AllNetSecure.kt | 1 + .../aqua/sega/chusan/ChusanController.kt | 15 ++++++--------- .../sega/maimai2/Maimai2ServletController.kt | 14 ++++++++------ .../aqua/sega/ongeki/OngekiController.kt | 17 +++++++---------- .../sega/ongeki/model/OngekiUserEntities.kt | 4 ---- 5 files changed, 22 insertions(+), 29 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/allnet/AllNetSecure.kt b/src/main/java/icu/samnyan/aqua/sega/allnet/AllNetSecure.kt index 535a8975..21f420f1 100644 --- a/src/main/java/icu/samnyan/aqua/sega/allnet/AllNetSecure.kt +++ b/src/main/java/icu/samnyan/aqua/sega/allnet/AllNetSecure.kt @@ -37,6 +37,7 @@ class TokenChecker( private val currentSession = ThreadLocal() fun getCurrentSession() = currentSession.get() + fun tokenShort() = getCurrentSession()?.token?.substring(0, 6) ?: "NO-TOKEN" } /** diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/ChusanController.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/ChusanController.kt index 4e592135..b2421788 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/ChusanController.kt +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/ChusanController.kt @@ -59,19 +59,19 @@ class ChusanController( } if (api.startsWith("CM") && api !in handlers) api = api.removePrefix("CM") - val token = TokenChecker.getCurrentSession()?.token?.substring(0, 6) ?: "NO-TOKEN" - log.info("Chu3 < $api : ${data.toJson()} : [$token]") + val token = TokenChecker.tokenShort() + log.info("$token : $api < ${data.toJson()}") val noop = """{"returnCode":"1","apiName":"$api"}""" if (api !in noopEndpoint && !handlers.containsKey(api)) { - log.warn("Chu3 > $api not found") + log.warn("$token : $api > not found") return noop } // Only record the counter metrics if the API is known. Metrics.counter("aquadx_chusan_api_call", "api" to api).increment() if (api in noopEndpoint) { - log.info("Chu3 > $api no-op") + log.info("$token : $api > no-op") return noop } @@ -79,14 +79,11 @@ class ChusanController( Metrics.timer("aquadx_chusan_api_latency", "api" to api).recordCallable { serialize(api, handlers[api]!!(ctx) ?: noop).also { if (api !in setOf("GetUserItemApi", "GetGameEventApi")) - log.info("Chu3 > $api : $it") + log.info("$token : $api > ${it.truncate(500)}") } } } catch (e: Exception) { - Metrics.counter( - "aquadx_chusan_api_error", - "api" to api, "error" to e.simpleDescribe() - ).increment() + Metrics.counter("aquadx_chusan_api_error", "api" to api, "error" to e.simpleDescribe()).increment() throw e } } diff --git a/src/main/java/icu/samnyan/aqua/sega/maimai2/Maimai2ServletController.kt b/src/main/java/icu/samnyan/aqua/sega/maimai2/Maimai2ServletController.kt index 5ec2afc0..8e159271 100644 --- a/src/main/java/icu/samnyan/aqua/sega/maimai2/Maimai2ServletController.kt +++ b/src/main/java/icu/samnyan/aqua/sega/maimai2/Maimai2ServletController.kt @@ -4,13 +4,13 @@ import ext.* import icu.samnyan.aqua.net.games.mai2.Maimai2 import icu.samnyan.aqua.net.utils.ApiException import icu.samnyan.aqua.net.utils.simpleDescribe +import icu.samnyan.aqua.sega.allnet.TokenChecker import icu.samnyan.aqua.sega.general.* import icu.samnyan.aqua.sega.maimai2.handler.* import icu.samnyan.aqua.sega.maimai2.model.Mai2Repos import icu.samnyan.aqua.spring.Metrics import io.ktor.client.request.* import jakarta.servlet.http.HttpServletRequest -import org.slf4j.LoggerFactory import org.springframework.web.bind.annotation.* import java.time.format.DateTimeFormatter import kotlin.reflect.full.declaredMemberProperties @@ -38,7 +38,7 @@ class Maimai2ServletController( ): MeowApi(serialize = { _, resp -> if (resp is String) resp else resp.toJson() }) { companion object { - private val logger = LoggerFactory.getLogger(Maimai2ServletController::class.java) + private val log = logger() private val empty = listOf() private val GAME_SETTING_DATE_FMT = DateTimeFormatter.ofPattern("2010-01-01 HH:mm:00.0") private val GAME_SETTING_TIME_FMT = DateTimeFormatter.ofPattern("HH:mm:00") @@ -67,10 +67,12 @@ class Maimai2ServletController( @API("/{api}") fun handle(@PathVariable api: String, @RequestBody data: Map, req: HttpServletRequest): Any { - logger.info("Mai2 < $api : ${data.toJson()}") // TODO: Optimize logging + val token = TokenChecker.tokenShort() + log.info("$token : $api < ${data.toJson()}") + val noop = """{"returnCode":1,"apiName":"com.sega.maimai2servlet.api.$api"}""" if (api !in noopEndpoint && !handlers.containsKey(api)) { - logger.warn("Mai2 > $api not found") + log.warn("$token : $api > not found") return noop } @@ -78,7 +80,7 @@ class Maimai2ServletController( Metrics.counter("aquadx_maimai2_api_call", "api" to api).increment() if (api in noopEndpoint) { - logger.info("Mai2 > $api no-op") + log.info("$token : $api > no-op") return noop } @@ -86,7 +88,7 @@ class Maimai2ServletController( Metrics.timer("aquadx_maimai2_api_latency", "api" to api).recordCallable { val ctx = RequestContext(req, data.mut) serialize(api, handlers[api]!!(ctx) ?: noop).also { - logger.info("Mai2 > $api : ${it.truncate(1000)}") + log.info("$token : $api > ${it.truncate(500)}") } } } catch (e: Exception) { diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt index e383b7dc..9d63f7f8 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt @@ -38,19 +38,19 @@ class OngekiController( val ctx = RequestContext(req, data) version?.let { data["version"] = it } - val token = TokenChecker.getCurrentSession()?.token?.substring(0, 6) ?: "NO-TOKEN" - log.info("< $api : ${data.toJson()} : [$token]") + val token = TokenChecker.tokenShort() + log.info("$token : $api < ${data.toJson()}") - val noop = """{"returnCode":"1","apiName":"$api"}""" + val noop = """{"returnCode":"1","apiName":"${api.substringBefore("Api").firstCharLower()}"}""" if (api !in noopEndpoint && !handlers.containsKey(api)) { - log.warn("> $api not found") + log.warn("$token : $api > not found") return noop } // Only record the counter metrics if the API is known. Metrics.counter("aquadx_ongeki_api_call", "api" to api).increment() if (api in noopEndpoint) { - log.info("> $api no-op") + log.info("$token : $api > no-op") return noop } @@ -58,14 +58,11 @@ class OngekiController( Metrics.timer("aquadx_ongeki_api_latency", "api" to api).recordCallable { serialize(api, handlers[api]!!(ctx) ?: noop).also { if (api !in setOf("GetUserItemApi", "GetGameEventApi")) - log.info("> $api : $it") + log.info("$token : $api > ${it.truncate(500)}") } } } catch (e: Exception) { - Metrics.counter( - "aquadx_ongeki_api_error", - "api" to api, "error" to e.simpleDescribe() - ).increment() + Metrics.counter("aquadx_ongeki_api_error", "api" to api, "error" to e.simpleDescribe()).increment() throw e } } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUserEntities.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUserEntities.kt index a98539a9..59fadaef 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUserEntities.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUserEntities.kt @@ -16,7 +16,6 @@ class OngekiUserEntity : BaseEntity(), IUserEntity { override var user: UserData = UserData() } - @Entity(name = "OngekiUserData") @Table(name = "ongeki_user_data") class UserData : IUserData { @@ -503,9 +502,6 @@ class UserEventMap : OngekiUserEntity() { var totalUsePoint = 0 } -/** - * @author samnyan (privateamusement@protonmail.com) - */ @Entity(name = "OngekiUserSkin") @Table(name = "ongeki_user_skin") class UserSkin : OngekiUserEntity() { From 3c1d3013ce0f54aabf7c9f2eb8c294c8781072c9 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Thu, 27 Mar 2025 05:22:35 -0400 Subject: [PATCH 35/39] [-] Ongeki: Remove unused models --- .../samnyan/aqua/sega/ongeki/OngekiApis.kt | 6 ++--- .../aqua/sega/ongeki/OngekiUpsertAllApi.kt | 3 +-- .../aqua/sega/ongeki/model/OngekiResponse.kt | 24 ------------------- .../sega/ongeki/model/OngekiUpsertUserAll.kt | 11 +++++++++ 4 files changed, 15 insertions(+), 29 deletions(-) delete mode 100644 src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt index ab45470f..41bf4a8d 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiApis.kt @@ -4,7 +4,6 @@ import ext.empty import ext.int import ext.parsing import ext.plus -import icu.samnyan.aqua.sega.ongeki.model.GameEventItem fun OngekiController.ongekiInit() { fun List.staticLst(key: String) = mapOf("length" to size, key to this) @@ -14,8 +13,9 @@ fun OngekiController.ongekiInit() { // Has type, but type is always 1 "GetGameEvent".static { - gdb.event.findAll().map { GameEventItem(it.id, 1, "2005-01-01 00:00:00.0", "2099-01-01 05:00:00.0") } - .staticLst("gameEventList") + mapOf("type" to 1) + gdb.event.findAll().map { + mapOf("id" to it.id, "type" to 1, "startDate" to "2005-01-01 00:00:00.0", "endDate" to "2099-01-01 05:00:00.0") + }.staticLst("gameEventList") + mapOf("type" to 1) } "GetGamePoint".static { gdb.point.findAll().staticLst("gamePointList") } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt index 4e3d1c62..ed38ad93 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUpsertAllApi.kt @@ -3,7 +3,6 @@ package icu.samnyan.aqua.sega.ongeki import ext.invoke import ext.mapApply import ext.minus -import icu.samnyan.aqua.sega.ongeki.model.CodeResp import icu.samnyan.aqua.sega.ongeki.model.OngekiUpsertUserAll import icu.samnyan.aqua.sega.ongeki.model.UserData import icu.samnyan.aqua.sega.ongeki.model.UserGeneralData @@ -187,6 +186,6 @@ fun OngekiController.initUpsertAll() { id = db.kop.findByUserAndKopIdAndAreaId(u, kopId, areaId)()?.id ?: 0 }) } } - CodeResp(1, "upsertUserAll") + null } } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt deleted file mode 100644 index 1424b6ac..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiResponse.kt +++ /dev/null @@ -1,24 +0,0 @@ -package icu.samnyan.aqua.sega.ongeki.model - -class CodeResp( - var returnCode: Int = 0, - var apiName: String? = null, -) - -class OngekiFumenScore( - var musicId: Int = 0, - var difficultId: Int = 0, - var romVersionCode: String? = null, - var score: Int = 0, - var platinumScoreMax: Int = 0, - var platinumScoreStar: Int = 0, -) { - override fun toString() = "${musicId}:${difficultId}:${score}:${platinumScoreStar}:${platinumScoreMax}" -} - -class GameEventItem( - var id: Long = 0, - var type: Int = 0, - var startDate: String = "", - var endDate: String = "", -) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUpsertUserAll.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUpsertUserAll.kt index 45841e5f..e5b58f0b 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUpsertUserAll.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/model/OngekiUpsertUserAll.kt @@ -71,3 +71,14 @@ class OngekiUpsertUserAll { var userNewRatingBaseNextBestNewList: List? = null var userEventMap: UserEventMap? = null } + +class OngekiFumenScore( + var musicId: Int = 0, + var difficultId: Int = 0, + var romVersionCode: String? = null, + var score: Int = 0, + var platinumScoreMax: Int = 0, + var platinumScoreStar: Int = 0, +) { + override fun toString() = "${musicId}:${difficultId}:${score}:${platinumScoreStar}:${platinumScoreMax}" +} From 7e4b4991fd45fbb463dcc6baaaeb5c1a4f7c43e2 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Thu, 27 Mar 2025 11:08:22 -0400 Subject: [PATCH 36/39] [M] Move file to the correct place --- .../db/{40 => 80}/V1000_44__ongeki_refresh_a016.sql | 0 src/main/resources/db/README.md | 12 ++++++++++++ 2 files changed, 12 insertions(+) rename src/main/resources/db/{40 => 80}/V1000_44__ongeki_refresh_a016.sql (100%) create mode 100644 src/main/resources/db/README.md diff --git a/src/main/resources/db/40/V1000_44__ongeki_refresh_a016.sql b/src/main/resources/db/80/V1000_44__ongeki_refresh_a016.sql similarity index 100% rename from src/main/resources/db/40/V1000_44__ongeki_refresh_a016.sql rename to src/main/resources/db/80/V1000_44__ongeki_refresh_a016.sql diff --git a/src/main/resources/db/README.md b/src/main/resources/db/README.md new file mode 100644 index 00000000..75ba4cfb --- /dev/null +++ b/src/main/resources/db/README.md @@ -0,0 +1,12 @@ +About placing SQL files: + +File should be named `V1000_{version}__{description}.sql` where: +- `{version}` is the sequential ID, please pick the next available number +- `{description}` is a short description of the change + +The folders are grouped by 40 changes each, please put the files in the correct folder according to the version number: +- `db/40` : 1-40 +- `db/80` : 41-80 +- etc. + +(this is to avoid having to scroll through a huge list of files when looking for a specific change) From 348b2e17f0ae9615b990484b8a46bc85b40639e2 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Sat, 29 Mar 2025 11:53:34 -0400 Subject: [PATCH 37/39] [F] Wacca and ongeki lastRomVersion fields --- src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt | 5 ++++- src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt b/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt index 78abb905..8e22cb2f 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/ongeki/Ongeki.kt @@ -27,7 +27,10 @@ class Ongeki( override val shownRanks = ongekiScores.filter { it.first >= 950000 } override val settableFields: Map Unit> by lazy { mapOf( - "userName" to usernameCheck(SEGA_USERNAME_CAHRS) + "userName" to usernameCheck(SEGA_USERNAME_CAHRS), + + "lastRomVersion" to { u, v -> u.lastRomVersion = v }, + "lastDataVersion" to { u, v -> u.lastDataVersion = v }, ) } override suspend fun userSummary(username: String, token: String?) = us.cardByName(username) { card -> diff --git a/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt b/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt index 84c3b5b2..3ee3611d 100644 --- a/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt +++ b/src/main/java/icu/samnyan/aqua/net/games/wacca/Wacca.kt @@ -20,6 +20,8 @@ class Wacca( ): GameApiController("wacca", WaccaUser::class) { override val settableFields: Map Unit> by lazy { mapOf( "userName" to usernameCheck(WACCA_USERNAME_CHARS), + + "lastRomVersion" to { u, v -> u.lastRomVersion = v }, ) } override suspend fun trend(@RP username: String) = us.cardByName(username) { card -> From a9c0fe5ff84da4adf29aff77655de2ffdbd0e5b4 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Sat, 29 Mar 2025 12:50:19 -0400 Subject: [PATCH 38/39] [F] Ongeki: Field inconsistencies --- .../java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt | 2 +- src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt index 9d63f7f8..bc6629a4 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiController.kt @@ -41,7 +41,7 @@ class OngekiController( val token = TokenChecker.tokenShort() log.info("$token : $api < ${data.toJson()}") - val noop = """{"returnCode":"1","apiName":"${api.substringBefore("Api").firstCharLower()}"}""" + val noop = """{"returnCode":1,"apiName":"${api.substringBefore("Api").firstCharLower()}"}""" if (api !in noopEndpoint && !handlers.containsKey(api)) { log.warn("$token : $api > not found") return noop diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt index 2115d663..d7292d35 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiUserApis.kt @@ -129,7 +129,10 @@ fun OngekiController.initUser() { "headphone" to (o?.headphone ?: 0), "lastEmoneyBrand" to 4, - "lastEmoneyCredit" to 10000 + "lastEmoneyCredit" to 10000, + + "banStatus" to 0, + "isWarningConfirmed" to false, ) } From 25340075d51f939b2bc2d3d699e2837251d4d3c3 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Sat, 29 Mar 2025 12:54:19 -0400 Subject: [PATCH 39/39] [-] Remove temp file --- .gitignore | 1 + ogk-userdata-orig.jsonl | 26 -------------------------- 2 files changed, 1 insertion(+), 26 deletions(-) delete mode 100644 ogk-userdata-orig.jsonl diff --git a/.gitignore b/.gitignore index 0e224c17..31e40848 100644 --- a/.gitignore +++ b/.gitignore @@ -83,3 +83,4 @@ src/main/resources/meta/*/*.json *.salive test-diff htmlReport +docs/logs diff --git a/ogk-userdata-orig.jsonl b/ogk-userdata-orig.jsonl deleted file mode 100644 index c4a91a3d..00000000 --- a/ogk-userdata-orig.jsonl +++ /dev/null @@ -1,26 +0,0 @@ -{"kind":0,"id":0,"sortNumber":0,"param1":0,"param2":0,"param3":0,"param4":0} -{"musicId":0,"damage":0,"eventId":0,"isClear":false} -{"cardId":-1,"digitalStock":1,"analogStock":0,"level":0,"maxLevel":10,"exp":0,"printCount":0,"useCount":0,"kaikaDate":"0000-00-00 00:00:00.0","choKaikaDate":"0000-00-00 00:00:00.0","skillId":0,"created":"0000-00-00 00:00:00.0","isNew":true,"isAcquired":true} -{"chapterId":0,"jewelCount":0,"lastPlayMusicCategory":0,"lastPlayMusicId":0,"lastPlayMusicLevel":0,"skipTiming1":0,"skipTiming2":0,"isStoryWatched":false,"isClear":false} -{"characterId":0,"costumeId":0,"attachmentId":0,"playCount":0,"intimateLevel":0,"intimateCount":0,"intimateCountRewarded":0,"intimateCountDate":null,"isNew":false} -{"userName":null,"level":0,"reincarnationNum":0,"exp":0,"point":0,"totalPoint":0,"playCount":0,"jewelCount":0,"totalJewelCount":0,"medalCount":0,"playerRating":0,"highestRating":0,"battlePoint":0,"bestBattlePoint":0,"overDamageBattlePoint":0,"nameplateId":0,"trophyId":0,"cardId":0,"characterId":0,"characterVoiceNo":0,"tabSetting":0,"tabSortSetting":0,"cardCategorySetting":0,"cardSortSetting":0,"rivalScoreCategorySetting":0,"playedTutorialBit":0,"firstTutorialCancelNum":0,"sumTechHighScore":0,"sumTechBasicHighScore":0,"sumTechAdvancedHighScore":0,"sumTechExpertHighScore":0,"sumTechMasterHighScore":0,"sumTechLunaticHighScore":0,"sumBattleHighScore":0,"sumBattleBasicHighScore":0,"sumBattleAdvancedHighScore":0,"sumBattleExpertHighScore":0,"sumBattleMasterHighScore":0,"sumBattleLunaticHighScore":0,"eventWatchedDate":null,"cmEventWatchedDate":null,"firstGameId":null,"firstRomVersion":null,"firstDataVersion":null,"firstPlayDate":null,"lastGameId":null,"lastRomVersion":null,"lastDataVersion":null,"compatibleCmVersion":null,"lastPlayDate":null,"lastPlaceId":0,"lastPlaceName":null,"lastRegionId":0,"lastRegionName":null,"lastAllNetId":0,"lastUsedDeckId":0,"lastPlayMusicLevel":0,"lastEmoneyBrand":0,"totalScore":0,"accessCode":null,"isDialogWatchedSuggestMemory":false} -{"deckId":0,"cardId1":0,"cardId2":0,"cardId3":0} -{"eventId":0,"type":0,"musicId":0,"level":0,"techScoreMax":0,"platinumScoreMax":0,"techRecordDate":null,"isTechNewRecord":false} -{"eventId":0,"point":0,"isRankingRewarded":false} -{"propertyKey":null,"propertyValue":null} -{"itemKind":0,"itemId":0,"stock":0,"isValid":false} -{"authKey":null,"kopId":0,"areaId":0,"totalTechScore":0,"totalPlatinumScore":0,"techRecordDate":null,"isTotalTechNewRecord":false} -{"bonusId":0,"bonusCount":0,"lastUpdateDate":null} -{"chapterId":0,"jewelCount":0,"lastPlayMusicCategory":0,"lastPlayMusicId":0,"lastPlayMusicLevel":0,"gaugeId":0,"gaugeNum":0,"isDialogWatched":false,"isStoryWatched":false,"isBossWatched":false,"isClear":false} -{"eventId":0,"point":0} -{"musicId":0,"level":0,"playCount":0,"techScoreMax":0,"techScoreRank":0,"battleScoreMax":0,"battleScoreRank":0,"platinumScoreMax":0,"maxComboCount":0,"maxOverKill":0,"maxTeamOverKill":0,"clearStatus":0,"storyWatched":false,"isFullBell":false,"isFullCombo":false,"isAllBreake":false,"isLock":false} -{"musicId":0,"status":0} -{"optionSet":0,"speed":0,"mirror":0,"judgeTiming":0,"judgeAdjustment":0,"abort":0,"stealthField":0,"tapSound":0,"volGuide":0,"volAll":0,"volTap":0,"volCrTap":0,"volHold":0,"volSide":0,"volFlick":0,"volBell":0,"volEnemy":0,"volSkill":0,"volDamage":0,"colorField":0,"colorLaneBright":0,"colorWallBright":0,"colorLane":0,"colorSide":0,"effectDamage":0,"effectPos":0,"judgeDisp":0,"judgePos":0,"judgeBreak":0,"judgeHit":0,"platinumBreakDisp":0,"judgeCriticalBreak":0,"matching":0,"dispPlayerLv":0,"dispRating":0,"dispBP":0,"headphone":0} -{"id":0,"sortNumber":0,"placeId":0,"placeName":null,"playDate":null,"userPlayDate":null,"musicId":0,"level":0,"playKind":0,"eventId":0,"eventName":null,"eventPoint":0,"playedUserId1":0,"playedUserId2":0,"playedUserId3":0,"playedUserName1":null,"playedUserName2":null,"playedUserName3":null,"playedMusicLevel1":0,"playedMusicLevel2":0,"playedMusicLevel3":0,"cardId1":0,"cardId2":0,"cardId3":0,"cardLevel1":0,"cardLevel2":0,"cardLevel3":0,"cardAttack1":0,"cardAttack2":0,"cardAttack3":0,"bossCharaId":0,"bossLevel":0,"bossAttribute":0,"clearStatus":0,"techScore":0,"techScoreRank":0,"battleScore":0,"battleScoreRank":0,"platinumScore":0,"maxCombo":0,"judgeMiss":0,"judgeHit":0,"judgeBreak":0,"judgeCriticalBreak":0,"rateTap":0,"rateHold":0,"rateFlick":0,"rateSideTap":0,"rateSideHold":0,"bellCount":0,"totalBellCount":0,"damageCount":0,"overDamage":0,"playerRating":0,"battlePoint":0,"afterRating":0,"beforeRating":0,"achievement":0,"allPerfect":false,"isTechNewRecord":false,"isBattleNewRecord":false,"isOverDamageNewRecord":false,"isFullCombo":false,"isFullBell":false,"isAllBreak":false} -{"rivalUserId":0} -{"scenarioId":0,"playCount":0} -{"storyId":0,"lastChapterId":0,"jewelCount":0,"lastPlayMusicId":0,"lastPlayMusicCategory":0,"lastPlayMusicLevel":0} -{"levelId":0,"allBreakCount":0,"allBreakPlusCount":0} -{"eventId":0,"totalTechScore":0,"totalPlatinumScore":0,"techRecordDate":null,"isRankingRewarded":false,"isTotalTechNewRecord":false} -{"chapterId":0,"tradeItemId":0,"tradeCount":0} -{"authKey":null,"roomId":0,"cardId":0,"valueDate":null}