mirror of https://github.com/Soyandroid/aqua
[ongeki] Move UpsertUserAll to a class
parent
cd7201d57a
commit
244480c12c
|
@ -1,12 +1,12 @@
|
|||
package icu.samnyan.aqua.sega.ongeki.handler.impl;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import icu.samnyan.aqua.sega.general.model.response.UserRecentRating;
|
||||
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.handler.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;
|
||||
|
@ -78,91 +78,81 @@ public class UpsertUserAllHandler implements BaseHandler {
|
|||
@Override
|
||||
public String handle(Map<String, Object> request) throws JsonProcessingException {
|
||||
Integer userId = (Integer) request.get("userId");
|
||||
Map<String, Object> upsertUserAll = (Map<String, Object>) request.get("upsertUserAll");
|
||||
UpsertUserAll upsertUserAll = mapper.convert(request.get("upsertUserAll"), UpsertUserAll.class);
|
||||
|
||||
// All the field should exist, no need to check now.
|
||||
// UserData
|
||||
UserData userData;
|
||||
UserData newUserData;
|
||||
if (!upsertUserAll.containsKey("userData")) {
|
||||
return null;
|
||||
UserData newUserData = upsertUserAll.getUserData().get(0);
|
||||
|
||||
Optional<UserData> userOptional = userDataRepository.findByCard_ExtId(userId);
|
||||
|
||||
if (userOptional.isPresent()) {
|
||||
userData = userOptional.get();
|
||||
} else {
|
||||
Map<String, Object> userDataMap = ((List<Map<String, Object>>) upsertUserAll.get("userData")).get(0);
|
||||
|
||||
Optional<UserData> userOptional = userDataRepository.findByCard_ExtId(userId);
|
||||
|
||||
if (userOptional.isPresent()) {
|
||||
userData = userOptional.get();
|
||||
} else {
|
||||
userData = new UserData();
|
||||
Card card = cardService.getCardByExtId(userId).orElseThrow();
|
||||
userData.setCard(card);
|
||||
}
|
||||
newUserData = mapper.convert(userDataMap, UserData.class);
|
||||
|
||||
newUserData.setId(userData.getId());
|
||||
newUserData.setCard(userData.getCard());
|
||||
|
||||
userDataRepository.save(newUserData);
|
||||
userData = new UserData();
|
||||
Card card = cardService.getCardByExtId(userId).orElseThrow();
|
||||
userData.setCard(card);
|
||||
}
|
||||
|
||||
newUserData.setId(userData.getId());
|
||||
newUserData.setCard(userData.getCard());
|
||||
|
||||
userDataRepository.save(newUserData);
|
||||
|
||||
|
||||
// UserOption
|
||||
if (upsertUserAll.containsKey("userOption")) {
|
||||
Map<String, Object> userOptionMap = ((List<Map<String, Object>>) upsertUserAll.get("userOption")).get(0);
|
||||
UserOption newUserOption = upsertUserAll.getUserOption().get(0);
|
||||
|
||||
Optional<UserOption> userOptionOptional = userOptionRepository.findByUser(newUserData);
|
||||
UserOption userOption = userOptionOptional.orElseGet(() -> new UserOption(newUserData));
|
||||
Optional<UserOption> userOptionOptional = userOptionRepository.findByUser(newUserData);
|
||||
UserOption userOption = userOptionOptional.orElseGet(() -> new UserOption(newUserData));
|
||||
|
||||
UserOption newUserOption = mapper.convert(userOptionMap, UserOption.class);
|
||||
newUserOption.setId(userOption.getId());
|
||||
newUserOption.setUser(userOption.getUser());
|
||||
newUserOption.setId(userOption.getId());
|
||||
newUserOption.setUser(userOption.getUser());
|
||||
|
||||
userOptionRepository.save(newUserOption);
|
||||
|
||||
userOptionRepository.save(newUserOption);
|
||||
}
|
||||
|
||||
// UserPlaylogList
|
||||
if (upsertUserAll.containsKey("userPlaylogList")) {
|
||||
List<Map<String, Object>> userPlaylogList = ((List<Map<String, Object>>) upsertUserAll.get("userPlaylogList"));
|
||||
List<UserPlaylog> newUserPlaylogList = new ArrayList<>();
|
||||
List<UserPlaylog> userPlaylogList = upsertUserAll.getUserPlaylogList();
|
||||
List<UserPlaylog> newUserPlaylogList = new ArrayList<>();
|
||||
|
||||
for (Map<String, Object> userPlayLogMap : userPlaylogList) {
|
||||
UserPlaylog newUserPlaylog = mapper.convert(userPlayLogMap, UserPlaylog.class);
|
||||
newUserPlaylog.setUser(newUserData);
|
||||
newUserPlaylogList.add(newUserPlaylog);
|
||||
}
|
||||
|
||||
userPlaylogRepository.saveAll(newUserPlaylogList);
|
||||
for (UserPlaylog newUserPlaylog : userPlaylogList) {
|
||||
newUserPlaylog.setUser(newUserData);
|
||||
newUserPlaylogList.add(newUserPlaylog);
|
||||
}
|
||||
|
||||
userPlaylogRepository.saveAll(newUserPlaylogList);
|
||||
|
||||
|
||||
// UserSessionlogList doesn't need to save for a private server
|
||||
|
||||
|
||||
// UserActivityList
|
||||
if (upsertUserAll.containsKey("userActivityList")) {
|
||||
List<Map<String, Object>> userActivityList = ((List<Map<String, Object>>) upsertUserAll.get("userActivityList"));
|
||||
List<UserActivity> newUserActivityList = new ArrayList<>();
|
||||
List<UserActivity> userActivityList = upsertUserAll.getUserActivityList();
|
||||
List<UserActivity> newUserActivityList = new ArrayList<>();
|
||||
|
||||
for (Map<String, Object> userActivityMap : userActivityList) {
|
||||
Integer kind = (Integer) userActivityMap.get("kind");
|
||||
Integer id = (Integer) userActivityMap.get("id");
|
||||
for (UserActivity newUserActivity : userActivityList) {
|
||||
int kind = newUserActivity.getKind();
|
||||
int id = newUserActivity.getActivityId();
|
||||
|
||||
if (kind != 0 && id != 0) {
|
||||
Optional<UserActivity> activityOptional = userActivityRepository.findByUserAndKindAndActivityId(newUserData, kind, id);
|
||||
UserActivity userActivity = activityOptional.orElseGet(() -> new UserActivity(newUserData));
|
||||
if (kind != 0 && id != 0) {
|
||||
Optional<UserActivity> activityOptional = userActivityRepository.findByUserAndKindAndActivityId(newUserData, kind, id);
|
||||
UserActivity userActivity = activityOptional.orElseGet(() -> new UserActivity(newUserData));
|
||||
|
||||
UserActivity newUserActivity = mapper.convert(userActivityMap, UserActivity.class);
|
||||
newUserActivity.setId(userActivity.getId());
|
||||
newUserActivity.setUser(newUserData);
|
||||
newUserActivityList.add(newUserActivity);
|
||||
}
|
||||
newUserActivity.setId(userActivity.getId());
|
||||
newUserActivity.setUser(newUserData);
|
||||
newUserActivityList.add(newUserActivity);
|
||||
}
|
||||
newUserActivityList.sort((a, b) -> Integer.compare(b.getSortNumber(), a.getSortNumber()));
|
||||
userActivityRepository.saveAll(newUserActivityList);
|
||||
}
|
||||
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
|
||||
if (upsertUserAll.containsKey("userRecentRatingList")) {
|
||||
this.saveGeneralData(upsertUserAll, newUserData, "userRecentRatingList", "recent_rating_list");
|
||||
}
|
||||
this.saveGeneralData(upsertUserAll.getUserRecentRatingList(), newUserData, "recent_rating_list");
|
||||
|
||||
|
||||
/*
|
||||
* The rating and battle point calculation is little bit complex.
|
||||
|
@ -170,275 +160,236 @@ public class UpsertUserAllHandler implements BaseHandler {
|
|||
* into a csv format for convenience
|
||||
*/
|
||||
// UserBpBaseList (For calculating Battle point)
|
||||
if (upsertUserAll.containsKey("userBpBaseList")) {
|
||||
this.saveGeneralData(upsertUserAll, newUserData, "userBpBaseList", "battle_point_base");
|
||||
}
|
||||
this.saveGeneralData(upsertUserAll.getUserBpBaseList(), newUserData, "battle_point_base");
|
||||
|
||||
|
||||
// This is the best rating of all charts. Best 30 + 10 after that.
|
||||
// userRatingBaseBestList
|
||||
if (upsertUserAll.containsKey("userRatingBaseBestList")) {
|
||||
this.saveGeneralData(upsertUserAll, newUserData, "userRatingBaseBestList", "rating_base_best");
|
||||
}
|
||||
this.saveGeneralData(upsertUserAll.getUserRatingBaseBestList(), newUserData, "rating_base_best");
|
||||
|
||||
|
||||
// userRatingBaseNextList
|
||||
if (upsertUserAll.containsKey("userRatingBaseNextList")) {
|
||||
this.saveGeneralData(upsertUserAll, newUserData, "userRatingBaseNextList", "rating_base_next");
|
||||
}
|
||||
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
|
||||
if (upsertUserAll.containsKey("userRatingBaseBestNewList")) {
|
||||
this.saveGeneralData(upsertUserAll, newUserData, "userRatingBaseBestNewList", "rating_base_new_best");
|
||||
}
|
||||
this.saveGeneralData(upsertUserAll.getUserRatingBaseBestNewList(), newUserData, "rating_base_new_best");
|
||||
|
||||
// userRatingBaseNextNewList
|
||||
if (upsertUserAll.containsKey("userRatingBaseNextNewList")) {
|
||||
this.saveGeneralData(upsertUserAll, newUserData, "userRatingBaseNextNewList", "rating_base_new_next");
|
||||
}
|
||||
this.saveGeneralData(upsertUserAll.getUserRatingBaseNextNewList(), newUserData, "rating_base_new_next");
|
||||
|
||||
// This is the recent best
|
||||
// userRatingBaseHotList
|
||||
if (upsertUserAll.containsKey("userRatingBaseHotList")) {
|
||||
this.saveGeneralData(upsertUserAll, newUserData, "userRatingBaseHotList", "rating_base_hot_best");
|
||||
}
|
||||
this.saveGeneralData(upsertUserAll.getUserRatingBaseHotList(), newUserData, "rating_base_hot_best");
|
||||
|
||||
// userRatingBaseHotNextList
|
||||
if (upsertUserAll.containsKey("userRatingBaseHotNextList")) {
|
||||
this.saveGeneralData(upsertUserAll, newUserData, "userRatingBaseHotNextList", "rating_base_hot_next");
|
||||
}
|
||||
this.saveGeneralData(upsertUserAll.getUserRatingBaseHotNextList(), newUserData, "rating_base_hot_next");
|
||||
|
||||
|
||||
// UserMusicDetailList
|
||||
if (upsertUserAll.containsKey("userMusicDetailList")) {
|
||||
List<Map<String, Object>> userMusicDetailList = ((List<Map<String, Object>>) upsertUserAll.get("userMusicDetailList"));
|
||||
List<UserMusicDetail> newUserMusicDetailList = new ArrayList<>();
|
||||
List<UserMusicDetail> userMusicDetailList = upsertUserAll.getUserMusicDetailList();
|
||||
List<UserMusicDetail> newUserMusicDetailList = new ArrayList<>();
|
||||
|
||||
for (Map<String, Object> userMusicDetailMap : userMusicDetailList) {
|
||||
Integer musicId = (Integer) userMusicDetailMap.get("musicId");
|
||||
Integer level = (Integer) userMusicDetailMap.get("level");
|
||||
for (UserMusicDetail newUserMusicDetail : userMusicDetailList) {
|
||||
int musicId = newUserMusicDetail.getMusicId();
|
||||
int level = newUserMusicDetail.getLevel();
|
||||
|
||||
Optional<UserMusicDetail> musicDetailOptional = userMusicDetailRepository.findByUserAndMusicIdAndLevel(newUserData, musicId, level);
|
||||
UserMusicDetail userMusicDetail = musicDetailOptional.orElseGet(() -> new UserMusicDetail(newUserData));
|
||||
Optional<UserMusicDetail> musicDetailOptional = userMusicDetailRepository.findByUserAndMusicIdAndLevel(newUserData, musicId, level);
|
||||
UserMusicDetail userMusicDetail = musicDetailOptional.orElseGet(() -> new UserMusicDetail(newUserData));
|
||||
|
||||
UserMusicDetail newUserMusicDetail = mapper.convert(userMusicDetailMap, UserMusicDetail.class);
|
||||
newUserMusicDetail.setId(userMusicDetail.getId());
|
||||
newUserMusicDetail.setUser(newUserData);
|
||||
newUserMusicDetailList.add(newUserMusicDetail);
|
||||
}
|
||||
userMusicDetailRepository.saveAll(newUserMusicDetailList);
|
||||
newUserMusicDetail.setId(userMusicDetail.getId());
|
||||
newUserMusicDetail.setUser(newUserData);
|
||||
newUserMusicDetailList.add(newUserMusicDetail);
|
||||
}
|
||||
userMusicDetailRepository.saveAll(newUserMusicDetailList);
|
||||
|
||||
|
||||
// UserCharacterList
|
||||
if (upsertUserAll.containsKey("userCharacterList")) {
|
||||
List<Map<String, Object>> userCharacterList = ((List<Map<String, Object>>) upsertUserAll.get("userCharacterList"));
|
||||
List<UserCharacter> newUserCharacterList = new ArrayList<>();
|
||||
List<UserCharacter> userCharacterList = upsertUserAll.getUserCharacterList();
|
||||
List<UserCharacter> newUserCharacterList = new ArrayList<>();
|
||||
|
||||
for (Map<String, Object> userCharacterMap : userCharacterList) {
|
||||
Integer characterId = (Integer) userCharacterMap.get("characterId");
|
||||
for (UserCharacter newUserCharacter : userCharacterList) {
|
||||
int characterId = newUserCharacter.getCharacterId();
|
||||
|
||||
Optional<UserCharacter> characterOptional = userCharacterRepository.findByUserAndCharacterId(newUserData, characterId);
|
||||
UserCharacter userCharacter = characterOptional.orElseGet(() -> new UserCharacter(newUserData));
|
||||
Optional<UserCharacter> characterOptional = userCharacterRepository.findByUserAndCharacterId(newUserData, characterId);
|
||||
UserCharacter userCharacter = characterOptional.orElseGet(() -> new UserCharacter(newUserData));
|
||||
|
||||
UserCharacter newUserCharacter = mapper.convert(userCharacterMap, UserCharacter.class);
|
||||
newUserCharacter.setId(userCharacter.getId());
|
||||
newUserCharacter.setUser(newUserData);
|
||||
newUserCharacterList.add(newUserCharacter);
|
||||
}
|
||||
userCharacterRepository.saveAll(newUserCharacterList);
|
||||
newUserCharacter.setId(userCharacter.getId());
|
||||
newUserCharacter.setUser(newUserData);
|
||||
newUserCharacterList.add(newUserCharacter);
|
||||
}
|
||||
userCharacterRepository.saveAll(newUserCharacterList);
|
||||
|
||||
// UserCardList
|
||||
if (upsertUserAll.containsKey("userCardList")) {
|
||||
List<Map<String, Object>> userCardList = ((List<Map<String, Object>>) upsertUserAll.get("userCardList"));
|
||||
List<UserCard> newUserCardList = new ArrayList<>();
|
||||
List<UserCard> userCardList = upsertUserAll.getUserCardList();
|
||||
List<UserCard> newUserCardList = new ArrayList<>();
|
||||
|
||||
for (Map<String, Object> userCardMap : userCardList) {
|
||||
Integer cardId = (Integer) userCardMap.get("cardId");
|
||||
for (UserCard newUserCard : userCardList) {
|
||||
int cardId = newUserCard.getCardId();
|
||||
|
||||
Optional<UserCard> cardOptional = userCardRepository.findByUserAndCardId(newUserData, cardId);
|
||||
UserCard userCard = cardOptional.orElseGet(() -> new UserCard(newUserData));
|
||||
Optional<UserCard> cardOptional = userCardRepository.findByUserAndCardId(newUserData, cardId);
|
||||
UserCard userCard = cardOptional.orElseGet(() -> new UserCard(newUserData));
|
||||
|
||||
UserCard newUserCard = mapper.convert(userCardMap, UserCard.class);
|
||||
newUserCard.setId(userCard.getId());
|
||||
newUserCard.setUser(newUserData);
|
||||
newUserCardList.add(newUserCard);
|
||||
}
|
||||
userCardRepository.saveAll(newUserCardList);
|
||||
newUserCard.setId(userCard.getId());
|
||||
newUserCard.setUser(newUserData);
|
||||
newUserCardList.add(newUserCard);
|
||||
}
|
||||
userCardRepository.saveAll(newUserCardList);
|
||||
|
||||
|
||||
// UserDeckList
|
||||
if (upsertUserAll.containsKey("userDeckList")) {
|
||||
List<Map<String, Object>> userDeckList = ((List<Map<String, Object>>) upsertUserAll.get("userDeckList"));
|
||||
List<UserDeck> newUserDeckList = new ArrayList<>();
|
||||
List<UserDeck> userDeckList = upsertUserAll.getUserDeckList();
|
||||
List<UserDeck> newUserDeckList = new ArrayList<>();
|
||||
|
||||
for (Map<String, Object> userDeckMap : userDeckList) {
|
||||
Integer deckId = (Integer) userDeckMap.get("deckId");
|
||||
for (UserDeck newUserDeck : userDeckList) {
|
||||
int deckId = newUserDeck.getDeckId();
|
||||
|
||||
Optional<UserDeck> deckOptional = userDeckRepository.findByUserAndDeckId(newUserData, deckId);
|
||||
UserDeck userDeck = deckOptional.orElseGet(() -> new UserDeck(newUserData));
|
||||
Optional<UserDeck> deckOptional = userDeckRepository.findByUserAndDeckId(newUserData, deckId);
|
||||
UserDeck userDeck = deckOptional.orElseGet(() -> new UserDeck(newUserData));
|
||||
|
||||
UserDeck newUserDeck = mapper.convert(userDeckMap, UserDeck.class);
|
||||
newUserDeck.setId(userDeck.getId());
|
||||
newUserDeck.setUser(newUserData);
|
||||
newUserDeckList.add(newUserDeck);
|
||||
}
|
||||
userDeckRepository.saveAll(newUserDeckList);
|
||||
newUserDeck.setId(userDeck.getId());
|
||||
newUserDeck.setUser(newUserData);
|
||||
newUserDeckList.add(newUserDeck);
|
||||
}
|
||||
userDeckRepository.saveAll(newUserDeckList);
|
||||
|
||||
|
||||
// userTrainingRoomList
|
||||
if (upsertUserAll.containsKey("userTrainingRoomList")) {
|
||||
List<Map<String, Object>> userTrainingRoomList = ((List<Map<String, Object>>) upsertUserAll.get("userTrainingRoomList"));
|
||||
List<UserTrainingRoom> newUserTrainingRoomList = new ArrayList<>();
|
||||
List<UserTrainingRoom> userTrainingRoomList = upsertUserAll.getUserTrainingRoomList();
|
||||
List<UserTrainingRoom> newUserTrainingRoomList = new ArrayList<>();
|
||||
|
||||
for (Map<String, Object> userTrainingRoomMap : userTrainingRoomList) {
|
||||
Integer roomId = (Integer) userTrainingRoomMap.get("roomId");
|
||||
for (UserTrainingRoom newUserTrainingRoom : userTrainingRoomList) {
|
||||
int roomId = newUserTrainingRoom.getRoomId();
|
||||
|
||||
Optional<UserTrainingRoom> trainingRoomOptional = userTrainingRoomRepository.findByUserAndRoomId(newUserData, roomId);
|
||||
UserTrainingRoom trainingRoom = trainingRoomOptional.orElseGet(() -> new UserTrainingRoom(newUserData));
|
||||
Optional<UserTrainingRoom> trainingRoomOptional = userTrainingRoomRepository.findByUserAndRoomId(newUserData, roomId);
|
||||
UserTrainingRoom trainingRoom = trainingRoomOptional.orElseGet(() -> new UserTrainingRoom(newUserData));
|
||||
|
||||
UserTrainingRoom newUserTrainingRoom = mapper.convert(userTrainingRoomMap, UserTrainingRoom.class);
|
||||
newUserTrainingRoom.setId(trainingRoom.getId());
|
||||
newUserTrainingRoom.setUser(newUserData);
|
||||
newUserTrainingRoomList.add(newUserTrainingRoom);
|
||||
}
|
||||
userTrainingRoomRepository.saveAll(newUserTrainingRoomList);
|
||||
newUserTrainingRoom.setId(trainingRoom.getId());
|
||||
newUserTrainingRoom.setUser(newUserData);
|
||||
newUserTrainingRoomList.add(newUserTrainingRoom);
|
||||
}
|
||||
userTrainingRoomRepository.saveAll(newUserTrainingRoomList);
|
||||
|
||||
|
||||
// UserStoryList
|
||||
if (upsertUserAll.containsKey("userStoryList")) {
|
||||
List<Map<String, Object>> userStoryList = ((List<Map<String, Object>>) upsertUserAll.get("userStoryList"));
|
||||
List<UserStory> newUserStoryList = new ArrayList<>();
|
||||
List<UserStory> userStoryList = upsertUserAll.getUserStoryList();
|
||||
List<UserStory> newUserStoryList = new ArrayList<>();
|
||||
|
||||
for (Map<String, Object> userStoryMap : userStoryList) {
|
||||
Integer storyId = (Integer) userStoryMap.get("storyId");
|
||||
for (UserStory newUserStory : userStoryList) {
|
||||
int storyId = newUserStory.getStoryId();
|
||||
|
||||
Optional<UserStory> storyOptional = userStoryRepository.findByUserAndStoryId(newUserData, storyId);
|
||||
UserStory userStory = storyOptional.orElseGet(() -> new UserStory(newUserData));
|
||||
Optional<UserStory> storyOptional = userStoryRepository.findByUserAndStoryId(newUserData, storyId);
|
||||
UserStory userStory = storyOptional.orElseGet(() -> new UserStory(newUserData));
|
||||
|
||||
UserStory newUserStory = mapper.convert(userStoryMap, UserStory.class);
|
||||
newUserStory.setId(userStory.getId());
|
||||
newUserStory.setUser(newUserData);
|
||||
newUserStoryList.add(newUserStory);
|
||||
}
|
||||
userStoryRepository.saveAll(newUserStoryList);
|
||||
newUserStory.setId(userStory.getId());
|
||||
newUserStory.setUser(newUserData);
|
||||
newUserStoryList.add(newUserStory);
|
||||
}
|
||||
userStoryRepository.saveAll(newUserStoryList);
|
||||
|
||||
|
||||
// UserChapterList
|
||||
if (upsertUserAll.containsKey("userChapterList")) {
|
||||
List<Map<String, Object>> userChapterList = ((List<Map<String, Object>>) upsertUserAll.get("userChapterList"));
|
||||
List<UserChapter> newUserChapterList = new ArrayList<>();
|
||||
List<UserChapter> userChapterList = upsertUserAll.getUserChapterList();
|
||||
List<UserChapter> newUserChapterList = new ArrayList<>();
|
||||
|
||||
for (Map<String, Object> userChapterMap : userChapterList) {
|
||||
Integer chapterId = (Integer) userChapterMap.get("chapterId");
|
||||
for (UserChapter newUserChapter : userChapterList) {
|
||||
int chapterId = newUserChapter.getChapterId();
|
||||
|
||||
Optional<UserChapter> chapterOptional = userChapterRepository.findByUserAndChapterId(newUserData, chapterId);
|
||||
UserChapter userChapter = chapterOptional.orElseGet(() -> new UserChapter(newUserData));
|
||||
Optional<UserChapter> chapterOptional = userChapterRepository.findByUserAndChapterId(newUserData, chapterId);
|
||||
UserChapter userChapter = chapterOptional.orElseGet(() -> new UserChapter(newUserData));
|
||||
|
||||
UserChapter newUserChapter = mapper.convert(userChapterMap, UserChapter.class);
|
||||
newUserChapter.setId(userChapter.getId());
|
||||
newUserChapter.setUser(newUserData);
|
||||
newUserChapterList.add(newUserChapter);
|
||||
}
|
||||
userChapterRepository.saveAll(newUserChapterList);
|
||||
newUserChapter.setId(userChapter.getId());
|
||||
newUserChapter.setUser(newUserData);
|
||||
newUserChapterList.add(newUserChapter);
|
||||
}
|
||||
userChapterRepository.saveAll(newUserChapterList);
|
||||
|
||||
|
||||
// UserItemList
|
||||
if (upsertUserAll.containsKey("userItemList")) {
|
||||
List<Map<String, Object>> userItemList = ((List<Map<String, Object>>) upsertUserAll.get("userItemList"));
|
||||
List<UserItem> newUserItemList = new ArrayList<>();
|
||||
List<UserItem> userItemList = upsertUserAll.getUserItemList();
|
||||
List<UserItem> newUserItemList = new ArrayList<>();
|
||||
|
||||
for (Map<String, Object> userItemMap : userItemList) {
|
||||
Integer itemKind = (Integer) userItemMap.get("itemKind");
|
||||
Integer itemId = (Integer) userItemMap.get("itemId");
|
||||
for (UserItem newUserItem : userItemList) {
|
||||
int itemKind = newUserItem.getItemKind();
|
||||
int itemId = newUserItem.getItemId();
|
||||
|
||||
Optional<UserItem> itemOptional = userItemRepository.findByUserAndItemKindAndItemId(newUserData, itemKind, itemId);
|
||||
UserItem userItem = itemOptional.orElseGet(() -> new UserItem(newUserData));
|
||||
Optional<UserItem> itemOptional = userItemRepository.findByUserAndItemKindAndItemId(newUserData, itemKind, itemId);
|
||||
UserItem userItem = itemOptional.orElseGet(() -> new UserItem(newUserData));
|
||||
|
||||
UserItem newUserItem = mapper.convert(userItemMap, UserItem.class);
|
||||
newUserItem.setId(userItem.getId());
|
||||
newUserItem.setUser(newUserData);
|
||||
newUserItemList.add(newUserItem);
|
||||
}
|
||||
userItemRepository.saveAll(newUserItemList);
|
||||
newUserItem.setId(userItem.getId());
|
||||
newUserItem.setUser(newUserData);
|
||||
newUserItemList.add(newUserItem);
|
||||
}
|
||||
userItemRepository.saveAll(newUserItemList);
|
||||
|
||||
// UserMusicItemList
|
||||
if (upsertUserAll.containsKey("userMusicItemList")) {
|
||||
List<Map<String, Object>> userMusicItemList = ((List<Map<String, Object>>) upsertUserAll.get("userMusicItemList"));
|
||||
List<UserMusicItem> newUserMusicItemList = new ArrayList<>();
|
||||
List<UserMusicItem> userMusicItemList = upsertUserAll.getUserMusicItemList();
|
||||
List<UserMusicItem> newUserMusicItemList = new ArrayList<>();
|
||||
|
||||
for (Map<String, Object> userMusicItemMap : userMusicItemList) {
|
||||
Integer musicId = (Integer) userMusicItemMap.get("musicId");
|
||||
for (UserMusicItem newUserMusicItem : userMusicItemList) {
|
||||
int musicId = newUserMusicItem.getMusicId();
|
||||
|
||||
Optional<UserMusicItem> musicItemOptional = userMusicItemRepository.findByUserAndMusicId(newUserData, musicId);
|
||||
UserMusicItem userMusicItem = musicItemOptional.orElseGet(() -> new UserMusicItem(newUserData));
|
||||
Optional<UserMusicItem> musicItemOptional = userMusicItemRepository.findByUserAndMusicId(newUserData, musicId);
|
||||
UserMusicItem userMusicItem = musicItemOptional.orElseGet(() -> new UserMusicItem(newUserData));
|
||||
|
||||
UserMusicItem newUserMusicItem = mapper.convert(userMusicItemMap, UserMusicItem.class);
|
||||
newUserMusicItem.setId(userMusicItem.getId());
|
||||
newUserMusicItem.setUser(newUserData);
|
||||
newUserMusicItemList.add(newUserMusicItem);
|
||||
}
|
||||
userMusicItemRepository.saveAll(newUserMusicItemList);
|
||||
newUserMusicItem.setId(userMusicItem.getId());
|
||||
newUserMusicItem.setUser(newUserData);
|
||||
newUserMusicItemList.add(newUserMusicItem);
|
||||
}
|
||||
userMusicItemRepository.saveAll(newUserMusicItemList);
|
||||
|
||||
|
||||
// userLoginBonusList
|
||||
if (upsertUserAll.containsKey("userLoginBonusList")) {
|
||||
List<Map<String, Object>> userLoginBonusList = ((List<Map<String, Object>>) upsertUserAll.get("userLoginBonusList"));
|
||||
List<UserLoginBonus> newUserLoginBonusList = new ArrayList<>();
|
||||
List<UserLoginBonus> userLoginBonusList = upsertUserAll.getUserLoginBonusList();
|
||||
List<UserLoginBonus> newUserLoginBonusList = new ArrayList<>();
|
||||
|
||||
for (Map<String, Object> userLoginBonusMap : userLoginBonusList) {
|
||||
Integer bonusId = (Integer) userLoginBonusMap.get("bonusId");
|
||||
for (UserLoginBonus newUserLoginBonus : userLoginBonusList) {
|
||||
int bonusId = newUserLoginBonus.getBonusId();
|
||||
|
||||
Optional<UserLoginBonus> loginBonusOptional = userLoginBonusRepository.findByUserAndBonusId(newUserData, bonusId);
|
||||
UserLoginBonus userLoginBonus = loginBonusOptional.orElseGet(() -> new UserLoginBonus(newUserData));
|
||||
Optional<UserLoginBonus> loginBonusOptional = userLoginBonusRepository.findByUserAndBonusId(newUserData, bonusId);
|
||||
UserLoginBonus userLoginBonus = loginBonusOptional.orElseGet(() -> new UserLoginBonus(newUserData));
|
||||
|
||||
UserLoginBonus newUserLoginBonus = mapper.convert(userLoginBonusMap, UserLoginBonus.class);
|
||||
newUserLoginBonus.setId(userLoginBonus.getId());
|
||||
newUserLoginBonus.setUser(newUserData);
|
||||
newUserLoginBonusList.add(newUserLoginBonus);
|
||||
}
|
||||
userLoginBonusRepository.saveAll(newUserLoginBonusList);
|
||||
newUserLoginBonus.setId(userLoginBonus.getId());
|
||||
newUserLoginBonus.setUser(newUserData);
|
||||
newUserLoginBonusList.add(newUserLoginBonus);
|
||||
}
|
||||
userLoginBonusRepository.saveAll(newUserLoginBonusList);
|
||||
|
||||
|
||||
// UserEventPointList
|
||||
if (upsertUserAll.containsKey("userEventPointList")) {
|
||||
List<Map<String, Object>> userEventPointList = ((List<Map<String, Object>>) upsertUserAll.get("userEventPointList"));
|
||||
List<UserEventPoint> newUserEventPointList = new ArrayList<>();
|
||||
List<UserEventPoint> userEventPointList = upsertUserAll.getUserEventPointList();
|
||||
List<UserEventPoint> newUserEventPointList = new ArrayList<>();
|
||||
|
||||
for (Map<String, Object> userEventPointMap : userEventPointList) {
|
||||
Integer eventId = (Integer) userEventPointMap.get("eventId");
|
||||
for (UserEventPoint newUserEventPoint : userEventPointList) {
|
||||
int eventId = newUserEventPoint.getEventId();
|
||||
|
||||
Optional<UserEventPoint> eventPointOptional = userEventPointRepository.findByUserAndEventId(newUserData, eventId);
|
||||
UserEventPoint userEventPoint = eventPointOptional.orElseGet(() -> new UserEventPoint(newUserData));
|
||||
Optional<UserEventPoint> eventPointOptional = userEventPointRepository.findByUserAndEventId(newUserData, eventId);
|
||||
UserEventPoint userEventPoint = eventPointOptional.orElseGet(() -> new UserEventPoint(newUserData));
|
||||
|
||||
UserEventPoint newUserEventPoint = mapper.convert(userEventPointMap, UserEventPoint.class);
|
||||
newUserEventPoint.setId(userEventPoint.getId());
|
||||
newUserEventPoint.setUser(newUserData);
|
||||
newUserEventPointList.add(newUserEventPoint);
|
||||
}
|
||||
userEventPointRepository.saveAll(newUserEventPointList);
|
||||
newUserEventPoint.setId(userEventPoint.getId());
|
||||
newUserEventPoint.setUser(newUserData);
|
||||
newUserEventPointList.add(newUserEventPoint);
|
||||
}
|
||||
userEventPointRepository.saveAll(newUserEventPointList);
|
||||
|
||||
|
||||
// UserMissionPointList
|
||||
if (upsertUserAll.containsKey("userMissionPointList")) {
|
||||
List<Map<String, Object>> userMissionPointList = ((List<Map<String, Object>>) upsertUserAll.get("userMissionPointList"));
|
||||
List<UserMissionPoint> newUserMissionPointList = new ArrayList<>();
|
||||
List<UserMissionPoint> userMissionPointList = upsertUserAll.getUserMissionPointList();
|
||||
List<UserMissionPoint> newUserMissionPointList = new ArrayList<>();
|
||||
|
||||
for (Map<String, Object> userMissionPointMap : userMissionPointList) {
|
||||
Integer eventId = (Integer) userMissionPointMap.get("eventId");
|
||||
for (UserMissionPoint newUserMissionPoint : userMissionPointList) {
|
||||
int eventId = newUserMissionPoint.getEventId();
|
||||
|
||||
Optional<UserMissionPoint> userMissionPointOptional = userMissionPointRepository.findByUserAndEventId(newUserData, eventId);
|
||||
UserMissionPoint userMissionPoint = userMissionPointOptional.orElseGet(() -> new UserMissionPoint(newUserData));
|
||||
Optional<UserMissionPoint> userMissionPointOptional = userMissionPointRepository.findByUserAndEventId(newUserData, eventId);
|
||||
UserMissionPoint userMissionPoint = userMissionPointOptional.orElseGet(() -> new UserMissionPoint(newUserData));
|
||||
|
||||
UserMissionPoint newUserEventPoint = mapper.convert(userMissionPointMap, UserMissionPoint.class);
|
||||
newUserEventPoint.setId(userMissionPoint.getId());
|
||||
newUserEventPoint.setUser(newUserData);
|
||||
newUserMissionPointList.add(newUserEventPoint);
|
||||
}
|
||||
userMissionPointRepository.saveAll(newUserMissionPointList);
|
||||
newUserMissionPoint.setId(userMissionPoint.getId());
|
||||
newUserMissionPoint.setUser(newUserData);
|
||||
newUserMissionPointList.add(newUserMissionPoint);
|
||||
}
|
||||
userMissionPointRepository.saveAll(newUserMissionPointList);
|
||||
|
||||
// UserRatinglogList (For the highest rating of each version)
|
||||
|
||||
|
@ -449,11 +400,7 @@ public class UpsertUserAllHandler implements BaseHandler {
|
|||
|
||||
}
|
||||
|
||||
private void saveGeneralData(Map<String, Object> upsertUserAll, UserData newUserData, String jsonName, String key) {
|
||||
List<Map<String, Object>> recordList = ((List<Map<String, Object>>) upsertUserAll.get(jsonName));
|
||||
|
||||
List<UserRecentRating> itemList = mapper.convert(recordList, new TypeReference<>() {
|
||||
});
|
||||
private void saveGeneralData(List<UserRecentRating> itemList, UserData newUserData, String key) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
// Convert to a string
|
||||
for (UserRecentRating item :
|
||||
|
@ -461,7 +408,7 @@ public class UpsertUserAllHandler implements BaseHandler {
|
|||
sb.append(item.getMusicId()).append(":").append(item.getDifficultId()).append(":").append(item.getScore());
|
||||
sb.append(",");
|
||||
}
|
||||
if(sb.length() > 0) {
|
||||
if (sb.length() > 0) {
|
||||
sb.deleteCharAt(sb.length() - 1);
|
||||
}
|
||||
Optional<UserGeneralData> uOptional = userGeneralDataRepository.findByUserAndPropertyKey(newUserData, key);
|
||||
|
|
|
@ -0,0 +1,113 @@
|
|||
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 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> userData;
|
||||
|
||||
private List<UserOption> userOption;
|
||||
|
||||
private List<UserPlaylog> userPlaylogList;
|
||||
|
||||
private List<Map<String, Object>> userSessionlogList;
|
||||
|
||||
private List<UserActivity> userActivityList;
|
||||
|
||||
private List<UserRecentRating> userRecentRatingList;
|
||||
|
||||
private List<UserRecentRating> userBpBaseList;
|
||||
|
||||
private List<UserRecentRating> userRatingBaseBestNewList;
|
||||
|
||||
private List<UserRecentRating> userRatingBaseBestList;
|
||||
|
||||
private List<UserRecentRating> userRatingBaseHotList;
|
||||
|
||||
private List<UserRecentRating> userRatingBaseNextNewList;
|
||||
|
||||
private List<UserRecentRating> userRatingBaseNextList;
|
||||
|
||||
private List<UserRecentRating> userRatingBaseHotNextList;
|
||||
|
||||
private List<UserMusicDetail> userMusicDetailList;
|
||||
|
||||
private List<UserCharacter> userCharacterList;
|
||||
|
||||
private List<UserCard> userCardList;
|
||||
|
||||
private List<UserDeck> userDeckList;
|
||||
|
||||
private List<UserTrainingRoom> userTrainingRoomList;
|
||||
|
||||
private List<UserStory> userStoryList;
|
||||
|
||||
private List<UserChapter> userChapterList;
|
||||
|
||||
private List<UserItem> userItemList;
|
||||
|
||||
private List<UserMusicItem> userMusicItemList;
|
||||
|
||||
private List<UserLoginBonus> userLoginBonusList;
|
||||
|
||||
private List<UserEventPoint> userEventPointList;
|
||||
|
||||
private List<UserMissionPoint> userMissionPointList;
|
||||
|
||||
private List<Map<String, Object>> userRatinglogList;
|
||||
|
||||
@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("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;
|
||||
|
||||
}
|
Loading…
Reference in New Issue