fix: delete orhpaned blackjack games #207
1 changed files with 51 additions and 43 deletions
|
@ -36,7 +36,7 @@ public class BlackJackService {
|
||||||
game.setState(getState(game));
|
game.setState(getState(game));
|
||||||
deductBetFromBalance(user, betAmount);
|
deductBetFromBalance(user, betAmount);
|
||||||
|
|
||||||
return blackJackGameRepository.save(game);
|
return processGameBasedOnState(game);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
|
@ -46,10 +46,9 @@ public class BlackJackService {
|
||||||
}
|
}
|
||||||
|
|
||||||
dealCardToPlayer(game);
|
dealCardToPlayer(game);
|
||||||
|
|
||||||
updateGameStateAndBalance(game);
|
updateGameStateAndBalance(game);
|
||||||
|
|
||||||
return blackJackGameRepository.save(game);
|
return processGameBasedOnState(game);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
|
@ -61,7 +60,7 @@ public class BlackJackService {
|
||||||
dealCardsToDealerUntilMinimumScore(game);
|
dealCardsToDealerUntilMinimumScore(game);
|
||||||
determineWinnerAndUpdateBalance(game);
|
determineWinnerAndUpdateBalance(game);
|
||||||
|
|
||||||
return blackJackGameRepository.save(game);
|
return processGameBasedOnState(game);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
|
@ -89,9 +88,9 @@ public class BlackJackService {
|
||||||
@Transactional
|
@Transactional
|
||||||
public BlackJackGameEntity split(BlackJackGameEntity game) {
|
public BlackJackGameEntity split(BlackJackGameEntity game) {
|
||||||
if (game.getState() != BlackJackState.IN_PROGRESS ||
|
if (game.getState() != BlackJackState.IN_PROGRESS ||
|
||||||
game.getPlayerCards().size() != 2 ||
|
game.getPlayerCards().size() != 2 ||
|
||||||
game.isSplit() ||
|
game.isSplit() ||
|
||||||
!game.getPlayerCards().get(0).getRank().equals(game.getPlayerCards().get(1).getRank())) {
|
!game.getPlayerCards().get(0).getRank().equals(game.getPlayerCards().get(1).getRank())) {
|
||||||
return game;
|
return game;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,6 +115,15 @@ public class BlackJackService {
|
||||||
return blackJackGameRepository.save(game);
|
return blackJackGameRepository.save(game);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private BlackJackGameEntity processGameBasedOnState(BlackJackGameEntity game) {
|
||||||
|
if (game.getState() != BlackJackState.IN_PROGRESS) {
|
||||||
|
this.blackJackGameRepository.delete(game);
|
||||||
|
return game;
|
||||||
|
}
|
||||||
|
|
||||||
|
return blackJackGameRepository.save(game);
|
||||||
|
}
|
||||||
|
|
||||||
private BlackJackGameEntity refreshGameState(BlackJackGameEntity game) {
|
private BlackJackGameEntity refreshGameState(BlackJackGameEntity game) {
|
||||||
return blackJackGameRepository.findById(game.getId()).orElse(game);
|
return blackJackGameRepository.findById(game.getId()).orElse(game);
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue