From 498674e022e83c3c6aafec3ddc8691ad6a2bc309 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 26 May 2023 18:00:15 +0800
Subject: [PATCH] twoCoin项目修改

---
 src/main/java/cc/mrbird/febs/dapp/chain/EthService.java                   |    4 +-
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java |   38 +++++++++++++++++++
 src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java           |    9 ++++
 src/main/resources/mapper/dapp/DappFundFlowDao.xml                        |   11 +++++
 src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java          |    1 
 src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java             |    1 
 src/main/java/cc/mrbird/febs/job/BnbTransferJob.java                      |   11 +++++
 src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java                   |    4 ++
 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              |   18 +++++++++
 11 files changed, 106 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 16cf5f0..507a0a9 100644
--- a/src/main/java/cc/mrbird/febs/dapp/chain/EthService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/chain/EthService.java
@@ -257,8 +257,8 @@
     }
 
     public String tokenTransfer(String privateKey, String fromAddress, String toAddress, String amount) throws ExecutionException, InterruptedException {
-//        String gas = getGas();
-        String gas = "5";
+        String gas = getGas();
+//        String gas = "5";
 
         BigDecimal amountPow = new BigDecimal(amount).multiply(BigDecimal.TEN.pow(decimals()));
         amount = amountPow.toPlainString();
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 6f8e681..5d9b88f 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java
@@ -37,6 +37,7 @@
     int updateStatusById(@Param("status")int status, @Param("id")Long id);
 
     DappFundFlowEntity selectByStateAndVersionAndFromHashLimitOne(@Param("status")int withdrawStatusAgree, @Param("version")int withdrawStatusAgree1);
+    DappFundFlowEntity selectByStateAndVersionAndFromHashTwoLimitOne(@Param("status")int withdrawStatusAgree, @Param("version")int withdrawStatusAgree1);
 
     /**
      * 根据会员ID、类型、状态去查询资金流水记录
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 b894401..1c570cf 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
@@ -95,4 +95,5 @@
 
     void antKLineMsg(int type);
 
+    void antKLineABMsg(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 e8dc560..a904f0f 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
@@ -1896,6 +1896,44 @@
 
     }
 
+    @Override
+    public void antKLineABMsg(Long id) {
+        log.info("{}",id);
+        //获取对应的流水记录
+        DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectInfoById(id);
+        if(ObjectUtil.isEmpty(dappFundFlowEntity)){
+            return;
+        }
+        Long memberId = dappFundFlowEntity.getMemberId();
+        DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberId);
+        if(ObjectUtil.isEmpty(dappMemberEntity)){
+            return;
+        }
+        DappFundFlowEntity dappFundFlow = dappFundFlowDao.selectById(id);
+        //金额
+        BigDecimal amount = dappFundFlow.getAmount();
+        //目标地址
+        String address = null;
+        if(5 == dappFundFlowEntity.getType()){
+            address = AppContants.ADDRESS_A_POOL_PEOJECT;
+        }else if(6 == dappFundFlowEntity.getType()){
+            address = AppContants.ADDRESS_B_POOL_PEOJECT;
+        }else{
+            return;
+        }
+        /**
+         * 发起USDT转账
+         */
+        String hash = ChainService.getInstance(ChainEnum.BSC_USDT_A_POOL.name()).transfer(address, amount);
+        if(StrUtil.isEmpty(hash)){
+            return;
+        }
+        log.info("{},{}",id,hash);
+        dappFundFlow.setFromHash(hash);
+        dappFundFlowDao.updateById(dappFundFlow);
+
+    }
+
     /**
      * 生成当前分钟的k线数据,type为0
      */
diff --git a/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java b/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
index da0db31..79bd5da 100644
--- a/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
+++ b/src/main/java/cc/mrbird/febs/job/BnbTransferJob.java
@@ -46,6 +46,17 @@
         }
     }
 
+    @Scheduled(cron = "0/30 * * * * ? ")
+    public void ABTransferAgain() {
+        DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectByStateAndVersionAndFromHashTwoLimitOne(2,2);
+        if(ObjectUtil.isNotEmpty(dappFundFlowEntity)){
+            Integer isReturn = dappFundFlowEntity.getIsReturn();
+            if(DappFundFlowEntity.WITHDRAW_STATUS_AGREE == isReturn){
+                chainProducer.sendAntKLineABMsg(dappFundFlowEntity.getId());
+            }
+        }
+    }
+
     /**
      * 20%所有人平分的底池
      */
