[Ongeki] Implement proper endpoint for some new APIs

This commit is contained in:
Dom Eori
2021-06-28 01:39:26 +09:00
parent e7ae5de92c
commit 90a8c3bb58
19 changed files with 598 additions and 25 deletions

View File

@@ -0,0 +1,24 @@
package icu.samnyan.aqua.sega.ongeki.dao.userdata;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventMusic;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("OngekiUserEventMusicRepository")
public interface UserEventMusicRepository extends JpaRepository<UserEventMusic, Long> {
List<UserEventMusic> findByUser_Card_ExtId(long userId);
Optional<UserEventMusic> findByUserAndEventIdAndTypeAndMusicId(UserData userData, int eventId, int type, int musicId);
@Transactional
void deleteByUser(UserData user);
}

View File

@@ -0,0 +1,24 @@
package icu.samnyan.aqua.sega.ongeki.dao.userdata;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserKop;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("OngekiUserKopRepository")
public interface UserKopRepository extends JpaRepository<UserKop, Long> {
List<UserKop> findByUser_Card_ExtId(long userId);
Optional<UserKop> findByUserAndKopIdAndAreaId(UserData userData, int kopId, int areaId);
@Transactional
void deleteByUser(UserData user);
}

View File

@@ -0,0 +1,24 @@
package icu.samnyan.aqua.sega.ongeki.dao.userdata;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechEvent;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("OngekiUserTechEventRepository")
public interface UserTechEventRepository extends JpaRepository<UserTechEvent, Long> {
List<UserTechEvent> findByUser_Card_ExtId(long userId);
Optional<UserTechEvent> findByUserAndEventId(UserData userData, int eventId);
@Transactional
void deleteByUser(UserData user);
}

View File

@@ -0,0 +1,26 @@
package icu.samnyan.aqua.sega.ongeki.dao.userdata;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTradeItem;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Optional;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Repository("OngekiUserTradeItemRepository")
public interface UserTradeItemRepository extends JpaRepository<UserTradeItem, Long> {
List<UserTradeItem> findByUser_Card_ExtId(long userId);
List<UserTradeItem> findByUser_Card_ExtIdAndChapterIdGreaterThanEqualAndChapterIdLessThanEqual(long userId, int startChapterId, int endChapterId);
Optional<UserTradeItem> findByUserAndChapterIdAndTradeItemId(UserData userData, int chapterId, int tradeItemId);
@Transactional
void deleteByUser(UserData user);
}

View File

