From c923589da6a3b090efb9896e0568e8b40e260e50 Mon Sep 17 00:00:00 2001
From: zainali5120 <512061637@qq.com>
Date: Thu, 15 Oct 2020 16:20:38 +0800
Subject: [PATCH] roc内部互转修复

---
 src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java |   29 ++++++++++++++++++++++++-----
 1 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
index 940b8ca..a690a26 100644
--- a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -29,6 +29,7 @@
 import com.xcong.excoin.modules.member.mapper.MemberMapper;
 import com.xcong.excoin.modules.member.mapper.MemberQuickBuySaleMapper;
 import com.xcong.excoin.modules.member.mapper.MemberWalletCoinMapper;
+import com.xcong.excoin.modules.member.service.EthService;
 import com.xcong.excoin.modules.member.service.IMemberService;
 import com.xcong.excoin.modules.member.service.RocService;
 import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo;
@@ -49,6 +50,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ExecutionException;
 
 import javax.validation.Valid;
 import javax.validation.constraints.NotNull;
@@ -452,7 +454,7 @@
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public FebsResponse memberWithdrawCoinConfirm(@NotNull(message = "{required}") Long id) {
+	public FebsResponse memberWithdrawCoinConfirm(@NotNull(message = "{required}") Long id) throws ExecutionException, InterruptedException {
 		
 		MemberCoinWithdrawEntity selectById = memberCoinWithdrawMapper.selectById(id);
 		Long memberId = selectById.getMemberId();
@@ -486,8 +488,8 @@
 			Long aimMemberId = selectByMap.get(0).getMemberId();
 			MemberWalletCoinEntity aimWalletCoin = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(aimMemberId, symbol);
 			
-			BigDecimal addTotal = aimWalletCoin.getTotalBalance().add(selectById.getAmount());
-			BigDecimal addAvailable = aimWalletCoin.getAvailableBalance().add(selectById.getAmount());
+			BigDecimal addTotal = aimWalletCoin.getTotalBalance().add(amount.subtract(selectById.getFeeAmount()));
+			BigDecimal addAvailable = aimWalletCoin.getAvailableBalance().add(amount.subtract(selectById.getFeeAmount()));
 			aimWalletCoin.setTotalBalance(addTotal);
 			aimWalletCoin.setAvailableBalance(addAvailable);
 			
@@ -496,7 +498,7 @@
 			MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity = new MemberAccountMoneyChangeEntity();
 			memberAccountMoneyChangeEntity.setContent("收款");
 			memberAccountMoneyChangeEntity.setMemberId(aimMemberId);
-			memberAccountMoneyChangeEntity.setAmount(selectById.getAmount());
+			memberAccountMoneyChangeEntity.setAmount(amount.subtract(selectById.getFeeAmount()));
 			memberAccountMoneyChangeEntity.setStatus(MemberAccountMoneyChangeEntity.STATUS_SUCCESS_INTEGER);
 			memberAccountMoneyChangeEntity.setSymbol(selectById.getSymbol());
 			memberAccountMoneyChangeEntity.setType(MemberAccountMoneyChangeEntity.TYPE_WALLET_COIN);
@@ -528,9 +530,26 @@
 		if(StrUtil.isNotBlank(phone)) {
 			Sms106Send.sendWithdrawalCoinMsg(phone, time);
 		}
-		if("ROC".equals(symbol)){
+		// 转币 需要扣除手续费
+		amount = amount.subtract(selectById.getFeeAmount());
+		if("ROC".equals(symbol) && !"Y".equals(selectById.getIsInside())){
 			// 如果是ROC  则自动转
 			String transfer = RocService.transfer(amount, address, "ROC");
+		}else if("USDT".equals(symbol) && !"Y".equals(selectById.getIsInside())){
+//			EthService ethService = new EthService();
+//			// 查询余额是否足够
+//			BigDecimal bigDecimal = ethService.tokenGetBalance(EthService.TOTAL_ADDRESS);
+//			if(bigDecimal==null ||bigDecimal.compareTo(amount)<0 ){
+//				FebsResponse fail = new FebsResponse().fail();
+//				fail.message("总钱包余额不足");
+//				return fail;
+//			}
+//			amount = amount.multiply(new BigDecimal("1000000"));
+//			String usdtStr = amount.toPlainString();
+//			if (usdtStr.contains(".")) {
+//				usdtStr = usdtStr.substring(0, usdtStr.lastIndexOf("."));
+//			}
+//			String s = ethService.tokenSend(address, usdtStr, null);
 		}
 
 		/**

--
Gitblit v1.9.1