From c9c9bde983d6b77d44d75ce9a0eba87a1aef55e2 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Sun, 13 Nov 2022 23:48:39 +0800 Subject: [PATCH] fix --- src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 91 +++++++++++++++++++++++++++------------------ 1 files changed, 55 insertions(+), 36 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 d5c7446..39d23d7 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 @@ -8,15 +8,18 @@ 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.enumerate.DataDictionaryEnum; import cc.mrbird.febs.dapp.mapper.*; import cc.mrbird.febs.dapp.service.DappSystemService; import cc.mrbird.febs.dapp.service.DappWalletService; import cc.mrbird.febs.rabbit.producer.ChainProducer; import cc.mrbird.febs.tree.MatrixTree; import cc.mrbird.febs.tree.MemberNode; +import cc.mrbird.febs.tree.TreeConstants; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -43,6 +46,7 @@ private final DappAchieveTreeDao dappAchieveTreeDao; private final DappAchieveMemberTreeDao dappAchieveMemberTreeDao; private final DappWalletService dappWalletService; + private final DataDictionaryCustomMapper dataDictionaryCustomMapper; @Override @@ -165,7 +169,7 @@ DappMemberEntity parent = dappMemberDao.selectMemberInfoByInviteId(member.getRefererId()); if (parent != null) { - BigDecimal directProfit = new BigDecimal("100").multiply(new BigDecimal("0.15")); + BigDecimal directProfit = TreeConstants.PUT_IN_AMOUNT.multiply(new BigDecimal("0.1")); dappWalletService.updateWalletCoinWithLock(directProfit, parent.getId(), 1); DappFundFlowEntity fundFlow = new DappFundFlowEntity(parent.getId(), directProfit, 3, 2, null, null); @@ -178,58 +182,38 @@ /** * 复投后,推一个拿一轮,推两个拿两轮,推三个后终身有效。 - * 按规则每轮未能提取的奖金分配: - * 50%直接进入TFC底池 - * 20%给到推荐人 - * 30%留下待提。 + * 200u单。 + * 无直推则收益200U + * 一人加一轮400u,二人二轮 + * 三人永久。 */ if (directCnt.size() < 3 && member.getOutCnt() != 0 && member.getOutCnt() - 1 == directCnt.size()) { - BigDecimal amount = new BigDecimal("190"); - - 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); + return; } else { - dappWalletService.releaseFrozenAmountWithLock(memberId); + BigDecimal amount = null; + if (directCnt.size() < 1) { + amount = TreeConstants.PUT_IN_AMOUNT; + } else { + amount = TreeConstants.FULL_PROFIT_AMOUNT; + } member.setOutCnt(member.getOutCnt() + 1); dappMemberDao.updateById(member); - dappWalletService.updateWalletCoinWithLock(new BigDecimal(190), member.getId(), 1); + dappWalletService.updateWalletCoinWithLock(amount, member.getId(), 1); - DappFundFlowEntity matrixProfitFlow = new DappFundFlowEntity(memberId, new BigDecimal("190"), 2, 2, null, null); + DappFundFlowEntity matrixProfitFlow = new DappFundFlowEntity(memberId, amount, 2, 2, null, null); dappFundFlowDao.insert(matrixProfitFlow); } - DappFundFlowEntity rePutInFlow = new DappFundFlowEntity(memberId, new BigDecimal("100").negate(), 1, 2, null, null); + DappFundFlowEntity rePutInFlow = new DappFundFlowEntity(memberId, TreeConstants.PUT_IN_AMOUNT.negate(), 1, 2, null, null); dappFundFlowDao.insert(rePutInFlow); - - DappFundFlowEntity safePoolFlow = new DappFundFlowEntity(memberId, new BigDecimal("10").negate(), 4, 2, null, null); - dappFundFlowDao.insert(safePoolFlow); - - DappMineDataEntity mineData = dappSystemDao.selectMineDataForOne(); - mineData.setSafePool(mineData.getSafePool().add(BigDecimal.TEN)); - dappSystemDao.updateMineData(mineData); } } @Override public void tfcNewPrice(String data) { - redisUtils.set(AppContants.REDIS_KEY_TFC_NEW_PRICE, new BigDecimal(data)); +// redisUtils.set(AppContants.REDIS_KEY_TFC_NEW_PRICE, new BigDecimal(data)); } @Override @@ -263,4 +247,39 @@ dappAchieveMemberTreeDao.emptyTable(); dappMemberDao.updateMemberActive(); } + + @Override + public void feeDistribute(String data) { + if (StrUtil.isBlank(data)) { + return; + } + + Long flowId = Long.parseLong(data); + DappFundFlowEntity fundFlow = dappFundFlowDao.selectById(flowId); + if (fundFlow == null) { + return; + } + + DataDictionaryCustom memberFeeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.MEMBER_FEE.getType(), DataDictionaryEnum.MEMBER_FEE.getCode()); + if (memberFeeDic == null) { + log.info("未设置手续费返利比例"); + return; + } + List<DappMemberEntity> memberList = dappMemberDao.selectMemberListNeedProfit(); + if (CollUtil.isEmpty(memberList)) { + return; + } + + BigDecimal feeReturnRatio = new BigDecimal(memberFeeDic.getValue()); + int size = memberList.size(); + BigDecimal totalProfit = fundFlow.getFee().multiply(feeReturnRatio.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN)); + BigDecimal perProfit = totalProfit.divide(BigDecimal.valueOf(size), 8, RoundingMode.HALF_DOWN); + + memberList.forEach(item -> { + dappWalletService.updateWalletMineWithLock(perProfit, item.getId(), 1); + + DappFundFlowEntity profitFlow = new DappFundFlowEntity(item.getId(), perProfit, 12, 2, null, null); + dappFundFlowDao.insert(profitFlow); + }); + } } -- Gitblit v1.9.1