Helius
2022-05-31 f7fc7c82d2d683a3e90e88ddbf8831bfa3800e11
src/main/java/cc/mrbird/febs/job/SystemTradeJob.java
@@ -4,6 +4,7 @@
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.dapp.chain.ChainEnum;
import cc.mrbird.febs.dapp.chain.ChainService;
import cc.mrbird.febs.dapp.service.DappSystemService;
import cc.mrbird.febs.dapp.vo.RedisTransferPoolVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +24,8 @@
    @Autowired
    private RedisUtils redisUtils;
    @Autowired
    private DappSystemService systemService;
    // 最低容量(百分比)
    private final BigDecimal volProp = new BigDecimal("0.5");
@@ -51,11 +54,16 @@
            transferPool.setFinishCnt(0);
            redisUtils.set(AppContants.REDIS_KEY_TRANSFER_POOL_VOL, transferPool);
            redisUtils.set(AppContants.REDIS_KEY_TRANSFER_POOL_VOL_REMAIN, total);
            redisUtils.set(AppContants.REDIS_KEY_MINE_TRANSFER_POOL_TRADE_CNT, BigDecimal.ZERO);
            return;
        }
        RedisTransferPoolVo transferPool = (RedisTransferPoolVo) o;
        BigDecimal remain = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_TRANSFER_POOL_VOL_REMAIN);
        // 设置当日成交量
        redisUtils.set(AppContants.REDIS_KEY_MINE_TRANSFER_POOL_TRADE_CNT, transferPool.getTodayVol().subtract(remain));
        // 全卖了
        if (remain.compareTo(BigDecimal.ZERO) == 0) {
@@ -103,8 +111,19 @@
        log.info("源池每日出U限制");
        BigDecimal sourceBalance = ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(ChainEnum.BSC_USDT_SOURCE.getAddress());
        BigDecimal total = sourceBalance.multiply(BigDecimal.valueOf(0.1)).setScale(8, RoundingMode.HALF_DOWN);
        BigDecimal total = sourceBalance.multiply(BigDecimal.valueOf(0.1)).setScale(4, RoundingMode.HALF_DOWN);
        redisUtils.set(AppContants.REDIS_KEY_USDT_OUT_LIMIT, total);
        redisUtils.set(AppContants.REDIS_KEY_USDT_OUT_LIMIT_REMAIN, total);
    }
    /**
     * 挖矿
     *
     * 以中转池成交数1:1出矿(中转池卖出多少,矿池则1:1出币),每个地址所得=出币量*(单个地址持币量/全网持币量)
     */
    @Scheduled(cron = "0 0 2 * * ?")
    public void mineJob() {
        systemService.mining();
    }
}