From daf8f9d1a010b44cca7ec460a9e84f31357a16c5 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 05 Jun 2020 17:50:50 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java |   52 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 29 insertions(+), 23 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 0e8d92e..f421d64 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
@@ -28,7 +28,10 @@
 import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity;
 import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity;
 import com.xcong.excoin.modules.platform.dao.PlatformCnyUsdtExchangeDao;
+import com.xcong.excoin.utils.CoinTypeConvert;
 import com.xcong.excoin.utils.MessageSourceUtils;
+import com.xcong.excoin.utils.RedisUtils;
+
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
@@ -48,6 +51,8 @@
     MemberAccountMoneyChangeDao memberAccountMoneyChangeDao;
     @Resource
     MemberWalletAgentDao memberWalletAgentDao;
+    @Resource
+    RedisUtils redisUtils;
 
 
     @Override
@@ -82,15 +87,16 @@
                         totalUsdt = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance());
                         totalUsdts = totalUsdts.add(totalUsdt);
                         BigDecimal totalCny = totalUsdt.multiply(cnyUsdt);
-                        walletCoin.setTotalBalance(totalCny.setScale(4, BigDecimal.ROUND_DOWN));
+                        walletCoin.setTotalBalance(totalCny);
                     } else {
                         BigDecimal amount = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance());
-                        BigDecimal closePrice = new BigDecimal("10.0000");
+                        // 获取最新价
+                        BigDecimal closePrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(walletCoin.getWalletCode()+"/USDT")));
                         BigDecimal totalUsdt = BigDecimal.ZERO;
                         //Double closePrice = symbolsService.getCloseSymbolsBySymbolsName(walletCoin.getWalletCode()+"/USDT");
                         totalUsdt = totalUsdt.add(amount.multiply(closePrice));
                         totalUsdts = totalUsdts.add(totalUsdt);
-                        walletCoin.setTotalBalance(totalUsdt.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
+                        walletCoin.setTotalBalance(totalUsdt.multiply(cnyUsdt));
                     }
                 }
             }
@@ -150,7 +156,7 @@
                 memberWalletCoinInfoVo.setTotalBalance(total.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
 
             } else {
-                BigDecimal closePrice = new BigDecimal("10.0000");
+            	BigDecimal closePrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(symbol+"/USDT")));
                 //Double closePrice = symbolsService.getCloseSymbolsBySymbolsName(wallet.getCode()+"/USDT");
                 memberWalletCoinInfoVo.setTotalBalance(total.multiply(closePrice).multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
             }
@@ -229,10 +235,10 @@
             MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode);
             BigDecimal availableBalance = walletContract.getAvailableBalance();
             BigDecimal add = availableBalance.add(balance);
-            walletContract.setAvailableBalance(add.setScale(4, BigDecimal.ROUND_DOWN));
+            walletContract.setAvailableBalance(add);
             BigDecimal totalBalance = walletContract.getTotalBalance();
             BigDecimal totalBigDecimal = totalBalance.add(balance);
-            walletContract.setTotalBalance(totalBigDecimal.setScale(4, BigDecimal.ROUND_DOWN));
+            walletContract.setTotalBalance(totalBigDecimal);
             int updateWalletContractById = memberWalletContractDao.updateById(walletContract);
             if (updateWalletContractById < 1) {
                 return Result.fail(MessageSourceUtils.getString("member_service_0096"));
@@ -241,7 +247,7 @@
             MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
             memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOCONTRACT.getValue());
             memberAccountRecord.setMemberId(memberId);
-            memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN));
+            memberAccountRecord.setAmount(balance.negate());
             memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER);
             memberAccountRecord.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue());
             memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
@@ -250,7 +256,7 @@
             //添加合约资金划转历史记录
             memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMWALLETCOIN.getValue());
             memberAccountRecord.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue());
-            memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
+            memberAccountRecord.setAmount(balance);
             memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT);
             memberAccountMoneyChangeDao.insert(memberAccountRecord);
         }
@@ -277,8 +283,8 @@
         BigDecimal totalBalance = walletContract.getTotalBalance();
         BigDecimal totalSubtract = totalBalance.subtract(balance);
 
