balance-service http://jira.mfd.msk:8088/browse/CLS-74 правильное обновление AccountBalanceService

This commit is contained in:
AKurakin 2023-01-16 18:08:11 +03:00
parent b1cd2b7a0f
commit 4c687e8d59

View file

@ -35,7 +35,7 @@ public class AccountBalanceService {
}
public AccountResult createAccountBalance(Long addresseeId, Long accountId, BigDecimal amount,
String cashMovementCurrencyCode) {
String cashMovementCurrencyCode) {
IValidator validator = validationFactory.apply(new AccountBalanceValidation(addresseeId, accountId));
Optional<EnumMessage> validationError = validator
.tillFirstError();
@ -66,14 +66,23 @@ public class AccountBalanceService {
return new AccountResult(accountBalance);
} else {
accountBalance.setUpdated(Instant.now());
accountBalance.setAccountId(accountId);
accountBalance.setAccountType(account.getAccountType());
accountBalance.setAccountId(accountId);//+
accountBalance.setAccountType(account.getAccountType());//++
accountBalance.setAccount(account.getAccount());
accountBalance.setOpenBalanceAmount(amount);
accountBalance.setFreeBalanceAmount(amount);
accountBalance.setBalanceAmount(amount);
// accountBalance.setOpenBalanceAmount();// на базе изменения statement по sDf16/sDf09): не меняется.
accountBalance.setFreeBalanceAmount(plus(accountBalance.getFreeBalanceAmount(), amount));
accountBalance.setChangeBalanceAmount(plus(accountBalance.getChangeBalanceAmount(), amount));
accountBalance.setCreditAmount(plus(accountBalance.getCreditAmount(), amount));
accountBalance.setDebitAmount(plus(accountBalance.getDebitAmount(), amount));
accountBalance.setBalanceAmount(plus(accountBalance.getBalanceAmount(), amount));
accountBalance.setCurrencyCode(cashMovementCurrencyCode);
return new AccountResult(accountBalance);
}
}
BigDecimal plus(BigDecimal a, BigDecimal b) {
if (a == null) return b;
if (b == null) return a;
return a.add(b);
}
}