From 7f58b6ad935f464abe3cb6ebc0a107bf2ad34b8c Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 09 Jun 2022 17:22:43 +0800
Subject: [PATCH] fix complete test

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java |    4 
 src/main/resources/mapper/dapp/DappFundFlowDao.xml                        |   16 ++-
 src/main/resources/mapper/dapp/DappMemberDao.xml                          |   28 +++++++
 src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java               |    8 ++
 src/test/java/cc/mrbird/febs/MemberTest.java                              |   71 +++++++++++++++++
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java |    9 +
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java |   22 ++++
 src/main/java/cc/mrbird/febs/dapp/chain/ChainEnum.java                    |   28 +++---
 src/main/java/cc/mrbird/febs/dapp/dto/TeamListDto.java                    |    3 
 src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java            |    5 +
 10 files changed, 166 insertions(+), 28 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/chain/ChainEnum.java b/src/main/java/cc/mrbird/febs/dapp/chain/ChainEnum.java
index 33a2a8c..176613b 100644
--- a/src/main/java/cc/mrbird/febs/dapp/chain/ChainEnum.java
+++ b/src/main/java/cc/mrbird/febs/dapp/chain/ChainEnum.java
@@ -31,8 +31,8 @@
      */
     BSC_USDT("BSC", "0x977a9ddfb965a9a3416fa72ca7f91c4949c18f25",
             "0xefe98e00cd227b6322e892c82fcbd8eadf119c3188b7e574bc624f65405d61bf",
-            "https://data-seed-prebsc-2-s1.binance.org:8545",
-            "0x337610d27c682E347C9cD60BD4b3b107C9d34dDd",
+            "https://bsc-dataseed1.ninicoin.io",
+            "0x55d398326f99059fF775485246999027B3197955",
             ""),
 
     /**
@@ -43,8 +43,8 @@
      */
     BSC_TFC("BSC", "0x977a9ddfb965a9a3416fa72ca7f91c4949c18f25",
             "0xefe98e00cd227b6322e892c82fcbd8eadf119c3188b7e574bc624f65405d61bf",
-            "https://data-seed-prebsc-2-s1.binance.org:8545",
-            "0xdd92ea2f41d807a60b29004bf7db807d8ac09212",
+            "https://bsc-dataseed1.ninicoin.io",
+            "0x6c6835e60e7dBaD7a60112a6371271e8eb79ee68",
             ""),
 
     /**
@@ -52,8 +52,8 @@
      */
     BSC_TFC_SOURCE("BSC", "0x4EbDCA102623b46a47042D580dddAdE2a53D057F",
             "0x81c2c02d0c106c1e32ab060a37f6eb279c0649c30ea5cc1c4951e6a8dd4e963c",
-            "https://data-seed-prebsc-2-s1.binance.org:8545",
-            "0xdd92ea2f41d807a60b29004bf7db807d8ac09212",
+            "https://bsc-dataseed1.ninicoin.io",
+            "0x6c6835e60e7dBaD7a60112a6371271e8eb79ee68",
             ""),
 
     /**
@@ -61,8 +61,8 @@
      */
     BSC_USDT_SOURCE("BSC", "0x4EbDCA102623b46a47042D580dddAdE2a53D057F",
             "0x81c2c02d0c106c1e32ab060a37f6eb279c0649c30ea5cc1c4951e6a8dd4e963c",
-            "https://data-seed-prebsc-2-s1.binance.org:8545",
-            "0x337610d27c682E347C9cD60BD4b3b107C9d34dDd",
+            "https://bsc-dataseed1.ninicoin.io",
+            "0x55d398326f99059fF775485246999027B3197955",
             ""),
 
     /**
@@ -70,8 +70,8 @@
      */
     BSC_TFC_MAKE("BSC", "0xBae24dAa3aB94cfF8114a16A4267D769b3a651F8",
             "0xc0cabaf5f1fce227e5f1b8a7f83a5dc28972389ffc59559d7852ce8d27c3bec4",
-            "https://data-seed-prebsc-2-s1.binance.org:8545",
-            "0xdd92ea2f41d807a60b29004bf7db807d8ac09212",
+            "https://bsc-dataseed1.ninicoin.io",
+            "0x6c6835e60e7dBaD7a60112a6371271e8eb79ee68",
             ""),
 
     /**
@@ -79,8 +79,8 @@
      */
     BSC_TFC_TECH("BSC", "0xD998DA7362360eFC6daDFEd6E9a32E70640d7600",
             "",
-            "https://data-seed-prebsc-2-s1.binance.org:8545",
-            "0xdd92ea2f41d807a60b29004bf7db807d8ac09212",
+            "https://bsc-dataseed1.ninicoin.io",
+            "0x6c6835e60e7dBaD7a60112a6371271e8eb79ee68",
             ""),
 
     /**
@@ -88,8 +88,8 @@
      */
     BSC_TFC_REWARD("BSC", "0xBae24dAa3aB94cfF8114a16A4267D769b3a651F8",
             "0xc0cabaf5f1fce227e5f1b8a7f83a5dc28972389ffc59559d7852ce8d27c3bec4",
-            "https://data-seed-prebsc-2-s1.binance.org:8545",
-            "0xdd92ea2f41d807a60b29004bf7db807d8ac09212",
+            "https://bsc-dataseed1.ninicoin.io",
+            "0x6c6835e60e7dBaD7a60112a6371271e8eb79ee68",
             "");
 
     private String chain;
