From ba43c26e71c80545c5203ecec4c0e1b09ff0e09d Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 07 Jun 2024 11:57:53 +0800
Subject: [PATCH] 将监听充值新建一个项目

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java |    9 +++++++--
 src/main/resources/mapper/dapp/DappFundFlowDao.xml                       |    8 ++++++++
 src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java            |    3 ++-
 3 files changed, 17 insertions(+), 3 deletions(-)

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 c5bd217..3f4a8ec 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappFundFlowDao.java
@@ -7,7 +7,6 @@
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -19,6 +18,8 @@
 
     DappFundFlowEntity selectByFromHash(@Param("txHash") String txHash, @Param("status") Integer status);
 
+    DappFundFlowEntity selectByFromHashAndAndMemberId(@Param("txHash") String txHash, @Param("status") Integer status,@Param("memberId") Long memberId);
+
     List<DappFundFlowEntity> selectFundFlowListByAddress(@Param("address") String address, @Param("status") Integer status);
 
     Map<String, BigDecimal> selectAmountTotalByType(@Param("memberId") Long memberId);
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java
index 00513c8..53eb185 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java
@@ -155,11 +155,16 @@
             if (e.from.equals("0xaa25aa7a19f9c426e07dee59b12f944f4d9f1dd3")) {
                 return;
             }
+            String toAddress = e.to;
+            DappMemberEntity fromMember = dappMemberDao.selectByAddress(toAddress, null);
+            if(ObjectUtil.isEmpty(fromMember)){
+                return;
+            }
 
             BigInteger tokens = e.tokens;
             BigDecimal amount = new BigDecimal(tokens.toString()).divide(BigDecimal.TEN.pow(decimals), decimals, RoundingMode.HALF_DOWN);
 
-            DappFundFlowEntity fundFlow = dappFundFlowDao.selectByFromHash(e.log.getTransactionHash(), null);
+            DappFundFlowEntity fundFlow = dappFundFlowDao.selectByFromHashAndAndMemberId(e.log.getTransactionHash(), null,fromMember.getId());
             if(ObjectUtil.isNotEmpty(fundFlow) && 1 == fundFlow.getStatus()){
                 log.info("触发USDT合约监听事件-买入贡献值,金额:{}",amount);
                 if(1 == fundFlow.getType()){//认购贡献值 1
@@ -186,7 +191,7 @@
                         return;
                     }
 
-                    fundFlow.setAmount(fundFlow.getAmount().negate());
+//                    fundFlow.setAmount(fundFlow.getAmount().negate());
                     // 更改状态为已同步
                     fundFlow.setStatus(2);
                     dappFundFlowDao.updateById(fundFlow);
diff --git a/src/main/resources/mapper/dapp/DappFundFlowDao.xml b/src/main/resources/mapper/dapp/DappFundFlowDao.xml
index a07f24d..3c36116 100644
--- a/src/main/resources/mapper/dapp/DappFundFlowDao.xml
+++ b/src/main/resources/mapper/dapp/DappFundFlowDao.xml
@@ -42,6 +42,14 @@
           </if>
     </select>
 
+    <select id="selectByFromHashAndAndMemberId" resultType="cc.mrbird.febs.dapp.entity.DappFundFlowEntity">
+        select * from dapp_fund_flow
+        where from_hash=#{txHash} and member_id = #{memberId}
+          <if test="status != null">
+              and status=#{status}
+          </if>
+    </select>
+
     <select id="selectFundFlowListByAddress" resultType="cc.mrbird.febs.dapp.entity.DappFundFlowEntity">
         select * from dapp_fund_flow a, dapp_member b
         where b.address=#{address}

--
Gitblit v1.9.1