From 53bc6ea0abbeb39146502a40292e6562c5a736d7 Mon Sep 17 00:00:00 2001 From: zainali5120 <512061637@qq.com> Date: Sat, 17 Oct 2020 16:27:32 +0800 Subject: [PATCH] 修复交易问题 --- src/main/java/com/xcong/excoin/modules/blackchain/service/UsdtEthService.java | 61 ++++++++++++++++++++++++------ 1 files changed, 49 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/blackchain/service/UsdtEthService.java b/src/main/java/com/xcong/excoin/modules/blackchain/service/UsdtEthService.java index b3aea54..da41a32 100644 --- a/src/main/java/com/xcong/excoin/modules/blackchain/service/UsdtEthService.java +++ b/src/main/java/com/xcong/excoin/modules/blackchain/service/UsdtEthService.java @@ -29,13 +29,13 @@ private static final BigDecimal LIMIT = new BigDecimal("50"); private static final BigDecimal LIMIT_ETH = new BigDecimal("0.2"); - private static final BigDecimal FEE = new BigDecimal("0.005"); + private static final BigDecimal FEE = new BigDecimal("0.0042"); private static final BigDecimal ETH_TR_FEE = new BigDecimal("0.0032"); - public static String ETH_FEE = "0.005"; + public static String ETH_FEE = "0.0042"; - public static final String TOTAL_ADDRESS = "0x067b4bE5d7B05560AE539Fc8f10597D854ae056D"; - public static final String TOTAL_PRIVATE = "1fb7288c8c88c37d6f79e9617822bffc8d3635bf2d808c5f6afdee9bb326e49c"; + public static final String TOTAL_ADDRESS = "0x3d83A28B6C2d599d2B6D272c5DBcDC9c976d344F"; + public static final String TOTAL_PRIVATE = "4a1ce332133d8917360c5f3b194f703a0cf5b86c4eea319b1cd01197e68dad27"; @Resource private MemberCoinChargeDao memberCoinChargeDao; @@ -59,13 +59,13 @@ } BigDecimal usdt = ethService.tokenGetBalance(address); - log.info("地址:{}, 金额:{}", address, usdt); + //log.info("地址:{}, 金额:{}", address, usdt); if (usdt != null && usdt.compareTo(LIMIT) > 0) { usdt = usdt.subtract(new BigDecimal("0.01")); // 查询eth是否足够 BigDecimal eth = EthService.getEthBlance(address); - log.info("地址:{}, ETH:{}", address, eth); + //log.info("地址:{}, ETH:{}", address, eth); if (eth != null && eth.compareTo(FEE) >= 0) { MemberCoinAddressEntity memberCoinAddressEntity = memberCoinAddressDao.selectBlockAddressWithTag(memberId, CoinTypeEnum.USDT.name(), "ERC20"); if (memberCoinAddressEntity == null) { @@ -82,14 +82,14 @@ String hash = ethService.tokenSend(privateKey, address, TOTAL_ADDRESS, usdtStr); log.info("归集:{}", hash); - if (StrUtil.isNotBlank(hash)) { - // 归集成功更新状态 先保存本次的hash值,待交易成功后再更新 - coinCharge.setHash(hash); - memberCoinChargeDao.updateById(coinCharge); - } +// if (StrUtil.isNotBlank(hash)) { +// // 归集成功更新状态 先保存本次的hash值,待交易成功后再更新 +// coinCharge.setHash(hash); +// memberCoinChargeDao.updateById(coinCharge); +// } } else { String hash = ethService.ethSend(TOTAL_PRIVATE, TOTAL_ADDRESS, address, ETH_FEE); - log.info("转手续费:{}", hash); + //log.info("转手续费:{}", hash); } } } @@ -157,4 +157,41 @@ } } + public void pollByAddress(String address) throws ExecutionException, InterruptedException { + EthService ethService = new EthService(); + BigDecimal usdt = ethService.tokenGetBalance(address); + if(usdt==null || usdt.compareTo(LIMIT)<0){ + return; + } + // 查询eth是否足够 + BigDecimal eth = EthService.getEthBlance(address); + //log.info("地址:{}, ETH:{}", address, eth); + if (eth != null && eth.compareTo(FEE) >= 0) { + MemberCoinAddressEntity memberCoinAddressEntity = memberCoinAddressDao.selectCoinAddressByAddressAndSymbol(address, CoinTypeEnum.ETH.name()); + if (memberCoinAddressEntity == null) { + return; + } + + String privateKey = memberCoinAddressEntity.getPrivateKey(); + + usdt = usdt.multiply(new BigDecimal("1000000")); + String usdtStr = usdt.toPlainString(); + if (usdtStr.contains(".")) { + usdtStr = usdtStr.substring(0, usdtStr.lastIndexOf(".")); + } + + String hash = ethService.tokenSend(privateKey, address, TOTAL_ADDRESS, usdtStr); + log.info("冲币归集:{}", hash); +// if (StrUtil.isNotBlank(hash)) { +// // 归集成功更新状态 先保存本次的hash值,待交易成功后再更新 +// coinCharge.setHash(hash); +// memberCoinChargeDao.updateById(coinCharge); +// } + } else { + + String hash = ethService.ethSend(TOTAL_PRIVATE, TOTAL_ADDRESS, address, ETH_FEE); + log.info("冲币归集转手续费:{}", hash); + //log.info("转手续费:{}", hash); + } + } } -- Gitblit v1.9.1