From 6cdfe1d568d06bc63bb513ce0ef1df6aac3c7c3d Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Sat, 20 Feb 2021 15:32:12 +0800
Subject: [PATCH] fix

---
 src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java |  265 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 164 insertions(+), 101 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..e7ddaae 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
@@ -4,10 +4,14 @@
 import java.util.ArrayList;
 import java.util.List;
 import javax.annotation.Resource;
+import javax.validation.Valid;
 
 import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xcong.excoin.common.LoginUserUtils;
 import com.xcong.excoin.common.enumerates.CoinTypeEnum;
@@ -15,7 +19,12 @@
 import com.xcong.excoin.common.response.Result;
 import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao;
 import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange;
+import com.xcong.excoin.modules.coin.entity.OrderCoinsDealEntity;
+import com.xcong.excoin.modules.coin.mapper.MemberAccountMoneyChangeMapper;
+import com.xcong.excoin.modules.coin.parameter.dto.RecordsPageDto;
+import com.xcong.excoin.modules.coin.parameter.vo.AllWalletCoinVo;
 import com.xcong.excoin.modules.coin.parameter.vo.MemberAccountMoneyChangeInfoVo;
+import com.xcong.excoin.modules.coin.parameter.vo.MemberAgentIntoInfoVo;
 import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletAgentInfoVo;
 import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletCoinInfoVo;
 import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletCoinVo;
@@ -28,7 +37,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 +60,8 @@
     MemberAccountMoneyChangeDao memberAccountMoneyChangeDao;
     @Resource
     MemberWalletAgentDao memberWalletAgentDao;
+    @Resource
+    RedisUtils redisUtils;
 
 
     @Override
@@ -82,15 +96,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));
                     }
                 }
             }
@@ -126,7 +141,6 @@
             memberWalletCoinVo.setTotalUsdt(totalUsdts.setScale(4, BigDecimal.ROUND_DOWN));
             memberWalletCoinVo.setTotalCny(totalUsdts.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
             memberWalletCoinVo.setMemberWalletCoinInfoVo(memberWalletCoinlist);
-            ;
             return Result.ok(memberWalletCoinVo);
         }
     }
@@ -150,7 +164,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));
             }
@@ -172,26 +186,12 @@
         if (ObjectUtil.isEmpty(walletContract)) {
             return Result.fail(MessageSourceUtils.getString("member_service_0001"));
         }
-        /**
-         * todo
-         */
-        //获取当前的合约持仓
-        //获取实时盈亏
-        BigDecimal profitAndLoss = new BigDecimal("50.000");
-        //获取总付款
-        BigDecimal totalPayment = new BigDecimal("50.000");
-        BigDecimal lastTotalBalance = new BigDecimal("0");
-        BigDecimal totalBalance = walletContract.getTotalBalance();
-        lastTotalBalance = totalBalance.add(profitAndLoss);
-        if (lastTotalBalance.compareTo(BigDecimal.ZERO) < 0) {
-            lastTotalBalance = new BigDecimal("0");
-        }
 
         MemberWalletContractInfoVo memberWalletContractInfoVo = new MemberWalletContractInfoVo();
-        memberWalletContractInfoVo.setFrozenBalance(totalPayment.setScale(4, BigDecimal.ROUND_DOWN));
-        memberWalletContractInfoVo.setAvailableBalance(walletContract.getAvailableBalance());
-        memberWalletContractInfoVo.setTotalBalance(lastTotalBalance.setScale(4, BigDecimal.ROUND_DOWN));
-        memberWalletContractInfoVo.setTotalRMBBalance(lastTotalBalance.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
+        memberWalletContractInfoVo.setFrozenBalance(walletContract.getFrozenBalance().setScale(4, BigDecimal.ROUND_DOWN));
+        memberWalletContractInfoVo.setAvailableBalance(walletContract.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN));
+        memberWalletContractInfoVo.setTotalBalance(walletContract.getTotalBalance().setScale(4, BigDecimal.ROUND_DOWN));
+        memberWalletContractInfoVo.setTotalRMBBalance(walletContract.getTotalBalance().multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
 
         return Result.ok(memberWalletContractInfoVo);
     }
@@ -215,11 +215,8 @@
                 return Result.fail(MessageSourceUtils.getString("member_service_0005"));
             }
             BigDecimal subtract = walletCoin.getTotalBalance().subtract(balance);
