| | |
| | | PoolEnum.USDT_A_PERCENT.getType(), |
| | | PoolEnum.USDT_A_PERCENT.getCode() |
| | | ); |
| | | BigDecimal usdtAPercent = new BigDecimal(StrUtil.isEmpty(usdtAPercentDic.getValue()) ? "0.9" : usdtAPercentDic.getValue()); |
| | | BigDecimal usdtAPercent = new BigDecimal(StrUtil.isEmpty(usdtAPercentDic.getValue()) ? "0.7" : usdtAPercentDic.getValue()); |
| | | BigDecimal usdtAAmount = amount.multiply(usdtAPercent).setScale(4, BigDecimal.ROUND_DOWN); |
| | | |
| | | //生成一条进行中的90%进入A币底池的资金流水记录 |
| | | //生成一条进行中的70%进入A币底池的资金流水记录 |
| | | DappFundFlowEntity fundFlowToA = new DappFundFlowEntity( |
| | | 1L, |
| | | usdtAAmount, |
| | |
| | | dappFundFlowDao.insert(fundFlowToA); |
| | | //90%进入A币底池 |
| | | chainProducer.sendAntACoinInAPoolMsg(fundFlowToA.getId()); |
| | | |
| | | BigDecimal usdtWAmount = amount.multiply(new BigDecimal(0.2)).setScale(4, BigDecimal.ROUND_DOWN); |
| | | //生成一条进行中的20%进入A币底池的资金流水记录 |
| | | DappFundFlowEntity fundFlowToW = new DappFundFlowEntity( |
| | | 1L, |
| | | usdtWAmount, |
| | | FundFlowEnum.USDT_IN_W_POOL.getCode(), |
| | | 1, |
| | | BigDecimal.ZERO, |
| | | null, |
| | | chergeRecordId); |
| | | dappFundFlowDao.insert(fundFlowToW); |
| | | |
| | | DataDictionaryCustom usdtBPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | PoolEnum.USDT_B_PERCENT.getType(), |
| | |
| | | /** |
| | | * 20%全网加权平分,按照个人投资占比全网的比例去平分 |
| | | */ |
| | | BigDecimal poolAllMemberAPercentCntAva = allMemberPerk(poolAllMemberAPercentCnt, FundFlowEnum.POOL_MEMBER_A_CNT.getCode()); |
| | | DappFundFlowEntity poolAllMemberAFundFlowAva = new DappFundFlowEntity( |
| | | 1L, |
| | | poolAllMemberAPercentCnt.subtract(poolAllMemberAPercentCntAva), |
| | | FundFlowEnum.POOL_MEMBER_A_CNT.getCode(), |
| | | 2, |
| | | BigDecimal.ZERO, |
| | | null, |
| | | chergeRecordId); |
| | | dappFundFlowDao.insert(poolAllMemberAFundFlowAva); |
| | | dappWalletService.updateWalletMineWithLock(poolAllMemberAPercentCnt.subtract(poolAllMemberAPercentCntAva), |
| | | 1L,1); |
| | | chainProducer.sendAllMemberPerkAvaMsg(poolAllMemberAFundFlow.getId()); |
| | | // BigDecimal poolAllMemberAPercentCntAva = allMemberPerk(poolAllMemberAPercentCnt, FundFlowEnum.POOL_MEMBER_A_CNT.getCode()); |
| | | // DappFundFlowEntity poolAllMemberAFundFlowAva = new DappFundFlowEntity( |
| | | // 294L, |
| | | // poolAllMemberAPercentCnt.subtract(poolAllMemberAPercentCntAva), |
| | | // FundFlowEnum.POOL_MEMBER_A_CNT.getCode(), |
| | | // 2, |
| | | // BigDecimal.ZERO, |
| | | // null, |
| | | // chergeRecordId); |
| | | // dappFundFlowDao.insert(poolAllMemberAFundFlowAva); |
| | | // dappWalletService.updateWalletMineWithLock(poolAllMemberAPercentCnt.subtract(poolAllMemberAPercentCntAva), |
| | | // 294L,1); |
| | | |
| | | /** |
| | | * 10%直推 |
| | |
| | | } |
| | | if(directAPercentCnt.compareTo(directAPercentFundFlowToMemberFlag) > 0){ |
| | | DappFundFlowEntity directAPercentFundFlowToMemberAva = new DappFundFlowEntity( |
| | | 1L, |
| | | 294L, |
| | | directAPercentCnt.subtract(directAPercentFundFlowToMemberFlag), |
| | | FundFlowEnum.DIRECT_A_PERCENT.getCode(), |
| | | 2, |
| | |
| | | chergeRecordId); |
| | | dappFundFlowDao.insert(directAPercentFundFlowToMemberAva); |
| | | dappWalletService.updateWalletMineWithLock(directAPercentCnt.subtract(directAPercentFundFlowToMemberFlag), |
| | | 1L,1); |
| | | 294L,1); |
| | | } |
| | | } |
| | | /** |
| | |
| | | |
| | | if(nodeAPercentCnt.compareTo(nodeAPercentCntAva) > 0){ |
| | | DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity( |
| | | 1L, |
| | | 294L, |
| | | nodeAPercentCnt.subtract(nodeAPercentCntAva), |
| | | FundFlowEnum.NODE_A_PERCENT_TO_MEMBER.getCode(), |
| | | 2, |
| | |
| | | chergeRecordId); |
| | | dappFundFlowDao.insert(nodeAPercentFundFlowAva); |
| | | dappWalletService.updateWalletMineWithLock(nodeAPercentCnt.subtract(nodeAPercentCntAva), |
| | | 1L,1); |
| | | 294L,1); |
| | | } |
| | | /** |
| | | * 5%基金会 |
| | |
| | | |
| | | //生成一条5%基金会的资金流水记录 |
| | | DappFundFlowEntity foundationAPercentFundFlow = new DappFundFlowEntity( |
| | | 1L, |
| | | 295L, |
| | | foundationAPercentCnt, |
| | | FundFlowEnum.FOUNDATION_A_PERCENT.getCode(), |
| | | 2, |
| | |
| | | chergeRecordId); |
| | | dappFundFlowDao.insert(foundationAPercentFundFlow); |
| | | //用户的A币账户增加memberGetACnt数量 |
| | | dappWalletService.updateWalletMineWithLock(foundationAPercentCnt,1L,1); |
| | | dappWalletService.updateWalletMineWithLock(foundationAPercentCnt,295L,1); |
| | | /** |
| | | * 10%级差奖 |
| | | */ |
| | |
| | | BigDecimal amount = dappFundFlowEntity.getAmount(); |
| | | //目标地址 |
| | | String address = AppContants.ADDRESS_A_POOL_PEOJECT; |
| | | if(5 == dappFundFlowEntity.getType()){ |
| | | address = AppContants.ADDRESS_A_POOL_PEOJECT; |
| | | }else if(34 == dappFundFlowEntity.getType() ){ |
| | | address = ChainEnum.BSC_USDT_W_POOL.getAddress(); |
| | | }else{ |
| | | return; |
| | | } |
| | | /** |
| | | * 发起USDT转账 |
| | | */ |
| | |
| | | dappFundFlowDao.updateById(dappFundFlowEntity); |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | String address = AppContants.ADDRESS_A_POOL_PEOJECT; |
| | | /** |
| | | * 发起USDT转账 |
| | | */ |
| | | String hash = ChainService.getInstance(ChainEnum.BSC_USDT_A_POOL.name()).transfer(address, new BigDecimal("0.01")); |
| | | } |
| | | // public static void main(String[] args) { |
| | | // String address = AppContants.ADDRESS_A_POOL_PEOJECT; |
| | | // /** |
| | | // * 发起USDT转账 |
| | | // */ |
| | | // String hash = ChainService.getInstance(ChainEnum.BSC_USDT_A_POOL.name()).transfer(address, new BigDecimal("0.01")); |
| | | // } |
| | | |
| | | @Override |
| | | public void AntACoinBPollInMsg(Long id) { |
| | |
| | | dappFundFlowDao.updateById(dappFundFlowEntity); |
| | | BigDecimal subtract = amountTC.subtract(teamIncomePerkTotal); |
| | | //用户的A币账户增加divide数量 |
| | | if(amountTC.compareTo(teamIncomePerkTotal) > 0){ |
| | | DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity( |
| | | 1L, |
| | | subtract, |
| | | FundFlowEnum.LEVEL_A_PERCENT_CNT_MEMBER.getCode(), |
| | | 2, |
| | | BigDecimal.ZERO, |
| | | null, |
| | | systemProfitId); |
| | | dappFundFlowDao.insert(nodeAPercentFundFlowAva); |
| | | dappWalletService.updateWalletMineWithLock(subtract, |
| | | 1L,1); |
| | | } |
| | | // if(amountTC.compareTo(teamIncomePerkTotal) > 0){ |
| | | // DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity( |
| | | // 294L, |
| | | // subtract, |
| | | // FundFlowEnum.LEVEL_A_PERCENT_CNT_MEMBER.getCode(), |
| | | // 2, |
| | | // BigDecimal.ZERO, |
| | | // null, |
| | | // systemProfitId); |
| | | // dappFundFlowDao.insert(nodeAPercentFundFlowAva); |
| | | // dappWalletService.updateWalletMineWithLock(subtract, |
| | | // 294L,1); |
| | | // } |
| | | } |
| | | } |
| | | } |
| | |
| | | //用户的A币账户增加divide数量 |
| | | if(averagePerkCnt.compareTo(averagePerkCntAva) > 0){ |
| | | DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity( |
| | | 1L, |
| | | 294L, |
| | | averagePerkCnt.subtract(averagePerkCntAva), |
| | | FundFlowEnum.DAO_3_NODE_PERK.getCode(), |
| | | 2, |
| | |
| | | systemProfitId); |
| | | dappFundFlowDao.insert(nodeAPercentFundFlowAva); |
| | | dappWalletService.updateWalletMineWithLock(averagePerkCnt.subtract(averagePerkCntAva), |
| | | 1L,1); |
| | | 294L,1); |
| | | } |
| | | //生成流水记录 |
| | | DappFundFlowEntity nodeThreeFundFlow = new DappFundFlowEntity( |
| | |
| | | //用户的A币账户增加divide数量 |
| | | if(averagePerkFourCnt.compareTo(averagePerkFourCntAva) > 0){ |
| | | DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity( |
| | | 1L, |
| | | 294L, |
| | | averagePerkFourCnt.subtract(averagePerkFourCntAva), |
| | | FundFlowEnum.DAO_4_NODE_PERK.getCode(), |
| | | 2, |
| | |
| | | systemProfitId); |
| | | dappFundFlowDao.insert(nodeAPercentFundFlowAva); |
| | | dappWalletService.updateWalletMineWithLock(averagePerkFourCnt.subtract(averagePerkFourCntAva), |
| | | 1L,1); |
| | | 294L,1); |
| | | } |
| | | DappFundFlowEntity nodeFourFundFlow = new DappFundFlowEntity( |
| | | 1L, |
| | |
| | | //用户的A币账户增加divide数量 |
| | | if(averagePerkFiveCnt.compareTo(averagePerkFiveCntAva) > 0){ |
| | | DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity( |
| | | 1L, |
| | | 294L, |
| | | averagePerkFiveCnt.subtract(averagePerkFiveCntAva), |
| | | FundFlowEnum.DAO_5_NODE_PERK.getCode(), |
| | | 2, |
| | |
| | | systemProfitId); |
| | | dappFundFlowDao.insert(nodeAPercentFundFlowAva); |
| | | dappWalletService.updateWalletMineWithLock(averagePerkFiveCnt.subtract(averagePerkFiveCntAva), |
| | | 1L,1); |
| | | 294L,1); |
| | | } |
| | | DappFundFlowEntity nodeFiveFundFlow = new DappFundFlowEntity( |
| | | 1L, |
| | |
| | | //用户的A币账户增加divide数量 |
| | | if(nodeFiveEqualsCnt.compareTo(nodeFiveEqualsCntAva) > 0){ |
| | | DappFundFlowEntity nodeAPercentFundFlowAva = new DappFundFlowEntity( |
| | | 1L, |
| | | 294L, |
| | | nodeFiveEqualsCnt.subtract(nodeFiveEqualsCntAva), |
| | | FundFlowEnum.DAO_5_NODE_EQUALS_PERK.getCode(), |
| | | 2, |
| | |
| | | systemProfitId); |
| | | dappFundFlowDao.insert(nodeAPercentFundFlowAva); |
| | | dappWalletService.updateWalletMineWithLock(nodeFiveEqualsCnt.subtract(nodeFiveEqualsCntAva), |
| | | 1L,1); |
| | | 294L,1); |
| | | } |
| | | DappFundFlowEntity nodeFiveEqualsFundFlow = new DappFundFlowEntity( |
| | | 1L, |
| | |
| | | //获取type级别的会员 |
| | | List<DappMemberEntity> dappMemberEntities = dappMemberDao.selectMemberByAccountTypeAnd(type); |
| | | //每日补贴总数 |
| | | BigDecimal nodePerk = nodeFivePoolDicCnt.multiply(AppContants.NODE_PERK_PERCENT); |
| | | // BigDecimal nodePerk = nodeFivePoolDicCnt.multiply(AppContants.NODE_PERK_PERCENT); |
| | | BigDecimal nodePerk = nodeFivePoolDicCnt; |
| | | if(CollUtil.isNotEmpty(dappMemberEntities)){ |
| | | //每人的补贴 |
| | | BigDecimal averagePerk = nodePerk.divide(new BigDecimal(dappMemberEntities.size()), 4, BigDecimal.ROUND_DOWN); |
| | |
| | | dappFundFlowEntity.setFromHash(hash); |
| | | dappFundFlowEntity.setStatus(2); |
| | | dappFundFlowDao.updateById(dappFundFlowEntity); |
| | | } |
| | | |
| | | /** |
| | | * 紧急提现方法 |
| | | */ |
| | | public static void main(String[] args) { |
| | | BigDecimal amount = new BigDecimal("104.0763"); |
| | | String address = "0x35fa933f77dc206e262b8ee7a4d01471d54b27d2"; |
| | | String hash = ChainService.getInstance(ChainEnum.BSC_USDT_W_POOL.name()).transfer(address, amount); |
| | | System.out.println(hash); |
| | | } |
| | | |
| | | @Override |
| | |
| | | address = AppContants.ADDRESS_A_POOL_PEOJECT; |
| | | }else if(6 == dappFundFlowEntity.getType()){ |
| | | address = AppContants.ADDRESS_B_POOL_PEOJECT; |
| | | }else if(34 == dappFundFlowEntity.getType()){ |
| | | address = ChainEnum.BSC_USDT_W_POOL.getAddress(); |
| | | }else{ |
| | | return; |
| | | } |
| | |
| | | |
| | | } |
| | | |
| | | // public static void main(String[] args) { |
| | | // for(int i = 0; i < 100; i++){ |
| | | // ChainService.getInstance(ChainEnum.BSC_USDT_A_POOL.name()).transfer(AppContants.ADDRESS_A_POOL_PEOJECT, new BigDecimal(70)); |
| | | // try { |
| | | // Thread.sleep(20000); |
| | | // } catch (InterruptedException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // |
| | | // ChainService.getInstance(ChainEnum.BSC_USDT_A_POOL.name()).transfer(AppContants.ADDRESS_B_POOL_PEOJECT, new BigDecimal(20)); |
| | | // |
| | | // try { |
| | | // Thread.sleep(20000); |
| | | // } catch (InterruptedException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // |
| | | // ChainService.getInstance(ChainEnum.BSC_USDT_A_POOL.name()).transfer(ChainEnum.BSC_USDT_W_POOL.getAddress(), new BigDecimal(10)); |
| | | // try { |
| | | // Thread.sleep(20000); |
| | | // } catch (InterruptedException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | @Override |
| | | public void allMemberPerkAvaMsg(Long id) { |
| | | DappFundFlowEntity dappFundFlowEntity = dappFundFlowDao.selectById(id); |
| | | if(ObjectUtil.isEmpty(dappFundFlowEntity)){ |
| | | return; |
| | | } |
| | | |
| | | BigDecimal poolAllMemberAPercentCnt = dappFundFlowEntity.getAmount(); |
| | | BigDecimal poolAllMemberAPercentCntAva = allMemberPerk(poolAllMemberAPercentCnt, FundFlowEnum.POOL_MEMBER_A_CNT.getCode()); |
| | | DappFundFlowEntity poolAllMemberAFundFlowAva = new DappFundFlowEntity( |
| | | 294L, |
| | | poolAllMemberAPercentCnt.subtract(poolAllMemberAPercentCntAva), |
| | | FundFlowEnum.POOL_MEMBER_A_CNT.getCode(), |
| | | 2, |
| | | BigDecimal.ZERO, |
| | | null, |
| | | dappFundFlowEntity.getSystemProfitId()); |
| | | dappFundFlowDao.insert(poolAllMemberAFundFlowAva); |
| | | dappWalletService.updateWalletMineWithLock(poolAllMemberAPercentCnt.subtract(poolAllMemberAPercentCntAva), |
| | | 294L,1); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 测试转账 |
| | | * @param args |
| | | */ |
| | | // public static void main(String[] args) { |
| | | // String transfer = ChainService.getInstance(ChainEnum.BSC_USDT_A_POOL.name()).transfer("0x74fC0e035f315F7BD8b7686e22581AB1afC45e97", new BigDecimal(1)); |
| | | // System.out.println(transfer); |
| | | // |
| | | // } |
| | | |
| | | /** |
| | | * 生成当前分钟的k线数据,type为0 |
| | | */ |