diff --git a/src/main/java/cc/mrbird/febs/dapp/dto/TeamListDto.java b/src/main/java/cc/mrbird/febs/dapp/dto/TeamListDto.java
index 15f18f0..c4ae831 100644
--- a/src/main/java/cc/mrbird/febs/dapp/dto/TeamListDto.java
+++ b/src/main/java/cc/mrbird/febs/dapp/dto/TeamListDto.java
@@ -17,4 +17,7 @@
 
     @ApiModelProperty(value = "每页数量", example = "10")
     private Integer pageSize;
+
+    @ApiModelProperty(hidden = true)
+    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 4bac014..5315171 100644
--- a/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
+++ b/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
@@ -67,4 +67,9 @@
      * 激活状态 1-已激活 2-未激活
      */
     private Integer activeStatus;
+
+    /**
+     * 滑点分享链
+     */
+    private String feeProfitIds;
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java b/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
index 6351920..21aff3e 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
@@ -1,6 +1,8 @@
 package cc.mrbird.febs.dapp.mapper;
 
+import cc.mrbird.febs.dapp.dto.TeamListDto;
 import cc.mrbird.febs.dapp.entity.DappMemberEntity;
+import cc.mrbird.febs.dapp.vo.TeamListVo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -30,4 +32,10 @@
     BigDecimal selectAllBalance(@Param("accountType") String accountType);
 
     List<DappMemberEntity> selectMemberByAccountType(@Param("accountType") String accountType);
+
+    List<DappMemberEntity> selectChildMemberDirectOrNot(@Param("inviteId") String inviteId, @Param("type") Integer type);
+
+    BigDecimal selectChildHoldAmount(@Param("inviteId") String inviteId);
+
+    IPage<TeamListVo> selectTeamListInPage(@Param("record") TeamListDto teamListDto, Page<TeamListDto> page);
 }
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 d4aff8c..175bbae 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
@@ -305,6 +305,10 @@
             boolean flag = false;
             String parentId = refererId;
             String ids = "";
+            String feeProfitIds = "";
+
+            int i = 1;
+            List<DataDictionaryCustom> feeProfitDic = dataDictionaryCustomMapper.selectDicByType(AppContants.DIC_TYPE_DISTRIBUTE_PROP);
             while (!flag && StringUtils.isNotBlank(parentId)) {
                 if (StrUtil.isBlank(ids)) {
                     ids += parentId;
@@ -312,12 +316,21 @@
                     ids += ("," + parentId);
                 }
 
+                if (i <= feeProfitDic.size()) {
+                    if (StrUtil.isBlank(feeProfitIds)) {
+                        feeProfitIds += parentId;
+                    } else {
+                        feeProfitIds += ("," + parentId);
+                    }
+                }
+
+                i++;
                 DappMemberEntity parentMember = dappMemberDao.selectMemberInfoByInviteId(parentId);
                 if (parentMember == null) {
                     break;
                 }
                 parentId = parentMember.getRefererId();
-                if(StringUtils.isBlank(parentId)){
+                if(StringUtils.isBlank(parentId) || "0".equals(parentId)){
                     break;
                 }
                 if (parentMember.getRefererId().equals(parentMember.getInviteId())) {
@@ -325,6 +338,7 @@
                 }
             }
             member.setRefererIds(ids);
+            member.setFeeProfitIds(feeProfitIds);
         }
         dappMemberDao.updateById(member);
 
