From d23645e976981bc9b670eea1d469fe8a36be309c Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 17 Apr 2024 17:19:53 +0800
Subject: [PATCH] 55测试环境

---
 src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java |   67 +++++++++++++++++----------------
 1 files changed, 35 insertions(+), 32 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java b/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
index f3979ef..225a193 100644
--- a/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
@@ -453,19 +453,21 @@
     	String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
     	MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, symbol);
     	BigDecimal availableBalance = walletContract.getAvailableBalance();
+
+    	BigDecimal canReduce = availableBalance;
     	//可用减去盈亏
     	if(totalProfitOrLess.compareTo(BigDecimal.ZERO) < 0){
-            availableBalance = availableBalance.add(totalProfitOrLess);
+            canReduce = availableBalance.add(totalProfitOrLess);
         }
     	// 扣币
-    	BigDecimal availableSubtract = availableBalance.subtract(balance);
+    	BigDecimal availableSubtract = canReduce.subtract(balance);
     	if (availableSubtract.compareTo(BigDecimal.ZERO) < 0) {
     		return Result.fail(MessageSourceUtils.getString("member_service_0007"));
     	}
     	BigDecimal totalBalance = walletContract.getTotalBalance();
     	BigDecimal totalSubtract = totalBalance.subtract(balance);
     	
-    	walletContract.setAvailableBalance(availableSubtract);
+    	walletContract.setAvailableBalance(availableBalance.subtract(balance));
     	walletContract.setTotalBalance(totalSubtract);
     	int updateWalletCoinById = memberWalletContractDao.updateById(walletContract);
     	if (updateWalletCoinById < 1) {
@@ -552,7 +554,11 @@
         if(totalProfitOrLess.compareTo(BigDecimal.ZERO) < 0){
             availableBalance = availableBalance.add(totalProfitOrLess);
         }
-        availableBalance = availableBalance.setScale(4, BigDecimal.ROUND_DOWN);
+        if(availableBalance.compareTo(BigDecimal.ZERO) > 0){
+            availableBalance = availableBalance.setScale(4, BigDecimal.ROUND_DOWN);
+        }else{
+            availableBalance = BigDecimal.ZERO;
+        }
         return Result.ok(availableBalance);
     }
 
@@ -1106,33 +1112,30 @@
         return Result.fail(MessageSourceUtils.getString("member_controller_0005"));
         
     }
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
 
+
+    @Override
+    public BigDecimal getAllWalletAmount(Long memberId) {
+        List<MemberWalletCoinEntity> memberWalletCoinList = memberWalletCoinDao.selectMemberWalletCoinsByMemberId(memberId);
+        BigDecimal total = BigDecimal.ZERO;
+        if (CollUtil.isNotEmpty(memberWalletCoinList)) {
+            for (MemberWalletCoinEntity memberWalletCoinEntity : memberWalletCoinList) {
+                if (memberWalletCoinEntity.getWalletCode().equals(CoinTypeEnum.USDT.name())) {
+                    total = total.add(memberWalletCoinEntity.getTotalBalance());
+                } else {
+                    BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(memberWalletCoinEntity.getWalletCode() + "/USDT")));
+                    total = total.add(memberWalletCoinEntity.getTotalBalance().multiply(newPrice));
+                }
+            }
+        }
+
+        MemberWalletContractEntity contractWallet = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, CoinTypeEnum.USDT.name());
+        total = total.add(contractWallet.getTotalBalance());
+
+        MemberWalletAgentEntity walletAgent = memberWalletAgentDao.selectWalletAgentBymIdAndCode(memberId, CoinTypeEnum.USDT.name());
+        if (walletAgent != null) {
+            total = total.add(walletAgent.getTotalBalance());
+        }
+        return total;
+    }
 }

--
Gitblit v1.9.1