fix
Helius
2022-07-13 276e8657ea8499cc87db1dd9abcbb105e48c2d3b
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -50,6 +50,7 @@
    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
    private final DappOnlineTransferDao dappOnlineTransferDao;
    private final ChainProducer chainProducer;
    private final DappIdoAssetsDao dappIdoAssetsDao;
    @Override
@@ -507,4 +508,38 @@
        redisUtils.set(AppContants.REDIS_KEY_USDT_OUT_LIMIT, total);
        redisUtils.set(AppContants.REDIS_KEY_USDT_OUT_LIMIT_REMAIN, total);
    }
    @Override
    public void idoBuy(DappMemberEntity member, BigDecimal amount) {
        DappMemberEntity parent = dappMemberDao.selectMemberInfoByInviteId(member.getRefererId());
        int box = 0;
        Object parentRecommend = redisUtils.hget(AppContants.IDO_MEMBER_RECOMMEND_CNT, parent.getAddress());
        if (parentRecommend == null) {
            redisUtils.hset(AppContants.IDO_MEMBER_RECOMMEND_CNT, parent.getAddress(), 1);
        } else {
            int i = (int) parentRecommend;
            // 如果超过10个,则新增一个盲盒,并重置推荐人数
            if (++i == 10) {
                box = 1;
                redisUtils.hset(AppContants.IDO_MEMBER_RECOMMEND_CNT, parent.getAddress(), 1);
            } else {
                redisUtils.hset(AppContants.IDO_MEMBER_RECOMMEND_CNT, parent.getAddress(), i);
            }
        }
        if (box > 0) {
            DappFundFlowEntity boxFundFlow = new DappFundFlowEntity(parent.getId(), new BigDecimal(box), 5, 2, BigDecimal.ZERO);
            dappFundFlowDao.insert(boxFundFlow);
        }
        DappIdoAssetsEntity idoAssets = dappIdoAssetsDao.selectByMemberId(member.getId());
        BigDecimal count = amount.divide(new BigDecimal(50), 0, RoundingMode.HALF_UP);
        BigDecimal coinAmount = new BigDecimal(1000).multiply(count);
        idoAssets.setBoxCnt(idoAssets.getBoxCnt() + box);
        idoAssets.setCoinAmount(idoAssets.getCoinAmount().add(coinAmount));
        idoAssets.setUsdtAmount(idoAssets.getUsdtAmount().add(amount));
        dappIdoAssetsDao.updateById(idoAssets);
    }
}