From 60f9b412d8c49501dc55a4ffd8f4a63a69043cd0 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 08 Jun 2022 09:37:02 +0800
Subject: [PATCH] fix transfer

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java |   56 +++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 47 insertions(+), 9 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 7e41717..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
@@ -7,20 +7,17 @@
 import cc.mrbird.febs.common.utils.LoginUserUtil;
 import cc.mrbird.febs.common.utils.RedisUtils;
 import cc.mrbird.febs.common.utils.ShareCodeUtil;
+import cc.mrbird.febs.dapp.chain.ChainEnum;
 import cc.mrbird.febs.dapp.chain.ChainService;
 import cc.mrbird.febs.dapp.chain.ContractChainService;
 import cc.mrbird.febs.dapp.dto.ApproveDto;
 import cc.mrbird.febs.dapp.dto.ConnectDto;
 import cc.mrbird.febs.dapp.dto.PriceSettingDto;
-import cc.mrbird.febs.dapp.entity.DappMemberEntity;
-import cc.mrbird.febs.dapp.entity.DappTransferRecordEntity;
-import cc.mrbird.febs.dapp.entity.DappWalletCoinEntity;
-import cc.mrbird.febs.dapp.entity.DappWalletMineEntity;
-import cc.mrbird.febs.dapp.mapper.DappMemberDao;
-import cc.mrbird.febs.dapp.mapper.DappTransferRecordDao;
-import cc.mrbird.febs.dapp.mapper.DappWalletCoinDao;
-import cc.mrbird.febs.dapp.mapper.DappWalletMineDao;
+import cc.mrbird.febs.dapp.dto.TeamListDto;
+import cc.mrbird.febs.dapp.entity.*;
+import cc.mrbird.febs.dapp.mapper.*;
 import cc.mrbird.febs.dapp.service.DappMemberService;
+import cc.mrbird.febs.dapp.vo.TeamListVo;
 import cc.mrbird.febs.system.entity.User;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
@@ -33,7 +30,9 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -49,6 +48,7 @@
     private final DappWalletMineDao dappWalletMineDao;
     private final DappTransferRecordDao dappTransferRecordDao;
     private final RedisUtils redisUtils;
+    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -124,7 +124,11 @@
         DappMemberEntity member = dappMemberDao.selectByAddress(connectDto.getAddress(), null);
 
         if (member == null) {
-            member = insertMember(connectDto.getAddress(), null);
+            member = insertMember(connectDto.getAddress(), connectDto.getInviteId());
+        }
+
+        if (member.getActiveStatus() == 2) {
+            throw new FebsException("账号暂未激活,请联系推荐人");
         }
 
         String key = LoginUserUtil.getLoginKey(connectDto.getAddress(), connectDto.getNonce(), connectDto.getSign());
@@ -258,10 +262,38 @@
 
     @Override
     public DappMemberEntity insertMember(String address, String refererId) {
+
+        return insertMember(address, refererId, "BSC", "normal");
+    }
+
+    @Override
+    public DappMemberEntity insertMember(String address, String refererId, String chainType, String accountType) {
         DappMemberEntity member = new DappMemberEntity();
         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));
+
+        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.DIC_TYPE_SYSTEM_SETTING, AppContants.DIC_VALUE_SYSTEM_NODE_CNT_LIMIT);
+        int nodeCntLimit = Integer.parseInt(dic.getValue());
+
+        List<DappMemberEntity> memberCount = dappMemberDao.selectList(null);
+        if (memberCount.size() <= (nodeCntLimit + 4)) {
+            member.setNodeType(1);
+        } else {
+            member.setNodeType(2);
+        }
 
         dappMemberDao.insert(member);
+
+        if (StrUtil.isEmpty(refererId)) {
+            refererId = "0";
+            // 若没有推荐人,则直接激活
+            member.setActiveStatus(1);
+        }
 
         member.setInviteId(ShareCodeUtil.toSerialCode(member.getId()));
         member.setRefererId(refererId);
@@ -294,4 +326,10 @@
 
         return member;
     }
+
+    @Override
+    public List<TeamListVo> findTeamList(TeamListDto teamListDto) {
+
+        return new ArrayList<>();
+    }
 }

--
Gitblit v1.9.1