KKSU
2024-05-20 6750bad09a6c2f88bc48274efc84c082fde44a2b
滑点监控
6 files modified
48 ■■■■ changed files
src/main/java/cc/mrbird/febs/common/contants/AppContants.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/AsyncCjService.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/job/ChainHuadianRunner.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/job/ChainListenerJob.java 32 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java 4 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/contants/AppContants.java
@@ -141,7 +141,9 @@
    public static final String REDIS_KEY_BLOCK_COIN_NUM = "BLOCK_COIN_NUM";
    public static final String REDIS_KEY_BLOCK_USDT_NUM = "BLOCK_USDT_NUM";
    public static final String REDIS_KEY_BLOCK_ETH_NEWEST_NUM = "BLOCK_ETH_NEWEST_NUM";
    public static final String REDIS_KEY_BLOCK_ETH_NEWEST_NUM_HUA_DIAN = "BLOCK_ETH_NEWEST_NUM_HUA_DIAN";
    public static final String REDIS_KEY_BLOCK_ETH_INCREMENT_NUM = "BLOCK_ETH_INCREMENT_NUM";
    public static final String REDIS_KEY_BLOCK_ETH_INCREMENT_NUM_HUA_DIAN = "BLOCK_ETH_INCREMENT_NUM_HUA_DIAN";
    public static final String REDIS_KEY_MAKE_POOL_CNT = "MAKE_POOL_CNT";
src/main/java/cc/mrbird/febs/dapp/service/AsyncCjService.java
@@ -25,7 +25,7 @@
    @Async(FebsConstant.ASYNC_POOL)
    void insertTeamPerk(Long flowId, Long achieveId);
    @Async(FebsConstant.ASYNC_POOL)
//    @Async(FebsConstant.ASYNC_POOL)
    void tradeProfitDistribute();
    @Async(FebsConstant.ASYNC_POOL)
src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java
@@ -272,7 +272,7 @@
        BigDecimal multiply = coinPrice.multiply(amount).multiply(new BigDecimal("0.97")).setScale(8,BigDecimal.ROUND_DOWN);
        //更新这个时间段的滑点数量
        redisUtils.set(DataDicEnum.GFA_HUA_DIAN_WALLET_USDT_AMOUNT.getValue(), multiply, 0);
        log.info("滑点奖励:"+amount);
        //生成一条记录
        DappHdRecord dappHdRecordAdd = new DappHdRecord();
        dappHdRecordAdd.setPrice(coinPrice);
@@ -281,6 +281,8 @@
        dappHdRecordAdd.setCoinAmount(BigDecimal.ZERO);
        dappHdRecordAdd.setTransactionHash(transactionHash);
        dappHdRecordMapper.insert(dappHdRecordAdd);
        dappSystemService.tradeProfitDistribute(1L);
        chainProducer.sendDitribProfit(1L);
//        dappSystemService.tradeProfitDistribute(1L);
    }
}
src/main/java/cc/mrbird/febs/job/ChainHuadianRunner.java
@@ -31,7 +31,7 @@
        long start = System.currentTimeMillis();
        log.info("区块链滑点开始启动");
        Object incrementObj = redisUtils.get(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM);
        Object incrementObj = redisUtils.get(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM_HUA_DIAN);
        BigInteger newest = ChainService.getInstance(ChainEnum.BSC_GFA.name()).blockNumber();
//        Object incrementObj = BigInteger.valueOf(39780699);
//        BigInteger newest = BigInteger.valueOf(39780739);
src/main/java/cc/mrbird/febs/job/ChainListenerJob.java
@@ -7,14 +7,10 @@
import cc.mrbird.febs.dapp.chain.ContractEventService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.math.BigInteger;
@Slf4j
@@ -38,6 +34,7 @@
        BigInteger blockNumber = ChainService.getInstance(ChainEnum.BSC_GFA.name()).blockNumber();
        redisUtils.set(AppContants.REDIS_KEY_BLOCK_ETH_NEWEST_NUM, blockNumber);
        redisUtils.set(AppContants.REDIS_KEY_BLOCK_ETH_NEWEST_NUM_HUA_DIAN, blockNumber);
    }
    @Scheduled(cron = "0/2 * * * * ? ")
@@ -67,6 +64,33 @@
        redisUtils.set(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM, toIncrement);
    }
    @Scheduled(cron = "0/2 * * * * ? ")
    public void chainIncrementBlockHuaDian() {
        Object newestBlockObj = redisUtils.get(AppContants.REDIS_KEY_BLOCK_ETH_NEWEST_NUM_HUA_DIAN);
        BigInteger newestBlock;
        if (newestBlockObj == null) {
            newestBlock = ChainService.getInstance(ChainEnum.BSC_GFA.name()).blockNumber();
        } else {
            newestBlock = (BigInteger) newestBlockObj;
        }
        Object incrementObj = redisUtils.get(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM_HUA_DIAN);
        BigInteger toIncrement;
        if (incrementObj == null) {
            toIncrement = newestBlock;
        } else {
            BigInteger incrementBlock = (BigInteger) incrementObj;
            // 最新区块小于增加区块
            if (newestBlock.compareTo(incrementBlock) <= 0) {
                return;
            }
            toIncrement = incrementBlock.add(BigInteger.ONE);
        }
        redisUtils.set(AppContants.REDIS_KEY_BLOCK_ETH_INCREMENT_NUM_HUA_DIAN, toIncrement);
    }
//    @Override
//    public void run(ApplicationArguments args) throws Exception {
//        long start = System.currentTimeMillis();
src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
@@ -2,9 +2,7 @@
import cc.mrbird.febs.dapp.service.DappSystemService;
import cc.mrbird.febs.rabbit.QueueConstants;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -31,7 +29,7 @@
    @RabbitListener(queues = QueueConstants.QUEUE_GFA_ZY_HUA_DIAN)
    public void distrbProfit(Long id) {
        log.info("收到滑点分配消息:{}", id);
//        dappSystemService.tradeProfitDistribute(id);
        dappSystemService.tradeProfitDistribute(id);
    }
    @RabbitListener(queues = QueueConstants.USER_BUY_REWARD)