| | |
| | | |
| | | wallet.setMoney(wallet.getMoney().add(money)); |
| | | if(wallet.getMoney().compareTo(BigDecimal.ZERO) < 0){ |
| | | wallet.setMoney(BigDecimal.ZERO); |
| | | } |
| | | wallet.setUpdateTime(now); |
| | | if (wallet.getMoney().doubleValue() <= 0) { |
| | | throw new YamiShopBindException("余额不足"); |
| | | } |
| | | wallet.setUpdateTime(now); |
| | | /*if (wallet.getMoney().doubleValue() < 0) { |
| | | throw new YamiShopBindException("余额不足"); |
| | | }*/ |
| | | updateById(wallet); |
| | | // 账变日志 |
| | | MoneyLog moneyLog = new MoneyLog(); |
| | |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public Wallet updateToBeCovered(Wallet wallet, BigDecimal amount, Integer type) { |
| | | amount = amount.abs(); |
| | | if (type == 1) { //入款 |
| | | if(wallet.getAmountToBeCovered().compareTo(BigDecimal.ZERO) > 0){ |
| | | BigDecimal availableBalance = amount.subtract(wallet.getAmountToBeCovered()); |
| | | if(availableBalance.compareTo(BigDecimal.ZERO) >= 0){ |
| | | wallet.setMoney(wallet.getMoney().add(availableBalance)); |
| | | wallet.setAmountToBeCovered(BigDecimal.ZERO); |
| | | }else { |
| | | wallet.setAmountToBeCovered(availableBalance.abs()); |
| | | } |
| | | } else { |
| | | wallet.setMoney(wallet.getMoney().add(amount)); |
| | | } |
| | | } else if (type == 2) { //扣款 |
| | | BigDecimal subtract = amount.subtract(wallet.getMoney()); |
| | | if (subtract.compareTo(BigDecimal.ZERO) > 0) { //资金不足 放入待补 |
| | | wallet.setMoney(BigDecimal.ZERO); |
| | | wallet.setAmountToBeCovered(wallet.getAmountToBeCovered().add(subtract)); |
| | | } else { |
| | | wallet.setMoney(subtract.negate()); |
| | | } |
| | | } |
| | | if (!updateById(wallet)) { |
| | | throw new YamiShopBindException("操作钱包失败!"); |
| | | } |
| | | return wallet; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void updateExtendWithLockAndFreeze(String partyId, String walletType, double amount, double lockAmount, double freezeAmount) { |