diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/DeductionServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/DeductionServiceImpl.java index 545ab10b..d3392c22 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/DeductionServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/amount/DeductionServiceImpl.java @@ -469,15 +469,15 @@ public class DeductionServiceImpl implements DeductionService { synchronized (getUserLock(userId)) { MemberUserDO user = userService.getUser(userId); MoneyDO moneyDO = moneyService.getMoney(userId, storeId); - - - if (user.getMoney().compareTo(money) < 0) { + BigDecimal total = moneyDO.getCashAmount().add(user.getWxAmount()).add(user.getGiftAmount()); + if (total.compareTo(money) < 0) { if (CHECK_LIST.contains(type)) { throw exception(CASH_AMOUNT_NOT_ENOUGH); } user.setWxAmount(BigDecimal.ZERO); moneyDO.setCashAmount(BigDecimal.ZERO); user.setGiftAmount(BigDecimal.ZERO); + moneyDO.setDebtAmount(total.subtract(money)); } else { BigDecimal wxAmount = user.getWxAmount(); BigDecimal giftAmount = user.getGiftAmount();