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