mirror of https://github.com/hykilpikonna/AquaDX
[api] Add ongeki profile import and export
parent
244480c12c
commit
a9ffd0da75
|
@ -209,6 +209,7 @@ public class ApiAmazonController {
|
|||
public ResponseEntity<Object> 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<Object> 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<Card> cardOptional = cardService.getCardByAccessCode(exUser.getAccessCode());
|
||||
|
|
|
@ -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.<ResponseEntity<Object>>map(ResponseEntity::ok)
|
||||
.orElseGet(() -> ResponseEntity.status(HttpStatus.NOT_FOUND).body(new MessageResponse("User or value not found.")));
|
||||
}
|
||||
|
||||
@GetMapping("export")
|
||||
public ResponseEntity<Object> 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<Object> 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<Card> 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()));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ import java.util.List;
|
|||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ChuniDataExport {
|
||||
private String gameId = "SDBT";
|
||||
private UserData userData;
|
||||
private List<UserActivity> userActivityList;
|
||||
private List<UserCharacter> userCharacterList;
|
||||
|
|
|
@ -15,6 +15,7 @@ import java.util.List;
|
|||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ChuniDataImport {
|
||||
private String gameId;
|
||||
private ExternalUserData userData;
|
||||
private List<UserActivity> userActivityList;
|
||||
private List<UserCharacter> userCharacterList;
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -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<UserActivity> userActivityList;
|
||||
private List<UserCard> userCardList;
|
||||
private List<UserChapter> userChapterList;
|
||||
private List<UserCharacter> userCharacterList;
|
||||
private List<UserDeck> userDeckList;
|
||||
private List<UserEventPoint> userEventPointList;
|
||||
private List<UserGeneralData> userGeneralDataList;
|
||||
private List<UserItem> userItemList;
|
||||
private List<UserLoginBonus> userLoginBonusList;
|
||||
private List<UserMissionPoint> userMissionPointList;
|
||||
private List<UserMusicDetail> userMusicDetailList;
|
||||
private List<UserMusicItem> userMusicItemList;
|
||||
private UserOption userOption;
|
||||
private List<UserPlaylog> userPlaylogList;
|
||||
private List<UserStory> userStoryList;
|
||||
private List<UserTrainingRoom> userTrainingRoomList;
|
||||
}
|
|
@ -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<UserActivity> userActivityList;
|
||||
private List<UserCard> userCardList;
|
||||
private List<UserChapter> userChapterList;
|
||||
private List<UserCharacter> userCharacterList;
|
||||
private List<UserDeck> userDeckList;
|
||||
private List<UserEventPoint> userEventPointList;
|
||||
private List<UserGeneralData> userGeneralDataList;
|
||||
private List<UserItem> userItemList;
|
||||
private List<UserLoginBonus> userLoginBonusList;
|
||||
private List<UserMissionPoint> userMissionPointList;
|
||||
private List<UserMusicDetail> userMusicDetailList;
|
||||
private List<UserMusicItem> userMusicItemList;
|
||||
private UserOption userOption;
|
||||
private List<UserPlaylog> userPlaylogList;
|
||||
private List<UserStory> userStoryList;
|
||||
private List<UserTrainingRoom> userTrainingRoomList;
|
||||
}
|
|
@ -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<UserCard, Long> {
|
|||
|
||||
Optional<UserCard> findByUserAndCardId(UserData userData, int cardId);
|
||||
|
||||
Optional<UserCard> findByUser_Card_ExtIdAndCardId(int aimeId, int cardId);
|
||||
Optional<UserCard> findByUser_Card_ExtIdAndCardId(int userId, int cardId);
|
||||
|
||||
List<UserCard> findByUser_Card_ExtId(int userId);
|
||||
|
||||
Page<UserCard> findByUser_Card_ExtId(int userId, Pageable page);
|
||||
|
||||
|
|
|
@ -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<UserCharacter, Long> {
|
||||
|
||||
Page<UserCharacter> findByUser_Card_ExtId(Integer userId, Pageable page);
|
||||
List<UserCharacter> findByUser_Card_ExtId(int userId);
|
||||
|
||||
Page<UserCharacter> findByUser_Card_ExtId(int userId, Pageable page);
|
||||
|
||||
Optional<UserCharacter> findByUserAndCharacterId(UserData userData, int characterId);
|
||||
|
||||
|
|
|
@ -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<UserData, Long> {
|
||||
|
||||
Optional<UserData> findByCard(Card card);
|
||||
|
||||
Optional<UserData> findByCard_ExtId(int aimeId);
|
||||
|
||||
}
|
||||
|
|
|
@ -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<UserGeneralData, Long> {
|
||||
|
||||
List<UserGeneralData> findByUser_Card_ExtId(int userId);
|
||||
|
||||
Optional<UserGeneralData> findByUserAndPropertyKey(UserData user, String key);
|
||||
|
||||
Optional<UserGeneralData> findByUser_Card_ExtIdAndPropertyKey(int aimeId, String key);
|
||||
Optional<UserGeneralData> findByUser_Card_ExtIdAndPropertyKey(int userId, String key);
|
||||
|
||||
}
|
||||
|
|
|
@ -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<UserItem, Long> {
|
||||
|
||||
Page<UserItem> findByUser_Card_ExtId(Integer aimeId, Pageable page);
|
||||
List<UserItem> findByUser_Card_ExtId(int userId);
|
||||
|
||||
Page<UserItem> findByUser_Card_ExtId(int userId, Pageable page);
|
||||
|
||||
Optional<UserItem> findByUserAndItemKindAndItemId(UserData userData, int itemKind, int itemId);
|
||||
|
||||
|
|
|
@ -16,6 +16,8 @@ import java.util.Optional;
|
|||
@Repository("OngekiUserMusicDetailRepository")
|
||||
public interface UserMusicDetailRepository extends JpaRepository<UserMusicDetail, Long> {
|
||||
|
||||
List<UserMusicDetail> findByUser_Card_ExtId(int userId);
|
||||
|
||||
Page<UserMusicDetail> findByUser_Card_ExtId(int userId, Pageable page);
|
||||
|
||||
List<UserMusicDetail> findByUser_Card_ExtIdAndMusicId(int userId, int id);
|
||||
|
|
|
@ -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<UserMusicItem, Long> {
|
||||
|
||||
Optional<UserMusicItem> findByUserAndMusicId(UserData userData, int musicId);
|
||||
List<UserMusicItem> findByUser_Card_ExtId(int aimeId);
|
||||
|
||||
Page<UserMusicItem> findByUser_Card_ExtId(int userId, Pageable page);
|
||||
|
||||
Optional<UserMusicItem> findByUserAndMusicId(UserData userData, int musicId);
|
||||
|
||||
}
|
||||
|
|
|
@ -14,7 +14,9 @@ import java.util.List;
|
|||
@Repository("OngekiUserPlaylogRepository")
|
||||
public interface UserPlaylogRepository extends JpaRepository<UserPlaylog, Long> {
|
||||
|
||||
Page<UserPlaylog> findByUser_Card_ExtId(Integer userId, Pageable page);
|
||||
List<UserPlaylog> findByUser_Card_ExtId(int userId);
|
||||
|
||||
Page<UserPlaylog> findByUser_Card_ExtId(int userId, Pageable page);
|
||||
|
||||
List<UserPlaylog> findByUser_Card_ExtIdAndMusicIdAndLevel(Integer userId, int musicId, int level);
|
||||
|
||||
|
|
|
@ -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<UserStory, Long> {
|
||||
|
||||
List<UserStory> findByUser_Card_ExtId(int userId);
|
||||
|
||||
Optional<UserStory> findByUserAndStoryId(UserData userData, int storyId);
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue