[ongeki] remove same card data if existed when importing data instead of return 400

pull/1/head
shenjiayi 2020-09-09 00:35:25 +08:00
parent d2bc566a16
commit 090fda68d0
18 changed files with 94 additions and 6 deletions

View File

@ -375,11 +375,47 @@ public class ApiOngekiPlayerDataController {
Optional<Card> cardOptional = cardService.getCardByAccessCode(exUser.getAccessCode()); Optional<Card> cardOptional = cardService.getCardByAccessCode(exUser.getAccessCode());
Card card; Card card;
if (cardOptional.isPresent()) { if (cardOptional.isPresent()) {
if (userDataRepository.findByCard(cardOptional.get()).isPresent()) { card = cardOptional.get();
return ResponseEntity.status(HttpStatus.BAD_REQUEST) Optional<UserData> existUserData = userDataRepository.findByCard(cardOptional.get());
.body(new MessageResponse("This card already has a ongeki profile.")); if (existUserData.isPresent()) {
} else { // return ResponseEntity.status(HttpStatus.BAD_REQUEST)
card = cardOptional.get(); // .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 { } else {
card = cardService.registerByAccessCode(exUser.getAccessCode()); card = cardService.registerByAccessCode(exUser.getAccessCode());

View File

@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserActivity;
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;
@ -20,4 +21,6 @@ public interface UserActivityRepository extends JpaRepository<UserActivity, Long
List<UserActivity> findByUser_Card_ExtIdAndKindOrderBySortNumberDesc(int userId, int kind); List<UserActivity> findByUser_Card_ExtIdAndKindOrderBySortNumberDesc(int userId, int kind);
@Transactional
void deleteByUser(UserData user);
} }

View File

@ -6,6 +6,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
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;
@ -24,4 +25,6 @@ public interface UserCardRepository extends JpaRepository<UserCard, Long> {
Page<UserCard> findByUser_Card_ExtId(int userId, Pageable page); Page<UserCard> findByUser_Card_ExtId(int userId, Pageable page);
@Transactional
void deleteByUser(UserData user);
} }

View File

@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserChapter;
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,6 @@ public interface UserChapterRepository extends JpaRepository<UserChapter, Long>
Optional<UserChapter> findByUserAndChapterId(UserData userData, int chapterId); Optional<UserChapter> findByUserAndChapterId(UserData userData, int chapterId);
@Transactional
void deleteByUser(UserData user);
} }

View File

@ -6,6 +6,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
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;
@ -22,4 +23,6 @@ public interface UserCharacterRepository extends JpaRepository<UserCharacter, Lo
Optional<UserCharacter> findByUserAndCharacterId(UserData userData, int characterId); Optional<UserCharacter> findByUserAndCharacterId(UserData userData, int characterId);
@Transactional
void deleteByUser(UserData user);
} }

View File

@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.general.model.Card;
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.Optional; import java.util.Optional;
@ -17,4 +18,6 @@ public interface UserDataRepository extends JpaRepository<UserData, Long> {
Optional<UserData> findByCard_ExtId(int aimeId); Optional<UserData> findByCard_ExtId(int aimeId);
@Transactional
void deleteByCard(Card card);
} }

View File

@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserDeck; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserDeck;
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;
@ -17,5 +18,7 @@ public interface UserDeckRepository extends JpaRepository<UserDeck, Long> {
List<UserDeck> findByUser_Card_ExtId(int userId); List<UserDeck> findByUser_Card_ExtId(int userId);
Optional<UserDeck> findByUserAndDeckId(UserData userData, int deckId); Optional<UserDeck> findByUserAndDeckId(UserData userData, int deckId);
@Transactional
void deleteByUser(UserData user);
} }

View File

@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventPoint; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserEventPoint;
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,6 @@ public interface UserEventPointRepository extends JpaRepository<UserEventPoint,
Optional<UserEventPoint> findByUserAndEventId(UserData userData, int eventId); Optional<UserEventPoint> findByUserAndEventId(UserData userData, int eventId);
@Transactional
void deleteByUser(UserData user);
} }

View File

