From b50ce4f17ad242f8e27d9fae71ee4c01623a5983 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 29 Mar 2023 10:45:50 +0800
Subject: [PATCH] 后台修改
---
src/main/java/cc/mrbird/febs/mall/chain/job/NotionalPoolingJob.java | 82 +++++++++++++++++++++++++++++++++++-----
1 files changed, 71 insertions(+), 11 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/chain/job/NotionalPoolingJob.java b/src/main/java/cc/mrbird/febs/mall/chain/job/NotionalPoolingJob.java
index d63364d..8e827a2 100644
--- a/src/main/java/cc/mrbird/febs/mall/chain/job/NotionalPoolingJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/chain/job/NotionalPoolingJob.java
@@ -1,15 +1,24 @@
package cc.mrbird.febs.mall.chain.job;
+import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
+import cc.mrbird.febs.common.enumerates.MallMoneyFlowTypeEnum;
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.mall.chain.constants.ChainConstants;
import cc.mrbird.febs.mall.chain.enums.ChainEnum;
+import cc.mrbird.febs.mall.chain.enums.CoinTypeEnum;
import cc.mrbird.febs.mall.chain.enums.EthService;
import cc.mrbird.febs.mall.chain.service.ChainService;
import cc.mrbird.febs.mall.chain.service.ContractChainService;
import cc.mrbird.febs.mall.chain.service.TrxUsdtUpdateService;
+import cc.mrbird.febs.mall.entity.MallMemberWallet;
+import cc.mrbird.febs.mall.entity.MallMoneyFlow;
import cc.mrbird.febs.mall.entity.MemberCoinAddressEntity;
+import cc.mrbird.febs.mall.entity.MemberCoinChargeEntity;
+import cc.mrbird.febs.mall.mapper.MallMemberWalletMapper;
import cc.mrbird.febs.mall.mapper.MemberCoinAddressDao;
+import cc.mrbird.febs.mall.mapper.MemberCoinChargeDao;
+import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
@@ -42,6 +51,12 @@
private RedisUtils redisUtils;
@Resource
private MemberCoinAddressDao memberCoinAddressDao;
+ @Resource
+ private MallMemberWalletMapper mallMemberWalletMapper;
+ @Resource
+ private IMallMoneyFlowService mallMoneyFlowService;
+ @Resource
+ private MemberCoinChargeDao memberCoinChargeDao;
/**
* 归集ERC20
@@ -57,7 +72,7 @@
for (Object address : poolAddress) {
String next = (String) address;
- log.info("归集地址:{}", next);
+// log.info("归集地址:{}", next);
//查询USDT余额
MemberCoinAddressEntity memberCoinAddressEntity = memberCoinAddressDao.selectCoinAddressByAddressAndSymbolTag(next, "USDT", "ERC20");
if(ObjectUtil.isEmpty(memberCoinAddressEntity)){
@@ -67,20 +82,65 @@
if (balanceOf == null || balanceOf.compareTo(new BigDecimal("0.05")) < 1) {
continue;
}
- //查询手续费
- BigDecimal balanceOfBaseToken = ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOfBaseToken(next);
+// //查询手续费
+// BigDecimal balanceOfBaseToken = ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOfBaseToken(next);
+//
+// BigDecimal gas = new BigDecimal(ChainService.getInstance(ChainEnum.BSC_USDT.name()).getGas()).multiply(new BigDecimal(0.0001));
+// if(balanceOfBaseToken.compareTo(gas) < 0){
+// //转手续费
+// ChainService.getInstance(ChainEnum.BSC_USDT.name()).transferBaseToken(next, gas);
+// }
- BigDecimal gas = new BigDecimal(ChainService.getInstance(ChainEnum.BSC_USDT.name()).getGas()).multiply(new BigDecimal(0.0001));
- if(balanceOfBaseToken.compareTo(gas) < 0){
- //转手续费
- ChainService.getInstance(ChainEnum.BSC_USDT.name()).transferBaseToken(next, gas);
- }
-
- ChainService.getInstance(ChainEnum.BSC_USDT.name()).transfer(memberCoinAddressEntity.getPrivateKey(),
+ String transfer = ChainService.getInstance(ChainEnum.BSC_USDT.name()).transfer(memberCoinAddressEntity.getPrivateKey(),
memberCoinAddressEntity.getAddress(),
AppContants.ERC20_POOL_ADDRESS,
balanceOf.toString());
+// if(StrUtil.isNotEmpty(transfer)){
+// Long memberId = memberCoinAddressEntity.getMemberId();
+// // 查询钱包 并更新
+// MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId);
+// if (mallMemberWallet == null) {
+// return;
+// }
+// mallMemberWalletMapper.updateBlockBalanceById(mallMemberWallet.getId(), balanceOf.setScale(4, BigDecimal.ROUND_DOWN));
+//
+// String orderNo = insertCoinCharge(next, memberId, balanceOf.setScale(4, BigDecimal.ROUND_DOWN), CoinTypeEnum.USDT.name(), "ERC20", BigDecimal.ZERO);
+// Long chargeFlowId = mallMoneyFlowService.addMoneyFlow(
+// memberId,
+// orderNo,
+// balanceOf.setScale(4, BigDecimal.ROUND_DOWN),
+// MallMoneyFlowTypeEnum.CHARGE.getCode(),
+// MallMoneyFlow.STATUS_SUCCESS,
+// MallMoneyFlow.IS_RETURN_Y,
+// memberId,
+// FlowTypeEnum.BALANCE.getValue(),
+// MallMoneyFlowTypeEnum.CHARGE.getName()
+// );
+// }
}
+ }
+
+
+ public String insertCoinCharge(String address, Long memberId, BigDecimal newBalance, String symbol, String tag, BigDecimal lastAmount) {
+ MemberCoinChargeEntity memberCoinChargeEntity = new MemberCoinChargeEntity();
+ memberCoinChargeEntity.setAddress(address);
+ memberCoinChargeEntity.setMemberId(memberId);
+ memberCoinChargeEntity.setAmount(newBalance);
+ memberCoinChargeEntity.setSymbol(symbol);
+ memberCoinChargeEntity.setTag(tag);
+ memberCoinChargeEntity.setStatus(1);
+ memberCoinChargeEntity.setLastAmount(lastAmount);
+ String orderNo = generateNo();
+ memberCoinChargeEntity.setOrderCode(orderNo);
+ memberCoinChargeDao.insert(memberCoinChargeEntity);
+ return orderNo;
+ }
+ private String generateNo() {
+ // 生成订单号
+ Long timestamp = System.currentTimeMillis();
+ // 随机数
+ int random = (int) (Math.random() * 10);
+ return String.valueOf(timestamp).substring(2) + random;
}
/**
@@ -97,7 +157,7 @@
for (Object address : poolAddress) {
String next = (String) address;
- log.info("归集地址:{}", next);
+// log.info("归集地址:{}", next);
//查询USDT余额
MemberCoinAddressEntity memberCoinAddressEntity = memberCoinAddressDao.selectCoinAddressByAddressAndSymbolTag(next, "USDT", "ERC20");
if(ObjectUtil.isEmpty(memberCoinAddressEntity)){
--
Gitblit v1.9.1