-        walletContract.setAvailableBalance(availableSubtract.setScale(4, BigDecimal.ROUND_DOWN));
-        walletContract.setTotalBalance(totalSubtract.setScale(4, BigDecimal.ROUND_DOWN));
+        walletContract.setAvailableBalance(availableSubtract);
+        walletContract.setTotalBalance(totalSubtract);
         int updateWalletCoinById = memberWalletContractDao.updateById(walletContract);
         if (updateWalletCoinById < 1) {
             return Result.fail(MessageSourceUtils.getString("member_service_0096"));
@@ -290,8 +296,8 @@
         BigDecimal walletCoinTotalBalance = walletCoin.getTotalBalance();
         BigDecimal CoinTotalBalance = walletCoinTotalBalance.add(balance);
 
-        walletCoin.setAvailableBalance(CoinAvailableBalance.setScale(4, BigDecimal.ROUND_DOWN));
-        walletCoin.setTotalBalance(CoinTotalBalance.setScale(4, BigDecimal.ROUND_DOWN));
+        walletCoin.setAvailableBalance(CoinAvailableBalance);
+        walletCoin.setTotalBalance(CoinTotalBalance);
         int updateById = memberWalletCoinDao.updateById(walletCoin);
         if (updateById < 1) {
             return Result.fail(MessageSourceUtils.getString("member_service_0096"));
@@ -301,7 +307,7 @@
         MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
         memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOWALLETCOIN.getValue());
         memberAccountRecord.setMemberId(memberId);
-        memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN));
+        memberAccountRecord.setAmount(balance.negate());
         memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER);
         memberAccountRecord.setSymbol(walletCode);
         memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT);
@@ -311,7 +317,7 @@
         memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMCONTRACT.getValue());
         memberAccountRecord.setSymbol(walletCode);
         memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
-        memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
+        memberAccountRecord.setAmount(balance);
         memberAccountMoneyChangeDao.insert(memberAccountRecord);
         return Result.ok(MessageSourceUtils.getString("member_service_0006"));
     }
@@ -429,8 +435,8 @@
             return Result.fail(MessageSourceUtils.getString("member_service_0008"));
         }
 
-        walletAgent.setAvailableBalance(available.setScale(4, BigDecimal.ROUND_DOWN));
-        walletAgent.setTotalBalance(total.setScale(4, BigDecimal.ROUND_DOWN));
+        walletAgent.setAvailableBalance(available);
+        walletAgent.setTotalBalance(total);
 
         int i = memberWalletAgentDao.updateById(walletAgent);
         if (i < 1) {
@@ -444,8 +450,8 @@
             BigDecimal walletCoinAvailableBalance = walletCoin.getAvailableBalance();
             BigDecimal walletCoinTotalBalance = walletCoin.getTotalBalance();
 
-            walletCoin.setAvailableBalance(walletCoinAvailableBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN));
-            walletCoin.setTotalBalance(walletCoinTotalBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN));
+            walletCoin.setAvailableBalance(walletCoinAvailableBalance.add(balance));
+            walletCoin.setTotalBalance(walletCoinTotalBalance.add(balance));
 
             int updateById = memberWalletCoinDao.updateById(walletCoin);
             if (updateById < 1) {
@@ -457,7 +463,7 @@
             memberAccountRecord.setSymbol(walletCode);
             memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMAGENT.getValue());
             memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
-            memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
+            memberAccountRecord.setAmount(balance);
             memberAccountMoneyChangeDao.insert(memberAccountRecord);
             memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOWALLETCOIN.getValue());
 
@@ -467,8 +473,8 @@
             BigDecimal walletContractAvailableBalance = walletContract.getAvailableBalance();
             BigDecimal walletContractTotalBalance = walletContract.getTotalBalance();
 
-            walletContract.setAvailableBalance(walletContractAvailableBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN));
-            walletContract.setTotalBalance(walletContractTotalBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN));
+            walletContract.setAvailableBalance(walletContractAvailableBalance.add(balance));
+            walletContract.setTotalBalance(walletContractTotalBalance.add(balance));
 
             int updateById = memberWalletContractDao.updateById(walletContract);
             if (updateById < 1) {
@@ -481,11 +487,11 @@
             memberAccountRecord.setSymbol(walletCode);
             memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMAGENT.getValue());
             memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT);
-            memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
+            memberAccountRecord.setAmount(balance);
             memberAccountMoneyChangeDao.insert(memberAccountRecord);
             memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOCONTRACT.getValue());
         }
-        memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN));
+        memberAccountRecord.setAmount(balance.negate());
         memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_AGENT);
         memberAccountMoneyChangeDao.insert(memberAccountRecord);
 

--
Gitblit v1.9.1