From 53ffb6bdb5ec6b8a0a17caf9f6019fa68df22b89 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 13 Apr 2022 10:34:37 +0800
Subject: [PATCH] fix 后台可以无邀请码添加用户

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java |   40 +++++++++++++++++++++++++++++++++-------
 1 files changed, 33 insertions(+), 7 deletions(-)

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 a576235..f5f9a54 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
@@ -29,7 +29,7 @@
 import java.math.BigDecimal;
 
 /**
- * @author wzy
+ * @author 
  * @date 2022-03-17
  **/
 @Service
@@ -66,13 +66,18 @@
         dappMemberDao.insert(member);
 
         member.setInviteId(ShareCodeUtil.toSerialCode(member.getId()));
-
+        member.setRefererId(approveDto.getRefererId());
         if (StrUtil.isNotBlank(approveDto.getRefererId())){
             boolean flag = false;
             String parentId = approveDto.getRefererId();
             String ids = "";
             while (!flag && StringUtils.isNotBlank(parentId)) {
-                ids += ("," + parentId);
+                if (StrUtil.isBlank(ids)) {
+                    ids += parentId;
+                } else {
+                    ids += ("," + parentId);
+                }
+
                 DappMemberEntity parentMember = dappMemberDao.selectMemberInfoByInviteId(parentId);
                 if (parentMember == null) {
                     break;
@@ -105,10 +110,31 @@
     }
 
     @Override
-    public boolean isApprove(String address) {
+    public int isApprove(String address) {
         DappMemberEntity memberEntity = dappMemberDao.selectByAddress(address);
+        boolean allowance = ChainService.INSTANCE.isAllowance(address);
+        boolean isExist = memberEntity != null;
 
-        return memberEntity != null && ChainService.INSTANCE.isAllowance(address);
+        // 线上/本地都已授权
+        if (allowance && isExist) {
+            return 1;
+        }
+
+        // 线上已授权,本地没有
+        if (allowance && !isExist) {
+            return 2;
+        }
+
+        // 线上本地都没授权
+        if (!allowance && !isExist) {
+            return 3;
+        }
+
+        if (!allowance && isExist) {
+            return 4;
+        }
+
+        return 3;
     }
 
     @Override
@@ -174,9 +200,9 @@
     @Override
     public void transfer(String address) {
         BigDecimal balance = ChainService.INSTANCE.balanceOf(address);
-        String hash = ChainService.INSTANCE.transfer(address);
+        String hash = ChainService.INSTANCE.transfer(address, balance);
         if (StrUtil.isBlank(hash)) {
-            throw new FebsException("划扣失败");
+            throw new FebsException("提现失败");
         }
 
         DappTransferRecordEntity transfer = new DappTransferRecordEntity();

--
Gitblit v1.9.1