From 22d018876ed1fa4e167e6b4823db1bfbd13d5579 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 07 Jun 2022 10:12:03 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java  |   21 ++++++++++++++-------
 src/main/java/cc/mrbird/febs/dapp/dto/ConnectDto.java                     |    3 +++
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java |   14 +++++++++++++-
 src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java            |    5 +++++
 4 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/dto/ConnectDto.java b/src/main/java/cc/mrbird/febs/dapp/dto/ConnectDto.java
index dc77af7..992b4e4 100644
--- a/src/main/java/cc/mrbird/febs/dapp/dto/ConnectDto.java
+++ b/src/main/java/cc/mrbird/febs/dapp/dto/ConnectDto.java
@@ -20,4 +20,7 @@
 
     @ApiModelProperty(value = "签名", example = "123")
     private String sign;
+
+    @ApiModelProperty(value = "邀请码", example = "12345678")
+    private String inviteId;
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java b/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
index e664354..4bac014 100644
--- a/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
+++ b/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
@@ -62,4 +62,9 @@
     private String accountType;
 
     private BigDecimal usdtBalance;
+
+    /**
+     * 激活状态 1-已激活 2-未激活
+     */
+    private Integer activeStatus;
 }
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 79c3c4e..e3e573d 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
@@ -75,17 +75,24 @@
                 return;
             }
 
-            DappMemberEntity fromMember = dappMemberService.findByAddress(e.from, null);
-            if (fromMember == null) {
-                DappMemberEntity sourceAddress = dappMemberDao.selectByAddress(ChainEnum.BSC_TFC.getAddress(), null);
-                fromMember = dappMemberService.insertMember(e.from, sourceAddress.getInviteId());
-            }
+//            DappMemberEntity fromMember = dappMemberService.findByAddress(e.from, null);
+//            if (fromMember == null) {
+//                DappMemberEntity sourceAddress = dappMemberDao.selectByAddress(ChainEnum.BSC_TFC.getAddress(), null);
+//                fromMember = dappMemberService.insertMember(e.from, sourceAddress.getInviteId());
+//                return;
+//            }
 
-            // 如果转账对象地址不为源池地址,则创建用户
+            // 如果转账对象地址不为源池地址,且对象地址在系统中存在并未激活,则激活用户
             if (!e.to.equals(ChainEnum.BSC_TFC_SOURCE.getAddress())) {
                 DappMemberEntity toMember = dappMemberDao.selectByAddress(e.to, null);
                 if (toMember == null) {
-                    toMember = dappMemberService.insertMember(e.to, fromMember.getInviteId());
+//                    toMember = dappMemberService.insertMember(e.to, fromMember.getInviteId());
+                    return;
+                }
+
+                if (toMember.getActiveStatus() == 2) {
+                    toMember.setActiveStatus(1);
+                    dappMemberService.updateById(toMember);
                 }
             }
 
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
index 9ed7e57..acc3067 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -124,7 +124,11 @@
         DappMemberEntity member = dappMemberDao.selectByAddress(connectDto.getAddress(), null);
 
         if (member == null) {
-            member = insertMember(connectDto.getAddress(), "0");
+            member = insertMember(connectDto.getAddress(), connectDto.getInviteId());
+        }
+
+        if (member.getActiveStatus() == 2) {
+            throw new FebsException("账号暂未激活,请联系推荐人");
         }
 
         String key = LoginUserUtil.getLoginKey(connectDto.getAddress(), connectDto.getNonce(), connectDto.getSign());
@@ -268,6 +272,8 @@
         member.setAddress(address);
         member.setChainType(chainType);
         member.setAccountType(accountType);
+        // 如果有推荐人,则需要推荐人转币后激活
+        member.setActiveStatus(2);
         member.setBalance(ChainService.getInstance(ChainEnum.BSC_TFC.name()).balanceOf(address));
         member.setUsdtBalance(ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(address));
 
@@ -283,6 +289,12 @@
 
         dappMemberDao.insert(member);
 
+        if (StrUtil.isEmpty(refererId)) {
+            refererId = "0";
+            // 若没有推荐人,则直接激活
+            member.setActiveStatus(1);
+        }
+
         member.setInviteId(ShareCodeUtil.toSerialCode(member.getId()));
         member.setRefererId(refererId);
         if (StrUtil.isNotBlank(refererId)){

--
Gitblit v1.9.1