|
|
|
@ -170,15 +170,23 @@ public class WalletPrerequisiteProjectionService {
|
|
|
|
List<BankAccount> existing = bankAccounts(source.userId, institution.bankCode);
|
|
|
|
List<BankAccount> existing = bankAccounts(source.userId, institution.bankCode);
|
|
|
|
if (!existing.isEmpty()) {
|
|
|
|
if (!existing.isEmpty()) {
|
|
|
|
validateAccount(existing.get(0), source, institution);
|
|
|
|
validateAccount(existing.get(0), source, institution);
|
|
|
|
|
|
|
|
BigDecimal expectedBalance = source.application.accountBalance != null
|
|
|
|
|
|
|
|
&& source.application.accountBalance.compareTo(BigDecimal.ZERO) > 0
|
|
|
|
|
|
|
|
? source.application.accountBalance : new BigDecimal("50000.00");
|
|
|
|
|
|
|
|
jdbc.update("UPDATE simulated_bank_account SET balance=? WHERE account_id=? AND balance=0",
|
|
|
|
|
|
|
|
expectedBalance, existing.get(0).accountId);
|
|
|
|
return existing.get(0).accountId;
|
|
|
|
return existing.get(0).accountId;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
BigDecimal initialBalance = source.application.accountBalance != null
|
|
|
|
|
|
|
|
&& source.application.accountBalance.compareTo(BigDecimal.ZERO) > 0
|
|
|
|
|
|
|
|
? source.application.accountBalance : new BigDecimal("50000.00");
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
jdbc.update("INSERT INTO simulated_bank_account " +
|
|
|
|
jdbc.update("INSERT INTO simulated_bank_account " +
|
|
|
|
"(account_id,user_id,bank_code,bank_name,card_number,card_last4,balance,frozen_amount,status,created_at,updated_at) " +
|
|
|
|
"(account_id,user_id,bank_code,bank_name,card_number,card_last4,balance,frozen_amount,status,created_at,updated_at) " +
|
|
|
|
"VALUES (?,?,?,?,?,?,?,0,'ACTIVE',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)",
|
|
|
|
"VALUES (?,?,?,?,?,?,?,0,'ACTIVE',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)",
|
|
|
|
expectedId, source.userId, institution.bankCode, source.application.bankName,
|
|
|
|
expectedId, source.userId, institution.bankCode, source.application.bankName,
|
|
|
|
source.application.cardNumber, lastFour(source.application.cardNumber),
|
|
|
|
source.application.cardNumber, lastFour(source.application.cardNumber),
|
|
|
|
source.application.accountBalance);
|
|
|
|
initialBalance);
|
|
|
|
} catch (DuplicateKeyException exception) {
|
|
|
|
} catch (DuplicateKeyException exception) {
|
|
|
|
existing = bankAccounts(source.userId, institution.bankCode);
|
|
|
|
existing = bankAccounts(source.userId, institution.bankCode);
|
|
|
|
if (existing.isEmpty()) throw exception;
|
|
|
|
if (existing.isEmpty()) throw exception;
|
|
|
|
|