@@ -32,6 +32,8 @@ public class GetGameTechMusicHandler implements BaseHandler {
public String handle(Map<String, Object> request) throws JsonProcessingException {
List<Object> techMusicList = new ArrayList<>();
// This endpoint seems related to "techchallengeevent" in game data, TBD
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("length", 0);
resultMap.put("gameTechMusicList", techMusicList);

View File

@@ -1,14 +1,16 @@
package icu.samnyan.aqua.sega.ongeki.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserEventMusicRepository;
import icu.samnyan.aqua.sega.ongeki.handler.BaseHandler;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventMusic;
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.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -23,19 +25,22 @@ public class GetUserEventMusicHandler implements BaseHandler {
private final BasicMapper mapper;
private final UserEventMusicRepository userEventMusicRepository;
@Autowired
public GetUserEventMusicHandler(BasicMapper mapper) {
public GetUserEventMusicHandler(BasicMapper mapper, UserEventMusicRepository userEventMusicRepository) {
this.mapper = mapper;
this.userEventMusicRepository = userEventMusicRepository;
}
@Override
public String handle(Map<String, Object> request) throws JsonProcessingException {
long userId = ((Number) request.get("userId")).longValue();
List<Object> eventMusicList = new ArrayList<>();
List<UserEventMusic> eventMusicList = userEventMusicRepository.findByUser_Card_ExtId(userId);
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("userId", userId);
resultMap.put("length", 0);
resultMap.put("length", eventMusicList.size());
resultMap.put("userEventMusicList", eventMusicList);
String json = mapper.write(resultMap);

View File

@@ -1,14 +1,16 @@
package icu.samnyan.aqua.sega.ongeki.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserKopRepository;
import icu.samnyan.aqua.sega.ongeki.handler.BaseHandler;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserKop;
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.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -23,19 +25,22 @@ public class GetUserKopHandler implements BaseHandler {
private final BasicMapper mapper;
private final UserKopRepository userKopRepository;
@Autowired
public GetUserKopHandler(BasicMapper mapper) {
public GetUserKopHandler(BasicMapper mapper, UserKopRepository userKopRepository) {
this.mapper = mapper;
this.userKopRepository = userKopRepository;
}
@Override
public String handle(Map<String, Object> request) throws JsonProcessingException {
long userId = ((Number) request.get("userId")).longValue();
List<Object> kopList = new ArrayList<>();
List<UserKop> kopList = userKopRepository.findByUser_Card_ExtId(userId);
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("userId", userId);
resultMap.put("length", 0);
resultMap.put("length", kopList.size());
resultMap.put("userKopList", kopList);
String json = mapper.write(resultMap);

View File

@@ -1,14 +1,16 @@
package icu.samnyan.aqua.sega.ongeki.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserTechEventRepository;
import icu.samnyan.aqua.sega.ongeki.handler.BaseHandler;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechEvent;
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.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -23,19 +25,22 @@ public class GetUserTechEventHandler implements BaseHandler {
private final BasicMapper mapper;
private final UserTechEventRepository userTechEventRepository;
@Autowired
public GetUserTechEventHandler(BasicMapper mapper) {
public GetUserTechEventHandler(BasicMapper mapper, UserTechEventRepository userTechEventRepository) {
this.mapper = mapper;
this.userTechEventRepository = userTechEventRepository;
}
@Override
public String handle(Map<String, Object> request) throws JsonProcessingException {
long userId = ((Number) request.get("userId")).longValue();
List<Object> techEventList = new ArrayList<>();
List<UserTechEvent> techEventList = userTechEventRepository.findByUser_Card_ExtId(userId);
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("userId", userId);
resultMap.put("length", 0);
resultMap.put("length", techEventList.size());
resultMap.put("userTechEventList", techEventList);
String json = mapper.write(resultMap);

View File

@@ -1,13 +1,19 @@
package icu.samnyan.aqua.sega.ongeki.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserTechEventRepository;
import icu.samnyan.aqua.sega.ongeki.handler.BaseHandler;
import icu.samnyan.aqua.sega.ongeki.model.response.data.UserTechEventRankingItem;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechEvent;
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.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
@@ -23,19 +29,33 @@ public class GetUserTechEventRankingHandler implements BaseHandler {
private final BasicMapper mapper;
private final UserTechEventRepository userTechEventRepository;
@Autowired
public GetUserTechEventRankingHandler(BasicMapper mapper) {
public GetUserTechEventRankingHandler(BasicMapper mapper, UserTechEventRepository userTechEventRepository) {
this.mapper = mapper;
this.userTechEventRepository = userTechEventRepository;
}
@Override
public String handle(Map<String, Object> request) throws JsonProcessingException {
long userId = ((Number) request.get("userId")).longValue();
List<Object> techEventRankingList = new ArrayList<>();
String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.0"));
List<UserTechEvent> techEventList = userTechEventRepository.findByUser_Card_ExtId(userId);
List<UserTechEventRankingItem> techEventRankingList = new ArrayList<>();
techEventList.forEach(x -> techEventRankingList.add(new UserTechEventRankingItem(
x.getEventId(),
time,
1,
x.getTotalTechScore(),
x.getTotalPlatinumScore()
)));
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("userId", userId);
resultMap.put("length", 0);
resultMap.put("length", techEventRankingList.size());
resultMap.put("userTechEventRankingList", techEventRankingList);
String json = mapper.write(resultMap);

View File

@@ -1,14 +1,16 @@
package icu.samnyan.aqua.sega.ongeki.handler.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import icu.samnyan.aqua.sega.ongeki.dao.userdata.UserTradeItemRepository;
import icu.samnyan.aqua.sega.ongeki.handler.BaseHandler;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTradeItem;
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.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@@ -23,19 +25,25 @@ public class GetUserTradeItemHandler implements BaseHandler {
private final BasicMapper mapper;
private final UserTradeItemRepository userTradeItemRepository;
@Autowired
public GetUserTradeItemHandler(BasicMapper mapper) {
public GetUserTradeItemHandler(BasicMapper mapper, UserTradeItemRepository userTradeItemRepository) {
this.mapper = mapper;
this.userTradeItemRepository = userTradeItemRepository;
}
@Override
public String handle(Map<String, Object> request) throws JsonProcessingException {
long userId = ((Number) request.get("userId")).longValue();
List<Object> tradeItemList = new ArrayList<>();
int startChapterId = ((Number) request.get("startChapterId")).intValue();
int endChapterId = ((Number) request.get("endChapterId")).intValue();
List<UserTradeItem> tradeItemList = userTradeItemRepository.findByUser_Card_ExtIdAndChapterIdGreaterThanEqualAndChapterIdLessThanEqual(userId, startChapterId, endChapterId);
Map<String, Object> resultMap = new LinkedHashMap<>();
resultMap.put("userId", userId);
resultMap.put("length", 0);
resultMap.put("length", tradeItemList.size());
resultMap.put("userTradeItemList", tradeItemList);
String json = mapper.write(resultMap);

View File

@@ -53,10 +53,14 @@ public class UpsertUserAllHandler implements BaseHandler {
private final UserBossRepository userBossRepository;
private final UserScenarioRepository userScenarioRepository;
private final UserTechCountRepository userTechCountRepository;
private final UserTradeItemRepository userTradeItemRepository;
private final UserEventMusicRepository userEventMusicRepository;
private final UserTechEventRepository userTechEventRepository;
private final UserKopRepository userKopRepository;
@Autowired
public UpsertUserAllHandler(BasicMapper mapper,
CardService cardService, UserDataRepository userDataRepository, UserOptionRepository userOptionRepository, UserPlaylogRepository userPlaylogRepository, UserActivityRepository userActivityRepository, UserMusicDetailRepository userMusicDetailRepository, UserCharacterRepository userCharacterRepository, UserCardRepository userCardRepository, UserDeckRepository userDeckRepository, UserStoryRepository userStoryRepository, UserChapterRepository userChapterRepository, UserItemRepository userItemRepository, UserMusicItemRepository userMusicItemRepository, UserLoginBonusRepository userLoginBonusRepository, UserEventPointRepository userEventPointRepository, UserMissionPointRepository userMissionPointRepository, UserTrainingRoomRepository userTrainingRoomRepository, UserGeneralDataRepository userGeneralDataRepository, UserBossRepository userBossRepository, UserScenarioRepository userScenarioRepository, UserTechCountRepository userTechCountRepository) {
CardService cardService, UserDataRepository userDataRepository, UserOptionRepository userOptionRepository, UserPlaylogRepository userPlaylogRepository, UserActivityRepository userActivityRepository, UserMusicDetailRepository userMusicDetailRepository, UserCharacterRepository userCharacterRepository, UserCardRepository userCardRepository, UserDeckRepository userDeckRepository, UserStoryRepository userStoryRepository, UserChapterRepository userChapterRepository, UserItemRepository userItemRepository, UserMusicItemRepository userMusicItemRepository, UserLoginBonusRepository userLoginBonusRepository, UserEventPointRepository userEventPointRepository, UserMissionPointRepository userMissionPointRepository, UserTrainingRoomRepository userTrainingRoomRepository, UserGeneralDataRepository userGeneralDataRepository, UserBossRepository userBossRepository, UserScenarioRepository userScenarioRepository, UserTechCountRepository userTechCountRepository, UserTradeItemRepository userTradeItemRepository, UserEventMusicRepository userEventMusicRepository, UserTechEventRepository userTechEventRepository, UserKopRepository userKopRepository) {
this.mapper = mapper;
this.cardService = cardService;
this.userDataRepository = userDataRepository;
@@ -79,6 +83,10 @@ public class UpsertUserAllHandler implements BaseHandler {
this.userBossRepository = userBossRepository;
this.userScenarioRepository = userScenarioRepository;
this.userTechCountRepository = userTechCountRepository;
this.userTradeItemRepository = userTradeItemRepository;
this.userEventMusicRepository = userEventMusicRepository;
this.userTechEventRepository = userTechEventRepository;
this.userKopRepository = userKopRepository;
}
@Override
@@ -131,7 +139,7 @@ public class UpsertUserAllHandler implements BaseHandler {
userPlaylogRepository.saveAll(newUserPlaylogList);
// UserSessionlogList doesn't need to save for a private server
// UserSessionlogList, UserJewelboostlogLost doesn't need to save for a private server
// UserActivityList
@@ -450,6 +458,73 @@ public class UpsertUserAllHandler implements BaseHandler {
userScenarioRepository.saveAll(newUserScenarioList);
}
// UserTradeItemList
List<UserTradeItem> userTradeItemList = upsertUserAll.getUserTradeItemList();
List<UserTradeItem> newUserTradeItemList = new ArrayList<>();
for (UserTradeItem newUserTradeItem : userTradeItemList) {
int chapterId = newUserTradeItem.getChapterId();
int tradeItemId = newUserTradeItem.getTradeItemId();
Optional<UserTradeItem> tradeItemOptional = userTradeItemRepository.findByUserAndChapterIdAndTradeItemId(newUserData, chapterId, tradeItemId);
UserTradeItem userTradeItem = tradeItemOptional.orElseGet(() -> new UserTradeItem(newUserData));
newUserTradeItem.setId(userTradeItem.getId());
newUserTradeItem.setUser(newUserData);
newUserTradeItemList.add(newUserTradeItem);
}
userTradeItemRepository.saveAll(newUserTradeItemList);
// UserEventMusicList
List<UserEventMusic> userEventMusicList = upsertUserAll.getUserEventMusicList();
List<UserEventMusic> newUserEventMusicList = new ArrayList<>();
for (UserEventMusic newUserEventMusic : userEventMusicList) {
int eventId = newUserEventMusic.getEventId();
int type = newUserEventMusic.getType();
int musicId = newUserEventMusic.getMusicId();
Optional<UserEventMusic> eventMusicOptional = userEventMusicRepository.findByUserAndEventIdAndTypeAndMusicId(newUserData, eventId, type, musicId);
UserEventMusic userEventMusic = eventMusicOptional.orElseGet(() -> new UserEventMusic(newUserData));
newUserEventMusic.setId(userEventMusic.getId());
newUserEventMusic.setUser(newUserData);
newUserEventMusicList.add(newUserEventMusic);
}
userEventMusicRepository.saveAll(newUserEventMusicList);
// UserTechEventList
List<UserTechEvent> userTechEventList = upsertUserAll.getUserTechEventList();
List<UserTechEvent> newUserTechEventList = new ArrayList<>();
for (UserTechEvent newUserTechEvent : userTechEventList) {
int eventId = newUserTechEvent.getEventId();
Optional<UserTechEvent> techEventOptional = userTechEventRepository.findByUserAndEventId(newUserData, eventId);
UserTechEvent userTechEvent = techEventOptional.orElseGet(() -> new UserTechEvent(newUserData));
newUserTechEvent.setId(userTechEvent.getId());
newUserTechEvent.setUser(newUserData);
newUserTechEventList.add(newUserTechEvent);
}
userTechEventRepository.saveAll(newUserTechEventList);
// UserKopList
List<UserKop> userKopList = upsertUserAll.getUserKopList();
List<UserKop> newUserKopList = new ArrayList<>();
for (UserKop newUserKop : userKopList) {
int kopId = newUserKop.getKopId();
int areaId = newUserKop.getAreaId();
Optional<UserKop> kopOptional = userKopRepository.findByUserAndKopIdAndAreaId(newUserData, kopId, areaId);
UserKop userKop = kopOptional.orElseGet(() -> new UserKop(newUserData));
newUserKop.setId(userKop.getId());
newUserKop.setUser(newUserData);
newUserKopList.add(newUserKop);
}
userKopRepository.saveAll(newUserKopList);
String json = mapper.write(new CodeResp(1, "upsertUserAll"));
logger.info("Response: " + json);

View File

@@ -79,13 +79,13 @@ public class UpsertUserAll implements Serializable {
private List<UserScenario> userScenarioList;
private List<Map<String, Object>> userTradeItemList;
private List<UserTradeItem> userTradeItemList;
private List<Map<String, Object>> userEventMusicList;
private List<UserEventMusic> userEventMusicList;
private List<Map<String, Object>> userTechEventList;
private List<UserTechEvent> userTechEventList;
private List<Map<String, Object>> userKopList;
private List<UserKop> userKopList;
private Map<String, Object> clientSystemInfo;

View File

@@ -0,0 +1,19 @@
package icu.samnyan.aqua.sega.ongeki.model.response.data;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserTechEventRankingItem {
private int eventId;
private String date;
private int rank;
private int totalTechScore;
private int totalPlatinumScore;
}

View File

@@ -0,0 +1,55 @@
package icu.samnyan.aqua.sega.ongeki.model.userdata;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.io.Serializable;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "OngekiUserEventMusic")
@Table(name = "ongeki_user_event_music")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserEventMusic implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private int eventId;
private int type;
private int musicId;
private int level;
private int techScoreMax;
private int platinumScoreMax;
public String techRecordDate;
@JsonProperty("isTechNewRecord")
public boolean isTechNewRecord;
public UserEventMusic(UserData userData) {
this.user = userData;
}
}

View File

@@ -0,0 +1,53 @@
package icu.samnyan.aqua.sega.ongeki.model.userdata;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.io.Serializable;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "OngekiUserKop")
@Table(name = "ongeki_user_kop")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserKop implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private String authKey;
private int kopId;
private int areaId;
private int totalTechScore;
private int totalPlatinumScore;
private String techRecordDate;
@JsonProperty("isTotalTechNewRecord")
private boolean isTotalTechNewRecord;
public UserKop(UserData userData) {
this.user = userData;
}
}

View File

@@ -0,0 +1,52 @@
package icu.samnyan.aqua.sega.ongeki.model.userdata;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.io.Serializable;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "OngekiUserTechEvent")
@Table(name = "ongeki_user_tech_event")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserTechEvent implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private int eventId;
private int totalTechScore;
private int totalPlatinumScore;
private String techRecordDate;
@JsonProperty("isRankingRewarded")
private boolean isRankingRewarded;
@JsonProperty("isTotalTechNewRecord")
private boolean isTotalTechNewRecord;
public UserTechEvent(UserData userData) {
this.user = userData;
}
}

View File

@@ -0,0 +1,42 @@
package icu.samnyan.aqua.sega.ongeki.model.userdata;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.io.Serializable;
/**
* @author samnyan (privateamusement@protonmail.com)
*/
@Entity(name = "OngekiUserTradeItem")
@Table(name = "ongeki_user_trade_item")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserTradeItem implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonIgnore
private long id;
@JsonIgnore
@ManyToOne
@JoinColumn(name = "user_id")
private UserData user;
private int chapterId;
private int tradeItemId;
private int tradeCount;
public UserTradeItem(UserData userData) {
this.user = userData;
}
}