src/main/java/cc/mrbird/febs/dapp/dto/RecordInPageDto.java
@@ -18,6 +18,6 @@ @ApiModelProperty(value = "每页数量") private Integer pageSize = 10; @ApiModelProperty(value = "类型", example = "1-买入 2-卖出 3-采矿") @ApiModelProperty(value = "类型", example = "1-认购 2-提现 3-矩阵收益 4-直推收益") private Integer type; } src/main/java/cc/mrbird/febs/dapp/entity/DappAchieveMemberTreeEntity.java
@@ -1,6 +1,7 @@ package cc.mrbird.febs.dapp.entity; import cc.mrbird.febs.common.entity.BaseEntity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -21,4 +22,10 @@ private Integer hasMoney; private Integer deep; @TableField(exist = false) private String inviteId; @TableField(exist = false) private String address; } src/main/java/cc/mrbird/febs/dapp/mapper/DappAchieveMemberTreeDao.java
@@ -8,13 +8,15 @@ public interface DappAchieveMemberTreeDao extends BaseMapper<DappAchieveMemberTreeEntity> { List<DappAchieveMemberTreeEntity> selectNotBottomNodeInMatrix(Long memberId); List<DappAchieveMemberTreeEntity> selectNotBottomNodeInMatrix(@Param("memberId") Long memberId); List<DappAchieveMemberTreeEntity> selectMatrixTreeByTopNode(Long memberId); List<DappAchieveMemberTreeEntity> selectMatrixTreeByTopNode(@Param("memberId") Long memberId, @Param("hasMoney") Integer hasMoney); DappAchieveMemberTreeEntity selectNodeByDeep(@Param("memberId") Long memberId, @Param("deep") Integer deep); int resetMatrixTree(Long memberId); List<DappAchieveMemberTreeEntity> selectMatrixChildNode(@Param("topNode") Long topNode, @Param("parentNode") Long parentNode); int reentryMoney(Long memberId); int resetMatrixTree(@Param("memberId") Long memberId); int reentryMoney(@Param("memberId") Long memberId); } src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
@@ -37,7 +37,5 @@ BigDecimal selectChildHoldAmount(@Param("inviteId") String inviteId); IPage<TeamListVo> selectTeamListInPage(@Param("record") TeamListDto teamListDto, Page<TeamListDto> page); List<DappMemberEntity> selectMakerAddress(); } src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
@@ -42,5 +42,5 @@ DappMemberEntity insertMember(String address, String refererId, String chainType, String accountType); List<TeamListVo> findTeamList(TeamListDto teamListDto); TeamListVo findTeamList(TeamListDto teamListDto); } 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())) { @@ -258,7 +259,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 @@ -298,7 +299,7 @@ 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 = ""; @@ -322,7 +323,7 @@ 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())) { @@ -338,10 +339,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; } } src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -721,7 +721,7 @@ // 完成矩阵树,并重置矩阵且重入 public void finishMatrixTree(Long memberId) { List<DappAchieveMemberTreeEntity> matrixTree = dappAchieveMemberTreeDao.selectMatrixTreeByTopNode(memberId); List<DappAchieveMemberTreeEntity> matrixTree = dappAchieveMemberTreeDao.selectMatrixTreeByTopNode(memberId, 1); // 如果达到标准,则重置该矩阵树 if (matrixTree.size() == 7) { dappAchieveMemberTreeDao.resetMatrixTree(memberId); src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -68,6 +68,8 @@ walletInfo.setInviteId(member.getInviteId()); walletInfo.setBalance(walletCoin.getAvailableAmount()); walletInfo.setHasBuy(memberInfo.getActiveStatus()); walletInfo.setOutCnt(1); walletInfo.setProfit(BigDecimal.TEN); return walletInfo; } src/main/java/cc/mrbird/febs/dapp/vo/TeamListVo.java
@@ -1,10 +1,12 @@ package cc.mrbird.febs.dapp.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.List; /** * @author wzy @@ -14,15 +16,13 @@ @ApiModel(value = "TeamLIstVo", description = "团队列表接口返回参数类") public class TeamListVo { private String address; @ApiModelProperty(value = "名称") private String name; private Integer count; @ApiModelProperty(value = "是否认购") private int hasMoney; private BigDecimal coinCount; @ApiModelProperty(value = "子节点") private List<TeamListVo> children; private BigDecimal selfCoinCount; public BigDecimal getCoinCount() { return coinCount.setScale(2, RoundingMode.HALF_DOWN); } } src/main/java/cc/mrbird/febs/dapp/vo/TeamMatrixVo.java
New file @@ -0,0 +1,9 @@ package cc.mrbird.febs.dapp.vo; /** * @author wzy * @date 2022-08-26 **/ public class TeamMatrixVo { } src/main/java/cc/mrbird/febs/dapp/vo/WalletInfoVo.java
@@ -23,6 +23,12 @@ @ApiModelProperty(value = "余额") private BigDecimal balance; @ApiModelProperty(value = "出局次数") private int outCnt; @ApiModelProperty(value = "收益") private BigDecimal profit; @ApiModelProperty(value = "是否购买") private Integer hasBuy; } src/main/resources/mapper/dapp/DappAchieveMemberTreeDao.xml
@@ -9,23 +9,31 @@ <select id="selectMatrixTreeByTopNode" resultType="cc.mrbird.febs.dapp.entity.DappAchieveMemberTreeEntity"> select * from dapp_achieve_member_tree where top_node=#{memberId} and has_money=1 where top_node=#{memberId} <if test="hasMoney != null"> and has_money=#{hasMoney} </if> </select> <select id="selectNodeByDeep" resultType="cc.mrbird.febs.dapp.entity.DappAchieveMemberTreeEntity"> select * from dapp_achieve_member_tree where tree_node=#{memberId} and deep=#{deep} select a.*, b.invite_id, b.address from dapp_achieve_member_tree a, dapp_member b where a.tree_node=#{memberId} and a.deep=#{deep} and a.tree_node=b.id </select> <select id="resetMatrixTree" resultType="java.lang.Integer"> <select id="selectMatrixChildNode" resultType="cc.mrbird.febs.dapp.entity.DappAchieveMemberTreeEntity"> select a.*, b.invite_id, b.address from dapp_achieve_member_tree a, , dapp_member b where a.top_node=#{topNode} and a.parent_node=#{parentNode} and a.tree_node=b.id </select> <update id="resetMatrixTree"> update dapp_achieve_member_tree set has_money=2 where top_node=#{memberId} and deep in (2,3) </select> </update> <select id="reentryMoney" resultType="java.lang.Integer"> <update id="reentryMoney"> update dapp_achieve_member_tree set has_money=1 where tree_node=#{memberId} </select> </update> </mapper> src/main/resources/mapper/dapp/DappMemberDao.xml
@@ -110,19 +110,6 @@ where find_in_set(#{inviteId}, fee_profit_ids) </select> <!-- where find_in_set(#{record.inviteId}, a.fee_profit_ids)--> <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, a.balance selfCoinCount from dapp_member a where a.referer_id=#{record.inviteId} </select> <select id="selectMakerAddress" resultType="cc.mrbird.febs.dapp.entity.DappMemberEntity"> select * from dapp_member where maker_type=1 and account_type='normal'