mirror of https://github.com/hykilpikonna/AquaDX
Merge branch 'ongeki2dev' into 'master'
[ongeki]fix DB table ongeki_user_rival wrong foreign key and rename... See merge request domeori/aqua!17pull/1/head
commit
91e15c3105
|
@ -343,7 +343,7 @@ public class ApiOngekiPlayerDataController {
|
|||
public List<UserRivalData> getRival(@RequestParam long aimeId) {
|
||||
var rivalUserIds = userRivalDataRepository.findByUser_Card_ExtId(aimeId)
|
||||
.stream()
|
||||
.map(x -> x.getRivalUserId())
|
||||
.map(x -> x.getRivalUserExtId())
|
||||
.collect(Collectors.toList());
|
||||
|
||||
var rivalDataList = userDataRepository.findByCard_ExtIdIn(rivalUserIds)
|
||||
|
@ -356,7 +356,7 @@ public class ApiOngekiPlayerDataController {
|
|||
|
||||
@DeleteMapping("rival")
|
||||
public MessageResponse deleteRival(@RequestParam long aimeId, @RequestParam long rivalAimeId) {
|
||||
userRivalDataRepository.removeByUser_Card_ExtIdAndRivalUserId(aimeId, rivalAimeId);
|
||||
userRivalDataRepository.removeByUser_Card_ExtIdAndRivalUserExtId(aimeId, rivalAimeId);
|
||||
return new MessageResponse();
|
||||
}
|
||||
|
||||
|
@ -376,9 +376,12 @@ public class ApiOngekiPlayerDataController {
|
|||
return new ObjectMessageResponse<>("Rival user isn't ongeki player.");
|
||||
var rivalUser = rivalUserOpt.get();
|
||||
|
||||
if(user == rivalUser)
|
||||
return new ObjectMessageResponse<>("Can't add yourself as an rival.");
|
||||
|
||||
var rival = new UserRival();
|
||||
rival.setUser(user);
|
||||
rival.setRivalUserId(rivalUser.getCard().getExtId());
|
||||
rival.setRivalUserExtId(rivalUser.getCard().getExtId());
|
||||
|
||||
userRivalDataRepository.save(rival);
|
||||
return new ObjectMessageResponse<>(new UserRivalData(rivalUser.getCard().getExtId(), rivalUser.getUserName()));
|
||||
|
|
|
@ -17,7 +17,7 @@ public interface UserRivalDataRepository extends JpaRepository<UserRival, Long>
|
|||
List<UserRival> findByUser_Card_ExtId(long userId);
|
||||
|
||||
@Transactional
|
||||
void removeByUser_Card_ExtIdAndRivalUserId(long userId,long rivalUserId);
|
||||
void removeByUser_Card_ExtIdAndRivalUserExtId(long userId,long rivalUserId);
|
||||
|
||||
@Transactional
|
||||
void deleteByUser(UserData user);
|
||||
|
|
|
@ -32,7 +32,7 @@ public class UserRival implements Serializable {
|
|||
@JoinColumn(name = "user_id")
|
||||
private UserData user;
|
||||
|
||||
@JoinColumn(name = "rival_user_id")
|
||||
@JoinColumn(name = "rival_user_ext_id")
|
||||
@JsonProperty("rivalUserId")
|
||||
private long rivalUserId;
|
||||
}
|
||||
private long rivalUserExtId;
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
ALTER TABLE `ongeki_user_rival` DROP FOREIGN KEY `FK__ongeki_user_data_2`;
|
||||
ALTER TABLE `ongeki_user_rival` ADD CONSTRAINT `FK__ongeki_user_data_2` FOREIGN KEY (rival_user_id) REFERENCES `sega_card` (`ext_id`) ON DELETE CASCADE ON UPDATE NO ACTION;
|
||||
ALTER TABLE `ongeki_user_rival` RENAME COLUMN `rival_user_id` TO `rival_user_ext_id`;
|
|
@ -0,0 +1,3 @@
|
|||
ALTER TABLE `ongeki_user_rival` DROP FOREIGN KEY `FK__ongeki_user_data_2`;
|
||||
ALTER TABLE `ongeki_user_rival` ADD CONSTRAINT `FK__ongeki_user_data_2` FOREIGN KEY (rival_user_id) REFERENCES `sega_card` (`ext_id`) ON DELETE CASCADE ON UPDATE NO ACTION;
|
||||
ALTER TABLE `ongeki_user_rival` RENAME COLUMN `rival_user_id` TO `rival_user_ext_id`;
|
|
@ -0,0 +1,21 @@
|
|||
-- This migration that recreate(alter) table which foreign key "rival_user_id" reference will be modified from "ongeki_user_data"("id") to "sega_card"("ext_id")
|
||||
-- Before commit 687df8f57b59e1a06393f87f3dd734f5a9b3c732 , the type of UserRival.rivalUser is UserData and FK "rival_user_id" is right.
|
||||
-- After this commit, UserRival.rivalUser is rename as UserRival.rivalUserId and FK "rival_user_id" must be modified.
|
||||
|
||||
CREATE TABLE "ongeki_user_rival_new" (
|
||||
"id" INTEGER NOT NULL,
|
||||
"rival_user_ext_id" BIGINT,
|
||||
"user_id" BIGINT,
|
||||
FOREIGN KEY("user_id") REFERENCES "ongeki_user_data"("id") ON DELETE CASCADE,
|
||||
FOREIGN KEY("rival_user_ext_id") REFERENCES "sega_card"("ext_id") ON DELETE CASCADE,
|
||||
PRIMARY KEY("id" AUTOINCREMENT),
|
||||
CONSTRAINT "ongeki_user_rival_uq" UNIQUE("user_id","rival_user_ext_id") ON CONFLICT REPLACE
|
||||
);
|
||||
|
||||
-- copy data from old to new.
|
||||
INSERT INTO ongeki_user_rival_new(id,rival_user_ext_id,user_id) SELECT id,rival_user_id,user_id FROM ongeki_user_rival;
|
||||
|
||||
-- rename current to backup.
|
||||
ALTER TABLE ongeki_user_rival RENAME TO ongeki_user_rival_old;
|
||||
-- rename new as current.
|
||||
ALTER TABLE ongeki_user_rival_new RENAME TO ongeki_user_rival;
|
|
@ -345,7 +345,6 @@ class OngekiRepositoryTest {
|
|||
var u = getNewRandomValidUser();
|
||||
var r1 = getNewRandomValidUser();
|
||||
var r2 = getNewRandomValidUser();
|
||||
var r3 = getNewRandomValidUser();
|
||||
|
||||
userRivalDataRepository.saveAll(List.of(
|
||||
getUserRival(u, r1),
|
||||
|
@ -359,6 +358,15 @@ class OngekiRepositoryTest {
|
|||
|
||||
var find = userRivalDataRepository.findByUser_Card_ExtId(u.getCard().getExtId());
|
||||
assertThat(find).hasSize(2);
|
||||
|
||||
var find2 = userRivalDataRepository.findByUser_Card_ExtId(r1.getCard().getExtId());
|
||||
assertThat(find2).hasSize(1);
|
||||
|
||||
//remove r1's rival
|
||||
userRivalDataRepository.removeByUser_Card_ExtIdAndRivalUserExtId(r1.getCard().getExtId(), r2.getCard().getExtId());
|
||||
|
||||
var find3 = userRivalDataRepository.findByUser_Card_ExtId(r1.getCard().getExtId());
|
||||
assertThat(find3).hasSize(0);
|
||||
}
|
||||
|
||||
private UserData getUser(Card c) {
|
||||
|
|
Loading…
Reference in New Issue