From 3fbe140485d5fe11c6aa7368b3eace17d14c97ea Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Sun, 23 Jun 2024 10:58:16 +0800 Subject: [PATCH] 后台矩阵列表 --- src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 30 ++++++++++++++++++++++++++---- 1 files changed, 26 insertions(+), 4 deletions(-) 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 59ab027..c239092 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 @@ -239,7 +239,7 @@ return; } //有,则上级节点出局复投,轮数加1,复投逻辑 - memberNodeNext(dbMemberNodeRoot); + this.memberNodeNext(dbMemberNodeRoot); }else{//父节点为左节点,那么没人出局 return; } @@ -256,6 +256,7 @@ * 有,则上级节点出局复投,轮数加1,复投逻辑 * @param dbMemberNodeRoot */ + @Override public void memberNodeNext(DbMemberNode dbMemberNodeRoot) { log.info("进入复投"); @@ -320,8 +321,6 @@ //如果是第一轮,下一个新团有投入,则产生收益 //复投或者收益的金额 if(1 == countFund){//第一轮 - //复投本轮,轮数 +1 - futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1); //收益复投(当前的下一个星团没有已投入),还是收益提出 Integer nextType = type + 1; QueryWrapper<DbMemberNode> nodeQueryWrapper = new QueryWrapper<>(); @@ -334,6 +333,8 @@ }else{ perkSevenTeen(memberId,perkAmount,countFund); } + //复投本轮,轮数 +1 + futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1); }else{//2-9轮 //复投本轮,轮数 +1 futouSixTeen(memberId,dbMemberNodeRoot.getAmount(),type,countFund+1); @@ -397,13 +398,34 @@ dbMemberNode.setWorkState(1); dbMemberNodeMapper.insert(dbMemberNode); + boolean flag = false;//下一级的再次复投 if(ObjectUtil.isNotEmpty(dbMemberNodeOld)){ if(dbMemberNode.getLeftRight() == 1){ dbMemberNodeOld.setLeftNode(dbMemberNode.getId()); }else{ dbMemberNodeOld.setRightNode(dbMemberNode.getId()); + flag = true; } dbMemberNodeMapper.updateById(dbMemberNodeOld); + } + if(flag){ + if(ObjectUtil.isEmpty(dbMemberNodeOld.getParentNode())){ + return; + } + Long parentNode = dbMemberNodeOld.getParentNode(); + DbMemberNode dbMemberNodeRoot = dbMemberNodeMapper.selectById(parentNode); + if(ObjectUtil.isEmpty(dbMemberNodeRoot)){ + return; + } + if(dbMemberNodeRoot.getLeftRight() == 1){ + return; + } + //每个星团,只复投10轮 + if(10 < dbMemberNodeRoot.getCountFund()){ + return; + } + + this.memberNodeNext(dbMemberNodeRoot); } } @@ -639,7 +661,7 @@ DataDictionaryEnum.PERK_NUM.getType(), DataDictionaryEnum.PERK_NUM.getCode() ); - BigDecimal perKNum = new BigDecimal(ObjectUtil.isEmpty(perKNumDic) ? "1000" : perKNumDic.getValue()); + BigDecimal perKNum = new BigDecimal(ObjectUtil.isEmpty(perKNumDic) ? "200" : perKNumDic.getValue()); BigDecimal perkAmount = amount.multiply(perkPercent).divide(perKNum, 8, BigDecimal.ROUND_DOWN); if(BigDecimal.ZERO.compareTo(perkAmount) >= 0){ -- Gitblit v1.9.1