From 2ccbfa3ef257c53f9fbc80ab7e7459b09bbfa3d3 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 30 May 2022 18:30:51 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java
index 9090ee8..355909e 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java
@@ -40,13 +40,19 @@
     public void compile(EthUsdtContract.TransferEventResponse e) {
         int decimals = ChainService.getInstance(ChainEnum.BSC_TFC.name()).decimals();
         if (e.to != null) {
+            // 合约创建时,同时创建地址
             if ("0x0000000000000000000000000000000000000000".equals(e.from)) {
+                DappMemberEntity toMember = dappMemberDao.selectByAddress(e.to, null);
+                if (toMember == null) {
+                    toMember = dappMemberService.insertMember(e.to, "0");
+                }
                 return;
             }
 
             DappMemberEntity fromMember = dappMemberService.findByAddress(e.from, null);
             if (fromMember == null) {
-                fromMember = dappMemberService.insertMember(e.from, null);
+                DappMemberEntity sourceAddress = dappMemberDao.selectByAddress(ChainEnum.BSC_TFC.getAddress(), null);
+                fromMember = dappMemberService.insertMember(e.from, sourceAddress.getInviteId());
             }
 
             // 如果转账对象地址不为源池地址,则创建用户
@@ -63,11 +69,8 @@
                 BigDecimal amount = BigDecimal.valueOf(tokens.intValue()).divide(BigDecimal.TEN.pow(decimals), decimals, RoundingMode.HALF_DOWN);
                 DappFundFlowEntity fundFlow = dappFundFlowDao.selectByFromHash(e.log.getTransactionHash(), 1);
 
-                // TODO price
-                BigDecimal newPrice = BigDecimal.valueOf(1);
-
+                BigDecimal newPrice = fundFlow.getNewestPrice();
                 BigDecimal transferAmount = amount.multiply(newPrice);
-                fundFlow.setNewestPrice(newPrice);
                 // 更改状态为已同步
                 fundFlow.setStatus(2);
                 fundFlow.setTargetAmount(transferAmount);

--
Gitblit v1.9.1