From 22819e7b84e661b65b43b8a3c8467080b1b23fa4 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 05 Dec 2022 15:32:48 +0800
Subject: [PATCH] 20221130
---
src/main/java/cc/mrbird/febs/dapp/chain/EthService.java | 4 +-
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 19 +++++++++
src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java | 9 ++++
src/main/resources/mapper/dapp/DappFundFlowDao.xml | 10 +++++
src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java | 2 +
src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java | 2 +
src/main/java/cc/mrbird/febs/job/BnbTransferJob.java | 32 ++++++++++++++++
src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java | 1
src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java | 2 +
src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java | 9 ++++
src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java | 19 +++++++++
11 files changed, 107 insertions(+), 2 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/chain/EthService.java b/src/main/java/cc/mrbird/febs/dapp/chain/EthService.java
index a2d4041..de08042 100644
--- a/src/main/java/cc/mrbird/febs/dapp/chain/EthService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/chain/EthService.java
@@ -429,8 +429,8 @@
@Override
public String transferBaseToken(String address, BigDecimal amount) {
-// String gas = getGas();
- String gas ="5";
+ String gas = getGas();
+// String gas ="5";
try {
Credentials credentials = Credentials.create(privateKey);
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java b/src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java
index 967af3f..863234f 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java
@@ -32,4 +32,6 @@
DappFundFlowEntity selectInfoById(@Param("id")Long id);
int updateStatusById(@Param("status")int status, @Param("id")Long id);
+
+ DappFundFlowEntity selectByStateAndVersionAndFromHashLimitOne(@Param("status")int withdrawStatusAgree, @Param("version")int withdrawStatusAgree1);
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java b/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
index 5402e6c..f2d5816 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
@@ -32,4 +32,6 @@
void bnbTransfer(Long id);
//代理升级
void agentUp(Long id);
+
+ void bnbTransferTest(Long id);
}
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 8157cba..65ec96e 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
@@ -509,6 +509,25 @@
}
}
+ @Override
+ public void bnbTransferTest(Long id) {
+ DappFundFlowEntity dappFundFlow = dappFundFlowDao.selectById(id);
+ if(ObjectUtil.isEmpty(dappFundFlow)){
+ return;
+ }
+ //金额
+ BigDecimal amount = dappFundFlow.getAmount();
+ //目标地址
+ String address = dappFundFlow.getAddress();
+ String hash = ChainService.getInstance(ChainEnum.BNB.name()).transferBaseToken(address, amount);
+ if(StrUtil.isEmpty(hash)){
+ return;
+ }
+ log.info("{},{}",id,hash);
+ dappFundFlow.setFromHash(hash);
+ dappFundFlowDao.updateById(dappFundFlow);
+ }
+
public static void main(String[] args) {
String refererIds = "1,2,3,4,5," +
"6,7,8,9,10," +
diff --git a/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java b/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
new file mode 100644
index 0000000..1831ccb
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
@@ -0,0 +1,32 @@
+package cc.mrbird.febs.job;
+
+import cc.mrbird.febs.dapp.entity.DappFundFlowEntity;
+import cc.mrbird.febs.dapp.mapper.DappFundFlowDao;
+import cc.mrbird.febs.rabbit.producer.ChainProducer;
+import cn.hutool.core.util.ObjectUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+@Slf4j
+@Component
+@ConditionalOnProperty(prefix = "system", name = "online-transfer", havingValue = "true")
+public class BnbTransferJob{
+ /**
+ * 搜索还未发生转账操作,但是记录已经更新没有产生HASH值的流水记录,并发起转账操作
+ */
+ @Autowired
+ private DappFundFlowDao dappFundFlowDao;
+ @Autowired
+ private ChainProducer chainProducer;
+
+ @Scheduled(cron = "0/3 * * * * ? ")
+ public void BnbTransferAgain() {
+ DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectByStateAndVersionAndFromHashLimitOne(2,2);
+ if(ObjectUtil.isNotEmpty(dappFundFlowEntity)){
+ chainProducer.sendBnbTransferTestMsg(dappFundFlowEntity.getId());
+ }
+ }
+
+}
diff --git a/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java b/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java
index 409db43..ea32db3 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java
@@ -6,6 +6,7 @@
**/
public class QueueConstants {
+ public static final String QUEUE_BNB_TRANSFER_TEST = "queue_bnb_agent_up_test";
public static final String QUEUE_BNB_AGENT_UP = "queue_bnb_agent_up";
public static final String QUEUE_BNB_TRANSFER = "queue_bnb_transfer";
public static final String QUEUE_MEMBER_OUT = "queue_bnb_member_out";
diff --git a/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java b/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java
index ddec68a..03c5704 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java
@@ -6,6 +6,8 @@
@Getter
public enum QueueEnum {
//代理升级
+ BNB_TRANSFER_TEST("exchange_bnb_agent_up_test", "route_key_bnb_agent_up_test", "queue_bnb_agent_up_test"),
+ //代理升级
BNB_AGENT_UP("exchange_bnb_agent_up", "route_key_bnb_agent_up", "queue_bnb_agent_up"),
//转账拨币
BNB_TRANSFER("exchange_bnb_transfer", "route_key_bnb_transfer", "queue_bnb_transfer"),
diff --git a/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java b/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
index 21c1ed8..99c73c0 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
@@ -177,4 +177,23 @@
return BindingBuilder.bind(agentUpQueue()).to(agentUpExchange()).with(QueueEnum.BNB_AGENT_UP.getRoute());
}
// === 代理升级 end ===
+
+
+
+ // === 消息测试 start ===
+ @Bean
+ public DirectExchange bnbTransferTestExchange() {
+ return new DirectExchange(QueueEnum.BNB_TRANSFER_TEST.getExchange());
+ }
+
+ @Bean
+ public Queue bnbTransferTestQueue() {
+ return new Queue(QueueEnum.BNB_TRANSFER_TEST.getQueue());
+ }
+
+ @Bean
+ public Binding bnbTransferTestBind() {
+ return BindingBuilder.bind(bnbTransferTestQueue()).to(bnbTransferTestExchange()).with(QueueEnum.BNB_TRANSFER_TEST.getRoute());
+ }
+ // === 消息测试 end ===
}
diff --git a/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java b/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
index ae91478..18eac11 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
@@ -73,6 +73,15 @@
dappSystemService.bnbTransfer(id);
}
+ /**转账拨币
+ * @param id
+ */
+ @RabbitListener(queues = QueueConstants.QUEUE_BNB_TRANSFER_TEST)
+ public void bnbTransferTest(Long id) {
+ log.info("消费转账拨币:{}", id);
+ dappSystemService.bnbTransferTest(id);
+ }
+
/**代理升级
* @param id
*/
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 f03b2d2..fd92e85 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java
@@ -93,6 +93,15 @@
}
/**
+ * 转账拨币
+ */
+ public void sendBnbTransferTestMsg(Long 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);
+ }
+
+ /**
* 代理升级
*/
public void sendAgentUpMsg(Long id) {
diff --git a/src/main/resources/mapper/dapp/DappFundFlowDao.xml b/src/main/resources/mapper/dapp/DappFundFlowDao.xml
index 00984da..0d65329 100644
--- a/src/main/resources/mapper/dapp/DappFundFlowDao.xml
+++ b/src/main/resources/mapper/dapp/DappFundFlowDao.xml
@@ -103,4 +103,14 @@
and version = 1
and status = 1
</update>
+
+ <select id="selectByStateAndVersionAndFromHashLimitOne" resultType="cc.mrbird.febs.dapp.entity.DappFundFlowEntity">
+ select * from dapp_fund_flow
+ where status = #{status}
+ and version = #{version}
+ and from_hash is null
+ ORDER BY
+ id ASC
+ LIMIT 1
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1