-            if (subtract.compareTo(BigDecimal.ZERO) < 0) {
-                return Result.fail(MessageSourceUtils.getString("member_service_0005"));
-            }
-            walletCoin.setAvailableBalance(total.setScale(4, BigDecimal.ROUND_DOWN));
-            walletCoin.setTotalBalance(subtract.setScale(4, BigDecimal.ROUND_DOWN));
+            walletCoin.setAvailableBalance(total);
+            walletCoin.setTotalBalance(subtract);
             int updateWalletCoinById = memberWalletCoinDao.updateById(walletCoin);
             if (updateWalletCoinById < 1) {
                 return Result.fail(MessageSourceUtils.getString("member_service_0096"));
@@ -229,10 +226,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 +238,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 +247,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 +274,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 +287,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 +298,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 +308,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"));
     }
@@ -337,72 +334,44 @@
     }
 
     @Override
-    public Result getWalletCoinRecords() {
+    public Result getWalletCoinRecords(RecordsPageDto recordsPageDto) {
         //获取用户ID
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
-        List<MemberAccountMoneyChange> coinRecordList = memberAccountMoneyChangeDao.selectWalletCoinRecordsByMemIdTypeSymbol(memberId);
-        List<MemberAccountMoneyChangeInfoVo> arrayList = new ArrayList<>();
-        if (CollUtil.isNotEmpty(coinRecordList)) {
-            for (MemberAccountMoneyChange memberAccountMoneyChange : coinRecordList) {
-                MemberAccountMoneyChangeInfoVo memberAccountMoneyChangeInfoVo = new MemberAccountMoneyChangeInfoVo();
-                memberAccountMoneyChangeInfoVo.setAmount(memberAccountMoneyChange.getAmount());
-                memberAccountMoneyChangeInfoVo.setContent(memberAccountMoneyChange.getContent());
-                memberAccountMoneyChangeInfoVo.setStatus(memberAccountMoneyChange.getStatus());
-                memberAccountMoneyChangeInfoVo.setSymbol(memberAccountMoneyChange.getSymbol());
-                memberAccountMoneyChangeInfoVo.setType(memberAccountMoneyChange.getType());
-                memberAccountMoneyChangeInfoVo.setUpdateTime(memberAccountMoneyChange.getUpdateTime());
-                arrayList.add(memberAccountMoneyChangeInfoVo);
-            }
-        }
-        return Result.ok(arrayList);
+        
+        Page<OrderCoinsDealEntity> page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize());
+        MemberAccountMoneyChange memberAccountMoneyChange = new MemberAccountMoneyChange();
+        memberAccountMoneyChange.setMemberId(memberId);
+        IPage<MemberAccountMoneyChange> list = memberAccountMoneyChangeDao.selectWalletCoinRecordsInPage(page, memberAccountMoneyChange);
+        Page<MemberAccountMoneyChangeInfoVo> pageEntityToPageVo = MemberAccountMoneyChangeMapper.INSTANCE.pageEntityToPageVo(list);
+        
+        return Result.ok(pageEntityToPageVo);
     }
 
     @Override
-    public Result getWalletContractRecords() {
+    public Result getWalletContractRecords(RecordsPageDto recordsPageDto) {
         //获取用户ID
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
-        String symbol = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
-        List<MemberAccountMoneyChange> contractRecordList = memberAccountMoneyChangeDao.selectWalletContractRecordsByMemIdTypeSymbol(symbol, memberId);
-
-        List<MemberAccountMoneyChangeInfoVo> arrayList = new ArrayList<>();
-        if (ObjectUtil.isNotNull(contractRecordList)) {
-            for (MemberAccountMoneyChange memberAccountMoneyChange : contractRecordList) {
-                MemberAccountMoneyChangeInfoVo memberAccountMoneyChangeInfoVo = new MemberAccountMoneyChangeInfoVo();
-                memberAccountMoneyChangeInfoVo.setAmount(memberAccountMoneyChange.getAmount());
-                memberAccountMoneyChangeInfoVo.setContent(memberAccountMoneyChange.getContent());
-                memberAccountMoneyChangeInfoVo.setStatus(memberAccountMoneyChange.getStatus());
-                memberAccountMoneyChangeInfoVo.setSymbol(memberAccountMoneyChange.getSymbol());
-                memberAccountMoneyChangeInfoVo.setType(memberAccountMoneyChange.getType());
-                memberAccountMoneyChangeInfoVo.setUpdateTime(memberAccountMoneyChange.getUpdateTime());
-                arrayList.add(memberAccountMoneyChangeInfoVo);
-            }
-        }
-
-        return Result.ok(arrayList);
+        
+        Page<OrderCoinsDealEntity> page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize());
+        MemberAccountMoneyChange memberAccountMoneyChange = new MemberAccountMoneyChange();
+        memberAccountMoneyChange.setMemberId(memberId);
+        IPage<MemberAccountMoneyChange> list = memberAccountMoneyChangeDao.selectWalletContractRecordsInPage(page, memberAccountMoneyChange);
+        Page<MemberAccountMoneyChangeInfoVo> pageEntityToPageVo = MemberAccountMoneyChangeMapper.INSTANCE.pageEntityToPageVo(list);
+        return Result.ok(pageEntityToPageVo);
     }
 
     @Override
