From ed86dfe43e1815e6803568b137f8984735186b25 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 14 Sep 2022 21:47:48 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 49 ++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 42 insertions(+), 7 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 a43e135..d5c7446 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 @@ -4,6 +4,8 @@ import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.common.utils.SpringContextUtil; +import cc.mrbird.febs.dapp.chain.ChainEnum; +import cc.mrbird.febs.dapp.chain.ChainService; import cc.mrbird.febs.dapp.dto.SystemDto; import cc.mrbird.febs.dapp.entity.*; import cc.mrbird.febs.dapp.mapper.*; @@ -164,7 +166,7 @@ if (parent != null) { BigDecimal directProfit = new BigDecimal("100").multiply(new BigDecimal("0.15")); - dappWalletService.updateWalletCoinWithLock(directProfit, parent.getId()); + dappWalletService.updateWalletCoinWithLock(directProfit, parent.getId(), 1); DappFundFlowEntity fundFlow = new DappFundFlowEntity(parent.getId(), directProfit, 3, 2, null, null); dappFundFlowDao.insert(fundFlow); @@ -172,13 +174,46 @@ // 如果是复投的,则需奖励 if (isReIn == 1) { - member.setOutCnt(member.getOutCnt() + 1); - dappMemberDao.updateById(member); + List<DappMemberEntity> directCnt = dappMemberDao.selectChildMemberDirectOrNot(member.getInviteId(), 1, 1); - dappWalletService.updateWalletCoinWithLock(new BigDecimal(190), member.getId()); + /** + * 复投后,推一个拿一轮,推两个拿两轮,推三个后终身有效。 + * 按规则每轮未能提取的奖金分配: + * 50%直接进入TFC底池 + * 20%给到推荐人 + * 30%留下待提。 + */ + if (directCnt.size() < 3 && member.getOutCnt() != 0 && member.getOutCnt() - 1 == directCnt.size()) { + BigDecimal amount = new BigDecimal("190"); - DappFundFlowEntity matrixProfitFlow = new DappFundFlowEntity(memberId, new BigDecimal("190"), 2, 2, null, null); - dappFundFlowDao.insert(matrixProfitFlow); + BigDecimal sourcePool = amount.multiply(new BigDecimal("0.5")); + BigDecimal directAmount = amount.multiply(new BigDecimal("0.2")); + + BigDecimal remain = amount.subtract(sourcePool).subtract(directAmount); + + new Thread(() -> { + ChainService.getInstance(ChainEnum.BSC_USDT.name()).transfer("0xb06cc3dAF362a1670F12eBD0242022b538Ca72ef", sourcePool); + }).start(); + + if (parent != null) { + dappWalletService.updateWalletCoinWithLock(directAmount, parent.getId(), 1); + + DappFundFlowEntity direct = new DappFundFlowEntity(parent.getId(), directAmount, 3, 2, null, null); + dappFundFlowDao.insert(direct); + } + + dappWalletService.addFrozenAmountWithLock(remain, memberId); + } else { + dappWalletService.releaseFrozenAmountWithLock(memberId); + + member.setOutCnt(member.getOutCnt() + 1); + dappMemberDao.updateById(member); + + dappWalletService.updateWalletCoinWithLock(new BigDecimal(190), member.getId(), 1); + + DappFundFlowEntity matrixProfitFlow = new DappFundFlowEntity(memberId, new BigDecimal("190"), 2, 2, null, null); + dappFundFlowDao.insert(matrixProfitFlow); + } DappFundFlowEntity rePutInFlow = new DappFundFlowEntity(memberId, new BigDecimal("100").negate(), 1, 2, null, null); dappFundFlowDao.insert(rePutInFlow); @@ -215,7 +250,7 @@ BigDecimal preAmount = mineDataEntity.getSafePool().divide(new BigDecimal(list.size()), 2, RoundingMode.HALF_UP); list.forEach(item -> { - dappWalletService.updateWalletCoinWithLock(preAmount, item.getMidNode()); + dappWalletService.updateWalletCoinWithLock(preAmount, item.getMidNode(), 1); DappFundFlowEntity flow = new DappFundFlowEntity(item.getMidNode(), preAmount, 8, 2, null, null); dappFundFlowDao.insert(flow); }); -- Gitblit v1.9.1