From ad959c3690aea52a0e54e92b001d1959c26c4cc4 Mon Sep 17 00:00:00 2001
From: 2019232 <zh123456>
Date: Wed, 14 Dec 2022 15:40:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/BNBWEB' into BNBWEB
---
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 14 ++++--
src/main/resources/mapper/dapp/DappFundFlowDao.xml | 1
src/main/java/cc/mrbird/febs/dapp/contract/ContractMain.java | 43 ++++++++++++---------
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java | 8 ++--
src/main/java/cc/mrbird/febs/job/BnbTransferJob.java | 9 +++-
src/main/resources/application-prod.yml | 2
src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java | 5 ++
src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java | 4 +-
8 files changed, 54 insertions(+), 32 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/contract/ContractMain.java b/src/main/java/cc/mrbird/febs/dapp/contract/ContractMain.java
index cd25d46..41450fb 100644
--- a/src/main/java/cc/mrbird/febs/dapp/contract/ContractMain.java
+++ b/src/main/java/cc/mrbird/febs/dapp/contract/ContractMain.java
@@ -88,7 +88,8 @@
}
// 区块链节点地址 TODO
- private static String blockchainNode = "https://bsc-dataseed.binance.org";
+// private static String blockchainNode = "https://bsc-dataseed.binance.org";
+ private static String blockchainNode = "https://bsc-dataseed1.ninicoin.io";
// 合约地址 TODO
private static String contractAddr = "0x7FDD62bA4451ABB40d72C6690088755115bFf9d7";
@@ -136,23 +137,20 @@
// 更新区块编号 TODO
redisService.set("BNB_BLOCK_NUMBER",e.log.getBlockNumber().intValue());
//投注人
- DappMemberEntity dappMemberEntity = dappMemberDao.selectByAddress(from, "BSC");
- if(ObjectUtil.isNotEmpty(dappMemberEntity)){
- //投注人是否加入
- DappSystemProfit dappSystemProfit = dappSystemProfitDao.selectByMemberIdAndState(dappMemberEntity.getId(), DappSystemProfit.STATE_IN);
- if(ObjectUtil.isNotEmpty(dappSystemProfit)){
- List<DappFundFlowEntity> dappFundFlowEntities = dappFundFlowDao.selectListByState(DappFundFlowEntity.WITHDRAW_STATUS_ING);
- if(CollUtil.isNotEmpty(dappFundFlowEntities)){
- for(DappFundFlowEntity dappFundFlowEntity : dappFundFlowEntities){
-
- //发送转币消息
- chainProducer.sendBnbTransferMsg(dappFundFlowEntity.getId());
-// DappMemberEntity dappMember = dappMemberDao.selectById(dappFundFlowEntity.getMemberId());
-// trans(new BigInteger(dappFundFlowEntity.getAmount().toString()),dappMember.getAddress());
- }
- }
- }
- }
+// DappMemberEntity dappMemberEntity = dappMemberDao.selectByAddress(from, "BSC");
+// if(ObjectUtil.isNotEmpty(dappMemberEntity)){
+// //投注人是否加入
+// DappSystemProfit dappSystemProfit = dappSystemProfitDao.selectByMemberIdAndState(dappMemberEntity.getId(), DappSystemProfit.STATE_IN);
+// if(ObjectUtil.isNotEmpty(dappSystemProfit)){
+// List<DappFundFlowEntity> dappFundFlowEntities = dappFundFlowDao.selectListByState(DappFundFlowEntity.WITHDRAW_STATUS_ING);
+// if(CollUtil.isNotEmpty(dappFundFlowEntities)){
+// for(DappFundFlowEntity dappFundFlowEntity : dappFundFlowEntities){
+// //发送转币消息
+// chainProducer.sendBnbTransferMsg(dappFundFlowEntity.getId());
+// }
+// }
+// }
+// }
}catch (Exception exception) {
exception.printStackTrace();
}
@@ -177,4 +175,13 @@
}
return transactionHash;
}
+
+ public static void main(String[] args) {
+ ContractMain contractMain = new ContractMain();
+
+ String address = "0xd9076245473060dda1a65f5f3d89a4d0598995e6";
+ BigInteger bigInteger = new BigInteger(Convert.toWei("0.00105", Convert.Unit.ETHER).setScale(0).toString());
+ String hash = contractMain.trans(bigInteger,address);
+ System.out.println(hash);
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java b/src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java
index 2d3288f..65a298d 100644
--- a/src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java
+++ b/src/main/java/cc/mrbird/febs/dapp/entity/DappFundFlowEntity.java
@@ -76,6 +76,11 @@
*/
private Integer status;
+ /**
+ * 状态 1-已发送 2-未发送消息
+ */
+ private Integer isReturn;
+
@TableField(exist = false)
private String address;
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
index 7112a39..62cc0f6 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -359,17 +359,17 @@
DappFundFlowEntity fundFlow = new DappFundFlowEntity(refererMember.getId(), memberLevelProfit, 4, 1, BigDecimal.ZERO,null,dappSystemProfit.getId());
dappFundFlowDao.insert(fundFlow);
//发送转币消息
-// chainProducer.sendBnbTransferMsg(fundFlow.getId());
+ chainProducer.sendBnbTransferMsg(fundFlow.getId());
systemProfitTotal = systemProfitTotal.add(memberLevelProfit);
}
}
//如果还有剩余给技术方
if(levelProfitTotal.compareTo(systemProfitTotal) > 0){
BigDecimal avaProfit = levelProfitTotal.subtract(systemProfitTotal);
- DappFundFlowEntity fundFlow = new DappFundFlowEntity(1L, avaProfit, 5, 1, BigDecimal.ZERO,null,dappSystemProfit.getId());
+ DappFundFlowEntity fundFlow = new DappFundFlowEntity(2L, avaProfit, 5, 1, BigDecimal.ZERO,null,dappSystemProfit.getId());
dappFundFlowDao.insert(fundFlow);
//发送转币消息
-// chainProducer.sendBnbTransferMsg(fundFlow.getId());
+ chainProducer.sendBnbTransferMsg(fundFlow.getId());
}
dappSystemProfitDao.updateLevelProfitById(DappSystemProfit.ENUM_YES,dappSystemProfit.getId());
@@ -423,7 +423,7 @@
DappSystemProfit dappSystemProfitNow = dappSystemProfitDao.selectByIdForUpdate(dappSystemProfit.getId(),DappSystemProfit.STATE_IN);
dappSystemProfitDao.updateStateById(DappSystemProfit.STATE_OUT,dappSystemProfitNow.getId());
- //todo 直接拿走0.95ge
+ // 直接拿走0.95ge
DataDictionaryCustom investAmountProfitSet = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.INVEST_AMOUNT_PROFIT.getType(), DataDictionaryEnum.INVEST_AMOUNT_PROFIT.getCode());
BigDecimal investAmountProfit = new BigDecimal(investAmountProfitSet.getValue());
@@ -551,13 +551,16 @@
if(ObjectUtil.isEmpty(dappFundFlow)){
return;
}
+ if(DappFundFlowEntity.WITHDRAW_STATUS_ING != dappFundFlow.getIsReturn()){
+ return;
+ }
//用户已经加入动能队列
DappSystemProfit dappSystemProfit = dappSystemProfitDao.selectById(dappFundFlow.getSystemProfitId()==null ? 0L : dappFundFlow.getSystemProfitId());
if(ObjectUtil.isEmpty(dappSystemProfit)){
return;
}
//金额
- BigDecimal amount = dappFundFlow.getAmount().setScale(BigDecimal.ROUND_DOWN,4);
+ BigDecimal amount = dappFundFlow.getAmount();
//目标地址
Long memberId = dappFundFlow.getMemberId();
DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
@@ -566,6 +569,7 @@
}
String address = dappMemberEntity.getAddress();
log.info("{}",address);
+// BigInteger bigInteger = new BigInteger(Convert.toWei("0.000001", Convert.Unit.ETHER).setScale(0).toString());
BigInteger bigInteger = new BigInteger(Convert.toWei(amount.toString(), Convert.Unit.ETHER).setScale(0).toString());
log.info("{}",bigInteger);
String hash = contractMain.trans(bigInteger,address);
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
index 672f6f7..ae6f35b 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -257,7 +257,7 @@
DappFundFlowEntity systemProfitFlow = new DappFundFlowEntity(1L, new BigDecimal(systemProfitStr), 2, 1, BigDecimal.ZERO, null,dappSystemProfit.getId());
dappFundFlowDao.insert(systemProfitFlow);
//发送转币消息
-// chainProducer.sendBnbTransferMsg(systemProfitFlow.getId());
+ chainProducer.sendBnbTransferMsg(systemProfitFlow.getId());
//直接返利30%给直接上级
DappMemberEntity dappMemberEntity = dappMemberDao.selectById(member.getId());
String refererId = dappMemberEntity.getRefererId();
@@ -271,7 +271,7 @@
DappFundFlowEntity fundFlow = new DappFundFlowEntity(refererMember.getId(), directProfit, 3, 1, BigDecimal.ZERO, null,dappSystemProfit.getId());
dappFundFlowDao.insert(fundFlow);
//发送转币消息
-// chainProducer.sendBnbTransferMsg(fundFlow.getId());
+ chainProducer.sendBnbTransferMsg(fundFlow.getId());
//层级奖励30%
chainProducer.sendLevelProfitMsg(dappSystemProfit.getId());
//发送一个消息,计算当前是否有人可以出局
@@ -476,7 +476,7 @@
DappFundFlowEntity systemProfitFlow = new DappFundFlowEntity(1L, new BigDecimal(systemProfitStr), 2, 1, BigDecimal.ZERO, null,dappSystemProfit.getId());
dappFundFlowDao.insert(systemProfitFlow);
//发送转币消息
-// chainProducer.sendBnbTransferMsg(systemProfitFlow.getId());
+ chainProducer.sendBnbTransferMsg(systemProfitFlow.getId());
//直接返利30%给直接上级
DappMemberEntity dappMemberEntity = dappMemberDao.selectById(member.getId());
String refererId = dappMemberEntity.getRefererId();
@@ -489,7 +489,7 @@
DappFundFlowEntity fundFlow = new DappFundFlowEntity(refererMember.getId(), directProfit, 3, 1, BigDecimal.ZERO, null,dappSystemProfit.getId());
dappFundFlowDao.insert(fundFlow);
//发送转币消息
-// chainProducer.sendBnbTransferMsg(fundFlow.getId());
+ chainProducer.sendBnbTransferMsg(fundFlow.getId());
//层级奖励30%
chainProducer.sendLevelProfitMsg(dappSystemProfit.getId());
//发送一个消息,计算当前是否有人可以出局
diff --git a/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java b/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
index 5c75555..018a747 100644
--- a/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
+++ b/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
@@ -21,11 +21,16 @@
@Autowired
private ChainProducer chainProducer;
- @Scheduled(cron = "0/5 * * * * ? ")
+ @Scheduled(cron = "0/10 * * * * ? ")
public void BnbTransferAgain() {
DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectByStateAndVersionAndFromHashLimitOne(2,2);
if(ObjectUtil.isNotEmpty(dappFundFlowEntity)){
- chainProducer.sendBnbTransferTestMsg(dappFundFlowEntity.getId());
+ Integer isReturn = dappFundFlowEntity.getIsReturn();
+ if(DappFundFlowEntity.WITHDRAW_STATUS_AGREE == isReturn){
+ dappFundFlowEntity.setIsReturn(1);
+ dappFundFlowDao.updateById(dappFundFlowEntity);
+ chainProducer.sendBnbTransferTestMsg(dappFundFlowEntity.getId());
+ }
}
}
diff --git a/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java b/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java
index fd92e85..1b37a63 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java
@@ -87,7 +87,7 @@
* 转账拨币
*/
public void sendBnbTransferMsg(Long id) {
- log.info("转账拨币:{}", id);
+ log.info("开始转账拨币第一步:{}", id);
CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
rabbitTemplate.convertAndSend(QueueEnum.BNB_TRANSFER.getExchange(), QueueEnum.BNB_TRANSFER.getRoute(), id, correlationData);
}
@@ -96,7 +96,7 @@
* 转账拨币
*/
public void sendBnbTransferTestMsg(Long id) {
- log.info("转账拨币:{}", id);
+ log.info("开始转账拨币第二步:{}", id);
CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
rabbitTemplate.convertAndSend(QueueEnum.BNB_TRANSFER_TEST.getExchange(), QueueEnum.BNB_TRANSFER_TEST.getRoute(), id, correlationData);
}
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index c33a05f..adc517a 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -2,7 +2,7 @@
datasource:
dynamic:
# 是否开启 SQL日志输出,生产环境建议关闭,有性能损耗
- p6spy: false
+ p6spy: true
hikari:
connection-timeout: 30000
max-lifetime: 1800000
diff --git a/src/main/resources/mapper/dapp/DappFundFlowDao.xml b/src/main/resources/mapper/dapp/DappFundFlowDao.xml
index 17b12ed..a44ab9c 100644
--- a/src/main/resources/mapper/dapp/DappFundFlowDao.xml
+++ b/src/main/resources/mapper/dapp/DappFundFlowDao.xml
@@ -109,6 +109,7 @@
where status = #{status}
and version = #{version}
and from_hash is null
+ and is_return = 2
ORDER BY
id ASC
LIMIT 1
--
Gitblit v1.9.1