diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/controller/PoolController.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/controller/PoolController.java index f0fdb31..3afcff3 100644 --- a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/controller/PoolController.java +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/controller/PoolController.java @@ -183,6 +183,12 @@ public class PoolController extends BaseController { } + @PostMapping("/getMinerPowerFor30min") + @ApiOperation(value = "根据矿工账号从hashrate库获取30m的平均算力") + public AjaxResult getMinerPowerFor30min(@RequestBody MinerMhsVo minerMhsVo){ + return poolService.getMinerPowerFor30min(minerMhsVo); + } + @GetMapping("/test2") @ApiOperation(value = "") @@ -200,4 +206,6 @@ public class PoolController extends BaseController { } + + } diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/dto/MinerMhsDto.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/dto/MinerMhsDto.java new file mode 100644 index 0000000..cfa79dd --- /dev/null +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/dto/MinerMhsDto.java @@ -0,0 +1,28 @@ +package com.m2pool.pool.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Description 矿工对应的平均算力返回对象 + * @Date 2025/05/26 15:17 + * @Author yyb + */ +@Data +public class MinerMhsDto implements Serializable { + + /** 日期 */ + private Date date; + + /** + * 矿工账号 + */ + private String user; + + + private BigDecimal mhs30m; + +} diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/mapper/PoolMapper.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/mapper/PoolMapper.java index ca0e21a..6c87c14 100644 --- a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/mapper/PoolMapper.java +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/mapper/PoolMapper.java @@ -10,6 +10,7 @@ import com.m2pool.pool.vo.DateValueVo; import org.apache.ibatis.annotations.Param; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -217,4 +218,13 @@ public interface PoolMapper { */ DateBigDecimalDto getAvgPowerForNet(@Param("coin") String coin, @Param("start")Date start, @Param("end")Date end); + + /** + * + * @param coin + * @param startTime + * @return + */ + @HashRateDB + List getMinerPowerFor30min(@Param("coin") String coin, @Param("startTime") LocalDateTime startTime,@Param("endTime") LocalDateTime endTime); } diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/service/PoolService.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/service/PoolService.java index b309947..3484220 100644 --- a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/service/PoolService.java +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/service/PoolService.java @@ -39,4 +39,11 @@ public interface PoolService { public AjaxResult test1(); + + /** + * 根据矿工账号获取30m的平均算力 + * @param minerMhsVo + * @return + */ + AjaxResult getMinerPowerFor30min( MinerMhsVo minerMhsVo); } diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/service/impl/PoolServiceImpl.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/service/impl/PoolServiceImpl.java index 80ef4e8..990e32b 100644 --- a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/service/impl/PoolServiceImpl.java +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/service/impl/PoolServiceImpl.java @@ -22,6 +22,7 @@ import com.m2pool.pool.utils.PowerUnitUtils; import com.m2pool.pool.vo.BalanceListGetVo; import com.m2pool.pool.vo.CoinVo; import com.m2pool.pool.vo.MinerAccountAddVo; +import com.m2pool.pool.vo.MinerMhsVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -605,4 +606,15 @@ public class PoolServiceImpl implements PoolService { return returnList; } + + + @Override + public AjaxResult getMinerPowerFor30min(MinerMhsVo minerMhsVo) { + if (StringUtils.isNull(minerMhsVo.getCoin()) || StringUtils.isNull(minerMhsVo.getStartTime()) || StringUtils.isNull(minerMhsVo.getEndTime())){ + return AjaxResult.error("币种或开始日期或结束日期参数未传递"); + } + List minerPowerFor30min = poolMapper.getMinerPowerFor30min(minerMhsVo.getCoin(), minerMhsVo.getStartTime(), minerMhsVo.getEndTime()); + + return AjaxResult.success(minerPowerFor30min); + } } diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/vo/MinerMhsVo.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/vo/MinerMhsVo.java new file mode 100644 index 0000000..e4c9e18 --- /dev/null +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/vo/MinerMhsVo.java @@ -0,0 +1,33 @@ +package com.m2pool.pool.vo; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; +import java.util.Date; + +/** + * 矿工算力请求对象 + */ +@Data +@ApiModel(description = "矿工算力请求对象") +public class MinerMhsVo { + @ApiModelProperty(value = "币种", example = "dgbo") + public String coin; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "开始时间", example = "2025-05-20 01:00:00") + private LocalDateTime startTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "结束时间", example = "2025-05-26 01:00:00") + private LocalDateTime endTime; + +} + diff --git a/m2pool-modules/m2pool-pool/src/main/resources/mapper/pool/PoolMapper.xml b/m2pool-modules/m2pool-pool/src/main/resources/mapper/pool/PoolMapper.xml index b69ce17..7f79b4b 100644 --- a/m2pool-modules/m2pool-pool/src/main/resources/mapper/pool/PoolMapper.xml +++ b/m2pool-modules/m2pool-pool/src/main/resources/mapper/pool/PoolMapper.xml @@ -898,6 +898,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +