| | |
| | | BigDecimal ccToday = BigDecimal.ZERO; |
| | | if(CollUtil.isNotEmpty(ccTodays)){ |
| | | for(DappMemberFund dappMemberFund : ccTodays){ |
| | | BigDecimal sameCoin = dappMemberFund.getSameCoin(); |
| | | BigDecimal finxMineCoin = dappMemberFund.getFinxMineCoin(); |
| | | BigDecimal price = dappMemberFund.getPrice(); |
| | | BigDecimal add = sameCoin.divide(price, 8, BigDecimal.ROUND_DOWN).add(finxMineCoin); |
| | | BigDecimal usdtCoin = dappMemberFund.getUsdtCoin(); |
| | | BigDecimal coinTarget = dappMemberFund.getCoinTarget(); |
| | | BigDecimal add = coinTarget.add(usdtCoin); |
| | | ccToday = ccToday.add(add); |
| | | } |
| | | } |
| | |
| | | |
| | | List<DappMemberFund> dappMemberFunds = dappMemberFundMapper.selectList(null); |
| | | walletInfo.setCcTotal(CollUtil.isEmpty(dappMemberFunds) ? BigDecimal.ZERO : |
| | | dappMemberFunds.stream().map(item-> item.getAmount()).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(8,BigDecimal.ROUND_DOWN)); |
| | | dappMemberFunds.stream().map(DappMemberFund::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(8,BigDecimal.ROUND_DOWN)); |
| | | |
| | | List<DappAchieve> dappAchieves = dappAchieveMapper.selectListByMemberId(memberId); |
| | | |
| | | BigDecimal goldAmountDone = dappAchieveMapper.selectGoldAmountByMemberId(memberId); |
| | | BigDecimal coinAmountDone = dappAchieveMapper.selectCoinAmountByMemberId(memberId); |
| | | if(CollUtil.isNotEmpty(dappAchieves)){ |
| | | BigDecimal goldAmount = dappAchieves.stream().map(item-> item.getGoldAmount()).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(8,BigDecimal.ROUND_DOWN); |
| | | BigDecimal coinAmount = dappAchieves.stream().map(item-> item.getCoinAmount()).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(8,BigDecimal.ROUND_DOWN); |
| | | BigDecimal goldAmount = dappAchieves.stream().map(DappAchieve::getGoldAmount).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(8,BigDecimal.ROUND_DOWN); |
| | | BigDecimal coinAmount = dappAchieves.stream().map(DappAchieve::getCoinAmount).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(8,BigDecimal.ROUND_DOWN); |
| | | BigDecimal goldAmountAva = goldAmount.subtract(goldAmountDone);//金本位剩余 |
| | | BigDecimal coinAmountAva = coinAmount.subtract(coinAmountDone);//币本位剩余 |
| | | if(goldAmountAva.compareTo(BigDecimal.ZERO) > 0){ |
| | | if(goldAmountAva.compareTo(new BigDecimal(0.001)) > 0){ |
| | | walletInfo.setGoldAmount(goldAmountAva); |
| | | }else{ |
| | | walletInfo.setGoldAmount(BigDecimal.ZERO); |
| | | } |
| | | if(coinAmountAva.compareTo(BigDecimal.ZERO) > 0){ |
| | | if(coinAmountAva.compareTo(new BigDecimal(0.001)) > 0){ |
| | | walletInfo.setCoinAmount(coinAmountAva); |
| | | }else{ |
| | | walletInfo.setCoinAmount(BigDecimal.ZERO); |
| | |
| | | |
| | | BigDecimal gfaDays = new BigDecimal(redisUtils.getString(DataDicEnum.GFA_DAYS.getValue())).setScale(2,BigDecimal.ROUND_DOWN); |
| | | walletInfo.setGfaDays(gfaDays); |
| | | |
| | | List<DappAchieve> dappAchieves1 = dappAchieveMapper.selectList(null); |
| | | walletInfo.setAddressCount(CollUtil.isEmpty(dappAchieves1) ? 0 : dappAchieves1.size()); |
| | | |
| | | return walletInfo; |
| | | } |
| | |
| | | dappAchieve.setAmountMax(achieveOut.multiply(amount).setScale(2,BigDecimal.ROUND_DOWN)); |
| | | dappAchieve.setState(DappAchieve.STATUS_ING); |
| | | dappAchieve.setAmountDone(BigDecimal.ZERO); |
| | | |
| | | /** |
| | | * 计算金本位和币本位 |
| | | * 金本位:数量*价格*70*产矿百分比 |
| | | * 币本位:数量*30*产矿百分比 |
| | | */ |
| | | BigDecimal price = dappAchieve.getPrice(); |
| | | BigDecimal goldAmount = amount.multiply(price).multiply(new BigDecimal("0.7")).multiply(achieveOut).setScale(8, BigDecimal.ROUND_DOWN); |
| | | BigDecimal coinAmount = amount.multiply(new BigDecimal("0.3")).multiply(achieveOut).setScale(8, BigDecimal.ROUND_DOWN); |
| | | dappAchieve.setGoldAmount(goldAmount); |
| | | dappAchieve.setCoinAmount(coinAmount); |
| | | dappAchieveMapper.insert(dappAchieve); |
| | | |
| | | asyncCjService.insertTeamPerk(flow.getId(), dappAchieve.getId()); |
| | | asyncCjService.calculateAchieve(dappAchieve); |
| | | // asyncCjService.calculateAchieve(dappAchieve); |
| | | |
| | | //发送一个延时队列消息。24小时之后产生第一次的质押产出 |
| | | // chainProducer.sendZhiYaDelayMsg(dappAchieve.getId(), 24 * 60 * 60 * 1000L); |
| | |
| | | IPage<DappMemberFund> records = dappFundFlowDao.memberFundList(page, dappMemberFund); |
| | | return records.getRecords(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse addressSize(AddressSizeDto addressSizeDto) { |
| | | DataDictionaryCustom addressSizeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDicEnum.ADDRESS_SIZE.getValue(), |
| | | DataDicEnum.ADDRESS_SIZE.getValue() |
| | | ); |
| | | addressSizeDic.setValue(addressSizeDto.getAddressSize()); |
| | | dataDictionaryCustomMapper.updateById(addressSizeDic); |
| | | return new FebsResponse().success(); |
| | | } |
| | | } |