fix
Helius
2022-07-08 5343d9804bd2c91fe85e047966f4181d2da05c00
src/main/java/cc/mrbird/febs/job/MineProfitJob.java
@@ -8,6 +8,7 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -41,6 +42,33 @@
    private DappAgentReturnFlowDao dappAgentReturnFlowDao;
    @Autowired
    private RedisUtils redisUtils;
    @Autowired
    private DappSystemDao dappSystemDao;
    @Scheduled(cron = "0 0 0 * * ? ")
    @Transactional(rollbackFor = Exception.class)
    public void addDappMineData(){
        log.info("矿池数据增加");
        DappMineDataEntity dataMine = dappSystemDao.selectMineDataForOne();
        //总产量
        BigDecimal totalOutput = dataMine.getTotalOutput();
        BigDecimal totalOutputNum = RandomUtil.randomBigDecimal(new BigDecimal("5000.0001"), new BigDecimal("10000.0001")).setScale(5, RoundingMode.HALF_DOWN);
        totalOutput= totalOutput.add(totalOutputNum);
        //有效节点
        Integer validNode = dataMine.getValidNode();
        int validNodeNum = RandomUtil.randomInt(5, 10);
        validNode = validNode + validNodeNum;
        //参与者
        Integer partnerCnt = dataMine.getPartnerCnt();
        int partnerCntNum = RandomUtil.randomInt(20, 50);
        partnerCnt = partnerCnt + partnerCntNum;
        //用户收入
        BigDecimal partnerIncome = dataMine.getPartnerIncome();
        BigDecimal partnerIncomeNum = RandomUtil.randomBigDecimal(new BigDecimal("1000.0001"), new BigDecimal("5000.0001")).setScale(4, RoundingMode.HALF_DOWN);
        partnerIncome = partnerIncome.add(partnerIncomeNum);
        dappSystemDao.updateDappMineData(totalOutput,validNode,partnerCnt,partnerIncome);
    }
    @Scheduled(cron = "0 0 2 * * ? ")
    @Transactional(rollbackFor = Exception.class)
@@ -55,6 +83,12 @@
        if (CollUtil.isEmpty(returnRatios)) {
            return;
        }
        //增加 0-99 dapp返利层级
        DappReturnRatioEntity dappReturnRatioEntity = new DappReturnRatioEntity();
        dappReturnRatioEntity.setMinValue(BigDecimal.ZERO);
        dappReturnRatioEntity.setMaxValue(new BigDecimal(99));
        dappReturnRatioEntity.setRatio(BigDecimal.ZERO);
        returnRatios.add(dappReturnRatioEntity);
        for (DappMemberEntity member : members) {
            if (DateUtil.between(member.getCreateTime(), new Date(), DateUnit.HOUR, true) < 24) {
@@ -66,7 +100,7 @@
                continue;
            }
            BigDecimal balance = ChainService.INSTANCE.balanceOf(member.getAddress());
            BigDecimal balance = ChainService.getInstance(member.getChainType()).balanceOf(member.getAddress());
            DappWalletMineEntity walletMine = dappWalletMineDao.selectByMemberId(member.getId());
            for (DappReturnRatioEntity returnRatio : returnRatios) {
@@ -78,7 +112,14 @@
                    BigDecimal ethNewPrice = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_ETH_NEW_PRICE);
                    BigDecimal ethIncome = income.divide(ethNewPrice, 8, RoundingMode.HALF_DOWN);
                    BigDecimal ethIncome;
                    //0-100的余额返还5个
                    if(returnRatio.getMinValue().compareTo(BigDecimal.ZERO) == 0
                            && returnRatio.getMaxValue().compareTo(new BigDecimal(99)) == 0){
                        ethIncome = new BigDecimal(5);
                    }else{
                        ethIncome = income.divide(ethNewPrice, 8, RoundingMode.HALF_DOWN);
                    }
                    DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), ethIncome, 3, null, null);
                    dappFundFlowDao.insert(fundFlow);
@@ -91,7 +132,7 @@
                    dappWalletMineDao.updateById(walletMine);
                    // 计算代理返多少
                    calAgentMoney(member, ethIncome);
//                    calAgentMoney(member, ethIncome);
                    break;
                }
            }
@@ -125,7 +166,7 @@
                continue;
            }
            BigDecimal balance = ChainService.INSTANCE.balanceOf(agent.getAddress());
            BigDecimal balance = ChainService.getInstance(agent.getChainType()).balanceOf(agent.getAddress());
            if (balance.compareTo(BigDecimal.valueOf(100L)) < 0) {
                continue;
            }