From afe2e9a2da152a9b1a54d88b7637e811bf298749 Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Sat, 27 Aug 2022 00:39:49 +0800
Subject: [PATCH] finish matrix profit

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java |   65 ++++++++++++++++++++------------
 1 files changed, 40 insertions(+), 25 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 b9d38ab..2511380 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
@@ -37,7 +37,7 @@
 import java.util.Map;
 
 /**
- * @author 
+ * @author
  * @date 2022-03-17
  **/
 @Service
@@ -49,7 +49,8 @@
     private final DappWalletMineDao dappWalletMineDao;
     private final DappTransferRecordDao dappTransferRecordDao;
     private final RedisUtils redisUtils;
-    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
+
+    private final DappAchieveMemberTreeDao dappAchieveMemberTreeDao;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -78,7 +79,7 @@
 
         member.setInviteId(ShareCodeUtil.toSerialCode(member.getId()));
         member.setRefererId(approveDto.getRefererId());
-        if (StrUtil.isNotBlank(approveDto.getRefererId())){
+        if (StrUtil.isNotBlank(approveDto.getRefererId())) {
             boolean flag = false;
             String parentId = approveDto.getRefererId();
             String ids = "";
@@ -94,7 +95,7 @@
                     break;
                 }
                 parentId = parentMember.getRefererId();
-                if(StringUtils.isBlank(parentId)){
+                if (StringUtils.isBlank(parentId)) {
                     break;
                 }
                 if (parentMember.getRefererId().equals(parentMember.getInviteId())) {
@@ -131,9 +132,15 @@
                 if (parent == null) {
                     throw new FebsException("recommender is not exist");
                 }
-            }
 
-            member = insertMember(connectDto.getAddress(), null);
+                List<DappMemberEntity> child = dappMemberDao.selectChildMemberDirectOrNot(connectDto.getInviteId(), 1);
+                if (child.size() == 6) {
+                    throw new FebsException("Invite Code is Invalid");
+                }
+            } else {
+                connectDto.setInviteId(null);
+            }
+            member = insertMember(connectDto.getAddress(), connectDto.getInviteId());
         }
 
         String key = LoginUserUtil.getLoginKey(connectDto.getAddress(), connectDto.getNonce(), connectDto.getSign());
@@ -254,7 +261,7 @@
     @Override
     public IPage<DappTransferRecordEntity> selectTransferInPage(DappTransferRecordEntity transfer, QueryRequest request) {
         Page<DappTransferRecordEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
-        return dappTransferRecordDao.selectInPage(transfer,page);
+        return dappTransferRecordDao.selectInPage(transfer, page);
     }
 
     @Override
@@ -276,9 +283,7 @@
         member.setAddress(address);
         member.setChainType(chainType);
         member.setAccountType(accountType);
-        member.setActiveStatus(1);
-        member.setBalance(ChainService.getInstance(ChainEnum.BSC_TFC.name()).balanceOf(address));
-        member.setUsdtBalance(ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(address));
+        member.setActiveStatus(2);
 
         dappMemberDao.insert(member);
 
@@ -289,16 +294,15 @@
         if (StrUtil.isEmpty(refererId)) {
             refererId = "0";
             // 若没有推荐人,则直接激活
-            member.setActiveStatus(1);
+            member.setActiveStatus(2);
         }
 
         member.setInviteId(ShareCodeUtil.toSerialCode(member.getId()));
         member.setRefererId(refererId);
-        if (StrUtil.isNotBlank(refererId)){
+        if (StrUtil.isNotBlank(refererId)) {
             boolean flag = false;
             String parentId = refererId;
             String ids = "";
-            String feeProfitIds = "";
 
             while (!flag && StringUtils.isNotBlank(parentId)) {
                 if (StrUtil.isBlank(ids)) {
@@ -307,18 +311,12 @@
                     ids += ("," + parentId);
                 }
 
-                if (StrUtil.isBlank(feeProfitIds)) {
-                    feeProfitIds += parentId;
-                } else {
-                    feeProfitIds += ("," + parentId);
-                }
-
                 DappMemberEntity parentMember = dappMemberDao.selectMemberInfoByInviteId(parentId);
                 if (parentMember == null) {
                     break;
                 }
                 parentId = parentMember.getRefererId();
-                if(StringUtils.isBlank(parentId) || "0".equals(parentId)){
+                if (StringUtils.isBlank(parentId) || "0".equals(parentId)) {
                     break;
                 }
                 if (parentMember.getRefererId().equals(parentMember.getInviteId())) {
@@ -326,7 +324,6 @@
                 }
             }
             member.setRefererIds(ids);
-            member.setFeeProfitIds(feeProfitIds);
         }
         dappMemberDao.updateById(member);
 
@@ -334,10 +331,28 @@
     }
 
     @Override
-    public List<TeamListVo> findTeamList(TeamListDto teamListDto) {
+    public TeamListVo findTeamList(TeamListDto teamListDto) {
         DappMemberEntity member = LoginUserUtil.getAppUser();
-        Page<TeamListDto> page = new Page<>(teamListDto.getPageNum(), teamListDto.getPageSize());
-        teamListDto.setInviteId(member.getInviteId());
-        return dappMemberDao.selectTeamListInPage(teamListDto, page).getRecords();
+
+        DappAchieveMemberTreeEntity topNode = dappAchieveMemberTreeDao.selectNodeByDeep(member.getId(), 1);
+        return buildTeamMatrix(topNode);
+    }
+
+    public TeamListVo buildTeamMatrix(DappAchieveMemberTreeEntity node) {
+        List<DappAchieveMemberTreeEntity> childNodes = dappAchieveMemberTreeDao.selectMatrixChildNode(node.getTopNode(), node.getTreeNode());
+
+        TeamListVo teamListVo = new TeamListVo();
+        teamListVo.setName(node.getInviteId());
+        teamListVo.setHasMoney(node.getHasMoney());
+
+        if (CollUtil.isEmpty(childNodes)) {
+            return teamListVo;
+        }
+
+        List<TeamListVo> list = new ArrayList<>();
+        for (DappAchieveMemberTreeEntity childNode : childNodes) {
+            list.add(buildTeamMatrix(childNode));
+        }
+        return teamListVo;
     }
 }

--
Gitblit v1.9.1