update dgb系列幸运值计算

This commit is contained in:
yyb 2025-05-21 15:06:04 +08:00
parent 86bb162b16
commit 5d7e3e6401
7 changed files with 242 additions and 730 deletions

View File

@ -197,7 +197,7 @@ public interface PoolMapper {
* @return
*/
@DistributionDB
public int selectPoolBlock(@Param("reduce")int reduce);
public int selectPoolBlock(@Param("start")Date start,@Param("end")Date end,@Param("coin")String coin,@Param("reduce")int reduce);
/**
* 查询一段时间内矿池平均算力

View File

@ -34,7 +34,7 @@ public class DetailedBlockDataV1Strategy implements PoolBlockDataStrategy {
//每日出块数固定的出块数
BigDecimal nexaCount = getCoinCount(coin);
long diffInMillis = end.getTime() - start.getTime();
BigDecimal dateLength2 = BigDecimal.valueOf(diffInMillis).divide(BigDecimal.valueOf(86400000), 0, RoundingMode.HALF_UP);
BigDecimal dateLength2 = BigDecimal.valueOf(diffInMillis).divide(BigDecimal.valueOf(86400000), 2, RoundingMode.HALF_UP);
//获取时间段内全网的实际报块数
int height = dateLength2.multiply(nexaCount).intValue();
//天数不足时以实际天数计算

View File

@ -19,9 +19,6 @@ import java.util.stream.Collectors;
@Component
public class DetailedBlockDataV2Strategy implements PoolBlockDataStrategy {
@Autowired
private PoolMapper poolMapper;
@Override
public BlockTimeAndNumberDto getTotalBlocks(String coin,Date start, Date end, List<BlockInfoDto> blockPerDays) {
List<BlockInfoDto> collect = blockPerDays.stream()
@ -35,7 +32,6 @@ public class DetailedBlockDataV2Strategy implements PoolBlockDataStrategy {
return BlockTimeAndNumberDto.builder().dateLength(BigDecimal.ZERO).height(collect.get(0).getHeight()).build();
}
return BlockTimeAndNumberDto.builder()
.dateLength(BigDecimal.valueOf(collect.size()))
.height(collect.get(0).getHeight()-collect.get(collect.size() - 1).getHeight()).build();
}

View File

@ -491,7 +491,7 @@ public class NodeTask {
/**
* 全网报块高度入库
*/
@Scheduled(cron = "0 0 0 * * ?")
@Scheduled(cron = "0 2 0/1 * * ?")
@Async("customTaskThreadPool")
public void insertNetBlock(){
insertBlockWithRetry("nexa", "nexa_net_block", 10);

View File

@ -65,7 +65,11 @@ public class PowerUnitUtils {
if(StringUtils.isNull(value)){
return "0";
}
if (value.compareTo(BigDecimal.valueOf(1000*1000*1000)) >= 0){
if(value.compareTo(BigDecimal.valueOf(1000L * 1000L * 1000L * 1000L * 1000L)) >= 0){
return value.divide(BigDecimal.valueOf(1000L * 1000L * 1000L * 1000L * 1000L),4,BigDecimal.ROUND_HALF_UP).toEngineeringString()+"P";
}else if(value.compareTo(BigDecimal.valueOf(1000L * 1000L * 1000L * 1000L)) >= 0){
return value.divide(BigDecimal.valueOf(1000L * 1000L * 1000L * 1000L),4,BigDecimal.ROUND_HALF_UP).toEngineeringString()+"T";
} else if (value.compareTo(BigDecimal.valueOf(1000*1000*1000)) >= 0){
return value.divide(BigDecimal.valueOf(1000*1000*1000),2,BigDecimal.ROUND_HALF_UP).toEngineeringString()+"G";
}else if (value.compareTo(BigDecimal.valueOf(1000*1000)) >= 0){
return value.divide(BigDecimal.valueOf(1000*1000),2,BigDecimal.ROUND_HALF_UP).toEngineeringString()+"M";

View File

@ -886,18 +886,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
insert into ${tableName} (`height`) values(#{height}) ON DUPLICATE KEY UPDATE `height` = VALUES(`height`)
</insert>
<select id="selectNetBlock" resultType="com.m2pool.pool.dto.BlockInfoDto">
SELECT `date`,height FROM ${tableName} WHERE `date` >= DATE_SUB(CURDATE(),INTERVAL 90 DAY) ORDER BY `date` DESC
SELECT `date`,height FROM ${tableName} WHERE `date` >= DATE_SUB(now(),INTERVAL 90 DAY) ORDER BY `date` DESC
</select>
<select id="selectPoolBlock" resultType="java.lang.Integer">
SELECT count(*) FROM nexa_blkreportprofitv2 WHERE `date` >= DATE_SUB(CURDATE(),INTERVAL #{reduce}-1 DAY)
SELECT count(*) FROM ${coin}_blkreportprofitv2 WHERE `date` >= #{start} AND date <![CDATA[ <= ]]> #{end}
</select>
<select id="getAvgPowerForPool" resultType="com.m2pool.pool.dto.DateBigDecimalDto">
select avg(mhs) `value` from ${coin}_pool_30m
where `date` >= #{start} and `date` <![CDATA[ <= ]]> #{end}
</select>
<select id="getAvgPowerForNet" resultType="com.m2pool.pool.dto.DateBigDecimalDto">
select avg(`value`) `value` from ${coin}_net_power
where `date` >= #{start} and `date` <![CDATA[ <= ]]> #{end}
select avg(`value`) `value` from ${coin}_net_power where `date` >= #{start} and `date` <![CDATA[ <= ]]> #{end}
</select>
</mapper>