From 7481c6a5b1e9e4d948192c170c31facb22aed9d1 Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Sat, 27 Aug 2022 15:15:04 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java |   18 ++++++++++++++++++
 src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java          |    2 ++
 src/main/java/cc/mrbird/febs/common/contants/AppContants.java             |    2 ++
 src/main/java/cc/mrbird/febs/job/SystemTradeJob.java                      |    6 ++++++
 src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java                   |    1 +
 src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java                        |    3 ++-
 src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java           |   10 ++++++++++
 src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java              |   17 +++++++++++++++++
 8 files changed, 58 insertions(+), 1 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/contants/AppContants.java b/src/main/java/cc/mrbird/febs/common/contants/AppContants.java
index f99f537..7223dc3 100644
--- a/src/main/java/cc/mrbird/febs/common/contants/AppContants.java
+++ b/src/main/java/cc/mrbird/febs/common/contants/AppContants.java
@@ -180,4 +180,6 @@
     public static final String REDIS_KEY_SYMBOL_DAILY_PRICE = "SYMBOL_DAILY_PRICE";
 
     public static final BigDecimal NFT_ACTIVE_PRICE = new BigDecimal("10");
+
+    public static final String REDIS_KEY_TFC_NEW_PRICE = "TFC_NEW_PRICE";
 }
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 cec8d5b..fbd0c2c 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
@@ -57,4 +57,6 @@
     boolean hasProfit(String address);
 
     void sdmWithdrawFee(String data);
+
+    void tfcNewPrice();
 }
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 5a48740..ad2e486 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
@@ -737,4 +737,22 @@
     public void sdmWithdrawFee(String data) {
 
     }
+
+    @Override
+    public void tfcNewPrice() {
+        BigDecimal newPrice;
+        if (!systemHasStart()) {
+            newPrice = new BigDecimal("0.05");
+        } else {
+            ContractChainService tfcInstance = ChainService.getInstance(ChainEnum.BSC_TFC.name());
+            // u剩余数量
+            BigDecimal sourceU = ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(ChainEnum.BSC_USDT_SOURCE.getAddress());
+            // 源池代币剩余数量
+            BigDecimal sourceCoin = tfcInstance.balanceOf(ChainEnum.BSC_USDT_SOURCE.getAddress());
+
+            newPrice = sourceU.divide(sourceCoin, tfcInstance.decimals(), RoundingMode.HALF_UP);
+        }
+
+        chainProducer.sendTfcNewPrice(newPrice.toPlainString());
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/job/SystemTradeJob.java b/src/main/java/cc/mrbird/febs/job/SystemTradeJob.java
index 7d34c06..4f1cad9 100644
--- a/src/main/java/cc/mrbird/febs/job/SystemTradeJob.java
+++ b/src/main/java/cc/mrbird/febs/job/SystemTradeJob.java
@@ -68,4 +68,10 @@
         log.info("挖矿");
         systemService.mining();
     }
+
+    @Scheduled(cron = "0/10 * * * * ?")
+    public void tfcNewPriceJob() {
+        systemService.tfcNewPrice();
+    }
+
 }
diff --git a/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java b/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java
index 0dbeabc..a23f51f 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java
@@ -11,4 +11,5 @@
     public static final String USER_BUY_REWARD = "queue_tfc_user_buy_reward";
     public static final String NFT_BOX = "queue_tfc_nft_box";
     public static final String WITHDRAW_FEE = "queue_withdraw_fee";
+    public static final String TFC_NEW_PRICE = "queue_tfc_new_price";
 }
diff --git a/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java b/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java
index 234a80a..ebcba15 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java
@@ -10,7 +10,8 @@
     DISTRIB_PROFIT("exchange_distrib_profit", "route_key_distrib_profit", "queue_tfc_distrib_profit"),
     USER_BUY_REWARD("exchange_user_buy_reward", "route_key_user_buy_reward", "queue_tfc_user_buy_reward"),
     NFT_BOX("exchange_nft_box", "route_key_nft_box", "queue_tfc_nft_box"),
-    WITHDRAW_FEE("exchange_withdraw_fee", "route_key_withdraw_fee", "queue_withdraw_fee");
+    WITHDRAW_FEE("exchange_withdraw_fee", "route_key_withdraw_fee", "queue_withdraw_fee"),
+    TFC_NEW_PRICE("exchange_tfc_new_price", "route_key_tfc_new_price", "queue_tfc_new_price");
 
     private String exchange;
 
diff --git a/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java b/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
index c3c282d..9ed6760 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
@@ -110,4 +110,21 @@
         return BindingBuilder.bind(withdrawFeeQueue()).to(withdrawFeeExchange()).with(QueueEnum.WITHDRAW_FEE.getRoute());
     }
     // === 提现手续费 end ===
+
+    // === tfc最新价 start ===
+    @Bean
+    public DirectExchange tfcNewPriceExchange() {
+        return new DirectExchange(QueueEnum.TFC_NEW_PRICE.getExchange());
+    }
+
+    @Bean
+    public Queue tfcNewPriceQueue() {
+        return new Queue(QueueEnum.TFC_NEW_PRICE.getQueue());
+    }
+
+    @Bean
+    public Binding tfcNewPriceBind() {
+        return BindingBuilder.bind(tfcNewPriceQueue()).to(tfcNewPriceExchange()).with(QueueEnum.TFC_NEW_PRICE.getRoute());
+    }
+    // === tfc最新价 end ===
 }
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 e2da47e..4b6b813 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java
@@ -56,4 +56,14 @@
         CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
         rabbitTemplate.convertAndSend(QueueEnum.NFT_BOX.getExchange(), QueueEnum.NFT_BOX.getRoute(), id, correlationData);
     }
+
+    /**
+     * 消费者在矩阵项目
+     * @param data
+     */
+    public void sendTfcNewPrice(String data) {
+        log.info("发送tfc最新价:{}", data);
+        CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
+        rabbitTemplate.convertAndSend(QueueEnum.TFC_NEW_PRICE.getExchange(), QueueEnum.TFC_NEW_PRICE.getRoute(), data, correlationData);
+    }
 }

--
Gitblit v1.9.1