-    public Result getWalletAgentRecords() {
+    public Result getWalletAgentRecords(RecordsPageDto recordsPageDto) {
         //获取用户ID
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
-
-        List<MemberAccountMoneyChange> contractRecordList =
-                memberAccountMoneyChangeDao.selectWalletAgentRecordByMemIdTypeSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue(), memberId);
-
-        List<MemberAccountMoneyChangeInfoVo> arrayList = new ArrayList<>();
-        if (ObjectUtil.isNotNull(contractRecordList)) {
-            for (MemberAccountMoneyChange memberAccountMoneyChange : contractRecordList) {
-                MemberAccountMoneyChangeInfoVo memberAccountMoneyChangeInfoVo = new MemberAccountMoneyChangeInfoVo();
-                memberAccountMoneyChangeInfoVo.setAmount(memberAccountMoneyChange.getAmount());
-                memberAccountMoneyChangeInfoVo.setContent(memberAccountMoneyChange.getContent());
-                memberAccountMoneyChangeInfoVo.setStatus(memberAccountMoneyChange.getStatus());
-                memberAccountMoneyChangeInfoVo.setSymbol(memberAccountMoneyChange.getSymbol());
-                memberAccountMoneyChangeInfoVo.setType(memberAccountMoneyChange.getType());
-                memberAccountMoneyChangeInfoVo.setUpdateTime(memberAccountMoneyChange.getUpdateTime());
-                arrayList.add(memberAccountMoneyChangeInfoVo);
-            }
-        }
-        return Result.ok(arrayList);
+        
+        Page<OrderCoinsDealEntity> page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize());
+        MemberAccountMoneyChange memberAccountMoneyChange = new MemberAccountMoneyChange();
+        memberAccountMoneyChange.setMemberId(memberId);
+        IPage<MemberAccountMoneyChange> list = memberAccountMoneyChangeDao.selectWalletAgentRecordsInPage(page, memberAccountMoneyChange);
+        Page<MemberAccountMoneyChangeInfoVo> pageEntityToPageVo = MemberAccountMoneyChangeMapper.INSTANCE.pageEntityToPageVo(list);
+        
+        return Result.ok(pageEntityToPageVo);
     }
 
     @Override
@@ -429,8 +398,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 +413,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 +426,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 +436,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 +450,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);
 
@@ -511,4 +480,98 @@
         return Result.ok(memberWalletAgentInfoVo);
     }
 