diff --git a/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java b/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java
index 8fbc5a8..7ac6df6 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java
@@ -50,4 +50,8 @@
      * A k线数据
      */
     public static final String QUEUE_ANT_K_LINE = "queue_ant_k_line_test";
+    /**
+     * A k线数据
+     */
+    public static final String QUEUE_ANT_K_LINE_AB = "queue_ant_k_line_test_ab";
 }
diff --git a/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java b/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java
index c6b4c31..f504fa7 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 {
     //A k线数据
+    ANT_K_LINE_AB("exchange_ant_k_line_test_ab", "route_key_ant_k_line_test_ab", QueueConstants.QUEUE_ANT_K_LINE_AB),
+    //A k线数据
     ANT_K_LINE("exchange_ant_k_line_test", "route_key_ant_k_line_test", QueueConstants.QUEUE_ANT_K_LINE),
     //A 会员升级
     ANT_MEMBER_LEVEL("exchange_ant_member_level_test", "route_key_ant_member_level_test", QueueConstants.QUEUE_ANT_MEMBER_LEVEL),
diff --git a/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java b/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
index 3781345..b5126f1 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
@@ -340,4 +340,22 @@
         return BindingBuilder.bind(antKLineQueue()).to(antKLineExchange()).with(QueueEnum.ANT_K_LINE.getRoute());
     }
     // === A k线数据  end ===
+
+
+    // === A k线数据  start ===
+    @Bean
+    public DirectExchange antKLineABExchange() {
+        return new DirectExchange(QueueEnum.ANT_K_LINE_AB.getExchange());
+    }
+
+    @Bean
+    public Queue antKLineABQueue() {
+        return new Queue(QueueEnum.ANT_K_LINE_AB.getQueue());
+    }
+
+    @Bean
+    public Binding antKLineABBind() {
+        return BindingBuilder.bind(antKLineABQueue()).to(antKLineABExchange()).with(QueueEnum.ANT_K_LINE_AB.getRoute());
+    }
+    // === A k线数据  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 e29c987..24331e3 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
@@ -170,4 +170,13 @@
         log.info("消费---A k线数据:{}", type);
         dappSystemService.antKLineMsg(type);
     }
+
+    /**转账拨币
+     * @param id
+     */
+    @RabbitListener(queues = QueueConstants.QUEUE_ANT_K_LINE_AB)
+    public void antKLineABMsg(Long id) {
+        log.info("消费转账拨币第二步:{}", id);
+        dappSystemService.antKLineABMsg(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 69bcc03..6a0ab21 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java
@@ -189,4 +189,13 @@
         CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
         rabbitTemplate.convertAndSend(QueueEnum.ANT_K_LINE.getExchange(), QueueEnum.ANT_K_LINE.getRoute(), type, correlationData);
     }
+
+    /**
+     * 转账拨币
+     */
+    public void sendAntKLineABMsg(Long id) {
+        log.info("开始转账拨币第二步:{}", id);
+        CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
+        rabbitTemplate.convertAndSend(QueueEnum.ANT_K_LINE_AB.getExchange(), QueueEnum.ANT_K_LINE_AB.getRoute(), id, correlationData);
+    }
 }
diff --git a/src/main/resources/mapper/dapp/DappFundFlowDao.xml b/src/main/resources/mapper/dapp/DappFundFlowDao.xml
index abc7d55..4ae7cfb 100644
--- a/src/main/resources/mapper/dapp/DappFundFlowDao.xml
+++ b/src/main/resources/mapper/dapp/DappFundFlowDao.xml
@@ -134,6 +134,17 @@
             LIMIT 1
     </select>
 
+    <select id="selectByStateAndVersionAndFromHashTwoLimitOne" resultType="cc.mrbird.febs.dapp.entity.DappFundFlowEntity">
+        select * from dapp_fund_flow
+        where status = #{status}
+          and from_hash is null
+          and is_return = 2
+          and type in (5,6)
+        ORDER BY
+            id ASC
+            LIMIT 1
+    </select>
+
     <select id="selectBymemberIdAndType" resultType="cc.mrbird.febs.dapp.entity.DappFundFlowEntity">
         select * from dapp_fund_flow
         where member_id = #{memberId}

--
Gitblit v1.9.1