From 090fda68d046cbeee3efa733c2db8111e62a07a3 Mon Sep 17 00:00:00 2001 From: shenjiayi Date: Wed, 9 Sep 2020 00:35:25 +0800 Subject: [PATCH] [ongeki] remove same card data if existed when importing data instead of return 400 --- .../ongeki/ApiOngekiPlayerDataController.java | 46 +++++++++++++++++-- .../dao/userdata/UserActivityRepository.java | 3 ++ .../dao/userdata/UserCardRepository.java | 3 ++ .../dao/userdata/UserChapterRepository.java | 3 ++ .../dao/userdata/UserCharacterRepository.java | 3 ++ .../dao/userdata/UserDataRepository.java | 3 ++ .../dao/userdata/UserDeckRepository.java | 5 +- .../userdata/UserEventPointRepository.java | 3 ++ .../userdata/UserGeneralDataRepository.java | 3 ++ .../dao/userdata/UserItemRepository.java | 3 ++ .../userdata/UserLoginBonusRepository.java | 3 ++ .../userdata/UserMissionPointRepository.java | 3 ++ .../userdata/UserMusicDetailRepository.java | 3 ++ .../dao/userdata/UserMusicItemRepository.java | 3 ++ .../dao/userdata/UserOptionRepository.java | 3 ++ .../dao/userdata/UserPlaylogRepository.java | 4 ++ .../dao/userdata/UserStoryRepository.java | 3 ++ .../userdata/UserTrainingRoomRepository.java | 3 ++ 18 files changed, 94 insertions(+), 6 deletions(-) diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/ongeki/ApiOngekiPlayerDataController.java b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/ongeki/ApiOngekiPlayerDataController.java index be12af0d..0787c708 100644 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/ongeki/ApiOngekiPlayerDataController.java +++ b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/ongeki/ApiOngekiPlayerDataController.java @@ -375,11 +375,47 @@ public class ApiOngekiPlayerDataController { Optional cardOptional = cardService.getCardByAccessCode(exUser.getAccessCode()); Card card; if (cardOptional.isPresent()) { - if (userDataRepository.findByCard(cardOptional.get()).isPresent()) { - return ResponseEntity.status(HttpStatus.BAD_REQUEST) - .body(new MessageResponse("This card already has a ongeki profile.")); - } else { - card = cardOptional.get(); + card = cardOptional.get(); + Optional existUserData = userDataRepository.findByCard(cardOptional.get()); + if (existUserData.isPresent()) { +// return ResponseEntity.status(HttpStatus.BAD_REQUEST) +// .body(new MessageResponse("This card already has a ongeki profile.")); + // delete all same card data + userActivityRepository.deleteByUser(existUserData.get()); + userActivityRepository.flush(); + userCardRepository.deleteByUser(existUserData.get()); + userCardRepository.flush(); + userChapterRepository.deleteByUser(existUserData.get()); + userChapterRepository.flush(); + userCharacterRepository.deleteByUser(existUserData.get()); + userCharacterRepository.flush(); + userDeckRepository.deleteByUser(existUserData.get()); + userDeckRepository.flush(); + userEventPointRepository.deleteByUser(existUserData.get()); + userEventPointRepository.flush(); + userGeneralDataRepository.deleteByUser(existUserData.get()); + userGeneralDataRepository.flush(); + userItemRepository.deleteByUser(existUserData.get()); + userItemRepository.flush(); + userLoginBonusRepository.deleteByUser(existUserData.get()); + userLoginBonusRepository.flush(); + userMissionPointRepository.deleteByUser(existUserData.get()); + userMissionPointRepository.flush(); + userMusicDetailRepository.deleteByUser(existUserData.get()); + userMusicDetailRepository.flush(); + userMusicItemRepository.deleteByUser(existUserData.get()); + userMusicItemRepository.flush(); + userOptionRepository.deleteByUser(existUserData.get()); + userOptionRepository.flush(); + userPlaylogRepository.deleteByUser(existUserData.get()); + userPlaylogRepository.flush(); + userStoryRepository.deleteByUser(existUserData.get()); + userStoryRepository.flush(); + userTrainingRoomRepository.deleteByUser(existUserData.get()); + userTrainingRoomRepository.flush(); + + userDataRepository.deleteByCard(card); + userDataRepository.flush(); } } else { card = cardService.registerByAccessCode(exUser.getAccessCode()); diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserActivityRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserActivityRepository.java index f3c62294..dafd2d7c 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserActivityRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserActivityRepository.java @@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserActivity; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; 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; @@ -20,4 +21,6 @@ public interface UserActivityRepository extends JpaRepository findByUser_Card_ExtIdAndKindOrderBySortNumberDesc(int userId, int kind); + @Transactional + void deleteByUser(UserData user); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCardRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCardRepository.java index 1bf56946..91018e39 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCardRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCardRepository.java @@ -6,6 +6,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; 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; @@ -24,4 +25,6 @@ public interface UserCardRepository extends JpaRepository { Page findByUser_Card_ExtId(int userId, Pageable page); + @Transactional + void deleteByUser(UserData user); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserChapterRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserChapterRepository.java index 9a30ede6..9f65b97b 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserChapterRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserChapterRepository.java @@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserChapter; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; 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; @@ -18,4 +19,6 @@ public interface UserChapterRepository extends JpaRepository Optional findByUserAndChapterId(UserData userData, int chapterId); + @Transactional + void deleteByUser(UserData user); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCharacterRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCharacterRepository.java index 5151b49a..a34f7135 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCharacterRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserCharacterRepository.java @@ -6,6 +6,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; 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; @@ -22,4 +23,6 @@ public interface UserCharacterRepository extends JpaRepository findByUserAndCharacterId(UserData userData, int characterId); + @Transactional + void deleteByUser(UserData user); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDataRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDataRepository.java index 9e3c3454..9c41a1b2 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDataRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDataRepository.java @@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.general.model.Card; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; import java.util.Optional; @@ -17,4 +18,6 @@ public interface UserDataRepository extends JpaRepository { Optional findByCard_ExtId(int aimeId); + @Transactional + void deleteByCard(Card card); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDeckRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDeckRepository.java index 69dc67a3..4a835169 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDeckRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserDeckRepository.java @@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserDeck; 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; @@ -17,5 +18,7 @@ public interface UserDeckRepository extends JpaRepository { List findByUser_Card_ExtId(int userId); Optional findByUserAndDeckId(UserData userData, int deckId); - + + @Transactional + void deleteByUser(UserData user); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventPointRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventPointRepository.java index 4dfb11d9..4ca2f0bb 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventPointRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserEventPointRepository.java @@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventPoint; 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; @@ -18,4 +19,6 @@ public interface UserEventPointRepository extends JpaRepository findByUserAndEventId(UserData userData, int eventId); + @Transactional + void deleteByUser(UserData user); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserGeneralDataRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserGeneralDataRepository.java index 27bec788..37689ae6 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserGeneralDataRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserGeneralDataRepository.java @@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserGeneralData; 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; @@ -20,4 +21,6 @@ public interface UserGeneralDataRepository extends JpaRepository findByUser_Card_ExtIdAndPropertyKey(int userId, String key); + @Transactional + void deleteByUser(UserData user); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserItemRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserItemRepository.java index 25e11272..5ec2a5c2 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserItemRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserItemRepository.java @@ -6,6 +6,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; 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; @@ -24,4 +25,6 @@ public interface UserItemRepository extends JpaRepository { Page findByUser_Card_ExtIdAndItemKind(int userId, int kind, Pageable page); + @Transactional + void deleteByUser(UserData user); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserLoginBonusRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserLoginBonusRepository.java index 041d2427..5147ae10 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserLoginBonusRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserLoginBonusRepository.java @@ -3,6 +3,7 @@ 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.UserLoginBonus; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Optional; @@ -16,4 +17,6 @@ public interface UserLoginBonusRepository extends JpaRepository findByUserAndBonusId(UserData userData, int bonusId); + @Transactional + void deleteByUser(UserData user); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMissionPointRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMissionPointRepository.java index 46f64bd2..afd84446 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMissionPointRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMissionPointRepository.java @@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMissionPoint; 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; @@ -18,4 +19,6 @@ public interface UserMissionPointRepository extends JpaRepository findByUserAndEventId(UserData userData, int eventId); + @Transactional + void deleteByUser(UserData user); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicDetailRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicDetailRepository.java index a74ca9b9..bdc4c89d 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicDetailRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicDetailRepository.java @@ -6,6 +6,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; 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; @@ -24,4 +25,6 @@ public interface UserMusicDetailRepository extends JpaRepository findByUserAndMusicIdAndLevel(UserData userData, int musicId, int level); + @Transactional + void deleteByUser(UserData user); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicItemRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicItemRepository.java index 781137fe..79151475 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicItemRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserMusicItemRepository.java @@ -6,6 +6,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; 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; @@ -22,4 +23,6 @@ public interface UserMusicItemRepository extends JpaRepository findByUserAndMusicId(UserData userData, int musicId); + @Transactional + void deleteByUser(UserData user); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserOptionRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserOptionRepository.java index 23b9694a..b0d37380 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserOptionRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserOptionRepository.java @@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserOption; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; import java.util.Optional; @@ -17,4 +18,6 @@ public interface UserOptionRepository extends JpaRepository { Optional findByUser_Card_ExtId(int userId); + @Transactional + void deleteByUser(UserData user); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserPlaylogRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserPlaylogRepository.java index c207e9c5..51b43fe1 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserPlaylogRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserPlaylogRepository.java @@ -1,10 +1,12 @@ 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.UserPlaylog; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -20,4 +22,6 @@ public interface UserPlaylogRepository extends JpaRepository List findByUser_Card_ExtIdAndMusicIdAndLevel(Integer userId, int musicId, int level); + @Transactional + void deleteByUser(UserData user); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserStoryRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserStoryRepository.java index 9a503f21..61070610 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserStoryRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserStoryRepository.java @@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserStory; 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; @@ -18,4 +19,6 @@ public interface UserStoryRepository extends JpaRepository { Optional findByUserAndStoryId(UserData userData, int storyId); + @Transactional + void deleteByUser(UserData user); } diff --git a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTrainingRoomRepository.java b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTrainingRoomRepository.java index eaea6083..ee3f1478 100644 --- a/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTrainingRoomRepository.java +++ b/src/main/java/icu/samnyan/aqua/sega/ongeki/dao/userdata/UserTrainingRoomRepository.java @@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTrainingRoom; 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; @@ -18,4 +19,6 @@ public interface UserTrainingRoomRepository extends JpaRepository findByUser_Card_ExtId(int userId); + @Transactional + void deleteByUser(UserData user); }