mirror of https://github.com/hykilpikonna/AquaDX
Merge branch 'dev' into 'master'
[API] Add support for import and export ongeki bright memory specific user data. See merge request domeori/aqua!12pull/1/head
commit
70a7a419be
|
@ -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