| | |
| | | */ |
| | | |
| | | //当天实际当天滑点 |
| | | |
| | | BigDecimal gfaPrice = new BigDecimal( |
| | | redisUtils.getString(DataDicEnum.GFA_PRICE.getValue()) |
| | | ).setScale(2,BigDecimal.ROUND_DOWN); |
| | | BigDecimal usdtAmount = new BigDecimal( |
| | | redisUtils.getString(DataDicEnum.GFA_HUA_DIAN_WALLET_USDT_AMOUNT.getValue()) |
| | | ).setScale(2,BigDecimal.ROUND_DOWN); |
| | |
| | | if(BigDecimal.ZERO.compareTo(usdtAmount) > 0){ |
| | | return; |
| | | } |
| | | if(BigDecimal.ZERO.compareTo(coinAmount) > 0){ |
| | | return; |
| | | } |
| | | BigDecimal usdtAmountReal = usdtAmount; |
| | | BigDecimal coinAmountReal = coinAmount; |
| | | //生成一条记录 |
| | | DappHdRecord dappHdRecordAdd = new DappHdRecord(); |
| | | dappHdRecordAdd.setPrice(gfaPrice); |
| | | dappHdRecordAdd.setUsdtEvery(usdtAmountReal); |
| | | dappHdRecordAdd.setUsdtAmount(usdtAmountReal); |
| | | dappHdRecordAdd.setCoinEvery(coinAmountReal); |
| | | dappHdRecordAdd.setCoinAmount(coinAmountReal); |
| | | dappHdRecordMapper.insert(dappHdRecordAdd); |
| | | |
| | | /** |
| | | * 5%滑奖分配: |
| | | * 1%用自身质押 |
| | |
| | | //平分份数 |
| | | BigDecimal totalPercent = new BigDecimal(selfPercent + teamPercent + workPercent); |
| | | //每一份有多少 |
| | | BigDecimal divideEveryUsdt = usdtAmountReal.divide(totalPercent, 4, BigDecimal.ROUND_DOWN); |
| | | BigDecimal divideEveryUsdt = usdtAmountReal.divide(totalPercent, 8, BigDecimal.ROUND_DOWN); |
| | | //每一份有多少 |
| | | BigDecimal divideEveryCoin = coinAmountReal.divide(totalPercent, 4, BigDecimal.ROUND_DOWN); |
| | | BigDecimal divideEveryCoin = coinAmountReal.divide(totalPercent, 8, BigDecimal.ROUND_DOWN); |
| | | //1%用自身质押 |
| | | selfHdPerk(selfPercent,divideEveryUsdt,divideEveryCoin); |
| | | //3%用于团队业绩计算 |
| | |
| | | memberPerkMap.put(memberId,teamAchieveMemberSum); |
| | | } |
| | | |
| | | BigDecimal everyUsdt = multiplyDivideEveryUsdt.divide(memberPerkTotal,4,BigDecimal.ROUND_DOWN); |
| | | BigDecimal everyCoin = multiplyDivideEveryCoin.divide(memberPerkTotal,4,BigDecimal.ROUND_DOWN); |
| | | BigDecimal everyUsdt = multiplyDivideEveryUsdt.divide(memberPerkTotal,8,BigDecimal.ROUND_DOWN); |
| | | BigDecimal everyCoin = multiplyDivideEveryCoin.divide(memberPerkTotal,8,BigDecimal.ROUND_DOWN); |
| | | Set<Long> set = memberPerkMap.keySet(); // 得到所有key的集合 |
| | | for (Long memberId : set) { |
| | | //当前生效中的团队业绩 |
| | | BigDecimal amountMember = memberPerkMap.get(memberId); |
| | | //这个人实际可以分到的数量USDT |
| | | BigDecimal multiplyUsdt = amountMember.multiply(everyUsdt).setScale(4, BigDecimal.ROUND_DOWN); |
| | | BigDecimal multiplyUsdt = amountMember.multiply(everyUsdt).setScale(8, BigDecimal.ROUND_DOWN); |
| | | if(BigDecimal.ZERO.compareTo(multiplyUsdt) >= 0){ |
| | | continue; |
| | | } |
| | | //这个人实际可以分到的数量COIN |
| | | BigDecimal multiplyCoin = amountMember.multiply(everyCoin).setScale(4, BigDecimal.ROUND_DOWN); |
| | | BigDecimal multiplyCoin = amountMember.multiply(everyCoin).setScale(8, BigDecimal.ROUND_DOWN); |
| | | DappMemberEntity dappMemberEntityExit = dappMemberDao.selectById(memberId); |
| | | if(ObjectUtil.isEmpty(dappMemberEntityExit)){ |
| | | continue; |
| | |
| | | if(BigDecimal.ZERO.compareTo(amountMemberTotal) >= 0){ |
| | | return; |
| | | } |
| | | BigDecimal everyUsdt = multiplyDivideEveryUsdt.divide(amountMemberTotal,4,BigDecimal.ROUND_DOWN); |
| | | BigDecimal everyCoin = multiplyDivideEveryCoin.divide(amountMemberTotal,4,BigDecimal.ROUND_DOWN); |
| | | BigDecimal everyUsdt = multiplyDivideEveryUsdt.divide(amountMemberTotal,8,BigDecimal.ROUND_DOWN); |
| | | BigDecimal everyCoin = multiplyDivideEveryCoin.divide(amountMemberTotal,8,BigDecimal.ROUND_DOWN); |
| | | |
| | | Map<Long, List<DappAchieve>> collect = dappAchieves.stream().collect(Collectors.groupingBy(DappAchieve::getMemberId)); |
| | | Set<Long> set = collect.keySet(); // 得到所有key的集合 |
| | |
| | | //当前每个人生效中的质押总数 |
| | | BigDecimal amountMember = collect.get(memberId).stream().map(DappAchieve::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | //这个人实际可以分到的数量USDT |
| | | BigDecimal multiplyUsdt = amountMember.multiply(everyUsdt).setScale(4, BigDecimal.ROUND_DOWN); |
| | | BigDecimal multiplyUsdt = amountMember.multiply(everyUsdt).setScale(8, BigDecimal.ROUND_DOWN); |
| | | if(BigDecimal.ZERO.compareTo(multiplyUsdt) >= 0){ |
| | | continue; |
| | | } |
| | | //这个人实际可以分到的数量COIN |
| | | BigDecimal multiplyCoin = amountMember.multiply(everyCoin).setScale(4, BigDecimal.ROUND_DOWN); |
| | | BigDecimal multiplyCoin = amountMember.multiply(everyCoin).setScale(8, BigDecimal.ROUND_DOWN); |
| | | |
| | | DappMemberEntity dappMemberEntityExit = dappMemberDao.selectById(memberId); |
| | | if(ObjectUtil.isEmpty(dappMemberEntityExit)){ |