+	@Override
+	public Result getWalletAgentIntoRecords(RecordsPageDto recordsPageDto) {
+	        //获取用户ID
+	        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+	        
+	        Page<OrderCoinsDealEntity> page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize());
+	        MemberAccountMoneyChange memberAccountMoneyChange = new MemberAccountMoneyChange();
+	        memberAccountMoneyChange.setMemberId(memberId);
+	        IPage<MemberAccountMoneyChange> list = memberAccountMoneyChangeDao.selectWalletAgentIntoRecordsByMemIdTypeSymbol(page, memberAccountMoneyChange);
+	        List<MemberAccountMoneyChange> contractRecordList = list.getRecords();
+	        List<MemberAccountMoneyChangeInfoVo> arrayList = new ArrayList<>();
+	        if(CollUtil.isNotEmpty(contractRecordList)) {
+	        	if (ObjectUtil.isNotNull(contractRecordList)) {
+	        		for (MemberAccountMoneyChange memberAccountMoneyChanges : contractRecordList) {
+	        			MemberAccountMoneyChangeInfoVo memberAccountMoneyChangeInfoVo = new MemberAccountMoneyChangeInfoVo();
+	        			memberAccountMoneyChangeInfoVo.setAmount(memberAccountMoneyChanges.getAmount());
+	        			memberAccountMoneyChangeInfoVo.setContent(memberAccountMoneyChanges.getContent());
+	        			memberAccountMoneyChangeInfoVo.setStatus(memberAccountMoneyChanges.getStatus());
+	        			memberAccountMoneyChangeInfoVo.setSymbol(memberAccountMoneyChanges.getSymbol());
+	        			memberAccountMoneyChangeInfoVo.setType(memberAccountMoneyChanges.getType());
+	        			memberAccountMoneyChangeInfoVo.setUpdateTime(memberAccountMoneyChanges.getUpdateTime());
+	        			arrayList.add(memberAccountMoneyChangeInfoVo);
+	        		}
+	        	}
+	        }
+	        Page<MemberAccountMoneyChangeInfoVo> pageEntityToPageVo = new Page<>();
+	        pageEntityToPageVo.setRecords(arrayList);
+	        
+	        return Result.ok(pageEntityToPageVo);
+	}
+
+	@Override
+	public Result getAllWalletCoin() {
+		//获取【币币】
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+        PlatformCnyUsdtExchangeEntity cnyUsdtExchange = cnyUsdtExchangeDao.getCNYAndUSDTOne();
+        BigDecimal cnyUsdt = cnyUsdtExchange.getValue();
+        AllWalletCoinVo allWalletCoinVo = new AllWalletCoinVo();
+
+        BigDecimal totalUsdts = BigDecimal.ZERO;
+        if (!StrUtil.isEmpty(memberId.toString())) {
+
+            List<MemberWalletCoinEntity> memberWalletCoinlist = memberWalletCoinDao.selectMemberWalletCoinsByMemberId(memberId);
+            List<MemberWalletCoinInfoVo> memberWalletCoinInfoVolist = new ArrayList<MemberWalletCoinInfoVo>();
+
+            if (CollUtil.isNotEmpty(memberWalletCoinlist)) {
+                for (MemberWalletCoinEntity memberWalletCoinEntity : memberWalletCoinlist) {
+                    MemberWalletCoinInfoVo memberWalletCoinInfoVo = new MemberWalletCoinInfoVo();
+                    memberWalletCoinInfoVo.setAvailableBalance(memberWalletCoinEntity.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN));
+                    memberWalletCoinInfoVo.setFrozenBalance(memberWalletCoinEntity.getFrozenBalance().setScale(4, BigDecimal.ROUND_DOWN));
+                    memberWalletCoinInfoVo.setMemberId(memberWalletCoinEntity.getMemberId());
+                    memberWalletCoinInfoVo.setTotalBalance(memberWalletCoinEntity.getTotalBalance().setScale(4, BigDecimal.ROUND_DOWN));
+                    memberWalletCoinInfoVo.setWalletCode(memberWalletCoinEntity.getWalletCode());
+                    memberWalletCoinInfoVolist.add(memberWalletCoinInfoVo);
+                }
+            }
+
+            if (CollUtil.isNotEmpty(memberWalletCoinInfoVolist)) {
+                for (MemberWalletCoinInfoVo walletCoin : memberWalletCoinInfoVolist) {
+                    if (MemberWalletCoinEnum.WALLETCOINCODE.getValue().equals(walletCoin.getWalletCode())) {
+                        BigDecimal totalUsdt = BigDecimal.ZERO;
+                        totalUsdt = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance());
+                        totalUsdts = totalUsdts.add(totalUsdt);
+                    } else {
+                        BigDecimal amount = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance());
+                        // 获取最新价
+                        BigDecimal closePrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(walletCoin.getWalletCode()+"/USDT")));
+                        BigDecimal totalUsdt = BigDecimal.ZERO;
+                        totalUsdt = totalUsdt.add(amount.multiply(closePrice));
+                        totalUsdts = totalUsdts.add(totalUsdt);
+                    }
+                }
+            }
+        } 
+        allWalletCoinVo.setWalletUsdt(totalUsdts.setScale(4, BigDecimal.ROUND_DOWN));
+		//获取【合约】
+        String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
+        MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode);
+        if (ObjectUtil.isEmpty(walletContract)) {
+            return Result.fail(MessageSourceUtils.getString("member_service_0001"));
+        }
+        allWalletCoinVo.setContractUsdt(walletContract.getTotalBalance().setScale(4, BigDecimal.ROUND_DOWN));
+        totalUsdts = totalUsdts.add(walletContract.getTotalBalance());
+		//获取【代理】
+        MemberWalletAgentEntity walletAgent = memberWalletAgentDao.selectWalletAgentBymIdAndCode(memberId, walletCode);
+        BigDecimal availableBalance = walletAgent.getAvailableBalance();
+        allWalletCoinVo.setAgentUsdt(availableBalance.setScale(4, BigDecimal.ROUND_DOWN));
+        totalUsdts = totalUsdts.add(availableBalance);
+        
+        allWalletCoinVo.setTotalUsdt(totalUsdts.setScale(4, BigDecimal.ROUND_DOWN));
+        allWalletCoinVo.setTotalCny(totalUsdts.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
+        return Result.ok(allWalletCoinVo);
+	}
+
 }

--
Gitblit v1.9.1