mirror of https://github.com/hykilpikonna/AquaDX
[API] Add support for import and export ongeki bright memory specific user data
parent
8c84a08f62
commit
a950819e9b
|
@ -24,10 +24,7 @@ import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.NoSuchElementException;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -65,9 +62,17 @@ public class ApiOngekiPlayerDataController {
|
||||||
private final UserTechEventRepository userTechEventRepository;
|
private final UserTechEventRepository userTechEventRepository;
|
||||||
private final UserKopRepository userKopRepository;
|
private final UserKopRepository userKopRepository;
|
||||||
|
|
||||||
|
private final UserMemoryChapterRepository userMemoryChapterRepository;
|
||||||
|
|
||||||
|
private final UserScenarioRepository userScenarioRepository;
|
||||||
|
|
||||||
|
private final UserBossRepository userBossRepository;
|
||||||
|
|
||||||
|
private final UserTechCountRepository userTechCountRepository;
|
||||||
|
|
||||||
private final GameCardRepository gameCardRepository;
|
private final GameCardRepository gameCardRepository;
|
||||||
|
|
||||||
public ApiOngekiPlayerDataController(ApiMapper mapper, CardService cardService, UserActivityRepository userActivityRepository, UserCardRepository userCardRepository, UserChapterRepository userChapterRepository, UserCharacterRepository userCharacterRepository, UserDataRepository userDataRepository, UserDeckRepository userDeckRepository, UserEventPointRepository userEventPointRepository, UserItemRepository userItemRepository, UserLoginBonusRepository userLoginBonusRepository, UserMissionPointRepository userMissionPointRepository, UserMusicDetailRepository userMusicDetailRepository, UserMusicItemRepository userMusicItemRepository, UserOptionRepository userOptionRepository, UserPlaylogRepository userPlaylogRepository, UserStoryRepository userStoryRepository, UserTrainingRoomRepository userTrainingRoomRepository, UserGeneralDataRepository userGeneralDataRepository, GameCardRepository gameCardRepository, UserTradeItemRepository userTradeItemRepository, UserEventMusicRepository userEventMusicRepository, UserTechEventRepository userTechEventRepository, UserKopRepository userKopRepository) {
|
public ApiOngekiPlayerDataController(ApiMapper mapper, CardService cardService, UserActivityRepository userActivityRepository, UserCardRepository userCardRepository, UserChapterRepository userChapterRepository, UserCharacterRepository userCharacterRepository, UserDataRepository userDataRepository, UserDeckRepository userDeckRepository, UserEventPointRepository userEventPointRepository, UserItemRepository userItemRepository, UserLoginBonusRepository userLoginBonusRepository, UserMissionPointRepository userMissionPointRepository, UserMusicDetailRepository userMusicDetailRepository, UserMusicItemRepository userMusicItemRepository, UserOptionRepository userOptionRepository, UserPlaylogRepository userPlaylogRepository, UserStoryRepository userStoryRepository, UserTrainingRoomRepository userTrainingRoomRepository, UserGeneralDataRepository userGeneralDataRepository, GameCardRepository gameCardRepository, UserTradeItemRepository userTradeItemRepository, UserEventMusicRepository userEventMusicRepository, UserTechEventRepository userTechEventRepository, UserKopRepository userKopRepository, UserMemoryChapterRepository userMemoryChapterRepository, UserScenarioRepository userScenarioRepository, UserBossRepository userBossRepository, UserTechCountRepository userTechCountRepository) {
|
||||||
this.mapper = mapper;
|
this.mapper = mapper;
|
||||||
this.cardService = cardService;
|
this.cardService = cardService;
|
||||||
this.userActivityRepository = userActivityRepository;
|
this.userActivityRepository = userActivityRepository;
|
||||||
|
@ -92,6 +97,10 @@ public class ApiOngekiPlayerDataController {
|
||||||
this.userEventMusicRepository = userEventMusicRepository;
|
this.userEventMusicRepository = userEventMusicRepository;
|
||||||
this.userTechEventRepository = userTechEventRepository;
|
this.userTechEventRepository = userTechEventRepository;
|
||||||
this.userKopRepository = userKopRepository;
|
this.userKopRepository = userKopRepository;
|
||||||
|
this.userMemoryChapterRepository = userMemoryChapterRepository;
|
||||||
|
this.userScenarioRepository = userScenarioRepository;
|
||||||
|
this.userBossRepository = userBossRepository;
|
||||||
|
this.userTechCountRepository = userTechCountRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("profile")
|
@GetMapping("profile")
|
||||||
|
@ -363,6 +372,10 @@ public class ApiOngekiPlayerDataController {
|
||||||
data.setUserEventMusicList(userEventMusicRepository.findByUser_Card_ExtId(aimeId));
|
data.setUserEventMusicList(userEventMusicRepository.findByUser_Card_ExtId(aimeId));
|
||||||
data.setUserTechEventList(userTechEventRepository.findByUser_Card_ExtId(aimeId));
|
data.setUserTechEventList(userTechEventRepository.findByUser_Card_ExtId(aimeId));
|
||||||
data.setUserKopList(userKopRepository.findByUser_Card_ExtId(aimeId));
|
data.setUserKopList(userKopRepository.findByUser_Card_ExtId(aimeId));
|
||||||
|
data.setUserMemoryChapterList(userMemoryChapterRepository.findByUser_Card_ExtId(aimeId));
|
||||||
|
data.setUserScenarioList(userScenarioRepository.findByUser_Card_ExtId(aimeId));
|
||||||
|
data.setUserBossList(userBossRepository.findByUser_Card_ExtId(aimeId));
|
||||||
|
data.setUserTechCountList(userTechCountRepository.findByUser_Card_ExtId(aimeId));
|
||||||
} catch (NoSuchElementException e) {
|
} catch (NoSuchElementException e) {
|
||||||
return ResponseEntity.status(HttpStatus.NOT_FOUND)
|
return ResponseEntity.status(HttpStatus.NOT_FOUND)
|
||||||
.body(new MessageResponse("User not found"));
|
.body(new MessageResponse("User not found"));
|
||||||
|
@ -433,6 +446,14 @@ public class ApiOngekiPlayerDataController {
|
||||||
userTechEventRepository.flush();
|
userTechEventRepository.flush();
|
||||||
userKopRepository.deleteByUser(existUserData.get());
|
userKopRepository.deleteByUser(existUserData.get());
|
||||||
userKopRepository.flush();
|
userKopRepository.flush();
|
||||||
|
userMemoryChapterRepository.deleteByUser(existUserData.get());
|
||||||
|
userMemoryChapterRepository.flush();
|
||||||
|
userScenarioRepository.deleteByUser(existUserData.get());
|
||||||
|
userScenarioRepository.flush();
|
||||||
|
userBossRepository.deleteByUser(existUserData.get());
|
||||||
|
userBossRepository.flush();
|
||||||
|
userTechCountRepository.deleteByUser(existUserData.get());
|
||||||
|
userTechCountRepository.flush();
|
||||||
|
|
||||||
userDataRepository.deleteByCard(card);
|
userDataRepository.deleteByCard(card);
|
||||||
userDataRepository.flush();
|
userDataRepository.flush();
|
||||||
|
@ -506,6 +527,18 @@ public class ApiOngekiPlayerDataController {
|
||||||
userKopRepository.saveAll(data.getUserKopList().stream()
|
userKopRepository.saveAll(data.getUserKopList().stream()
|
||||||
.peek(x -> x.setUser(userData)).collect(Collectors.toList()));
|
.peek(x -> x.setUser(userData)).collect(Collectors.toList()));
|
||||||
|
|
||||||
|
userMemoryChapterRepository.saveAll(Optional.ofNullable(data.getUserMemoryChapterList()).orElse(Collections.emptyList()).stream()
|
||||||
|
.peek(x -> x.setUser(userData)).collect(Collectors.toList()));
|
||||||
|
|
||||||
|
userScenarioRepository.saveAll(Optional.ofNullable(data.getUserScenarioList()).orElse(Collections.emptyList()).stream()
|
||||||
|
.peek(x -> x.setUser(userData)).collect(Collectors.toList()));
|
||||||
|
|
||||||
|
userBossRepository.saveAll(Optional.ofNullable(data.getUserBossList()).orElse(Collections.emptyList()).stream()
|
||||||
|
.peek(x -> x.setUser(userData)).collect(Collectors.toList()));
|
||||||
|
|
||||||
|
userTechCountRepository.saveAll(Optional.ofNullable(data.getUserTechCountList()).orElse(Collections.emptyList()).stream()
|
||||||
|
.peek(x -> x.setUser(userData)).collect(Collectors.toList()));
|
||||||
|
|
||||||
return ResponseEntity.ok(new MessageResponse("Import successfully, aimeId: " + card.getExtId()));
|
return ResponseEntity.ok(new MessageResponse("Import successfully, aimeId: " + card.getExtId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,4 +36,8 @@ public class OngekiDataExport {
|
||||||
private List<UserEventMusic> userEventMusicList;
|
private List<UserEventMusic> userEventMusicList;
|
||||||
private List<UserTechEvent> userTechEventList;
|
private List<UserTechEvent> userTechEventList;
|
||||||
private List<UserKop> userKopList;
|
private List<UserKop> userKopList;
|
||||||
|
private List<UserMemoryChapter> userMemoryChapterList;
|
||||||
|
private List<UserScenario> userScenarioList;
|
||||||
|
private List<UserBoss> userBossList;
|
||||||
|
private List<UserTechCount> userTechCountList;
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,4 +36,8 @@ public class OngekiDataImport {
|
||||||
private List<UserEventMusic> userEventMusicList;
|
private List<UserEventMusic> userEventMusicList;
|
||||||
private List<UserTechEvent> userTechEventList;
|
private List<UserTechEvent> userTechEventList;
|
||||||
private List<UserKop> userKopList;
|
private List<UserKop> userKopList;
|
||||||
|
private List<UserMemoryChapter> userMemoryChapterList;
|
||||||
|
private List<UserScenario> userScenarioList;
|
||||||
|
private List<UserBoss> userBossList;
|
||||||
|
private List<UserTechCount> userTechCountList;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserBoss;
|
||||||
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
|
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
@ -18,4 +19,7 @@ public interface UserBossRepository extends JpaRepository<UserBoss, Long> {
|
||||||
|
|
||||||
Optional<UserBoss> findByUserAndMusicId(UserData user, int musicId);
|
Optional<UserBoss> findByUserAndMusicId(UserData user, int musicId);
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
void deleteByUser(UserData user);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
|
||||||
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserScenario;
|
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserScenario;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
@ -18,4 +19,7 @@ public interface UserScenarioRepository extends JpaRepository<UserScenario, Long
|
||||||
|
|
||||||
Optional<UserScenario> findByUserAndScenarioId(UserData user, int scenarioId);
|
Optional<UserScenario> findByUserAndScenarioId(UserData user, int scenarioId);
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
void deleteByUser(UserData user);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
|
||||||
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechCount;
|
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTechCount;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
@ -18,4 +19,7 @@ public interface UserTechCountRepository extends JpaRepository<UserTechCount, Lo
|
||||||
|
|
||||||
Optional<UserTechCount> findByUserAndLevelId(UserData user, int levelId);
|
Optional<UserTechCount> findByUserAndLevelId(UserData user, int levelId);
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
void deleteByUser(UserData user);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue