From 10a06cf876b3dfce68d36ee71cba0cb4fa393b94 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Thu, 04 Sep 2025 16:11:21 +0800
Subject: [PATCH] 计算金额(待补金额)
---
trading-order-service/src/main/java/com/yami/trading/service/impl/WalletServiceImpl.java | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/WalletServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/WalletServiceImpl.java
index aff60f2..d4a0a62 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/WalletServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/WalletServiceImpl.java
@@ -756,6 +756,36 @@
}
+ @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) {
--
Gitblit v1.9.3