@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserGeneralData; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserGeneralData;
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;
@ -20,4 +21,6 @@ public interface UserGeneralDataRepository extends JpaRepository<UserGeneralData
Optional<UserGeneralData> findByUser_Card_ExtIdAndPropertyKey(int userId, String key); Optional<UserGeneralData> findByUser_Card_ExtIdAndPropertyKey(int userId, String key);
@Transactional
void deleteByUser(UserData user);
} }

View File

@ -6,6 +6,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
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;
@ -24,4 +25,6 @@ public interface UserItemRepository extends JpaRepository<UserItem, Long> {
Page<UserItem> findByUser_Card_ExtIdAndItemKind(int userId, int kind, Pageable page); Page<UserItem> findByUser_Card_ExtIdAndItemKind(int userId, int kind, Pageable page);
@Transactional
void deleteByUser(UserData user);
} }

View File

@ -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.UserData;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserLoginBonus; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserLoginBonus;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -16,4 +17,6 @@ public interface UserLoginBonusRepository extends JpaRepository<UserLoginBonus,
Optional<UserLoginBonus> findByUserAndBonusId(UserData userData, int bonusId); Optional<UserLoginBonus> findByUserAndBonusId(UserData userData, int bonusId);
@Transactional
void deleteByUser(UserData user);
} }

View File

@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMissionPoint; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserMissionPoint;
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,6 @@ public interface UserMissionPointRepository extends JpaRepository<UserMissionPoi
Optional<UserMissionPoint> findByUserAndEventId(UserData userData, int eventId); Optional<UserMissionPoint> findByUserAndEventId(UserData userData, int eventId);
@Transactional
void deleteByUser(UserData user);
} }

View File

@ -6,6 +6,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
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;
@ -24,4 +25,6 @@ public interface UserMusicDetailRepository extends JpaRepository<UserMusicDetail
Optional<UserMusicDetail> findByUserAndMusicIdAndLevel(UserData userData, int musicId, int level); Optional<UserMusicDetail> findByUserAndMusicIdAndLevel(UserData userData, int musicId, int level);
@Transactional
void deleteByUser(UserData user);
} }

View File

@ -6,6 +6,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
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;
@ -22,4 +23,6 @@ public interface UserMusicItemRepository extends JpaRepository<UserMusicItem, Lo
Optional<UserMusicItem> findByUserAndMusicId(UserData userData, int musicId); Optional<UserMusicItem> findByUserAndMusicId(UserData userData, int musicId);
@Transactional
void deleteByUser(UserData user);
} }

View File

@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserOption; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserOption;
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.Optional; import java.util.Optional;
@ -17,4 +18,6 @@ public interface UserOptionRepository extends JpaRepository<UserOption, Long> {
Optional<UserOption> findByUser_Card_ExtId(int userId); Optional<UserOption> findByUser_Card_ExtId(int userId);
@Transactional
void deleteByUser(UserData user);
} }

View File

@ -1,10 +1,12 @@
package icu.samnyan.aqua.sega.ongeki.dao.userdata; 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 icu.samnyan.aqua.sega.ongeki.model.userdata.UserPlaylog;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
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;
@ -20,4 +22,6 @@ public interface UserPlaylogRepository extends JpaRepository<UserPlaylog, Long>
List<UserPlaylog> findByUser_Card_ExtIdAndMusicIdAndLevel(Integer userId, int musicId, int level); List<UserPlaylog> findByUser_Card_ExtIdAndMusicIdAndLevel(Integer userId, int musicId, int level);
@Transactional
void deleteByUser(UserData user);
} }

View File

@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserStory; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserStory;
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,6 @@ public interface UserStoryRepository extends JpaRepository<UserStory, Long> {
Optional<UserStory> findByUserAndStoryId(UserData userData, int storyId); Optional<UserStory> findByUserAndStoryId(UserData userData, int storyId);
@Transactional
void deleteByUser(UserData user);
} }

View File

@ -4,6 +4,7 @@ import icu.samnyan.aqua.sega.ongeki.model.userdata.UserData;
import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTrainingRoom; import icu.samnyan.aqua.sega.ongeki.model.userdata.UserTrainingRoom;
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,6 @@ public interface UserTrainingRoomRepository extends JpaRepository<UserTrainingRo
List<UserTrainingRoom> findByUser_Card_ExtId(int userId); List<UserTrainingRoom> findByUser_Card_ExtId(int userId);
@Transactional
void deleteByUser(UserData user);
} }