[+] Generalize data import for chusan

This commit is contained in:
Azalea
2024-03-30 23:52:29 -04:00
parent d4178c85a9
commit 3a8616e225
59 changed files with 390 additions and 333 deletions

View File

@@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.chusan.handler;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.general.BaseHandler;
import icu.samnyan.aqua.sega.chusan.model.response.data.UserEmoney;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.service.UserDataService;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;
import org.slf4j.Logger;
@@ -36,12 +36,12 @@ public class CMGetUserDataHandler implements BaseHandler {
@Override
public String handle(Map<String, Object> request) throws JsonProcessingException {
String userId = String.valueOf(request.get("userId"));
Optional<UserData> userDataOptional = userDataService.getUserByExtId(userId);
Optional<Chu3UserData> userDataOptional = userDataService.getUserByExtId(userId);
if (userDataOptional.isPresent()) {
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("userId", userId);
UserData user = userDataOptional.get();
Chu3UserData user = userDataOptional.get();
UserEmoney userEmoney = new UserEmoney();
user.setUserEmoney(userEmoney);

View File

@@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.chusan.handler;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.general.BaseHandler;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.service.UserDataService;
import icu.samnyan.aqua.sega.util.jackson.BasicMapper;
import org.slf4j.Logger;
@@ -38,11 +38,11 @@ public class CMGetUserPreviewHandler implements BaseHandler {
String userId = String.valueOf(request.get("userId"));
String segaIdAuthKey = String.valueOf(request.get("segaIdAuthKey"));
Optional<UserData> userDataOptional = userDataService.getUserByExtId(userId);
Optional<Chu3UserData> userDataOptional = userDataService.getUserByExtId(userId);
if (userDataOptional.isPresent()) {
Map<String, Object> resultMap = new LinkedHashMap<>();
UserData user = userDataOptional.get();
Chu3UserData user = userDataOptional.get();
resultMap.put("userName", user.getUserName());
resultMap.put("level", user.getLevel());

View File

@@ -7,7 +7,7 @@ import icu.samnyan.aqua.sega.general.BaseHandler;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameGachaCard;
import icu.samnyan.aqua.sega.chusan.model.request.UpsertUserGacha;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCardPrintState;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserGacha;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserItem;
import icu.samnyan.aqua.sega.chusan.service.UserDataService;
@@ -53,9 +53,9 @@ public class CMUpsertUserGachaHandler implements BaseHandler {
UpsertUserGacha upsertUserGacha = mapper.convert(request.get("cmUpsertUserGacha"), UpsertUserGacha.class);
List<UserCardPrintState> userCardPrintStateList = new ArrayList<>();
UserData userData;
Chu3UserData userData;
Optional<UserData> userOptional = userDataService.getUserByExtId(userId);
Optional<Chu3UserData> userOptional = userDataService.getUserByExtId(userId);
if (userOptional.isPresent()) {
userData = userOptional.get();
} else {

View File

@@ -5,7 +5,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
import icu.samnyan.aqua.sega.chusan.model.Chu3UserCardPrintStateRepo;
import icu.samnyan.aqua.sega.general.BaseHandler;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCardPrintState;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserItem;
import icu.samnyan.aqua.sega.chusan.service.UserDataService;
import icu.samnyan.aqua.sega.chusan.service.UserItemService;
@@ -43,9 +43,9 @@ public class CMUpsertUserPrintSubtractHandler implements BaseHandler {
UserCardPrintState userCardPrintState = mapper.convert(request.get("userCardPrintState"), UserCardPrintState.class);
List<UserItem> userItemList = mapper.convert(request.get("userItemList"), new TypeReference<List<UserItem>>() {});
UserData userData;
Chu3UserData userData;
Optional<UserData> userOptional = userDataService.getUserByExtId(userId);
Optional<Chu3UserData> userOptional = userDataService.getUserByExtId(userId);
if (userOptional.isPresent()) {
userData = userOptional.get();
} else {

View File

@@ -5,7 +5,7 @@ import icu.samnyan.aqua.sega.general.BaseHandler;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameLoginBonus;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameLoginBonusPreset;
import icu.samnyan.aqua.sega.chusan.model.response.CodeResp;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserItem;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserLoginBonus;
import icu.samnyan.aqua.sega.chusan.service.*;
@@ -63,7 +63,7 @@ public class GameLoginHandler implements BaseHandler {
@Override
public String handle(Map<String, Object> request) throws JsonProcessingException {
String userId = (String) request.get("userId");
Optional<UserData> userDataOptional = userDataService.getUserByExtId(userId);
Optional<Chu3UserData> userDataOptional = userDataService.getUserByExtId(userId);
boolean userPresent = userDataOptional.isPresent();
if (userPresent){
userDataService.updateLoginTime(userDataOptional.get());
@@ -105,7 +105,7 @@ public class GameLoginHandler implements BaseHandler {
Optional<GameLoginBonus> gameLoginBonus = this.gameLoginBonusService.getGameLoginBonusByDay(preset.getId(), bonusCount);
if(gameLoginBonus.isPresent()){
GameLoginBonus gameLoginBonusResult = gameLoginBonus.get();
UserData userData = this.userDataService.getUserByExtId(userId).orElseThrow();
Chu3UserData userData = this.userDataService.getUserByExtId(userId).orElseThrow();
UserItem userItem = new UserItem(userData);
userItem.setItemId(gameLoginBonusResult.getPresentId());
userItem.setItemKind(6);

View File

@@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.chusan.handler;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.general.BaseHandler;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.service.UserDataService;
import icu.samnyan.aqua.sega.util.jackson.StringMapper;
import org.slf4j.Logger;
@@ -35,12 +35,12 @@ public class GetUserDataHandler implements BaseHandler {
@Override
public String handle(Map<String, Object> request) throws JsonProcessingException {
String userId = (String) request.get("userId");
Optional<UserData> userDataOptional = userDataService.getUserByExtId(userId);
Optional<Chu3UserData> userDataOptional = userDataService.getUserByExtId(userId);
if (userDataOptional.isPresent()) {
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("userId", userId);
UserData user = userDataOptional.get();
Chu3UserData user = userDataOptional.get();
resultMap.put("userData", user);
String json = mapper.write(resultMap);

View File

@@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.general.BaseHandler;
import icu.samnyan.aqua.sega.chusan.model.response.GetUserPreviewResp;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCharacter;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserGameOption;
import icu.samnyan.aqua.sega.chusan.service.UserCharacterService;
import icu.samnyan.aqua.sega.chusan.service.UserDataService;
@@ -53,13 +53,13 @@ public class GetUserPreviewHandler implements BaseHandler {
public String handle(Map<String, Object> request) throws JsonProcessingException {
String userId = (String) request.get("userId");
Optional<UserData> userData = userDataService.getUserByExtId(userId);
Optional<Chu3UserData> userData = userDataService.getUserByExtId(userId);
if (userData.isEmpty()) {
return null;
}
UserData user = userData.get();
Chu3UserData user = userData.get();
GetUserPreviewResp resp = new GetUserPreviewResp();
resp.setUserId(userId);

View File

@@ -15,7 +15,6 @@ import icu.samnyan.aqua.sega.util.jackson.StringMapper;
import lombok.AllArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.nio.charset.StandardCharsets;
@@ -61,15 +60,15 @@ public class UpsertUserAllHandler implements BaseHandler {
// Not all field will be sent. Check if they are exist first.
UserData newUserData;
Chu3UserData newUserData;
// UserData
if (upsertUserAll.getUserData() == null) {
return null;
} else {
newUserData = upsertUserAll.getUserData().get(0);
UserData userData = userDataService.getUserByExtId(userId).orElseGet(() -> {
var data = new UserData();
Chu3UserData userData = userDataService.getUserByExtId(userId).orElseGet(() -> {
var data = new Chu3UserData();
Card card = cardService.getCardByExtId(userId).orElseThrow();
data.setCard(card);
return data;

View File

@@ -4,7 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.general.BaseHandler;
import icu.samnyan.aqua.sega.chusan.model.response.CodeResp;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCharge;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.service.UserChargeService;
import icu.samnyan.aqua.sega.chusan.service.UserDataService;
import icu.samnyan.aqua.sega.util.jackson.StringMapper;
@@ -36,7 +36,7 @@ public class UpsertUserChargelogHandler implements BaseHandler {
@Override
public String handle(Map<String, Object> request) throws JsonProcessingException {
String userId = (String) request.get("userId");
UserData user = userDataService.getUserByExtId(userId).orElseThrow();
Chu3UserData user = userDataService.getUserByExtId(userId).orElseThrow();
Map<String, Object> userChargeMap = (Map<String, Object>) request.get("userCharge");
String chargeId = (String) userChargeMap.get("chargeId");

View File

@@ -4,6 +4,7 @@ package icu.samnyan.aqua.sega.chusan.model
import icu.samnyan.aqua.net.games.GenericPlaylogRepo
import icu.samnyan.aqua.net.games.GenericUserDataRepo
import icu.samnyan.aqua.net.games.IUserRepo
import icu.samnyan.aqua.sega.chusan.model.gamedata.*
import icu.samnyan.aqua.sega.chusan.model.userdata.*
import org.springframework.data.domain.Page
@@ -16,12 +17,10 @@ import java.util.*
@NoRepositoryBean
interface UserLinked<T, ID> : JpaRepository<T, ID> {
interface Chu3UserLinked<T> : IUserRepo<Chu3UserData, T> {
fun findByUser_Card_ExtId(extId: Long): List<T>
fun findSingleByUser_Card_ExtId(extId: Long): Optional<T>
fun findByUser_Card_ExtId(extId: Long, pageable: Pageable): Page<T>
fun findByUser(user: UserData): List<T>
fun findSingleByUser(user: UserData): Optional<T>
}
@@ -39,62 +38,62 @@ interface Chu3UserLoginBonusRepo : JpaRepository<UserLoginBonus, Int> {
fun findLoginBonus(userId: Int, version: Int, presetId: Int): Optional<UserLoginBonus>
}
interface Chu3UserActivityRepo : UserLinked<UserActivity, Long> {
fun findTopByUserAndActivityIdAndKindOrderByIdDesc(user: UserData, activityId: Int, kind: Int): Optional<UserActivity>
interface Chu3UserActivityRepo : Chu3UserLinked<UserActivity> {
fun findTopByUserAndActivityIdAndKindOrderByIdDesc(user: Chu3UserData, activityId: Int, kind: Int): Optional<UserActivity>
fun findAllByUser_Card_ExtIdAndKindOrderBySortNumberDesc(extId: Long, kind: Int): List<UserActivity>
}
interface Chu3UserCardPrintStateRepo : UserLinked<UserCardPrintState, Long> {
interface Chu3UserCardPrintStateRepo : Chu3UserLinked<UserCardPrintState> {
fun findByUser_Card_ExtIdAndHasCompleted(extId: Long, hasCompleted: Boolean): List<UserCardPrintState>
fun findByUserAndGachaIdAndHasCompleted(userData: UserData, gachaId: Int, hasCompleted: Boolean): List<UserCardPrintState>
fun findByUserAndGachaIdAndHasCompleted(userData: Chu3UserData, gachaId: Int, hasCompleted: Boolean): List<UserCardPrintState>
}
interface Chu3UserCharacterRepo : UserLinked<UserCharacter, Long> {
fun findTopByUserAndCharacterIdOrderByIdDesc(user: UserData, characterId: Int): Optional<UserCharacter>
interface Chu3UserCharacterRepo : Chu3UserLinked<UserCharacter> {
fun findTopByUserAndCharacterIdOrderByIdDesc(user: Chu3UserData, characterId: Int): Optional<UserCharacter>
}
interface Chu3UserChargeRepo : UserLinked<UserCharge, Long> {
fun findByUserAndChargeId(extId: UserData, chargeId: Int): Optional<UserCharge>
interface Chu3UserChargeRepo : Chu3UserLinked<UserCharge> {
fun findByUserAndChargeId(extId: Chu3UserData, chargeId: Int): Optional<UserCharge>
}
interface Chu3UserCourseRepo : UserLinked<UserCourse, Long> {
fun findTopByUserAndCourseIdOrderByIdDesc(user: UserData, courseId: Int): Optional<UserCourse>
interface Chu3UserCourseRepo : Chu3UserLinked<UserCourse> {
fun findTopByUserAndCourseIdOrderByIdDesc(user: Chu3UserData, courseId: Int): Optional<UserCourse>
}
interface Chu3UserDataRepo : GenericUserDataRepo<UserData>
interface Chu3UserDataRepo : GenericUserDataRepo<Chu3UserData>
interface Chu3UserDuelRepo : UserLinked<UserDuel, Long> {
fun findTopByUserAndDuelIdOrderByIdDesc(user: UserData, duelId: Int): Optional<UserDuel>
interface Chu3UserDuelRepo : Chu3UserLinked<UserDuel> {
fun findTopByUserAndDuelIdOrderByIdDesc(user: Chu3UserData, duelId: Int): Optional<UserDuel>
}
interface Chu3UserGachaRepo : UserLinked<UserGacha, Long> {
fun findByUserAndGachaId(extId: UserData, gachaId: Int): Optional<UserGacha>
interface Chu3UserGachaRepo : Chu3UserLinked<UserGacha> {
fun findByUserAndGachaId(extId: Chu3UserData, gachaId: Int): Optional<UserGacha>
}
interface Chu3UserGameOptionRepo : UserLinked<UserGameOption, Long>
interface Chu3UserGameOptionRepo : Chu3UserLinked<UserGameOption>
interface Chu3UserGeneralDataRepo : UserLinked<UserGeneralData, Long> {
fun findByUserAndPropertyKey(user: UserData, key: String): Optional<UserGeneralData>
interface Chu3UserGeneralDataRepo : Chu3UserLinked<UserGeneralData> {
fun findByUserAndPropertyKey(user: Chu3UserData, key: String): Optional<UserGeneralData>
fun findByUser_Card_ExtIdAndPropertyKey(extId: Long, key: String): Optional<UserGeneralData>
}
interface Chu3UserItemRepo : UserLinked<UserItem, Long> {
fun findTopByUserAndItemIdAndItemKindOrderByIdDesc(user: UserData, itemId: Int, itemKind: Int): Optional<UserItem>
interface Chu3UserItemRepo : Chu3UserLinked<UserItem> {
fun findTopByUserAndItemIdAndItemKindOrderByIdDesc(user: Chu3UserData, itemId: Int, itemKind: Int): Optional<UserItem>
fun findAllByUser_Card_ExtIdAndItemKind(extId: Long, itemKind: Int, pageable: Pageable): Page<UserItem>
fun findAllByUser_Card_ExtIdAndItemKind(extId: Long, itemKind: Int): List<UserItem>
}
interface Chu3UserMapAreaRepo : UserLinked<UserMapArea, Long> {
fun findTopByUserAndMapAreaIdOrderByIdDesc(user: UserData, mapAreaId: Int): Optional<UserMapArea>
interface Chu3UserMapAreaRepo : Chu3UserLinked<UserMapArea> {
fun findTopByUserAndMapAreaIdOrderByIdDesc(user: Chu3UserData, mapAreaId: Int): Optional<UserMapArea>
}
interface Chu3UserMusicDetailRepo : UserLinked<UserMusicDetail, Long> {
fun findTopByUserAndMusicIdAndLevelOrderByIdDesc(user: UserData, musicId: Int, level: Int): Optional<UserMusicDetail>
interface Chu3UserMusicDetailRepo : Chu3UserLinked<UserMusicDetail> {
fun findTopByUserAndMusicIdAndLevelOrderByIdDesc(user: Chu3UserData, musicId: Int, level: Int): Optional<UserMusicDetail>
fun findByUser_Card_ExtIdAndMusicId(extId: Long, musicId: Int): List<UserMusicDetail>
}

View File

@@ -21,7 +21,7 @@ import java.util.Map;
public class UpsertUserAll implements Serializable {
@Nullable
private List<UserData> userData;
private List<Chu3UserData> userData;
@Nullable
private List<UserGameOption> userGameOption;

View File

@@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.chusan.model.request;
import com.fasterxml.jackson.annotation.JsonProperty;
import icu.samnyan.aqua.sega.chusan.model.gamedata.GameGachaCard;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserGacha;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserItem;
import lombok.AllArgsConstructor;
@@ -22,7 +22,7 @@ import java.util.List;
public class UpsertUserGacha implements Serializable {
@Nullable
private UserData userData;
private Chu3UserData userData;
@Nullable
private UserGacha userGacha;

View File

@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import icu.samnyan.aqua.net.games.IGenericUserData;
import icu.samnyan.aqua.net.games.IUserData;
import icu.samnyan.aqua.sega.chusan.model.response.data.UserEmoney;
import icu.samnyan.aqua.sega.general.model.Card;
import icu.samnyan.aqua.sega.util.jackson.AccessCodeSerializer;
@@ -126,7 +126,7 @@ import java.util.List;
"rankUpChallengeResults",
"isNetBattleHost",
"netBattleEndState" })
public class UserData implements Serializable, IGenericUserData {
public class Chu3UserData implements Serializable, IUserData {
@Serial
private static final long serialVersionUID = 1L;

View File

@@ -31,7 +31,7 @@ public class UserActivity implements Serializable {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private Chu3UserData user;
private int kind;
@@ -49,7 +49,7 @@ public class UserActivity implements Serializable {
private int param4;
public UserActivity(UserData userData) {
public UserActivity(Chu3UserData userData) {
user = userData;
}
}

View File

@@ -20,7 +20,7 @@ public class UserCMission {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private Chu3UserData user;
@Column(name = "mission_id")
private int missionId;

View File

@@ -20,7 +20,7 @@ public class UserCMissionProgress {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private Chu3UserData user;
@Column(name = "mission_id")
private int missionId;

View File

@@ -30,7 +30,7 @@ public class UserCardPrintState implements Serializable {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private Chu3UserData user;
private boolean hasCompleted;
private LocalDateTime limitDate;
@@ -38,7 +38,7 @@ public class UserCardPrintState implements Serializable {
private int cardId;
private int gachaId;
public UserCardPrintState(UserData user) {
public UserCardPrintState(Chu3UserData user) {
this.user = user;
}
}

View File

@@ -31,7 +31,7 @@ public class UserCharacter implements Serializable {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private Chu3UserData user;
@Column(name = "character_id")
private int characterId;
@@ -56,7 +56,7 @@ public class UserCharacter implements Serializable {
private int param2 = 0;
public UserCharacter(UserData userData) {
public UserCharacter(Chu3UserData userData) {
user = userData;
}
}

View File

@@ -31,7 +31,7 @@ public class UserCharge implements Serializable {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private Chu3UserData user;
@Column(name = "charge_id")
private int chargeId;
@@ -48,7 +48,7 @@ public class UserCharge implements Serializable {
private LocalDateTime paramDate;
public UserCharge(UserData user) {
public UserCharge(Chu3UserData user) {
this.user = user;
}
}

View File

@@ -27,7 +27,7 @@ public class UserCourse {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private Chu3UserData user;
@Column(name = "course_id")
private int courseId;
@@ -70,7 +70,7 @@ public class UserCourse {
@JsonProperty("isClear")
private boolean isClear;
public UserCourse(UserData userData) {
public UserCourse(Chu3UserData userData) {
user = userData;
}

View File

@@ -27,7 +27,7 @@ public class UserDuel {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private Chu3UserData user;
@Column(name = "duel_id")
private int duelId;
@@ -49,7 +49,7 @@ public class UserDuel {
private int param4;
public UserDuel(UserData userData) {
public UserDuel(Chu3UserData userData) {
user = userData;
}
}

View File

@@ -29,7 +29,7 @@ public class UserGacha implements Serializable {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private Chu3UserData user;
@Column(name = "gacha_id")
private int gachaId;
@@ -46,7 +46,7 @@ public class UserGacha implements Serializable {
private LocalDateTime dailyGachaDate;
public UserGacha(UserData user) {
public UserGacha(Chu3UserData user) {
this.user = user;
}
}

View File

@@ -81,7 +81,7 @@ public class UserGameOption implements Serializable {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private Chu3UserData user;
private int bgInfo;
@@ -183,7 +183,7 @@ public class UserGameOption implements Serializable {
private int ext10;
public UserGameOption(UserData userData) {
public UserGameOption(Chu3UserData userData) {
user = userData;
}
}

View File

@@ -29,14 +29,14 @@ public class UserGeneralData implements Serializable {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private Chu3UserData user;
private String propertyKey;
@Column(columnDefinition = "TEXT")
private String propertyValue;
public UserGeneralData(UserData userData, String key) {
public UserGeneralData(Chu3UserData userData, String key) {
this.user = userData;
this.propertyKey = key;
this.propertyValue = "";

View File

@@ -31,7 +31,7 @@ public class UserItem implements Serializable {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private Chu3UserData user;
// Kind ,Type
@Column(name = "item_kind")
@@ -45,7 +45,7 @@ public class UserItem implements Serializable {
@JsonProperty("isValid")
private boolean isValid = true;
public UserItem(UserData userData) {
public UserItem(Chu3UserData userData) {
user = userData;
}
}

View File

@@ -39,7 +39,7 @@ public class UserMapArea implements Serializable {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private Chu3UserData user;
@Column(name = "map_area_id")
private int mapAreaId;
@@ -58,7 +58,7 @@ public class UserMapArea implements Serializable {
@JsonProperty("isLocked")
private boolean isLocked;
public UserMapArea(UserData userData) {
public UserMapArea(Chu3UserData userData) {
user = userData;
}
}

View File

@@ -48,7 +48,7 @@ public class UserMusicDetail implements Serializable {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private Chu3UserData user;
@Column(name = "music_id")
private int musicId;
@@ -86,7 +86,7 @@ public class UserMusicDetail implements Serializable {
private int ext1;
public UserMusicDetail(UserData userData) {
public UserMusicDetail(Chu3UserData userData) {
user = userData;
}

View File

@@ -32,7 +32,7 @@ public class UserPlaylog implements Serializable, IGenericGamePlaylog {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private Chu3UserData user;
private String romVersion;
@@ -155,7 +155,7 @@ public class UserPlaylog implements Serializable, IGenericGamePlaylog {
// SUN PLUS
private int ticketId;
public UserPlaylog(UserData userData) {
public UserPlaylog(Chu3UserData userData) {
user = userData;
}

View File

@@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.model.Chu3UserActivityRepo;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserActivity;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -30,7 +30,7 @@ public class UserActivityService {
return userActivityRepository.saveAll(userActivityList);
}
public Optional<UserActivity> getByUserAndActivityIdAndKind(UserData user, int activityId, int kind) {
public Optional<UserActivity> getByUserAndActivityIdAndKind(Chu3UserData user, int activityId, int kind) {
return userActivityRepository.findTopByUserAndActivityIdAndKindOrderByIdDesc(user, activityId, kind);
}

View File

@@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.model.Chu3UserCharacterRepo;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCharacter;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@@ -42,7 +42,7 @@ public class UserCharacterService {
return userCharacterRepository.findByUser_Card_ExtId(Long.parseLong(userId), pageable);
}
public Optional<UserCharacter> getByUserAndCharacterId(UserData user, int characterId) {
public Optional<UserCharacter> getByUserAndCharacterId(Chu3UserData user, int characterId) {
return userCharacterRepository.findTopByUserAndCharacterIdOrderByIdDesc(user, characterId);
}

View File

@@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.model.Chu3UserChargeRepo;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCharge;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -32,7 +32,7 @@ public class UserChargeService {
return userChargeRepository.findByUser_Card_ExtId(Long.parseLong(userId));
}
public Optional<UserCharge> getByUserAndChargeId(UserData user, int chargeId) {
public Optional<UserCharge> getByUserAndChargeId(Chu3UserData user, int chargeId) {
return userChargeRepository.findByUserAndChargeId(user, chargeId);
}

View File

@@ -2,7 +2,7 @@ package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.model.Chu3UserCourseRepo;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserCourse;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@@ -42,7 +42,7 @@ public class UserCourseService {
return userCourseRepository.findByUser_Card_ExtId(Long.parseLong(userId), page);
}
public Optional<UserCourse> getByUserAndCourseId(UserData user, int courseId) {
public Optional<UserCourse> getByUserAndCourseId(Chu3UserData user, int courseId) {
return userCourseRepository.findTopByUserAndCourseIdOrderByIdDesc(user, courseId);
}
}

View File

@@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.model.Chu3UserDataRepo;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.general.model.Card;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -22,23 +22,23 @@ public class UserDataService {
this.userDataRepository = userDataRepository;
}
public UserData saveUserData(UserData userData) {
public Chu3UserData saveUserData(Chu3UserData userData) {
return userDataRepository.save(userData);
}
public UserData saveAndFlushUserData(UserData userData) {
public Chu3UserData saveAndFlushUserData(Chu3UserData userData) {
return userDataRepository.saveAndFlush(userData);
}
public Optional<UserData> getUserByExtId(String aimeId) {
public Optional<Chu3UserData> getUserByExtId(String aimeId) {
return userDataRepository.findByCard_ExtId(Long.parseLong(aimeId));
}
public Optional<UserData> getUserByCard(Card card) {
public Optional<Chu3UserData> getUserByCard(Card card) {
return Optional.ofNullable(userDataRepository.findByCard(card));
}
public void updateLoginTime(UserData userData) {
public void updateLoginTime(Chu3UserData userData) {
userData.setLastLoginDate(LocalDateTime.now());
userDataRepository.save(userData);
}

View File

@@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.model.Chu3UserDuelRepo;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserDuel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -22,7 +22,7 @@ public class UserDuelService {
this.userDuelRepository = userDuelRepository;
}
public Optional<UserDuel> getByUserAndDuelId(UserData user, int duelId) {
public Optional<UserDuel> getByUserAndDuelId(Chu3UserData user, int duelId) {
return userDuelRepository.findTopByUserAndDuelIdOrderByIdDesc(user, duelId);
}

View File

@@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.model.Chu3UserGachaRepo;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserGacha;
import org.springframework.stereotype.Service;
@@ -32,7 +32,7 @@ public class UserGachaService {
return userGachaRepository.findByUser_Card_ExtId(Long.parseLong(userId));
}
public Optional<UserGacha> getByUserAndGachaId(UserData user, int gachaId) {
public Optional<UserGacha> getByUserAndGachaId(Chu3UserData user, int gachaId) {
return userGachaRepository.findByUserAndGachaId(user, gachaId);
}

View File

@@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.model.Chu3UserGameOptionRepo;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserGameOption;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -25,7 +25,7 @@ public class UserGameOptionService {
return userGameOptionRepository.save(userGameOption);
}
public Optional<UserGameOption> getByUser(UserData user) {
public Optional<UserGameOption> getByUser(Chu3UserData user) {
return userGameOptionRepository.findSingleByUser(user);
}

View File

@@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.model.Chu3UserGeneralDataRepo;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserGeneralData;
import org.springframework.stereotype.Service;
@@ -23,7 +23,7 @@ public class UserGeneralDataService {
return userGeneralDataRepository.save(userGeneralData);
}
public Optional<UserGeneralData> getByUserAndKey(UserData user, String key) {
public Optional<UserGeneralData> getByUserAndKey(Chu3UserData user, String key) {
return userGeneralDataRepository.findByUserAndPropertyKey(user, key);
}

View File

@@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.model.Chu3UserItemRepo;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserItem;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
@@ -39,7 +39,7 @@ public class UserItemService {
return userItemList;
}
public Optional<UserItem> getByUserAndItemIdAndKind(UserData user, int itemId, int itemKind) {
public Optional<UserItem> getByUserAndItemIdAndKind(Chu3UserData user, int itemId, int itemKind) {
return userItemRepository.findTopByUserAndItemIdAndItemKindOrderByIdDesc(user, itemId, itemKind);
}

View File

@@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.model.Chu3UserMapAreaRepo;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserMapArea;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -30,7 +30,7 @@ public class UserMapAreaService {
return userMapRepository.saveAll(userMap);
}
public List<UserMapArea> getByUser(UserData user) {
public List<UserMapArea> getByUser(Chu3UserData user) {
return userMapRepository.findByUser(user);
}
@@ -38,7 +38,7 @@ public class UserMapAreaService {
return userMapRepository.findByUser_Card_ExtId(Long.parseLong(userId));
}
public Optional<UserMapArea> getByUserAndMapAreaId(UserData user, int mapId) {
public Optional<UserMapArea> getByUserAndMapAreaId(Chu3UserData user, int mapId) {
return userMapRepository.findTopByUserAndMapAreaIdOrderByIdDesc(user, mapId);
}
}

View File

@@ -1,7 +1,7 @@
package icu.samnyan.aqua.sega.chusan.service;
import icu.samnyan.aqua.sega.chusan.model.Chu3UserMusicDetailRepo;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData;
import icu.samnyan.aqua.sega.chusan.model.userdata.UserMusicDetail;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
@@ -44,7 +44,7 @@ public class UserMusicDetailService {
return userMusicDetailRepository.findByUser_Card_ExtIdAndMusicId(Long.parseLong(userId), musicId);
}
public Optional<UserMusicDetail> getByUserAndMusicIdAndLevel(UserData user, int musicId, int level) {
public Optional<UserMusicDetail> getByUserAndMusicIdAndLevel(Chu3UserData user, int musicId, int level) {
return userMusicDetailRepository.findTopByUserAndMusicIdAndLevelOrderByIdDesc(user, musicId, level);
}
}

View File

@@ -4,6 +4,7 @@ package icu.samnyan.aqua.sega.maimai2.model
import icu.samnyan.aqua.net.games.GenericPlaylogRepo
import icu.samnyan.aqua.net.games.GenericUserDataRepo
import icu.samnyan.aqua.net.games.IUserRepo
import icu.samnyan.aqua.sega.general.model.Card
import icu.samnyan.aqua.sega.maimai2.model.userdata.*
import org.springframework.data.domain.Page
@@ -16,8 +17,7 @@ import org.springframework.transaction.annotation.Transactional
import java.util.*
@NoRepositoryBean
interface UserLinked<T>: JpaRepository<T, Long> {
fun findByUser(user: Mai2UserDetail): List<T>
interface Mai2UserLinked<T>: JpaRepository<T, Long>, IUserRepo<Mai2UserDetail, T> {
fun findSingleByUser(user: Mai2UserDetail): Optional<T>
fun findByUser_Card_ExtId(userId: Long): List<T>
fun findByUser_Card_ExtId(userId: Long, page: Pageable): Page<T>
@@ -26,25 +26,25 @@ interface UserLinked<T>: JpaRepository<T, Long> {
fun deleteByUser(user: Mai2UserDetail)
}
interface Mai2MapEncountNpcRepo : UserLinked<Mai2MapEncountNpc>
interface Mai2MapEncountNpcRepo : Mai2UserLinked<Mai2MapEncountNpc>
interface Mai2UserActRepo : UserLinked<Mai2UserAct> {
interface Mai2UserActRepo : Mai2UserLinked<Mai2UserAct> {
fun findByUserAndKindAndActivityId(user: Mai2UserDetail, kind: Int, id: Int): Optional<Mai2UserAct>
fun findByUser_Card_ExtIdAndKind(userId: Long, kind: Int): List<Mai2UserAct>
}
interface Mai2UserCardRepo : UserLinked<Mai2UserCard> {
interface Mai2UserCardRepo : Mai2UserLinked<Mai2UserCard> {
fun findByUserAndCardId(user: Mai2UserDetail, cardId: Int): Optional<Mai2UserCard>
}
interface Mai2UserCharacterRepo : UserLinked<Mai2UserCharacter> {
interface Mai2UserCharacterRepo : Mai2UserLinked<Mai2UserCharacter> {
fun findByUserAndCharacterId(user: Mai2UserDetail, characterId: Int): Optional<Mai2UserCharacter>
}
interface Mai2UserChargeRepo : UserLinked<Mai2UserCharge>
interface Mai2UserChargeRepo : Mai2UserLinked<Mai2UserCharge>
interface Mai2UserCourseRepo : UserLinked<Mai2UserCourse> {
interface Mai2UserCourseRepo : Mai2UserLinked<Mai2UserCourse> {
fun findByUserAndCourseId(user: Mai2UserDetail, courseId: Int): Optional<Mai2UserCourse>
}
@@ -56,54 +56,54 @@ interface Mai2UserDataRepo : GenericUserDataRepo<Mai2UserDetail> {
fun deleteByCard(card: Card): Void
}
interface Mai2UserExtendRepo : UserLinked<Mai2UserExtend>
interface Mai2UserExtendRepo : Mai2UserLinked<Mai2UserExtend>
interface Mai2UserFavoriteRepo : UserLinked<Mai2UserFavorite> {
interface Mai2UserFavoriteRepo : Mai2UserLinked<Mai2UserFavorite> {
fun findByUserAndItemKind(user: Mai2UserDetail, kind: Int): Optional<Mai2UserFavorite>
fun findByUserIdAndItemKind(userId: Long, kind: Int): List<Mai2UserFavorite>
}
interface Mai2UserFriendSeasonRankingRepo : UserLinked<Mai2UserFriendSeasonRanking> {
interface Mai2UserFriendSeasonRankingRepo : Mai2UserLinked<Mai2UserFriendSeasonRanking> {
fun findByUserAndSeasonId(user: Mai2UserDetail, seasonId: Int): Optional<Mai2UserFriendSeasonRanking>
}
interface Mai2UserGeneralDataRepo : UserLinked<Mai2UserGeneralData> {
interface Mai2UserGeneralDataRepo : Mai2UserLinked<Mai2UserGeneralData> {
fun findByUserAndPropertyKey(user: Mai2UserDetail, key: String): Optional<Mai2UserGeneralData>
fun findByUser_Card_ExtIdAndPropertyKey(userId: Long, key: String): Optional<Mai2UserGeneralData>
}
interface Mai2UserItemRepo : UserLinked<Mai2UserItem> {
interface Mai2UserItemRepo : Mai2UserLinked<Mai2UserItem> {
fun findByUserCardExtIdAndItemKind(userId: Long, kind: Int): List<Mai2UserItem>
fun findByUserAndItemKindAndItemId(user: Mai2UserDetail, itemKind: Int, itemId: Int): Optional<Mai2UserItem>
fun findByUser_Card_ExtIdAndItemKind(userId: Long, kind: Int, page: Pageable): Page<Mai2UserItem>
}
interface Mai2UserLoginBonusRepo : UserLinked<Mai2UserLoginBonus> {
interface Mai2UserLoginBonusRepo : Mai2UserLinked<Mai2UserLoginBonus> {
fun findByUserAndBonusId(user: Mai2UserDetail, bonusId: Int): Optional<Mai2UserLoginBonus>
}
interface Mai2UserMapRepo : UserLinked<Mai2UserMap> {
interface Mai2UserMapRepo : Mai2UserLinked<Mai2UserMap> {
fun findByUserAndMapId(user: Mai2UserDetail, mapId: Int): Optional<Mai2UserMap>
}
interface Mai2UserMusicDetailRepo : UserLinked<Mai2UserMusicDetail> {
interface Mai2UserMusicDetailRepo : Mai2UserLinked<Mai2UserMusicDetail> {
fun findByUser_Card_ExtIdAndMusicId(userId: Long, id: Int): List<Mai2UserMusicDetail>
fun findByUserAndMusicIdAndLevel(user: Mai2UserDetail, musicId: Int, level: Int): Optional<Mai2UserMusicDetail>
}
interface Mai2UserOptionRepo : UserLinked<Mai2UserOption>
interface Mai2UserOptionRepo : Mai2UserLinked<Mai2UserOption>
interface Mai2UserPlaylogRepo : GenericPlaylogRepo<Mai2UserPlaylog>, UserLinked<Mai2UserPlaylog> {
interface Mai2UserPlaylogRepo : GenericPlaylogRepo<Mai2UserPlaylog>, Mai2UserLinked<Mai2UserPlaylog> {
fun findByUser_Card_ExtIdAndMusicIdAndLevel(userId: Long, musicId: Int, level: Int): List<Mai2UserPlaylog>
}
interface Mai2UserPrintDetailRepo : JpaRepository<Mai2UserPrintDetail, Long>
interface Mai2UserUdemaeRepo : UserLinked<Mai2UserUdemae>
interface Mai2UserUdemaeRepo : Mai2UserLinked<Mai2UserUdemae>
interface Mai2GameChargeRepo : JpaRepository<Mai2GameCharge, Long>

View File

@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonInclude
import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.databind.annotation.JsonSerialize
import icu.samnyan.aqua.net.games.BaseEntity
import icu.samnyan.aqua.net.games.IGenericUserData
import icu.samnyan.aqua.net.games.IUserData
import icu.samnyan.aqua.sega.general.IntegerListConverter
import icu.samnyan.aqua.sega.general.model.Card
import icu.samnyan.aqua.sega.util.jackson.AccessCodeSerializer
@@ -149,7 +149,7 @@ class Mai2UserDetail(
// TODO: Make these non-nullable with default value
var currentPlayCount: Int? = 0,
var renameCredit: Int? = 0
) : BaseEntity(), IGenericUserData {
) : BaseEntity(), IUserData {
@get:JsonIgnore
override val totalScore: Long
get() = totalDeluxscore

View File

@@ -8,6 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.annotation.JsonPropertyOrder
import icu.samnyan.aqua.net.games.BaseEntity
import icu.samnyan.aqua.net.games.IGenericGamePlaylog
import icu.samnyan.aqua.net.games.IUserEntity
import icu.samnyan.aqua.sega.general.IntegerListConverter
import jakarta.persistence.*
import lombok.AllArgsConstructor
@@ -15,11 +16,11 @@ import lombok.Data
import lombok.NoArgsConstructor
@MappedSuperclass
open class Mai2UserEntity : BaseEntity() {
open class Mai2UserEntity : BaseEntity(), IUserEntity<Mai2UserDetail> {
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
open var user: Mai2UserDetail = Mai2UserDetail()
override var user: Mai2UserDetail = Mai2UserDetail()
}

View File

@@ -3,7 +3,7 @@ package icu.samnyan.aqua.sega.ongeki.model.userdata;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import icu.samnyan.aqua.net.games.IGenericUserData;
import icu.samnyan.aqua.net.games.IUserData;
import icu.samnyan.aqua.sega.general.model.Card;
import icu.samnyan.aqua.sega.util.jackson.AccessCodeSerializer;
import lombok.AllArgsConstructor;
@@ -21,7 +21,7 @@ import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserData implements Serializable, IGenericUserData {
public class UserData implements Serializable, IUserData {
private static final long serialVersionUID = 1L;

View File

@@ -5,7 +5,7 @@ import ext.ls
import ext.sec
import ext.toDate
import icu.samnyan.aqua.net.games.BaseEntity
import icu.samnyan.aqua.net.games.IGenericUserData
import icu.samnyan.aqua.net.games.IUserData
import icu.samnyan.aqua.sega.general.IntegerListConverter
import icu.samnyan.aqua.sega.general.model.Card
import jakarta.persistence.*
@@ -15,7 +15,7 @@ import java.util.*
* General user information
*/
@Entity @Table(name = "wacca_user")
class WaccaUser : BaseEntity(), IGenericUserData {
class WaccaUser : BaseEntity(), IUserData {
@OneToOne
@JoinColumn(name = "aime_card_id", unique = true)
override var card: Card? = Card()