From a9ffd0da7538145bf7185b13beaa65f9e0bd8be2 Mon Sep 17 00:00:00 2001 From: samnyan <205-neumphis@users.noreply.dev.s-ul.eu> Date: Mon, 30 Mar 2020 19:42:05 +0900 Subject: [PATCH] [api] Add ongeki profile import and export --- .../chuni/amazon/ApiAmazonController.java | 7 +- .../ongeki/ApiOngekiPlayerDataController.java | 138 +++++++++++++++++- .../amazon/external/ChuniDataExport.java | 1 + .../amazon/external/ChuniDataImport.java | 1 + .../ongeki/external/ExternalUserData.java | 130 +++++++++++++++++ .../ongeki/external/OngekiDataExport.java | 35 +++++ .../ongeki/external/OngekiDataImport.java | 35 +++++ .../dao/userdata/UserCardRepository.java | 5 +- .../dao/userdata/UserCharacterRepository.java | 5 +- .../dao/userdata/UserDataRepository.java | 3 + .../userdata/UserGeneralDataRepository.java | 5 +- .../dao/userdata/UserItemRepository.java | 5 +- .../userdata/UserMusicDetailRepository.java | 2 + .../dao/userdata/UserMusicItemRepository.java | 5 +- .../dao/userdata/UserPlaylogRepository.java | 4 +- .../dao/userdata/UserStoryRepository.java | 3 + 16 files changed, 376 insertions(+), 8 deletions(-) create mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/ExternalUserData.java create mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/OngekiDataExport.java create mode 100644 src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/OngekiDataImport.java diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/amazon/ApiAmazonController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/amazon/ApiAmazonController.java index f6a4d3b7..7eae5539 100644 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/amazon/ApiAmazonController.java +++ b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/chuni/amazon/ApiAmazonController.java @@ -209,6 +209,7 @@ public class ApiAmazonController { 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)); @@ -231,12 +232,16 @@ public class ApiAmazonController { } // Set filename HttpHeaders headers = new HttpHeaders(); - headers.set("content-disposition", "attachment; filename=" + aimeId + "_exported.json"); + 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()); 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 index ce589499..9a120637 100644 --- 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 @@ -4,7 +4,12 @@ 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.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; @@ -12,6 +17,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.*; 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.*; @@ -20,7 +26,9 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; +import java.util.NoSuchElementException; import java.util.Optional; +import java.util.stream.Collectors; /** * @author samnyan (privateamusement@protonmail.com) @@ -33,32 +41,47 @@ public class ApiOngekiPlayerDataController { 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 GameCardRepository gameCardRepository; - public ApiOngekiPlayerDataController(ApiMapper mapper, UserActivityRepository userActivityRepository, UserCardRepository userCardRepository, UserCharacterRepository userCharacterRepository, UserDataRepository userDataRepository, UserDeckRepository userDeckRepository, UserEventPointRepository userEventPointRepository, UserItemRepository userItemRepository, UserMusicDetailRepository userMusicDetailRepository, UserOptionRepository userOptionRepository, UserPlaylogRepository userPlaylogRepository, UserGeneralDataRepository userGeneralDataRepository, GameCardRepository gameCardRepository) { + public ApiOngekiPlayerDataController(ApiMapper mapper, CardService cardService, UserActivityRepository userActivityRepository, UserCardRepository userCardRepository, UserChapterRepository userChapterRepository, UserCharacterRepository userCharacterRepository, UserDataRepository userDataRepository, UserDeckRepository userDeckRepository, UserEventPointRepository userEventPointRepository, UserItemRepository userItemRepository, UserLoginBonusRepository userLoginBonusRepository, UserMissionPointRepository userMissionPointRepository, UserMusicDetailRepository userMusicDetailRepository, UserMusicItemRepository userMusicItemRepository, UserOptionRepository userOptionRepository, UserPlaylogRepository userPlaylogRepository, UserStoryRepository userStoryRepository, UserTrainingRoomRepository userTrainingRoomRepository, UserGeneralDataRepository userGeneralDataRepository, GameCardRepository gameCardRepository) { this.mapper = mapper; + this.cardService = cardService; this.userActivityRepository = userActivityRepository; this.userCardRepository = userCardRepository; + this.userChapterRepository = userChapterRepository; this.userCharacterRepository = userCharacterRepository; this.userDataRepository = userDataRepository; this.userDeckRepository = userDeckRepository; this.userEventPointRepository = userEventPointRepository; this.userItemRepository = userItemRepository; + this.userLoginBonusRepository = userLoginBonusRepository; + this.userMissionPointRepository = userMissionPointRepository; this.userMusicDetailRepository = userMusicDetailRepository; + this.userMusicItemRepository = userMusicItemRepository; this.userOptionRepository = userOptionRepository; this.userPlaylogRepository = userPlaylogRepository; + this.userStoryRepository = userStoryRepository; + this.userTrainingRoomRepository = userTrainingRoomRepository; this.userGeneralDataRepository = userGeneralDataRepository; this.gameCardRepository = gameCardRepository; } @@ -289,4 +312,117 @@ public class ApiOngekiPlayerDataController { 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 Integer 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)); + } 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()) { + if (userDataRepository.findByCard(cardOptional.get()).isPresent()) { + return ResponseEntity.status(HttpStatus.BAD_REQUEST) + .body(new MessageResponse("This card already has a ongeki profile.")); + } else { + card = cardOptional.get(); + } + } 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())); + + return ResponseEntity.ok(new MessageResponse("Import successfully, aimeId: " + card.getExtId())); + } + } diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/amazon/external/ChuniDataExport.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/amazon/external/ChuniDataExport.java index 9fe1301b..776b87eb 100644 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/amazon/external/ChuniDataExport.java +++ b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/amazon/external/ChuniDataExport.java @@ -15,6 +15,7 @@ import java.util.List; @AllArgsConstructor @NoArgsConstructor public class ChuniDataExport { + private String gameId = "SDBT"; private UserData userData; private List userActivityList; private List userCharacterList; diff --git a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/amazon/external/ChuniDataImport.java b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/amazon/external/ChuniDataImport.java index 5815bdde..3d0b11b9 100644 --- a/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/amazon/external/ChuniDataImport.java +++ b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/chuni/amazon/external/ChuniDataImport.java @@ -15,6 +15,7 @@ import java.util.List; @AllArgsConstructor @NoArgsConstructor public class ChuniDataImport { + private String gameId; private ExternalUserData userData; private List userActivityList; private List userCharacterList; 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 new file mode 100644 index 00000000..96cb3382 --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/ExternalUserData.java @@ -0,0 +1,130 @@ +package icu.samnyan.aqua.api.model.resp.sega.ongeki.external; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +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 javax.persistence.*; +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 playerRating; + + private int highestRating; + + private int battlePoint; + + 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 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 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; + + private String lastClientId; + + private int lastUsedDeckId; + + private int lastPlayMusicLevel; + +} 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 new file mode 100644 index 00000000..6b80033e --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/OngekiDataExport.java @@ -0,0 +1,35 @@ +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; +} 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 new file mode 100644 index 00000000..d617526e --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/api/model/resp/sega/ongeki/external/OngekiDataImport.java @@ -0,0 +1,35 @@ +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; +} 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 index 18444d5b..1bf56946 100644 --- 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 @@ -7,6 +7,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; import java.util.Optional; /** @@ -17,7 +18,9 @@ public interface UserCardRepository extends JpaRepository { Optional findByUserAndCardId(UserData userData, int cardId); - Optional findByUser_Card_ExtIdAndCardId(int aimeId, int cardId); + Optional findByUser_Card_ExtIdAndCardId(int userId, int cardId); + + List findByUser_Card_ExtId(int userId); Page findByUser_Card_ExtId(int userId, Pageable page); 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 index 812860c6..5151b49a 100644 --- 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 @@ -7,6 +7,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; import java.util.Optional; /** @@ -15,7 +16,9 @@ import java.util.Optional; @Repository("OngekiUserCharacterRepository") public interface UserCharacterRepository extends JpaRepository { - Page findByUser_Card_ExtId(Integer userId, Pageable page); + List findByUser_Card_ExtId(int userId); + + Page findByUser_Card_ExtId(int userId, Pageable page); Optional findByUserAndCharacterId(UserData userData, int characterId); diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDataRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDataRepository.java index 9605574e..9e3c3454 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDataRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDataRepository.java @@ -1,5 +1,6 @@ package icu.samnyan.aqua.sega.ongeki.dao.userdata; +import icu.samnyan.aqua.sega.general.model.Card; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @@ -12,6 +13,8 @@ import java.util.Optional; @Repository("OngekiUserDataRepository") public interface UserDataRepository extends JpaRepository { + Optional findByCard(Card card); + Optional findByCard_ExtId(int aimeId); } 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 index 9b9c1858..27bec788 100644 --- 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 @@ -5,6 +5,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserGeneralData; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; import java.util.Optional; /** @@ -13,8 +14,10 @@ import java.util.Optional; @Repository("OngekiUserGeneralDataRepository") public interface UserGeneralDataRepository extends JpaRepository { + List findByUser_Card_ExtId(int userId); + Optional findByUserAndPropertyKey(UserData user, String key); - Optional findByUser_Card_ExtIdAndPropertyKey(int aimeId, String key); + Optional findByUser_Card_ExtIdAndPropertyKey(int userId, String key); } 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 index 936dd5ae..25e11272 100644 --- 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 @@ -7,6 +7,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; import java.util.Optional; /** @@ -15,7 +16,9 @@ import java.util.Optional; @Repository("OngekiUserItemRepository") public interface UserItemRepository extends JpaRepository { - Page findByUser_Card_ExtId(Integer aimeId, Pageable page); + List findByUser_Card_ExtId(int userId); + + Page findByUser_Card_ExtId(int userId, Pageable page); Optional findByUserAndItemKindAndItemId(UserData userData, int itemKind, int itemId); 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 index a73e6a0a..a74ca9b9 100644 --- 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 @@ -16,6 +16,8 @@ import java.util.Optional; @Repository("OngekiUserMusicDetailRepository") public interface UserMusicDetailRepository extends JpaRepository { + List findByUser_Card_ExtId(int userId); + Page findByUser_Card_ExtId(int userId, Pageable page); List findByUser_Card_ExtIdAndMusicId(int userId, int id); 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 index 3ad1b0d1..781137fe 100644 --- 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 @@ -7,6 +7,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; import java.util.Optional; /** @@ -15,8 +16,10 @@ import java.util.Optional; @Repository("OngekiUserMusicItemRepository") public interface UserMusicItemRepository extends JpaRepository { - Optional findByUserAndMusicId(UserData userData, int musicId); + List findByUser_Card_ExtId(int aimeId); Page findByUser_Card_ExtId(int userId, Pageable page); + Optional findByUserAndMusicId(UserData userData, int musicId); + } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserPlaylogRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserPlaylogRepository.java index d2d13048..c207e9c5 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserPlaylogRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserPlaylogRepository.java @@ -14,7 +14,9 @@ import java.util.List; @Repository("OngekiUserPlaylogRepository") public interface UserPlaylogRepository extends JpaRepository { - Page findByUser_Card_ExtId(Integer userId, Pageable page); + List findByUser_Card_ExtId(int userId); + + Page findByUser_Card_ExtId(int userId, Pageable page); List findByUser_Card_ExtIdAndMusicIdAndLevel(Integer userId, int musicId, int level); 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 index 5209953c..9a503f21 100644 --- 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 @@ -5,6 +5,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserStory; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; import java.util.Optional; /** @@ -13,6 +14,8 @@ import java.util.Optional; @Repository("OngekiUserStoryRepository") public interface UserStoryRepository extends JpaRepository { + List findByUser_Card_ExtId(int userId); + Optional findByUserAndStoryId(UserData userData, int storyId); }