| | |
| | | import javax.annotation.Resource; |
| | | import javax.validation.constraints.Email; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | |
| | | } |
| | | |
| | | |
| | | public Boolean aiAvailableBalanceChange(UserAssets userAssets, EUserAssets eUserAssets, BigDecimal amount) { |
| | | public Boolean aiAvailableBalanceChange(UserAssets userAssets, EUserAssets eUserAssets, BigDecimal amount, BigDecimal buyAmount) { |
| | | String before = userAssets.getAvailableBalance().toString(); |
| | | if (eUserAssets.getCode().equals(EUserAssets.BUY_AI.getCode())) { |
| | | //冻结金额 |
| | |
| | | userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount)); |
| | | } else if (eUserAssets.getCode().equals(EUserAssets.AI_SETTLEMENT.getCode())) { |
| | | //解除冻结金额 |
| | | userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(amount.negate())); |
| | | //归还可用金额 + 收益 |
| | | userAssets.setFreezeMoney(userAssets.getFreezeMoney().add(buyAmount.negate())); |
| | | //归还可用金额(买入金额+收益) |
| | | userAssets.setAvailableBalance(userAssets.getAvailableBalance().add(amount)); |
| | | } |
| | | String after = userAssets.getAvailableBalance().toString(); |
| | |
| | | |
| | | @Override |
| | | public BigDecimal exchangeAmountByRate(BigDecimal amount, BigDecimal rate) { |
| | | return amount.multiply(rate); |
| | | //保留5位小数 |
| | | return amount.multiply(rate).setScale(5, RoundingMode.HALF_UP); |
| | | } |
| | | } |