diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/DataTask.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/DataTask.java index d5d119c..9328a70 100644 --- a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/DataTask.java +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/DataTask.java @@ -420,7 +420,7 @@ public class DataTask { //获取3天内全网的实际报块数 BlockTimeAndNumberDto blockData = blockDataContext.getBlockData("nexa",start3d, end,blockPerDays, useAggregated); //3天矿池理论报块数 - BigDecimal throreticalBlocks = getTheoreticalBlocks("nexa",start3d, end, blockData); + BigDecimal throreticalBlocks = getTheoreticalBlocks("nexa",PoolUnits.NEXA.gethRate(),start3d, end, blockData); //3天矿池实际报块数 int actualBlocks = poolMapper.selectPoolBlock(3); //3天幸运值 @@ -430,7 +430,7 @@ public class DataTask { useAggregated = blockPerDays.size() >= 7; blockData = blockDataContext.getBlockData("nexa",start7d, end,blockPerDays, useAggregated); - throreticalBlocks= getTheoreticalBlocks("nexa",start7d, end, blockData); + throreticalBlocks= getTheoreticalBlocks("nexa",PoolUnits.NEXA.gethRate(),start7d, end, blockData); actualBlocks = poolMapper.selectPoolBlock(7); dto.setLuck7d(BigDecimal.valueOf(actualBlocks).divide(throreticalBlocks,8, RoundingMode.HALF_UP).doubleValue()); @@ -438,7 +438,7 @@ public class DataTask { useAggregated = blockPerDays.size() >= 30; blockData = blockDataContext.getBlockData("nexa",start30d, end,blockPerDays, useAggregated); - throreticalBlocks= getTheoreticalBlocks("nexa",start30d, end, blockData); + throreticalBlocks= getTheoreticalBlocks("nexa",PoolUnits.NEXA.gethRate(),start30d, end, blockData); actualBlocks = poolMapper.selectPoolBlock(30); dto.setLuck30d(BigDecimal.valueOf(actualBlocks).divide(throreticalBlocks,8, RoundingMode.HALF_UP).doubleValue()); @@ -447,7 +447,7 @@ public class DataTask { useAggregated = blockPerDays.size() >= 90; blockData = blockDataContext.getBlockData("nexa",start90d, end,blockPerDays, useAggregated); - throreticalBlocks= getTheoreticalBlocks("nexa",start90d, end, blockData); + throreticalBlocks= getTheoreticalBlocks("nexa",PoolUnits.NEXA.gethRate(),start90d, end, blockData); actualBlocks = poolMapper.selectPoolBlock(90); dto.setLuck90d(BigDecimal.valueOf(actualBlocks).divide(throreticalBlocks,8, RoundingMode.HALF_UP).doubleValue()); @@ -466,7 +466,7 @@ public class DataTask { * @param blockData * @return */ - public BigDecimal getTheoreticalBlocks(String coin,Date start,Date end,BlockTimeAndNumberDto blockData){ + public BigDecimal getTheoreticalBlocks(String coin,int hRate,Date start,Date end,BlockTimeAndNumberDto blockData){ //得到每一个小时定时任务存储到数据库的全网算力 List netPowerList = poolMapper.getDailyNetPower(coin); @@ -475,20 +475,19 @@ public class DataTask { } //得时间段到矿池的算力 List poolPowerList = poolMapper.getDailyPoolPower(coin); - //A:矿池3天总算力 + //A:矿池N天总算力 //计算矿池每日实际应出块数 block中算力单位是H/s - int hRate = PoolUnits.NEXA.gethRate(); BigDecimal pPow3d = poolPowerList.stream() .filter(e -> (e.getPDate().before(end))) .filter(e -> (e.getPDate().after(start) || e.getPDate().equals(start))) .map(DateBigDecimalDto::getValue).reduce(BigDecimal.ZERO, BigDecimal::add) .multiply(BigDecimal.valueOf(hRate)); - //作为A的除数,得到3天内的矿池平均算力 + //作为A的除数,得到N天内的矿池平均算力 long pDay3d = poolPowerList.stream() .filter(e -> (e.getPDate().before(end))) .filter(e -> (e.getPDate().after(start) || e.getPDate().equals(start))).count(); - //B:3天全网算力 + //B:N天全网算力 BigDecimal nPow3d = netPowerList.stream() .filter(e -> (e.getPDate().before(end))) .filter(e -> (e.getPDate().after(start) || e.getPDate().equals(start))) @@ -882,7 +881,7 @@ public class DataTask { //获取3天内全网的实际报块数 BlockTimeAndNumberDto blockData = blockDataContext.getBlockData("grs",start3d, end,blockPerDays, useAggregated); //3天矿池理论报块数 - BigDecimal throreticalBlocks= getTheoreticalBlocks("grs",start3d, end, blockData); + BigDecimal throreticalBlocks= getTheoreticalBlocks("grs",PoolUnits.GRS.gethRate(),start3d, end, blockData); //3天矿池实际报块数 int actualBlocks = poolMapper.selectPoolBlock(3); //3天幸运值 @@ -892,7 +891,7 @@ public class DataTask { useAggregated = blockPerDays.size() >= 7; blockData = blockDataContext.getBlockData("grs",start7d, end,blockPerDays, useAggregated); - throreticalBlocks= getTheoreticalBlocks("grs",start7d, end, blockData); + throreticalBlocks= getTheoreticalBlocks("grs",PoolUnits.GRS.gethRate(),start7d, end, blockData); actualBlocks = poolMapper.selectPoolBlock(7); dto.setLuck7d(BigDecimal.valueOf(actualBlocks).divide(throreticalBlocks,8, RoundingMode.HALF_UP).doubleValue()); @@ -900,7 +899,7 @@ public class DataTask { useAggregated = blockPerDays.size() >= 30; blockData = blockDataContext.getBlockData("grs",start30d, end,blockPerDays, useAggregated); - throreticalBlocks= getTheoreticalBlocks("grs",start30d, end, blockData); + throreticalBlocks= getTheoreticalBlocks("grs",PoolUnits.GRS.gethRate(),start30d, end, blockData); actualBlocks = poolMapper.selectPoolBlock(30); dto.setLuck30d(BigDecimal.valueOf(actualBlocks).divide(throreticalBlocks,8, RoundingMode.HALF_UP).doubleValue()); @@ -908,7 +907,7 @@ public class DataTask { //90天幸运值 useAggregated = blockPerDays.size() >= 90; blockData = blockDataContext.getBlockData("grs",start90d, end,blockPerDays, useAggregated); - throreticalBlocks= getTheoreticalBlocks("grs",start90d, end, blockData); + throreticalBlocks= getTheoreticalBlocks("grs",PoolUnits.GRS.gethRate(),start90d, end, blockData); actualBlocks = poolMapper.selectPoolBlock(90); dto.setLuck90d(BigDecimal.valueOf(actualBlocks).divide(throreticalBlocks,8, RoundingMode.HALF_UP).doubleValue()); @@ -1289,7 +1288,7 @@ public class DataTask { BlockTimeAndNumberDto blockData = blockDataContext.getBlockData("mona",start3d, end,blockPerDays, useAggregated); //3天矿池理论报块数 - BigDecimal throreticalBlocks= getTheoreticalBlocks("mona",start3d, end, blockData); + BigDecimal throreticalBlocks= getTheoreticalBlocks("mona",PoolUnits.MONA.gethRate(),start3d, end, blockData); //3天矿池实际报块数 int actualBlocks = poolMapper.selectPoolBlock(3); @@ -1300,7 +1299,7 @@ public class DataTask { useAggregated = blockPerDays.size() >= 7; blockData = blockDataContext.getBlockData("mona",start7d, end,blockPerDays, useAggregated); - throreticalBlocks= getTheoreticalBlocks("mona",start7d, end, blockData); + throreticalBlocks= getTheoreticalBlocks("mona",PoolUnits.MONA.gethRate(),start7d, end, blockData); actualBlocks = poolMapper.selectPoolBlock(7); dto.setLuck7d(BigDecimal.valueOf(actualBlocks).divide(throreticalBlocks,8, RoundingMode.HALF_UP).doubleValue()); @@ -1308,7 +1307,7 @@ public class DataTask { useAggregated = blockPerDays.size() >= 30; blockData = blockDataContext.getBlockData("mona",start30d, end,blockPerDays, useAggregated); - throreticalBlocks= getTheoreticalBlocks("nexa",start30d, end, blockData); + throreticalBlocks= getTheoreticalBlocks("nexa",PoolUnits.MONA.gethRate(),start30d, end, blockData); actualBlocks = poolMapper.selectPoolBlock(30); dto.setLuck30d(BigDecimal.valueOf(actualBlocks).divide(throreticalBlocks,8, RoundingMode.HALF_UP).doubleValue()); @@ -1317,7 +1316,7 @@ public class DataTask { useAggregated = blockPerDays.size() >= 90; blockData = blockDataContext.getBlockData("mona",start90d, end,blockPerDays, useAggregated); - throreticalBlocks= getTheoreticalBlocks("mona",start90d, end, blockData); + throreticalBlocks= getTheoreticalBlocks("mona",PoolUnits.MONA.gethRate(),start90d, end, blockData); actualBlocks = poolMapper.selectPoolBlock(90); dto.setLuck90d(BigDecimal.valueOf(actualBlocks).divide(throreticalBlocks,8, RoundingMode.HALF_UP).doubleValue()); @@ -3412,7 +3411,7 @@ public class DataTask { BlockTimeAndNumberDto blockData = blockDataContext.getBlockData("rxd",start3d, end,blockPerDays, useAggregated); //3天矿池理论报块数 - BigDecimal throreticalBlocks= getTheoreticalBlocks("rxd",start3d, end, blockData); + BigDecimal throreticalBlocks= getTheoreticalBlocks("rxd",PoolUnits.RXD.gethRate(),start3d, end, blockData); //3天矿池实际报块数 int actualBlocks = poolMapper.selectPoolBlock(3); @@ -3423,7 +3422,7 @@ public class DataTask { useAggregated = blockPerDays.size() >= 7; blockData = blockDataContext.getBlockData("rxd",start7d, end,blockPerDays, useAggregated); - throreticalBlocks= getTheoreticalBlocks("rxd",start7d, end, blockData); + throreticalBlocks= getTheoreticalBlocks("rxd",PoolUnits.RXD.gethRate(),start7d, end, blockData); actualBlocks = poolMapper.selectPoolBlock(7); dto.setLuck7d(BigDecimal.valueOf(actualBlocks).divide(throreticalBlocks,8, RoundingMode.HALF_UP).doubleValue()); @@ -3431,7 +3430,7 @@ public class DataTask { useAggregated = blockPerDays.size() >= 30; blockData = blockDataContext.getBlockData("rxd",start30d, end,blockPerDays, useAggregated); - throreticalBlocks= getTheoreticalBlocks("rxd",start30d, end, blockData); + throreticalBlocks= getTheoreticalBlocks("rxd",PoolUnits.RXD.gethRate(),start30d, end, blockData); actualBlocks = poolMapper.selectPoolBlock(30); dto.setLuck30d(BigDecimal.valueOf(actualBlocks).divide(throreticalBlocks,8, RoundingMode.HALF_UP).doubleValue()); @@ -3440,7 +3439,7 @@ public class DataTask { useAggregated = blockPerDays.size() >= 90; blockData = blockDataContext.getBlockData("rxd",start90d, end,blockPerDays, useAggregated); - throreticalBlocks= getTheoreticalBlocks("rxd",start90d, end, blockData); + throreticalBlocks= getTheoreticalBlocks("rxd",PoolUnits.RXD.gethRate(),start90d, end, blockData); actualBlocks = poolMapper.selectPoolBlock(90); dto.setLuck90d(BigDecimal.valueOf(actualBlocks).divide(throreticalBlocks,8, RoundingMode.HALF_UP).doubleValue());