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