@@ -333,7 +347,9 @@
 
     @Override
     public List<TeamListVo> findTeamList(TeamListDto teamListDto) {
-
-        return new ArrayList<>();
+        DappMemberEntity member = LoginUserUtil.getAppUser();
+        Page<TeamListDto> page = new Page<>(teamListDto.getPageNum(), teamListDto.getPageSize());
+        teamListDto.setInviteId(member.getInviteId());
+        return dappMemberDao.selectTeamListInPage(teamListDto, page).getRecords();
     }
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
index 5e64ebc..a1d13b9 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -188,6 +188,9 @@
 
                 OnlineTransferUtil.addTransfer(parent.getAddress(), total, fundflow.getType(), 1, ChainEnum.BSC_TFC_SOURCE.name(), AppContants.SYMBOL_COIN, batchNo);
 
+                DappFundFlowEntity distribFlow = new DappFundFlowEntity(parent.getId(), total, 4, 2, BigDecimal.ZERO);
+                dappFundFlowDao.insert(distribFlow);
+
                 nodeAmount = nodeAmount.subtract(total);
                 i++;
             }
@@ -207,7 +210,6 @@
 
     @Override
     public void mining() {
-        log.info("挖矿");
         ContractChainService contract = ChainService.getInstance(ChainEnum.BSC_TFC.name());
         // 发行量
         BigInteger totalSupply = contract.totalSupply();
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
index d823788..f22604b 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -52,10 +52,13 @@
 
         Map<String, BigDecimal> map = dappFundFlowDao.selectAmountTotalByType(member.getId());
         WalletInfoVo walletInfo = new WalletInfoVo();
+        List<DappMemberEntity> direct = dappMemberDao.selectChildMemberDirectOrNot(member.getInviteId(), 1);
+        List<DappMemberEntity> notDirect = dappMemberDao.selectChildMemberDirectOrNot(member.getInviteId(), 2);
+        BigDecimal childHoldAmount = dappMemberDao.selectChildHoldAmount(member.getInviteId());
 
-        walletInfo.setTotalChild(10000);
-        walletInfo.setDirectCnt(100);
-        walletInfo.setTotalChildCoin(BigDecimal.valueOf(1));
+        walletInfo.setTotalChild(notDirect.size());
+        walletInfo.setDirectCnt(direct.size());
+        walletInfo.setTotalChildCoin(childHoldAmount);
         walletInfo.setTeamReward(map.get("teamReward"));
         walletInfo.setMiningAmount(map.get("mine"));
         return walletInfo;
diff --git a/src/main/resources/mapper/dapp/DappFundFlowDao.xml b/src/main/resources/mapper/dapp/DappFundFlowDao.xml
index a8f1abd..f4578c8 100644
--- a/src/main/resources/mapper/dapp/DappFundFlowDao.xml
+++ b/src/main/resources/mapper/dapp/DappFundFlowDao.xml
@@ -52,12 +52,14 @@
 
     <select id="selectAmountTotalByType" resultType="java.util.HashMap">
         select
-            case when type=1 then amount end buy,
-            case when type=2 then amount end sale,
-            case when type=3 then amount end mine,
-            case when type=4 then amount end teamReward
-        from (select type, sum(amount) amount from dapp_fund_flow
-                 where member_id=#{memberId}
-             ) a
+            MAX(if(type = 1, a.amount, 0)) buy
+             , MAX(if(type = 2, a.amount, 0)) sale
+             , MAX(if(type = 3, a.amount, 0)) mine
+             , MAX(if(type = 4, a.amount, 0)) teamReward
+        from (select type, sum(amount) amount
+                 from dapp_fund_flow
+                 where member_id=22
+                 group by type
+            ) a
     </select>
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/dapp/DappMemberDao.xml b/src/main/resources/mapper/dapp/DappMemberDao.xml
index 42c8b0a..89b4ec8 100644
--- a/src/main/resources/mapper/dapp/DappMemberDao.xml
+++ b/src/main/resources/mapper/dapp/DappMemberDao.xml
@@ -92,4 +92,32 @@
             account_type=#{accountType}
         </where>
     </select>
+
+    <select id="selectChildMemberDirectOrNot" resultType="cc.mrbird.febs.dapp.entity.DappMemberEntity">
+        select * from dapp_member
+        <where>
+            <if test="type==1">
+                and referer_id=#{inviteId}
+            </if>
+            <if test="type==2">
+                and find_in_set(#{inviteId}, fee_profit_ids)
+            </if>
+        </where>
+    </select>
+
+    <select id="selectChildHoldAmount" resultType="java.math.BigDecimal">
+        select ifnull(sum(balance),0) from dapp_member
+        where find_in_set(#{inviteId}, fee_profit_ids)
+    </select>
+
+    <select id="selectTeamListInPage" resultType="cc.mrbird.febs.dapp.vo.TeamListVo">
+        select
+            concat(left(a.address,5), '******', right(a.address,5)) address,
+            (select count(1) from dapp_member b where find_in_set(a.invite_id, b.fee_profit_ids)
+            ) count,
+            (select ifnull(sum(c.balance),0) from dapp_member c where find_in_set(a.invite_id, c.fee_profit_ids)
+            ) coinCount
+        from dapp_member a
+        where find_in_set(#{record.inviteId}, a.fee_profit_ids)
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/src/test/java/cc/mrbird/febs/MemberTest.java b/src/test/java/cc/mrbird/febs/MemberTest.java
new file mode 100644
index 0000000..3319332
--- /dev/null
+++ b/src/test/java/cc/mrbird/febs/MemberTest.java
@@ -0,0 +1,71 @@
+package cc.mrbird.febs;
+
+import cc.mrbird.febs.common.contants.AppContants;
+import cc.mrbird.febs.dapp.entity.DappMemberEntity;
+import cc.mrbird.febs.dapp.entity.DataDictionaryCustom;
+import cc.mrbird.febs.dapp.mapper.DappMemberDao;
+import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper;
+import cn.hutool.core.util.StrUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.util.List;
+
+/**
+ * @author wzy
+ * @date 2022-06-09
+ **/
+@SpringBootTest
+public class MemberTest {
+
+    @Autowired
+    private DappMemberDao dappMemberDao;
+
+    @Autowired
+    private DataDictionaryCustomMapper dataDictionaryCustomMapper;
+
+    @Test
+    public void refererIdsTest() {
+        DappMemberEntity member = dappMemberDao.selectById(24);
+
+        boolean flag = false;
+        String parentId = "35087336";
+        String ids = "";
+        String feeProfitIds = "";
+
+        int i = 1;
+        List<DataDictionaryCustom> feeProfitDic = dataDictionaryCustomMapper.selectDicByType(AppContants.DIC_TYPE_DISTRIBUTE_PROP);
+        while (!flag && StringUtils.isNotBlank(parentId)) {
+            if (StrUtil.isBlank(ids)) {
+                ids += parentId;
+            } else {
+                ids += ("," + parentId);
+            }
+
+            if (i <= 4) {
+                if (StrUtil.isBlank(feeProfitIds)) {
+                    feeProfitIds += parentId;
+                } else {
+                    feeProfitIds += ("," + parentId);
+                }
+            }
+
+            i++;
+            DappMemberEntity parentMember = dappMemberDao.selectMemberInfoByInviteId(parentId);
+            if (parentMember == null) {
+                break;
+            }
+            parentId = parentMember.getRefererId();
+            if(StringUtils.isBlank(parentId) || "0".equals(parentId)){
+                break;
+            }
+            if (parentMember.getRefererId().equals(parentMember.getInviteId())) {
+                flag = true;
+            }
+        }
+        member.setRefererIds(ids);
+        member.setFeeProfitIds(feeProfitIds);
+    }
+}

--
Gitblit v1.9.1