src/main/java/com/xcong/excoin/modules/blackchain/service/TrxUsdtUpdateService.java
@@ -1,5 +1,6 @@ package com.xcong.excoin.modules.blackchain.service; import cn.hutool.core.math.MathUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -73,6 +74,7 @@ /** * 解析区块数据 同步用户充值 * * @param addressList * @param num */ @@ -120,6 +122,7 @@ /** * 比对本地地址 同步TRX充值 * * @param parseObject */ private void transferContract(JSONObject parseObject) { @@ -203,6 +206,7 @@ /** * 比对本地地址 同步充值USDT-TRC20 * * @param addressList * @param txId * @param parseObject @@ -265,6 +269,7 @@ /** * 根据地址归集USDT-TRC20 * * @param address * @return */ @@ -321,6 +326,7 @@ /** * 获取最新区块 * * @return */ public long getnowblock(){ @@ -338,6 +344,17 @@ return Long.valueOf(number); } /** * 从tronscan.io查询最新区块 * {"whole_block_count":29625671,"whole_pay":3392835760,"last_day_pay":460432,"last_day_block_count":28777} * @return */ public Long getnowblockFromTronScan() { String roundNum = Math.random() + ""; String url = "https://apiasia.tronscan.io:5566/api/block/statistic?randomNum=" + roundNum; RestTemplate restTemplate = new RestTemplate(); String forObject = restTemplate.getForObject(url, String.class); String wholeBlockCount = JSON.parseObject(forObject).getString("whole_block_count"); return Long.valueOf(wholeBlockCount); } } src/main/java/com/xcong/excoin/quartz/job/BlockCoinUpdateJob.java
@@ -54,19 +54,17 @@ if(blocnNum==null){ return; } System.out.println(TRC_BLOCK); redisUtils.set("USDT_TRC20_CURRENT_BLOCK_NUM",blocnNum); System.out.println("扫块:"+blocnNum); trxUsdtUpdateService.monitorCoinListener(blocnNum); } @Scheduled(cron = "0/2 * * * * ? ") public void usdtTc20UpdateQueue() { // 当前时间戳 long currentTimeMillis = System.currentTimeMillis()/1000; // 计算当前最新区块 // 波场3秒出一个块 根据创世区块的时间可以计算出当前最新区块号 Long count = (currentTimeMillis-TRX_CSQK)/3; // 减去未确认的区块 long getnowblock =count-25; // 查询最新区块号 long getnowblock =trxUsdtUpdateService.getnowblockFromTronScan()-25; System.out.println("getnowblock:"+getnowblock); // 生成块到队列 Object trc20BlockNum = redisUtils.get("USDT_TRC20_BLOCK_NUM"); if(trc20BlockNum==null){ @@ -123,5 +121,14 @@ blockCoinService.updateXrp(); } public static void main(String[] args) { // 当前时间戳 long currentTimeMillis = System.currentTimeMillis()/1000; // 计算当前最新区块 // 波场3秒出一个块 根据创世区块的时间可以计算出当前最新区块号 Long count = (currentTimeMillis-TRX_CSQK)/3; // 减去未确认的区块 long getnowblock =count-25; System.out.println(count); } }