mirror of https://github.com/hykilpikonna/AquaDX
[+] Minimum working support for Ongeki Re:Fresh
parent
f463aea3ef
commit
d690b81681
|
@ -4,7 +4,6 @@ package icu.samnyan.aqua.sega.ongeki.controller;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import icu.samnyan.aqua.sega.ongeki.handler.impl.*;
|
import icu.samnyan.aqua.sega.ongeki.handler.impl.*;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
@ -66,6 +65,7 @@ public class OngekiController {
|
||||||
private final GetClientBookkeepingHandler getClientBookkeepingHandler;
|
private final GetClientBookkeepingHandler getClientBookkeepingHandler;
|
||||||
private final GetClientTestmodeHandler getClientTestmodeHandler;
|
private final GetClientTestmodeHandler getClientTestmodeHandler;
|
||||||
private final GetGameMusicReleaseStateHandler getGameMusicReleaseStateHandler;
|
private final GetGameMusicReleaseStateHandler getGameMusicReleaseStateHandler;
|
||||||
|
private final GetUserSkinHandler getUserSkinHandler;
|
||||||
|
|
||||||
@PostMapping("ExtendLockTimeApi")
|
@PostMapping("ExtendLockTimeApi")
|
||||||
public String extendLockTime(@ModelAttribute Map<String, Object> request) {
|
public String extendLockTime(@ModelAttribute Map<String, Object> request) {
|
||||||
|
@ -277,6 +277,11 @@ public class OngekiController {
|
||||||
return getUserScenarioHandler.handle(request);
|
return getUserScenarioHandler.handle(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("GetUserSkinApi")
|
||||||
|
public String getUserSkin(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
|
||||||
|
return getUserSkinHandler.handle(request);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("GetUserStoryApi")
|
@PostMapping("GetUserStoryApi")
|
||||||
public String getUserStory(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
|
public String getUserStory(@ModelAttribute Map<String, Object> request) throws JsonProcessingException {
|
||||||
return getUserStoryHandler.handle(request);
|
return getUserStoryHandler.handle(request);
|
||||||
|
|
|
@ -66,6 +66,7 @@ public class GetUserPreviewHandler implements BaseHandler {
|
||||||
resp.setLevel(user.getLevel());
|
resp.setLevel(user.getLevel());
|
||||||
resp.setExp(user.getExp());
|
resp.setExp(user.getExp());
|
||||||
resp.setPlayerRating(user.getPlayerRating());
|
resp.setPlayerRating(user.getPlayerRating());
|
||||||
|
resp.setNewPlayerRating(user.getNewPlayerRating());
|
||||||
|
|
||||||
resp.setLastGameId(user.getLastGameId());
|
resp.setLastGameId(user.getLastGameId());
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
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.UserDeckRepository;
|
||||||
|
import icu.samnyan.aqua.sega.ongeki.model.userdata.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;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @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 UserDeckRepository userDeckRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public GetUserSkinHandler(BasicMapper mapper, UserDeckRepository userDeckRepository) {
|
||||||
|
this.mapper = mapper;
|
||||||
|
this.userDeckRepository = userDeckRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String handle(Map<String, ?> request) throws JsonProcessingException {
|
||||||
|
long userId = ((Number) request.get("userId")).longValue();
|
||||||
|
|
||||||
|
Map<String, Object> resultMap = new LinkedHashMap<>();
|
||||||
|
resultMap.put("userId", userId);
|
||||||
|
// Get the list of user decks
|
||||||
|
List<UserDeck> deckList = userDeckRepository.findByUser_Card_ExtId(userId);
|
||||||
|
|
||||||
|
// Convert each UserDeck to UserSkin
|
||||||
|
List<Map<String, Object>> userSkinList = deckList.stream().map(deck -> {
|
||||||
|
Map<String, Object> skinMap = new LinkedHashMap<>();
|
||||||
|
skinMap.put("deckId", deck.getDeckId());
|
||||||
|
skinMap.put("isValid", false);
|
||||||
|
skinMap.put("cardId1", deck.getCardId1());
|
||||||
|
skinMap.put("cardId2", deck.getCardId2());
|
||||||
|
skinMap.put("cardId3", deck.getCardId3());
|
||||||
|
return skinMap;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
|
resultMap.put("length", userSkinList.size());
|
||||||
|
resultMap.put("userSkinList", userSkinList);
|
||||||
|
|
||||||
|
String json = mapper.write(resultMap);
|
||||||
|
|
||||||
|
logger.info("Response: " + json);
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,11 +1,12 @@
|
||||||
package icu.samnyan.aqua.sega.ongeki.handler.impl;
|
package icu.samnyan.aqua.sega.ongeki.handler.impl;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
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.Card;
|
||||||
import icu.samnyan.aqua.sega.general.model.response.UserRecentRating;
|
import icu.samnyan.aqua.sega.general.model.response.UserRecentRating;
|
||||||
import icu.samnyan.aqua.sega.general.service.CardService;
|
import icu.samnyan.aqua.sega.general.service.CardService;
|
||||||
import icu.samnyan.aqua.sega.ongeki.dao.userdata.*;
|
import icu.samnyan.aqua.sega.ongeki.dao.userdata.*;
|
||||||
import icu.samnyan.aqua.sega.general.BaseHandler;
|
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.request.UpsertUserAll;
|
||||||
import icu.samnyan.aqua.sega.ongeki.model.response.CodeResp;
|
import icu.samnyan.aqua.sega.ongeki.model.response.CodeResp;
|
||||||
import icu.samnyan.aqua.sega.ongeki.model.userdata.*;
|
import icu.samnyan.aqua.sega.ongeki.model.userdata.*;
|
||||||
|
@ -22,6 +23,7 @@ import java.util.Optional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The handler for saving all data of a ONGEKI profile
|
* The handler for saving all data of a ONGEKI profile
|
||||||
|
*
|
||||||
* @author samnyan (privateamusement@protonmail.com)
|
* @author samnyan (privateamusement@protonmail.com)
|
||||||
*/
|
*/
|
||||||
@Component("OngekiUserAllHandler")
|
@Component("OngekiUserAllHandler")
|
||||||
|
@ -118,7 +120,7 @@ public class UpsertUserAllHandler implements BaseHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
// If new data exists, use new data. Otherwise, use old data
|
// If new data exists, use new data. Otherwise, use old data
|
||||||
newUserData = !upsertUserAll.getUserData().isEmpty() ? upsertUserAll.getUserData().get(0) : userData;
|
newUserData = !upsertUserAll.getUserData().isEmpty() ? upsertUserAll.getUserData().getFirst() : userData;
|
||||||
|
|
||||||
newUserData.setId(userData.getId());
|
newUserData.setId(userData.getId());
|
||||||
newUserData.setCard(userData.getCard());
|
newUserData.setCard(userData.getCard());
|
||||||
|
@ -132,7 +134,7 @@ public class UpsertUserAllHandler implements BaseHandler {
|
||||||
|
|
||||||
|
|
||||||
// UserOption
|
// UserOption
|
||||||
UserOption newUserOption = upsertUserAll.getUserOption().get(0);
|
UserOption newUserOption = upsertUserAll.getUserOption().getFirst();
|
||||||
|
|
||||||
Optional<UserOption> userOptionOptional = userOptionRepository.findByUser(newUserData);
|
Optional<UserOption> userOptionOptional = userOptionRepository.findByUser(newUserData);
|
||||||
UserOption userOption = userOptionOptional.orElseGet(() -> new UserOption(newUserData));
|
UserOption userOption = userOptionOptional.orElseGet(() -> new UserOption(newUserData));
|
||||||
|
@ -181,7 +183,7 @@ public class UpsertUserAllHandler implements BaseHandler {
|
||||||
|
|
||||||
// UserRecentRatingList
|
// UserRecentRatingList
|
||||||
// This thing still need to save to solve the rating drop
|
// This thing still need to save to solve the rating drop
|
||||||
this.saveGeneralData(upsertUserAll.getUserRecentRatingList(), newUserData, "recent_rating_list");
|
this.saveRecentRatingData(upsertUserAll.getUserRecentRatingList(), newUserData, "recent_rating_list");
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -190,33 +192,44 @@ public class UpsertUserAllHandler implements BaseHandler {
|
||||||
* into a csv format for convenience
|
* into a csv format for convenience
|
||||||
*/
|
*/
|
||||||
// UserBpBaseList (For calculating Battle point)
|
// UserBpBaseList (For calculating Battle point)
|
||||||
this.saveGeneralData(upsertUserAll.getUserBpBaseList(), newUserData, "battle_point_base");
|
this.saveRecentRatingData(upsertUserAll.getUserBpBaseList(), newUserData, "battle_point_base");
|
||||||
|
|
||||||
|
|
||||||
// This is the best rating of all charts. Best 30 + 10 after that.
|
// This is the best rating of all charts. Best 30 + 10 after that.
|
||||||
// userRatingBaseBestList
|
// userRatingBaseBestList
|
||||||
this.saveGeneralData(upsertUserAll.getUserRatingBaseBestList(), newUserData, "rating_base_best");
|
this.saveRecentRatingData(upsertUserAll.getUserRatingBaseBestList(), newUserData, "rating_base_best");
|
||||||
|
|
||||||
|
|
||||||
// userRatingBaseNextList
|
// userRatingBaseNextList
|
||||||
this.saveGeneralData(upsertUserAll.getUserRatingBaseNextList(), newUserData, "rating_base_next");
|
this.saveRecentRatingData(upsertUserAll.getUserRatingBaseNextList(), newUserData, "rating_base_next");
|
||||||
|
|
||||||
|
|
||||||
// This is the best rating of new charts. Best 15 + 10 after that.
|
// This is the best rating of new charts. Best 15 + 10 after that.
|
||||||
// New chart means same version
|
// New chart means same version
|
||||||
// userRatingBaseBestNewList
|
// userRatingBaseBestNewList
|
||||||
this.saveGeneralData(upsertUserAll.getUserRatingBaseBestNewList(), newUserData, "rating_base_new_best");
|
this.saveRecentRatingData(upsertUserAll.getUserRatingBaseBestNewList(), newUserData, "rating_base_new_best");
|
||||||
|
|
||||||
// userRatingBaseNextNewList
|
// userRatingBaseNextNewList
|
||||||
this.saveGeneralData(upsertUserAll.getUserRatingBaseNextNewList(), newUserData, "rating_base_new_next");
|
this.saveRecentRatingData(upsertUserAll.getUserRatingBaseNextNewList(), newUserData, "rating_base_new_next");
|
||||||
|
|
||||||
// This is the recent best
|
// This is the recent best
|
||||||
// userRatingBaseHotList
|
// userRatingBaseHotList
|
||||||
this.saveGeneralData(upsertUserAll.getUserRatingBaseHotList(), newUserData, "rating_base_hot_best");
|
this.saveRecentRatingData(upsertUserAll.getUserRatingBaseHotList(), newUserData, "rating_base_hot_best");
|
||||||
|
|
||||||
// userRatingBaseHotNextList
|
// userRatingBaseHotNextList
|
||||||
this.saveGeneralData(upsertUserAll.getUserRatingBaseHotNextList(), newUserData, "rating_base_hot_next");
|
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
|
// UserMusicDetailList
|
||||||
List<UserMusicDetail> userMusicDetailList = upsertUserAll.getUserMusicDetailList();
|
List<UserMusicDetail> userMusicDetailList = upsertUserAll.getUserMusicDetailList();
|
||||||
|
@ -339,16 +352,16 @@ public class UpsertUserAllHandler implements BaseHandler {
|
||||||
|
|
||||||
// UserMemoryChapterList
|
// UserMemoryChapterList
|
||||||
List<UserMemoryChapter> userMemoryChapterList = upsertUserAll.getUserMemoryChapterList();
|
List<UserMemoryChapter> userMemoryChapterList = upsertUserAll.getUserMemoryChapterList();
|
||||||
|
|
||||||
if (userMemoryChapterList != null) {
|
if (userMemoryChapterList != null) {
|
||||||
List<UserMemoryChapter> newUserMemoryChapterList = new ArrayList<>();
|
List<UserMemoryChapter> newUserMemoryChapterList = new ArrayList<>();
|
||||||
|
|
||||||
for (UserMemoryChapter newUserMemoryChapter : userMemoryChapterList) {
|
for (UserMemoryChapter newUserMemoryChapter : userMemoryChapterList) {
|
||||||
int chapterId = newUserMemoryChapter.getChapterId();
|
int chapterId = newUserMemoryChapter.getChapterId();
|
||||||
|
|
||||||
Optional<UserMemoryChapter> chapterOptional = userMemoryChapterRepository.findByUserAndChapterId(newUserData, chapterId);
|
Optional<UserMemoryChapter> chapterOptional = userMemoryChapterRepository.findByUserAndChapterId(newUserData, chapterId);
|
||||||
UserMemoryChapter userChapter = chapterOptional.orElseGet(() -> new UserMemoryChapter(newUserData));
|
UserMemoryChapter userChapter = chapterOptional.orElseGet(() -> new UserMemoryChapter(newUserData));
|
||||||
|
|
||||||
newUserMemoryChapter.setId(userChapter.getId());
|
newUserMemoryChapter.setId(userChapter.getId());
|
||||||
newUserMemoryChapter.setUser(newUserData);
|
newUserMemoryChapter.setUser(newUserData);
|
||||||
newUserMemoryChapterList.add(newUserMemoryChapter);
|
newUserMemoryChapterList.add(newUserMemoryChapter);
|
||||||
|
@ -567,7 +580,7 @@ public class UpsertUserAllHandler implements BaseHandler {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveGeneralData(List<UserRecentRating> itemList, UserData newUserData, String key) {
|
private void saveRecentRatingData(List<UserRecentRating> itemList, UserData newUserData, String key) {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
// Convert to a string
|
// Convert to a string
|
||||||
for (UserRecentRating item :
|
for (UserRecentRating item :
|
||||||
|
@ -575,12 +588,34 @@ public class UpsertUserAllHandler implements BaseHandler {
|
||||||
sb.append(item.getMusicId()).append(":").append(item.getDifficultId()).append(":").append(item.getScore());
|
sb.append(item.getMusicId()).append(":").append(item.getDifficultId()).append(":").append(item.getScore());
|
||||||
sb.append(",");
|
sb.append(",");
|
||||||
}
|
}
|
||||||
if (sb.length() > 0) {
|
if (!sb.isEmpty()) {
|
||||||
sb.deleteCharAt(sb.length() - 1);
|
sb.deleteCharAt(sb.length() - 1);
|
||||||
}
|
}
|
||||||
|
saveGeneralData(newUserData, key, sb.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveFumenScoreData(List<OngekiFumenScore> 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<UserGeneralData> uOptional = userGeneralDataRepository.findByUserAndPropertyKey(newUserData, key);
|
Optional<UserGeneralData> uOptional = userGeneralDataRepository.findByUserAndPropertyKey(newUserData, key);
|
||||||
UserGeneralData userGeneralData = uOptional.orElseGet(() -> new UserGeneralData(newUserData, key));
|
UserGeneralData userGeneralData = uOptional.orElseGet(() -> new UserGeneralData(newUserData, key));
|
||||||
userGeneralData.setPropertyValue(sb.toString());
|
userGeneralData.setPropertyValue(data);
|
||||||
userGeneralDataRepository.save(userGeneralData);
|
userGeneralDataRepository.save(userGeneralData);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
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;
|
||||||
|
}
|
|
@ -2,6 +2,7 @@ package icu.samnyan.aqua.sega.ongeki.model.request;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import icu.samnyan.aqua.sega.general.model.response.UserRecentRating;
|
import icu.samnyan.aqua.sega.general.model.response.UserRecentRating;
|
||||||
|
import icu.samnyan.aqua.sega.ongeki.model.gamedata.OngekiFumenScore;
|
||||||
import icu.samnyan.aqua.sega.ongeki.model.userdata.*;
|
import icu.samnyan.aqua.sega.ongeki.model.userdata.*;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -47,6 +48,18 @@ public class UpsertUserAll implements Serializable {
|
||||||
|
|
||||||
private List<UserRecentRating> userRatingBaseHotNextList;
|
private List<UserRecentRating> userRatingBaseHotNextList;
|
||||||
|
|
||||||
|
private List<OngekiFumenScore> userNewRatingBasePScoreList;
|
||||||
|
|
||||||
|
private List<OngekiFumenScore> userNewRatingBaseBestList;
|
||||||
|
|
||||||
|
private List<OngekiFumenScore> userNewRatingBaseBestNewList;
|
||||||
|
|
||||||
|
private List<OngekiFumenScore> userNewRatingBaseNextPScoreList;
|
||||||
|
|
||||||
|
private List<OngekiFumenScore> userNewRatingBaseNextBestList;
|
||||||
|
|
||||||
|
private List<OngekiFumenScore> userNewRatingBaseNextBestNewList;
|
||||||
|
|
||||||
private List<UserMusicDetail> userMusicDetailList;
|
private List<UserMusicDetail> userMusicDetailList;
|
||||||
|
|
||||||
private List<UserCharacter> userCharacterList;
|
private List<UserCharacter> userCharacterList;
|
||||||
|
|
|
@ -22,6 +22,7 @@ public class GetUserPreviewResp {
|
||||||
private int level = 0;
|
private int level = 0;
|
||||||
private long exp = 0;
|
private long exp = 0;
|
||||||
private long playerRating = 0;
|
private long playerRating = 0;
|
||||||
|
private long newPlayerRating = 0;
|
||||||
private String lastGameId = "";
|
private String lastGameId = "";
|
||||||
private String lastRomVersion = "";
|
private String lastRomVersion = "";
|
||||||
private String lastDataVersion = "";
|
private String lastDataVersion = "";
|
||||||
|
|
|
@ -35,7 +35,6 @@ public class UserData implements Serializable, IUserData {
|
||||||
@OneToOne(fetch = FetchType.LAZY)
|
@OneToOne(fetch = FetchType.LAZY)
|
||||||
@JoinColumn(name = "aime_card_id", unique = true)
|
@JoinColumn(name = "aime_card_id", unique = true)
|
||||||
private Card card;
|
private Card card;
|
||||||
// Access code in card
|
|
||||||
|
|
||||||
private String userName;
|
private String userName;
|
||||||
|
|
||||||
|
@ -57,10 +56,16 @@ public class UserData implements Serializable, IUserData {
|
||||||
|
|
||||||
private int medalCount;
|
private int medalCount;
|
||||||
|
|
||||||
|
private int shizukuCount;
|
||||||
|
|
||||||
private int playerRating;
|
private int playerRating;
|
||||||
|
|
||||||
private int highestRating;
|
private int highestRating;
|
||||||
|
|
||||||
|
private int newPlayerRating;
|
||||||
|
|
||||||
|
private int newHighestRating;
|
||||||
|
|
||||||
private int battlePoint;
|
private int battlePoint;
|
||||||
|
|
||||||
private int bestBattlePoint;
|
private int bestBattlePoint;
|
||||||
|
@ -118,6 +123,18 @@ public class UserData implements Serializable, IUserData {
|
||||||
|
|
||||||
private long sumBattleLunaticHighScore;
|
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 eventWatchedDate;
|
||||||
|
|
||||||
private String cmEventWatchedDate;
|
private String cmEventWatchedDate;
|
||||||
|
@ -163,4 +180,4 @@ public class UserData implements Serializable, IUserData {
|
||||||
public long getTotalScore() {
|
public long getTotalScore() {
|
||||||
return sumTechHighScore;
|
return sumTechHighScore;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -48,6 +48,8 @@ public class UserMusicDetail implements Serializable, IGenericUserMusic {
|
||||||
|
|
||||||
private int platinumScoreMax;
|
private int platinumScoreMax;
|
||||||
|
|
||||||
|
private int platinumScoreStar;
|
||||||
|
|
||||||
private int maxComboCount;
|
private int maxComboCount;
|
||||||
|
|
||||||
private int maxOverKill;
|
private int maxOverKill;
|
||||||
|
|
|
@ -82,6 +82,8 @@ public class UserOption implements Serializable {
|
||||||
|
|
||||||
private int effectPos;
|
private int effectPos;
|
||||||
|
|
||||||
|
private int effectAttack;
|
||||||
|
|
||||||
private int judgeDisp;
|
private int judgeDisp;
|
||||||
|
|
||||||
private int judgePos;
|
private int judgePos;
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
-- ongeki_user_option
|
||||||
|
ALTER TABLE ongeki_user_option ADD COLUMN effect_attack INT NOT NULL DEFAULT 0;
|
||||||
|
|
||||||
|
-- ongeki_user_data
|
||||||
|
ALTER TABLE ongeki_user_data ADD COLUMN new_highest_rating INT NOT NULL DEFAULT 0;
|
||||||
|
ALTER TABLE ongeki_user_data ADD COLUMN new_player_rating INT NOT NULL DEFAULT 0;
|
||||||
|
ALTER TABLE ongeki_user_data ADD COLUMN shizuku_count INT NOT NULL DEFAULT 0;
|
||||||
|
ALTER TABLE ongeki_user_data ADD COLUMN sum_advanced_platinum_score_star INT NOT NULL DEFAULT 0;
|
||||||
|
ALTER TABLE ongeki_user_data ADD COLUMN sum_basic_platinum_score_star INT NOT NULL DEFAULT 0;
|
||||||
|
ALTER TABLE ongeki_user_data ADD COLUMN sum_expert_platinum_score_star INT NOT NULL DEFAULT 0;
|
||||||
|
ALTER TABLE ongeki_user_data ADD COLUMN sum_lunatic_platinum_score_star INT NOT NULL DEFAULT 0;
|
||||||
|
ALTER TABLE ongeki_user_data ADD COLUMN sum_master_platinum_score_star INT NOT NULL DEFAULT 0;
|
||||||
|
ALTER TABLE ongeki_user_data ADD COLUMN sum_platinum_score_star INT NOT NULL DEFAULT 0;
|
||||||
|
|
||||||
|
-- ongeki_user_music_detail
|
||||||
|
ALTER TABLE ongeki_user_music_detail ADD COLUMN platinum_score_star INT NOT NULL DEFAULT 0;
|
Loading…
Reference in New Issue