fix
Helius
2022-07-28 429316cdba93e20e162163040469505129505e24
fix
2 files modified
30 ■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java 28 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
@@ -46,4 +46,6 @@
    boolean systemHasStart();
    BigDecimal newestPrice();
    boolean hasProfit(String address);
}
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -384,8 +384,7 @@
    @Override
    public void userBuyReward(Long id) {
        // 系统未启动不参与
        String hasStart = redisUtils.getString(AppContants.SYSTEM_START_FLAG);
        if (!"start".equals(hasStart)) {
        if (!systemHasStart()) {
            return;
        }
@@ -394,6 +393,10 @@
        DappMemberEntity member = dappMemberDao.selectById(fundFlow.getMemberId());
        DappMemberEntity referer = dappMemberDao.selectMemberInfoByInviteId(member.getRefererId());
        if (referer == null || "admin".equals(referer.getAccountType())) {
            return;
        }
        if (!hasProfit(referer.getAddress())) {
            return;
        }
@@ -562,12 +565,7 @@
            return;
        }
        BigDecimal balance = ChainService.getInstance(ChainEnum.BSC_TFC.name()).balanceOf(member.getAddress());
        BigDecimal usdtBalance = balance.multiply(newestPrice());
        DataDictionaryCustom data = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.DIC_TYPE_SYSTEM_SETTING, AppContants.DIC_VALUE_MINI_HOLD_COIN_LIMIT);
        BigDecimal miniLimit = new BigDecimal(data.getValue());
        if (usdtBalance.compareTo(miniLimit) < 0) {
        if (!hasProfit(parent.getAddress())) {
            return;
        }
@@ -627,4 +625,18 @@
            return new BigDecimal("0.05");
        }
    }
    @Override
    public boolean hasProfit(String address) {
        BigDecimal balance = ChainService.getInstance(ChainEnum.BSC_TFC.name()).balanceOf(address);
        BigDecimal usdtBalance = balance.multiply(newestPrice());
        DataDictionaryCustom data = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.DIC_TYPE_SYSTEM_SETTING, AppContants.DIC_VALUE_MINI_HOLD_COIN_LIMIT);
        BigDecimal miniLimit = new BigDecimal(data.getValue());
        if (usdtBalance.compareTo(miniLimit) < 0) {
            return false;
        }
        return true;
    }
}