mirror of https://github.com/hykilpikonna/AquaDX
[Ongeki] Implement proper endpoint for some new APIs
parent
e7ae5de92c
commit
90a8c3bb58
|
@ -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);
|
||||
}
|
|
@ -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);
|
||||
}
|
|
@ -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);
|
||||
}
|
|
@ -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);
|
||||
}
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
CREATE TABLE ongeki_user_trade_item (
|
||||
id BIGINT auto_increment PRIMARY KEY,
|
||||
chapter_id INT,
|
||||
trade_item_id INT,
|
||||
trade_count INT,
|
||||
user_id BIGINT,
|
||||
CONSTRAINT UKUApE4XTzAn4TknhsyHbMoxk2vxr
|
||||
UNIQUE (chapter_id, trade_item_id, user_id),
|
||||
constraint FKjK4YZyUoHo397H35roV4y5xCGPL
|
||||
foreign key (user_id) references ongeki_user_data (id)
);
|
||||
|
||||
CREATE TABLE ongeki_user_tech_event (
|
||||
id BIGINT auto_increment PRIMARY KEY,
|
||||
event_id INT,
|
||||
total_tech_score INT,
|
||||
total_platinum_score INT,
|
||||
tech_record_date VARCHAR (255),
|
||||
is_ranking_rewarded BIT,
|
||||
is_total_tech_new_record BIT,
|
||||
user_id BIGINT,
|
||||
CONSTRAINT UKMy7BYF82aAqh7gcbULDtNZQ3L9u
|
||||
UNIQUE (event_id, user_id),
|
||||
constraint FKeA3LffHizJP95rE8WLL4ANZZLfM
|
||||
foreign key (user_id) references ongeki_user_data (id)
);
|
||||
|
||||
CREATE TABLE ongeki_user_kop (
|
||||
id BIGINT auto_increment PRIMARY KEY,
|
||||
auth_key VARCHAR (255),
|
||||
kop_id INT,
|
||||
area_id INT,
|
||||
total_tech_score INT,
|
||||
total_platinum_score INT,
|
||||
tech_record_date VARCHAR (255),
|
||||
is_total_tech_new_record BIT,
|
||||
user_id BIGINT,
|
||||
CONSTRAINT UKhB9obeVojvBcG7iShsgrEb29W9R
|
||||
UNIQUE (kop_id, area_id, user_id),
|
||||
constraint FKNeHq3QCaKu7ipBCDEtZQ3QFgvBv
|
||||
foreign key (user_id) references ongeki_user_data (id)
);
|
||||
|
||||
CREATE TABLE ongeki_user_event_music (
|
||||
id BIGINT auto_increment PRIMARY KEY,
|
||||
event_id INT,
|
||||
type INT,
|
||||
music_id INT,
|
||||
level INT,
|
||||
tech_score_max INT,
|
||||
platinum_score_max INT,
|
||||
tech_record_date VARCHAR (255),
|
||||
is_tech_new_record BIT,
|
||||
user_id BIGINT,
|
||||
CONSTRAINT UKo5PU3BgZeTKB8SNykq9U7xjfshp
|
||||
UNIQUE (event_id, type, music_id, user_id),
|
||||
constraint FKYyerzsu49pHUHJNvN67w4SGQbB2
|
||||
foreign key (user_id) references ongeki_user_data (id)
);
|
|
@ -0,0 +1,79 @@
|
|||
CREATE TABLE ongeki_user_trade_item (
|
||||
id INTEGER,
|
||||
chapter_id INTEGER,
|
||||
trade_item_id INTEGER,
|
||||
trade_count INTEGER,
|
||||
user_id BIGINT REFERENCES ongeki_user_data (id) ON DELETE CASCADE,
|
||||
PRIMARY KEY (
|
||||
id
|
||||
),
|
||||
CONSTRAINT ongeki_user_trade_item_uq UNIQUE (
|
||||
chapter_id,
|
||||
trade_item_id,
|
||||
user_id
|
||||
)
|
||||
ON CONFLICT REPLACE
|
||||
);
|
||||
|
||||
CREATE TABLE ongeki_user_tech_event (
|
||||
id INTEGER,
|
||||
event_id INTEGER,
|
||||
total_tech_score INTEGER,
|
||||
total_platinum_score INTEGER,
|
||||
tech_record_date VARCHAR (255),
|
||||
is_ranking_rewarded BOOLEAN,
|
||||
is_total_tech_new_record BOOLEAN,
|
||||
user_id BIGINT REFERENCES ongeki_user_data (id) ON DELETE CASCADE,
|
||||
PRIMARY KEY (
|
||||
id
|
||||
),
|
||||
CONSTRAINT ongeki_user_tech_event_uq UNIQUE (
|
||||
event_id,
|
||||
user_id
|
||||
)
|
||||
ON CONFLICT REPLACE
|
||||
);
|
||||
|
||||
CREATE TABLE ongeki_user_kop (
|
||||
id INTEGER,
|
||||
auth_key VARCHAR (255),
|
||||
kop_id INTEGER,
|
||||
area_id INTEGER,
|
||||
total_tech_score INTEGER,
|
||||
total_platinum_score INTEGER,
|
||||
tech_record_date VARCHAR (255),
|
||||
is_total_tech_new_record BOOLEAN,
|
||||
user_id BIGINT REFERENCES ongeki_user_data (id) ON DELETE CASCADE,
|
||||
PRIMARY KEY (
|
||||
id
|
||||
),
|
||||
CONSTRAINT ongeki_user_kop_uq UNIQUE (
|
||||
kop_id,
|
||||
area_id,
|
||||
user_id
|
||||
)
|
||||
ON CONFLICT REPLACE
|
||||
);
|
||||
|
||||
CREATE TABLE ongeki_user_event_music (
|
||||
id INTEGER,
|
||||
event_id INTEGER,
|
||||
type INTEGER,
|
||||
music_id INTEGER,
|
||||
level INTEGER,
|
||||
tech_score_max INTEGER,
|
||||
platinum_score_max INTEGER,
|
||||
tech_record_date VARCHAR (255),
|
||||
is_tech_new_record BOOLEAN,
|
||||
user_id BIGINT REFERENCES ongeki_user_data (id) ON DELETE CASCADE,
|
||||
PRIMARY KEY (
|
||||
id
|
||||
),
|
||||
CONSTRAINT ongeki_user_event_music_uq UNIQUE (
|
||||
event_id,
|
||||
type,
|
||||
music_id,
|
||||
user_id
|
||||
)
|
||||
ON CONFLICT REPLACE
|
||||
);
|
Loading…
Reference in New Issue