update m2pool alph幸运值获取死循环问题修复
This commit is contained in:
@@ -3969,221 +3969,227 @@ public class DataTask {
|
||||
LuckDto dto = new LuckDto();
|
||||
Date end = DateUtils.parseDate(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD));
|
||||
do {
|
||||
//幸运值
|
||||
// N天应出块数量 = N天矿池平均算力/ N天全网平均算力 * 币种每日出块数 * N天 取同一时间点的矿池算力/全网算力
|
||||
// 币种每日出块数 = 720 数值来源: 每日分钟数(24*60) / 出一个块需要的时间(根据具体币种 nexa是2分钟)
|
||||
// N天实际出块量 数据库查询N天实际出块量
|
||||
// N天幸运值 = N天实际出块量 / N天应出块量 * 100 结果即百分比数字%
|
||||
/** 全网每日出块数 */
|
||||
BigDecimal nexaCount = PoolCalParamConfig.ALPH.getCount();
|
||||
//代码出错一次,time++防止死循环。目前获取alph 幸运值这个可能和enx一样不要了
|
||||
try{
|
||||
//幸运值
|
||||
// N天应出块数量 = N天矿池平均算力/ N天全网平均算力 * 币种每日出块数 * N天 取同一时间点的矿池算力/全网算力
|
||||
// 币种每日出块数 = 720 数值来源: 每日分钟数(24*60) / 出一个块需要的时间(根据具体币种 nexa是2分钟)
|
||||
// N天实际出块量 数据库查询N天实际出块量
|
||||
// N天幸运值 = N天实际出块量 / N天应出块量 * 100 结果即百分比数字%
|
||||
/** 全网每日出块数 */
|
||||
BigDecimal nexaCount = PoolCalParamConfig.ALPH.getCount();
|
||||
|
||||
//计算矿池每日实际应出块数 block中算力单位是H/s
|
||||
int hRate = PoolUnits.ALPH.gethRate();
|
||||
//先把矿池算力单位转换为H/s 再除以全网算力 得到比值 再乘以每日全网出块数 得到矿池每日应出块数
|
||||
List<DateBigDecimalDto> netPowerList = poolMapper.getDailyNetPower("alph");
|
||||
if(netPowerList.size() < 1){
|
||||
continue;
|
||||
//计算矿池每日实际应出块数 block中算力单位是H/s
|
||||
int hRate = PoolUnits.ALPH.gethRate();
|
||||
//先把矿池算力单位转换为H/s 再除以全网算力 得到比值 再乘以每日全网出块数 得到矿池每日应出块数
|
||||
List<DateBigDecimalDto> netPowerList = poolMapper.getDailyNetPower("alph");
|
||||
if(netPowerList.size() < 1){
|
||||
continue;
|
||||
}
|
||||
|
||||
List<DateBigDecimalDto> poolPowerList = poolMapper.getDailyPoolPower("alph");
|
||||
|
||||
//拿报块list 筛选实际出块数
|
||||
List<BlockInfoDto> list = poolMapper.getNEXABlockInfoList();
|
||||
|
||||
if (list.size() < 1){
|
||||
continue;
|
||||
}
|
||||
|
||||
//第一条报块数据的时间
|
||||
Date poolStart = list.get(list.size() - 1).getDate();
|
||||
Date start3d = DateUtils.addDays(end,-3);
|
||||
Date start7d = DateUtils.addDays(end,-7);
|
||||
Date start30d = DateUtils.addDays(end,-30);
|
||||
Date start90d = DateUtils.addDays(end,-90);
|
||||
//(矿池平均/全网平均) * (全网计算平均的时间/矿池计算平均的时间) * 每日全网出块数 = 矿池每日应出块数
|
||||
long pDay3d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start3d) || e.getPDate().equals(start3d))).count();
|
||||
|
||||
//矿池单位转换
|
||||
BigDecimal pPow3d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start3d) || e.getPDate().equals(start3d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||
.multiply(BigDecimal.valueOf(hRate));
|
||||
|
||||
long nDay3d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start3d) || e.getPDate().equals(start3d))).count();
|
||||
|
||||
BigDecimal nPow3d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start3d) || e.getPDate().equals(start3d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
if(pDay3d == 0 || nDay3d == 0){
|
||||
continue;
|
||||
}
|
||||
//计算3天 每日出块量
|
||||
BigDecimal dayChunk3d = pPow3d
|
||||
.multiply(BigDecimal.valueOf(nDay3d * nDay3d))
|
||||
.divide(nPow3d.multiply(BigDecimal.valueOf(pDay3d * pDay3d)),8,BigDecimal.ROUND_HALF_UP)
|
||||
.multiply(nexaCount)
|
||||
.setScale(8, BigDecimal.ROUND_HALF_UP);
|
||||
|
||||
long pDay7d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start7d) || e.getPDate().equals(start7d))).count();
|
||||
|
||||
BigDecimal pPow7d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start7d) || e.getPDate().equals(start7d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||
.multiply(BigDecimal.valueOf(hRate));
|
||||
|
||||
long nDay7d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start7d) || e.getPDate().equals(start7d))).count();
|
||||
|
||||
BigDecimal nPow7d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start7d) || e.getPDate().equals(start7d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
if(pDay7d == 0 || nDay7d == 0){
|
||||
continue;
|
||||
}
|
||||
|
||||
//计算7d 每日应出块量
|
||||
BigDecimal dayChunk7d = pPow7d
|
||||
.multiply(BigDecimal.valueOf(nDay7d * nDay7d))
|
||||
.divide(nPow7d.multiply(BigDecimal.valueOf(pDay7d * pDay7d)),8,BigDecimal.ROUND_HALF_UP)
|
||||
.multiply(nexaCount)
|
||||
.setScale(8, BigDecimal.ROUND_HALF_UP);
|
||||
|
||||
long pDay30d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start30d) || e.getPDate().equals(start30d))).count();
|
||||
|
||||
BigDecimal pPow30d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start30d) || e.getPDate().equals(start30d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||
.multiply(BigDecimal.valueOf(hRate));
|
||||
|
||||
long nDay30d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start30d) || e.getPDate().equals(start30d))).count();
|
||||
|
||||
BigDecimal nPow30d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start30d) || e.getPDate().equals(start30d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
if(pDay30d == 0 || nDay30d == 0){
|
||||
continue;
|
||||
}
|
||||
|
||||
//计算30d 每日应出块量
|
||||
BigDecimal dayChunk30d = pPow30d
|
||||
.multiply(BigDecimal.valueOf(nDay30d * nDay30d))
|
||||
.divide(nPow30d.multiply(BigDecimal.valueOf(pDay30d * pDay30d)),8,BigDecimal.ROUND_HALF_UP)
|
||||
.multiply(nexaCount)
|
||||
.setScale(8, BigDecimal.ROUND_HALF_UP);
|
||||
|
||||
long pDay90d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start90d) || e.getPDate().equals(start90d))).count();
|
||||
|
||||
BigDecimal pPow90d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start90d) || e.getPDate().equals(start90d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||
.multiply(BigDecimal.valueOf(hRate));
|
||||
|
||||
long nDay90d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start90d) || e.getPDate().equals(start90d))).count();
|
||||
|
||||
BigDecimal nPow90d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start90d) || e.getPDate().equals(start90d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
if(pDay90d == 0 || nDay90d == 0){
|
||||
continue;
|
||||
}
|
||||
|
||||
//计算90d 每日应出块量
|
||||
BigDecimal dayChunk90d = pPow90d
|
||||
.multiply(BigDecimal.valueOf(nDay90d * nDay90d))
|
||||
.divide(nPow90d.multiply(BigDecimal.valueOf(pDay90d * pDay90d)),8,BigDecimal.ROUND_HALF_UP)
|
||||
.multiply(nexaCount)
|
||||
.setScale(8, BigDecimal.ROUND_HALF_UP);
|
||||
|
||||
//3天时间出块数
|
||||
long count3d = list.stream()
|
||||
.filter(e -> (e.getDate().before(end)))
|
||||
.filter(e -> (e.getDate().after(start3d) || e.getDate().equals(start3d)))
|
||||
.count();
|
||||
BigDecimal chunk3d = BigDecimal.valueOf(count3d);
|
||||
//7天时间出块数
|
||||
long count7d = list.stream()
|
||||
.filter(e -> (e.getDate().before(end)))
|
||||
.filter(e -> (e.getDate().after(start7d) || e.getDate().equals(start7d)))
|
||||
.count();
|
||||
BigDecimal chunk7d = BigDecimal.valueOf(count7d);
|
||||
//30天时间出块数
|
||||
long count30d = list.stream()
|
||||
.filter(e -> (e.getDate().before(end)))
|
||||
.filter(e -> (e.getDate().after(start30d) || e.getDate().equals(start30d)))
|
||||
.count();
|
||||
BigDecimal chunk30d = BigDecimal.valueOf(count30d);
|
||||
//90天时间出块数
|
||||
long count90d = list.stream()
|
||||
.filter(e -> (e.getDate().before(end)))
|
||||
.filter(e -> (e.getDate().after(start90d) || e.getDate().equals(start90d)))
|
||||
.count();
|
||||
BigDecimal chunk90d = BigDecimal.valueOf(count90d);
|
||||
|
||||
if(poolStart.after(start3d)){
|
||||
System.out.println("不足3天");
|
||||
long needTime = poolStart.getTime()-start3d.getTime();
|
||||
chunk3d = chunk3d
|
||||
.add(dayChunk3d.multiply(BigDecimal.valueOf(needTime).divide(BigDecimal.valueOf(86400000),8,BigDecimal.ROUND_HALF_UP)));
|
||||
}
|
||||
System.out.println("3天出块量"+chunk3d);
|
||||
dto.setLuck3d(chunk3d.divide(dayChunk3d.multiply(BigDecimal.valueOf(3)),4,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)).doubleValue());
|
||||
|
||||
if(poolStart.after(start7d)){
|
||||
System.out.println("不足7天");
|
||||
long needTime = poolStart.getTime()-start7d.getTime();
|
||||
chunk7d = chunk7d
|
||||
.add(dayChunk7d.multiply(BigDecimal.valueOf(needTime).divide(BigDecimal.valueOf(86400000),8,BigDecimal.ROUND_HALF_UP)));
|
||||
}
|
||||
System.out.println("7天出块量"+chunk7d);
|
||||
dto.setLuck7d(chunk7d.divide(dayChunk7d.multiply(BigDecimal.valueOf(7)),4,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)).doubleValue());
|
||||
|
||||
|
||||
if(poolStart.after(start30d)){
|
||||
System.out.println("不足30天");
|
||||
long needTime = poolStart.getTime()-start30d.getTime();
|
||||
chunk30d = chunk30d
|
||||
.add(dayChunk30d.multiply(BigDecimal.valueOf(needTime).divide(BigDecimal.valueOf(86400000),8,BigDecimal.ROUND_HALF_UP)));
|
||||
}
|
||||
System.out.println("30天出块量"+chunk30d);
|
||||
dto.setLuck30d(chunk30d.divide(dayChunk30d.multiply(BigDecimal.valueOf(30)),4,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)).doubleValue());
|
||||
|
||||
if(poolStart.after(start90d)){
|
||||
System.out.println("不足90天");
|
||||
long needTime = poolStart.getTime()-start90d.getTime();
|
||||
chunk90d = chunk90d
|
||||
.add(dayChunk90d.multiply(BigDecimal.valueOf(needTime).divide(BigDecimal.valueOf(86400000),8,BigDecimal.ROUND_HALF_UP)));
|
||||
}
|
||||
System.out.println("90天出块量"+chunk90d);
|
||||
dto.setLuck90d(chunk90d.divide(dayChunk90d.multiply(BigDecimal.valueOf(90)),4,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)).doubleValue());
|
||||
|
||||
break;
|
||||
}catch (Exception e){
|
||||
time++;
|
||||
}
|
||||
|
||||
List<DateBigDecimalDto> poolPowerList = poolMapper.getDailyPoolPower("alph");
|
||||
|
||||
//拿报块list 筛选实际出块数
|
||||
List<BlockInfoDto> list = poolMapper.getNEXABlockInfoList();
|
||||
|
||||
if (list.size() < 1){
|
||||
continue;
|
||||
}
|
||||
|
||||
//第一条报块数据的时间
|
||||
Date poolStart = list.get(list.size() - 1).getDate();
|
||||
Date start3d = DateUtils.addDays(end,-3);
|
||||
Date start7d = DateUtils.addDays(end,-7);
|
||||
Date start30d = DateUtils.addDays(end,-30);
|
||||
Date start90d = DateUtils.addDays(end,-90);
|
||||
//(矿池平均/全网平均) * (全网计算平均的时间/矿池计算平均的时间) * 每日全网出块数 = 矿池每日应出块数
|
||||
long pDay3d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start3d) || e.getPDate().equals(start3d))).count();
|
||||
|
||||
//矿池单位转换
|
||||
BigDecimal pPow3d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start3d) || e.getPDate().equals(start3d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||
.multiply(BigDecimal.valueOf(hRate));
|
||||
|
||||
long nDay3d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start3d) || e.getPDate().equals(start3d))).count();
|
||||
|
||||
BigDecimal nPow3d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start3d) || e.getPDate().equals(start3d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
if(pDay3d == 0 || nDay3d == 0){
|
||||
continue;
|
||||
}
|
||||
//计算3天 每日出块量
|
||||
BigDecimal dayChunk3d = pPow3d
|
||||
.multiply(BigDecimal.valueOf(nDay3d * nDay3d))
|
||||
.divide(nPow3d.multiply(BigDecimal.valueOf(pDay3d * pDay3d)),8,BigDecimal.ROUND_HALF_UP)
|
||||
.multiply(nexaCount)
|
||||
.setScale(8, BigDecimal.ROUND_HALF_UP);
|
||||
|
||||
long pDay7d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start7d) || e.getPDate().equals(start7d))).count();
|
||||
|
||||
BigDecimal pPow7d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start7d) || e.getPDate().equals(start7d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||
.multiply(BigDecimal.valueOf(hRate));
|
||||
|
||||
long nDay7d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start7d) || e.getPDate().equals(start7d))).count();
|
||||
|
||||
BigDecimal nPow7d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start7d) || e.getPDate().equals(start7d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
if(pDay7d == 0 || nDay7d == 0){
|
||||
continue;
|
||||
}
|
||||
|
||||
//计算7d 每日应出块量
|
||||
BigDecimal dayChunk7d = pPow7d
|
||||
.multiply(BigDecimal.valueOf(nDay7d * nDay7d))
|
||||
.divide(nPow7d.multiply(BigDecimal.valueOf(pDay7d * pDay7d)),8,BigDecimal.ROUND_HALF_UP)
|
||||
.multiply(nexaCount)
|
||||
.setScale(8, BigDecimal.ROUND_HALF_UP);
|
||||
|
||||
long pDay30d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start30d) || e.getPDate().equals(start30d))).count();
|
||||
|
||||
BigDecimal pPow30d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start30d) || e.getPDate().equals(start30d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||
.multiply(BigDecimal.valueOf(hRate));
|
||||
|
||||
long nDay30d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start30d) || e.getPDate().equals(start30d))).count();
|
||||
|
||||
BigDecimal nPow30d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start30d) || e.getPDate().equals(start30d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
if(pDay30d == 0 || nDay30d == 0){
|
||||
continue;
|
||||
}
|
||||
|
||||
//计算30d 每日应出块量
|
||||
BigDecimal dayChunk30d = pPow30d
|
||||
.multiply(BigDecimal.valueOf(nDay30d * nDay30d))
|
||||
.divide(nPow30d.multiply(BigDecimal.valueOf(pDay30d * pDay30d)),8,BigDecimal.ROUND_HALF_UP)
|
||||
.multiply(nexaCount)
|
||||
.setScale(8, BigDecimal.ROUND_HALF_UP);
|
||||
|
||||
long pDay90d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start90d) || e.getPDate().equals(start90d))).count();
|
||||
|
||||
BigDecimal pPow90d = poolPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start90d) || e.getPDate().equals(start90d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add)
|
||||
.multiply(BigDecimal.valueOf(hRate));
|
||||
|
||||
long nDay90d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start90d) || e.getPDate().equals(start90d))).count();
|
||||
|
||||
BigDecimal nPow90d = netPowerList.stream()
|
||||
.filter(e -> (e.getPDate().before(end)))
|
||||
.filter(e -> (e.getPDate().after(start90d) || e.getPDate().equals(start90d)))
|
||||
.map(e -> e.getValue()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
if(pDay90d == 0 || nDay90d == 0){
|
||||
continue;
|
||||
}
|
||||
|
||||
//计算90d 每日应出块量
|
||||
BigDecimal dayChunk90d = pPow90d
|
||||
.multiply(BigDecimal.valueOf(nDay90d * nDay90d))
|
||||
.divide(nPow90d.multiply(BigDecimal.valueOf(pDay90d * pDay90d)),8,BigDecimal.ROUND_HALF_UP)
|
||||
.multiply(nexaCount)
|
||||
.setScale(8, BigDecimal.ROUND_HALF_UP);
|
||||
|
||||
//3天时间出块数
|
||||
long count3d = list.stream()
|
||||
.filter(e -> (e.getDate().before(end)))
|
||||
.filter(e -> (e.getDate().after(start3d) || e.getDate().equals(start3d)))
|
||||
.count();
|
||||
BigDecimal chunk3d = BigDecimal.valueOf(count3d);
|
||||
//7天时间出块数
|
||||
long count7d = list.stream()
|
||||
.filter(e -> (e.getDate().before(end)))
|
||||
.filter(e -> (e.getDate().after(start7d) || e.getDate().equals(start7d)))
|
||||
.count();
|
||||
BigDecimal chunk7d = BigDecimal.valueOf(count7d);
|
||||
//30天时间出块数
|
||||
long count30d = list.stream()
|
||||
.filter(e -> (e.getDate().before(end)))
|
||||
.filter(e -> (e.getDate().after(start30d) || e.getDate().equals(start30d)))
|
||||
.count();
|
||||
BigDecimal chunk30d = BigDecimal.valueOf(count30d);
|
||||
//90天时间出块数
|
||||
long count90d = list.stream()
|
||||
.filter(e -> (e.getDate().before(end)))
|
||||
.filter(e -> (e.getDate().after(start90d) || e.getDate().equals(start90d)))
|
||||
.count();
|
||||
BigDecimal chunk90d = BigDecimal.valueOf(count90d);
|
||||
|
||||
if(poolStart.after(start3d)){
|
||||
System.out.println("不足3天");
|
||||
long needTime = poolStart.getTime()-start3d.getTime();
|
||||
chunk3d = chunk3d
|
||||
.add(dayChunk3d.multiply(BigDecimal.valueOf(needTime).divide(BigDecimal.valueOf(86400000),8,BigDecimal.ROUND_HALF_UP)));
|
||||
}
|
||||
System.out.println("3天出块量"+chunk3d);
|
||||
dto.setLuck3d(chunk3d.divide(dayChunk3d.multiply(BigDecimal.valueOf(3)),4,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)).doubleValue());
|
||||
|
||||
if(poolStart.after(start7d)){
|
||||
System.out.println("不足7天");
|
||||
long needTime = poolStart.getTime()-start7d.getTime();
|
||||
chunk7d = chunk7d
|
||||
.add(dayChunk7d.multiply(BigDecimal.valueOf(needTime).divide(BigDecimal.valueOf(86400000),8,BigDecimal.ROUND_HALF_UP)));
|
||||
}
|
||||
System.out.println("7天出块量"+chunk7d);
|
||||
dto.setLuck7d(chunk7d.divide(dayChunk7d.multiply(BigDecimal.valueOf(7)),4,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)).doubleValue());
|
||||
|
||||
|
||||
if(poolStart.after(start30d)){
|
||||
System.out.println("不足30天");
|
||||
long needTime = poolStart.getTime()-start30d.getTime();
|
||||
chunk30d = chunk30d
|
||||
.add(dayChunk30d.multiply(BigDecimal.valueOf(needTime).divide(BigDecimal.valueOf(86400000),8,BigDecimal.ROUND_HALF_UP)));
|
||||
}
|
||||
System.out.println("30天出块量"+chunk30d);
|
||||
dto.setLuck30d(chunk30d.divide(dayChunk30d.multiply(BigDecimal.valueOf(30)),4,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)).doubleValue());
|
||||
|
||||
if(poolStart.after(start90d)){
|
||||
System.out.println("不足90天");
|
||||
long needTime = poolStart.getTime()-start90d.getTime();
|
||||
chunk90d = chunk90d
|
||||
.add(dayChunk90d.multiply(BigDecimal.valueOf(needTime).divide(BigDecimal.valueOf(86400000),8,BigDecimal.ROUND_HALF_UP)));
|
||||
}
|
||||
System.out.println("90天出块量"+chunk90d);
|
||||
dto.setLuck90d(chunk90d.divide(dayChunk90d.multiply(BigDecimal.valueOf(90)),4,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)).doubleValue());
|
||||
|
||||
break;
|
||||
}while (time < 4);
|
||||
|
||||
redisService.deleteObject("ALPHLuck");
|
||||
|
||||
Reference in New Issue
Block a user