From a51771db2e5a80ff04383c7559c15dc4c7021f85 Mon Sep 17 00:00:00 2001 From: yyb <1416014977@qq.com> Date: Tue, 8 Jul 2025 14:22:25 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=B9=BF=E6=92=AD=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=B9=BF=E6=92=AD=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E5=92=8C=E8=B7=B3=E8=BD=AC=E8=B7=AF=E5=BE=84=E3=80=82=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1=E6=96=B0=E5=A2=9E=E5=BC=80=E5=85=B3?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../m2pool/common/core/utils/DateUtils.java | 42 ++++++ .../WebsocketChannelInterceptor.java | 3 + .../java/com/m2pool/chat/task/ChatTask.java | 16 +++ .../controller/ManageBroadcastController.java | 1 - .../m2pool/manage/dto/ManageBroadcastDto.java | 6 + .../manage/dto/ManageMiningUserOnlineDto.java | 2 +- .../manage/dto/WalletEarningsInfoDto.java | 4 + .../m2pool/manage/entity/ManageBroadcast.java | 6 + .../manage/mapper/ManageBroadcastMapper.java | 5 + .../impl/ManageBroadcastServiceImpl.java | 40 +++++- .../service/impl/ManageUserServiceImpl.java | 78 ++++++++-- .../m2pool/manage/utils/TranslateUtils.java | 3 +- .../m2pool/manage/vo/ManageBroadcastVo.java | 6 + .../java/com/m2pool/manage/vo/PageVo.java | 1 + .../mapper/manage/ManageBroadcastMapper.xml | 43 ++++-- .../java/com/m2pool/pool/task/DataTask.java | 134 +++++++++++++++--- .../com/m2pool/pool/task/NeaxPriceTask.java | 10 ++ .../java/com/m2pool/pool/task/NodeTask.java | 80 +++++++++-- .../m2pool/pool/task/OffLineNoticeTask.java | 42 ++++-- .../m2pool/pool/task/PoolBlkStatsTask.java | 42 ++++-- .../com/m2pool/pool/utils/SocketDemo.java | 24 ++-- 21 files changed, 493 insertions(+), 95 deletions(-) diff --git a/m2pool-common/common-core/src/main/java/com/m2pool/common/core/utils/DateUtils.java b/m2pool-common/common-core/src/main/java/com/m2pool/common/core/utils/DateUtils.java index b5a556a..2ae76a9 100644 --- a/m2pool-common/common-core/src/main/java/com/m2pool/common/core/utils/DateUtils.java +++ b/m2pool-common/common-core/src/main/java/com/m2pool/common/core/utils/DateUtils.java @@ -320,4 +320,46 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils return DateUtils.parseDate(format); } + /** + * 获取当前时间前一个包含 30 分或整点的 30 分钟时间段起始时间 + * @param date 输入的日期 + * @return 前一个 30 分或整点时间段起始的日期 + */ + public static Date getPreviousHalfHourOrFullHour(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + + int minute = calendar.get(Calendar.MINUTE); + // 如果当前分钟数小于 30,前一个时间段起始是上一个整点 + if (minute < 30) { + calendar.set(Calendar.MINUTE, 0); + } else { + // 如果当前分钟数大于等于 30,前一个时间段起始是 30 分 + calendar.set(Calendar.MINUTE, 30); + } + + // 将秒和毫秒置为 0 + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + + // 如果当前分钟已经是 0 分或者 30 分,需要再往前推 30 分钟 + if (minute == 0 || minute == 30) { + calendar.add(Calendar.MINUTE, -30); + } + + return calendar.getTime(); + } + + /** + * 获取指定日期一个月前的时间 + * @param date 输入的日期 + * @return 一个月前的日期 + */ + public static Date getOneMonthAgo(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.MONTH, -1); + return calendar.getTime(); + } + } diff --git a/m2pool-modules/m2pool-chat/src/main/java/com/m2pool/chat/interceptor/WebsocketChannelInterceptor.java b/m2pool-modules/m2pool-chat/src/main/java/com/m2pool/chat/interceptor/WebsocketChannelInterceptor.java index 4c4ded4..47433f6 100644 --- a/m2pool-modules/m2pool-chat/src/main/java/com/m2pool/chat/interceptor/WebsocketChannelInterceptor.java +++ b/m2pool-modules/m2pool-chat/src/main/java/com/m2pool/chat/interceptor/WebsocketChannelInterceptor.java @@ -20,6 +20,7 @@ import org.springframework.messaging.simp.stomp.StompHeaderAccessor; import org.springframework.messaging.support.ChannelInterceptor; import org.springframework.messaging.support.MessageHeaderAccessor; +import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -77,6 +78,7 @@ public class WebsocketChannelInterceptor implements ChannelInterceptor { //获取链接建立时的请求头信息 StompHeaderAccessor accessor = StompHeaderAccessor.wrap(message); if (accessor.getCommand() == StompCommand.CONNECT ) { + System.out.println("yyb-开始链接"+new Date()); StompHeaderAccessor mha = MessageHeaderAccessor.getAccessor(message, StompHeaderAccessor.class); if(mha == null){ throw new MessageDeliveryException(ExceptionEnum.fromCode(ExceptionEnum.SET_PRINCIPAL_FAIL)); @@ -90,6 +92,7 @@ public class WebsocketChannelInterceptor implements ChannelInterceptor { ipLimit(accessor,type,email); //链接请求头中用户信息存入stomp中 mha.setUser(new StompPrincipal(email,type,true)); + System.out.println("yyb-链接成功"+new Date()); } if (accessor.getCommand() == StompCommand.SUBSCRIBE) { LOGGER.info("------------websocket subscribe message"); diff --git a/m2pool-modules/m2pool-chat/src/main/java/com/m2pool/chat/task/ChatTask.java b/m2pool-modules/m2pool-chat/src/main/java/com/m2pool/chat/task/ChatTask.java index 50009f4..a6f0bda 100644 --- a/m2pool-modules/m2pool-chat/src/main/java/com/m2pool/chat/task/ChatTask.java +++ b/m2pool-modules/m2pool-chat/src/main/java/com/m2pool/chat/task/ChatTask.java @@ -9,7 +9,11 @@ import com.m2pool.chat.entity.ChatRoom; import com.m2pool.chat.mapper.ChatMessageMapper; import com.m2pool.chat.mapper.ChatRoomMapper; import com.m2pool.chat.service.ChatMessageHistoryService; +import lombok.Data; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; @@ -25,7 +29,9 @@ import java.util.stream.Collectors; * @Author yyb * @Date 2025/4/15 11:51 */ +@Data @Configuration +@ConfigurationProperties(prefix = "task") @EnableScheduling public class ChatTask { @@ -37,9 +43,15 @@ public class ChatTask { @Autowired private ChatRoomMapper chatRoomMapper; + private boolean enable; + // @Scheduled(cron = "0 0/1 * * * ?") @Scheduled(cron = "0 15 1 * * ?") public void chatMessageDataSeparatedForHotAndCold(){ + if(!enable){ + System.out.println("ChatTask 定时任务已关闭,请在nacos修改配置"); + return; + } int pageNum = 1; int pageSize = 1000; // 每批处理数量 List chatMessages; @@ -82,8 +94,12 @@ public class ChatTask { @Scheduled(cron = "0 16 1 * * ?") //@Scheduled(cron = "0 0/1 * * * ?") public void clearTouristDatas(){ + if(!enable){ + return; + } chatMessageMapper.delete(new LambdaUpdateWrapper() .like(ChatMessage::getSendEmail, "guest_")); chatRoomMapper.delete(new LambdaUpdateWrapper().like(ChatRoom::getUserOneEmail, "guest_")); } + } diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/controller/ManageBroadcastController.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/controller/ManageBroadcastController.java index 9d8c81d..88bb922 100644 --- a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/controller/ManageBroadcastController.java +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/controller/ManageBroadcastController.java @@ -44,7 +44,6 @@ public class ManageBroadcastController { @PostMapping("/find/data/by/id") @ApiOperation(value = "业务系统:用于获取m2pool广播数据") - public R> findDataById(@RequestBody(required = false) ManageBaseVo manageBaseVo){ return manageBroadcastService.findDataById(manageBaseVo); } diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageBroadcastDto.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageBroadcastDto.java index 5dfa1a1..ca4ad07 100644 --- a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageBroadcastDto.java +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageBroadcastDto.java @@ -33,4 +33,10 @@ public class ManageBroadcastDto { @ApiModelProperty(value = "创建时间",example = "2025-05-22 14:22:13") private LocalDateTime createTime; + + @ApiModelProperty(value = "按钮内容",example = "按钮内容") + private String buttonContent; + + @ApiModelProperty(value = "按钮跳转路径",example = "按钮跳转路径") + private String buttonPath; } diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageMiningUserOnlineDto.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageMiningUserOnlineDto.java index 7e1c982..b567e30 100644 --- a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageMiningUserOnlineDto.java +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageMiningUserOnlineDto.java @@ -26,7 +26,7 @@ public class ManageMiningUserOnlineDto { //private String minerUser; @ApiModelProperty(value = "时间",example = "2025-06-27 16:30:00",required = true) - private LocalDateTime date; + private Date date; @ApiModelProperty(value = "在线数量",example = "15") private Integer onlineNum; diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/WalletEarningsInfoDto.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/WalletEarningsInfoDto.java index 5004d8d..0d70cdb 100644 --- a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/WalletEarningsInfoDto.java +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/WalletEarningsInfoDto.java @@ -7,6 +7,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.math.BigDecimal; import java.util.List; /** @@ -21,6 +22,9 @@ import java.util.List; @ApiModel(value = "WalletEarningsInfoDto", description = "钱包收益详情信息返回对象") public class WalletEarningsInfoDto { + @ApiModelProperty(value = "钱包余额",example = "100000.0000000000") + private BigDecimal accountBalance; + @ApiModelProperty(value = "钱包历史地址集合",example = "") List historyBalance; diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/entity/ManageBroadcast.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/entity/ManageBroadcast.java index f733ea8..f1fd3d1 100644 --- a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/entity/ManageBroadcast.java +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/entity/ManageBroadcast.java @@ -36,4 +36,10 @@ public class ManageBroadcast { private LocalDateTime updateTime; private Boolean del; + + private String buttonContent; + + private String buttonPath; + + private String buttonContentEn; } diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/mapper/ManageBroadcastMapper.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/mapper/ManageBroadcastMapper.java index 8dd8d2b..e5b879e 100644 --- a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/mapper/ManageBroadcastMapper.java +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/mapper/ManageBroadcastMapper.java @@ -9,6 +9,7 @@ import com.m2pool.manage.vo.ManageBaseVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.time.LocalDate; import java.util.Date; import java.util.List; @@ -87,4 +88,8 @@ public interface ManageBroadcastMapper extends BaseMapper { * @return */ List getListDataByPage(); + + + @DistributionDB + BigDecimal getAccountBalance(@Param("user") String user, @Param("coin") String coin); } diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/impl/ManageBroadcastServiceImpl.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/impl/ManageBroadcastServiceImpl.java index b00cc83..214045d 100644 --- a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/impl/ManageBroadcastServiceImpl.java +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/impl/ManageBroadcastServiceImpl.java @@ -44,7 +44,7 @@ public class ManageBroadcastServiceImpl extends ServiceImpl getListDataByPage(PageVo pageVo) { - PageHelper.startPage(pageVo.getPageNum(), pageVo.getPageSize()); + PageHelper.startPage(pageVo.getPageNum(), pageVo.getPageSize()); List listDataByPage = manageBroadcastMapper.getListDataByPage(); return getDataTable(listDataByPage); } @@ -81,6 +81,8 @@ public class ManageBroadcastServiceImpl extends ServiceImpl ManageBroadcastDto.builder() .content(broadcast.getContent()) + .buttonContent(broadcast.getButtonContent()) + .buttonPath(broadcast.getButtonPath()) .id(broadcast.getId()) .createUser(broadcast.getCreateUser()) .updateUser(broadcast.getUpdateUser()) @@ -91,12 +93,15 @@ public class ManageBroadcastServiceImpl extends ServiceImpl { //如果英文为null,需要翻译并保存一下 - if("".equals(broadcast.getContentEn())){ + if("".equals(broadcast.getContentEn()) || "".equals(broadcast.getButtonContentEn())){ broadcast.setContentEn(TranslateUtils.translate(broadcast.getContent(), "zh", "en")); + broadcast.setButtonContentEn(TranslateUtils.translate(broadcast.getButtonContent(), "zh", "en")); manageBroadcastMapper.updateById(broadcast); } return ManageBroadcastDto.builder() .content(broadcast.getContentEn()) + .buttonContent(broadcast.getButtonContentEn()) + .buttonPath(broadcast.getButtonPath()) .id(broadcast.getId()) .createUser(broadcast.getCreateUser()) .updateUser(broadcast.getUpdateUser()) @@ -110,6 +115,7 @@ public class ManageBroadcastServiceImpl extends ServiceImpl addBroadcast(ManageBroadcastVo broadcastVo) { - String translate = TranslateUtils.translate(broadcastVo.getContent(), "zh", "en"); + String contentEn = TranslateUtils.translate(broadcastVo.getContent(), "zh", "en"); + // 休眠 1 秒,确保符合 API 的 QPS 限制。可升级为高级版,qps为10。不要把两个文本放到一起同时翻译,会出问题 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + String buttonContentEn = TranslateUtils.translate(broadcastVo.getButtonContent(), "zh", "en"); ManageBroadcast broadcast = ManageBroadcast.builder() .content(broadcastVo.getContent()) - .contentEn(translate) + .contentEn(contentEn) + .buttonContent(broadcastVo.getButtonContent()) + .buttonContentEn(buttonContentEn) + .buttonPath(broadcastVo.getButtonPath()) .createUser(SecurityUtils.getUsername()) .updateTime(LocalDateTime.now()) .build(); @@ -148,11 +164,21 @@ public class ManageBroadcastServiceImpl extends ServiceImpl updateBroadcast(ManageBroadcastVo broadcastVo) { - String translate = TranslateUtils.translate(broadcastVo.getContent(), "zh", "en"); + String contentEn = TranslateUtils.translate(broadcastVo.getContent(), "zh", "en"); + // 休眠 1 秒,确保符合 API 的 QPS 限制。可升级为高级版,qps为10。不要把两个文本放到一起同时翻译,会出问题 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + String buttonContentEN = TranslateUtils.translate(broadcastVo.getButtonContent(), "zh", "en"); boolean b = this.updateById(ManageBroadcast.builder() .id(broadcastVo.getId()) .content(broadcastVo.getContent()) - .contentEn(translate) + .contentEn(contentEn) + .buttonContent(broadcastVo.getButtonContent()) + .buttonContentEn(buttonContentEN) + .buttonPath(broadcastVo.getButtonPath()) .updateUser(SecurityUtils.getUsername()) .build()); if (b){ @@ -170,6 +196,8 @@ public class ManageBroadcastServiceImpl extends ServiceImpl getUserInfo(ManageUserInfoVo manageUserInfoVo) { + //获取账户余额 + BigDecimal accountBalance = manageBroadcastMapper.getAccountBalance(manageUserInfoVo.getMinerUser(), manageUserInfoVo.getCoin()); //获取挖矿账户历史收益记录 List walletInInfo = manageBroadcastMapper.getUserInfo(manageUserInfoVo.getMinerUser(), manageUserInfoVo.getCoin(), manageUserInfoVo.getStartDate(), manageUserInfoVo.getEndDate()); //获取挖矿账户历史地址 List historyBalance = manageBroadcastMapper.getHistoryBalance(manageUserInfoVo.getMinerUser(), manageUserInfoVo.getCoin()); - WalletEarningsInfoDto manageUserInfoDto = new WalletEarningsInfoDto(historyBalance,walletInInfo); + WalletEarningsInfoDto manageUserInfoDto = new WalletEarningsInfoDto(accountBalance,historyBalance,walletInInfo); return R.success(manageUserInfoDto); } @@ -123,7 +126,19 @@ public class ManageUserServiceImpl implements ManageUserService { powerUnit = new PowerUnitUtils.NetPowerUnit("GH/S", BigDecimal.valueOf(1000 * 1000 * 1000)); } changeUnit(powerUnit, list,BigDecimal.valueOf(1000 * 1000)); - list = fillMissingData(list,powerUnit.getUnit(),manageMiningUserPowerVo.getMinerUser()); + if (manageMiningUserPowerVo.getStartDate()==null || manageMiningUserPowerVo.getEndDate()==null){ + + } + + + Date endDate = manageMiningUserPowerVo.getEndDate(); + Date startDate = manageMiningUserPowerVo.getStartDate(); + if (manageMiningUserPowerVo.getStartDate()==null || manageMiningUserPowerVo.getEndDate()==null){ + endDate = DateUtils.getPreviousHalfHourOrFullHour(new Date()); + startDate = DateUtils.getOneMonthAgo(endDate); + } + + list = fillMissingData(list,powerUnit.getUnit(),manageMiningUserPowerVo.getMinerUser(),startDate,endDate); return R.success(list); } @@ -151,21 +166,10 @@ public class ManageUserServiceImpl implements ManageUserService { * @param dataList * @return */ - public static List fillMissingData(List dataList,String unit,String minerUser) { - if (dataList == null || dataList.size() <= 1) { - return dataList; - } - - // 对数据按时间排序 - dataList.sort(Comparator.comparing(ManageMiningUserPowerDto::getDate)); - + public static List fillMissingData(List dataList,String unit,String minerUser,Date startTime,Date endTime) { List resultList = new ArrayList<>(); Calendar calendar = Calendar.getInstance(); - // 获取起始和结束时间 - Date startTime = dataList.get(0).getDate(); - Date endTime = dataList.get(dataList.size() - 1).getDate(); - calendar.setTime(startTime); Map timeDataMap = new HashMap<>(); for (ManageMiningUserPowerDto data : dataList) { @@ -195,6 +199,50 @@ public class ManageUserServiceImpl implements ManageUserService { manageMiningUserPowerVo.getCoin(), manageMiningUserPowerVo.getStartDate(), manageMiningUserPowerVo.getEndDate()); - return R.success(minerUserOnlineStatus); + Date endDate = manageMiningUserPowerVo.getEndDate(); + Date startDate = manageMiningUserPowerVo.getStartDate(); + if (manageMiningUserPowerVo.getStartDate()==null || manageMiningUserPowerVo.getEndDate()==null){ + endDate = DateUtils.getPreviousHalfHourOrFullHour(new Date()); + startDate = DateUtils.getOneMonthAgo(endDate); + } + + return R.success(fillMissingOnlineData(minerUserOnlineStatus, startDate, endDate)); } + + + /** + * 数据补零 30分钟时间端 + * @param dataList + * @return + */ + public static List fillMissingOnlineData(List dataList,Date startTime,Date endTime) { + + List resultList = new ArrayList<>(); + Calendar calendar = Calendar.getInstance(); + + + calendar.setTime(startTime); + Map timeDataMap = new HashMap<>(); + for (ManageMiningUserOnlineDto data : dataList) { + timeDataMap.put(data.getDate().getTime(), data); + } + + while (calendar.getTime().getTime() <= endTime.getTime()) { + long currentTime = calendar.getTime().getTime(); + ManageMiningUserOnlineDto data = timeDataMap.get(currentTime); + if (data != null) { + resultList.add(data); + } else { + resultList.add(new ManageMiningUserOnlineDto(calendar.getTime(),0, 0)); + } + // 增加 30 分钟 + calendar.add(Calendar.MINUTE, 30); + } + + return resultList; + } + + + + } diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/utils/TranslateUtils.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/utils/TranslateUtils.java index 520f6f8..c769b1b 100644 --- a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/utils/TranslateUtils.java +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/utils/TranslateUtils.java @@ -40,6 +40,7 @@ public class TranslateUtils { private static String extractDstFromResponse(String response) { + try { JsonObject jsonObject = JsonParser.parseString(response).getAsJsonObject(); JsonArray transResultArray = jsonObject.getAsJsonArray("trans_result"); @@ -48,7 +49,7 @@ public class TranslateUtils { return firstResult.get("dst").getAsString(); } } catch (Exception e) { - System.out.println("翻译结果解析失败"+e.getMessage()); + System.out.println("翻译结果解析失败"+e.getMessage()+"翻译结果:"+response); } return ""; } diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageBroadcastVo.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageBroadcastVo.java index 911f35f..3745177 100644 --- a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageBroadcastVo.java +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageBroadcastVo.java @@ -25,4 +25,10 @@ public class ManageBroadcastVo{ @ApiModelProperty(value = "内容",example = "广播内容") private String content; + + @ApiModelProperty(value = "按钮内容",example = "按钮内容") + private String buttonContent; + + @ApiModelProperty(value = "按钮跳转路径",example = "按钮跳转路径") + private String buttonPath; } diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/PageVo.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/PageVo.java index 8534844..c4f5f37 100644 --- a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/PageVo.java +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/PageVo.java @@ -17,4 +17,5 @@ public class PageVo { @ApiModelProperty(value = "每页条数",example = "20") private Integer pageSize; + } diff --git a/m2pool-modules/m2pool-manage/src/main/resources/mapper/manage/ManageBroadcastMapper.xml b/m2pool-modules/m2pool-manage/src/main/resources/mapper/manage/ManageBroadcastMapper.xml index 5a501d8..146d271 100644 --- a/m2pool-modules/m2pool-manage/src/main/resources/mapper/manage/ManageBroadcastMapper.xml +++ b/m2pool-modules/m2pool-manage/src/main/resources/mapper/manage/ManageBroadcastMapper.xml @@ -13,7 +13,7 @@ uma.coin, uab.balance, uab.active, - COALESCE(uab.amount,0), + COALESCE(uab.amount,0) as amount, uma.status FROM user_account_balance uab @@ -45,18 +45,14 @@ coin = #{coin} AND `user` = #{user} - and `create_date` >= #{startDate} AND `create_date` #{endDate} + and `create_date` >= #{startDate} and `create_date` #{endDate} - and `create_date` >= DATE_SUB(NOW(), INTERVAL 1 MONTH) - - - @@ -102,9 +104,14 @@ ${coin}_mhsv2 `user` = #{minerUser} - - and `date` >= #{startDate} AND `date` #{endDate} - + + + and `date` >= #{startDate} and `date` #{endDate} + + + and `date` >= DATE_SUB(NOW(), INTERVAL 1 MONTH) + + group by `date` @@ -118,10 +125,20 @@ create_user as createUser, update_user as updateUser, update_time as updateTime, - create_time as createTime + create_time as createTime, + button_content as buttonContent, + button_path as buttonPath FROM manage_broadcast where del =false + 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 67ad0c2..34c3eed 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 @@ -11,10 +11,12 @@ import com.m2pool.pool.enums.PoolCalParamConfig; import com.m2pool.pool.enums.PoolUnits; import com.m2pool.pool.enums.Pools; import com.m2pool.pool.mapper.PoolMapper; +import lombok.Data; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; @@ -32,10 +34,14 @@ import java.util.stream.Collectors; * @Date 2024/6/14 14:03 * @Author dy */ +@Data @Configuration +@ConfigurationProperties(prefix = "task.data") @EnableScheduling public class DataTask { + private boolean enable; + @Autowired private PoolMapper poolMapper; @@ -51,7 +57,10 @@ public class DataTask { @Scheduled(cron = "20 1,3,10,31,33,40 * * * ?") public void NEXA30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + System.out.println("DataTask 定时任务已关闭,请在nacos修改配置"); + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -229,6 +238,9 @@ public class DataTask { @Scheduled(cron = "0 1,3,5 0 * * ?") public void NEXADailyDataToDB(){ + if(!enable){ + return; + } String nowStr = DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD); Date now = DateUtils.parseDate( nowStr); @@ -382,7 +394,9 @@ public class DataTask { @Scheduled(cron = "50 0,1,30,31 * * * ?") public void NEXAUserPowerRatioDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); now.setHours(0); now.setMinutes(0); @@ -408,6 +422,9 @@ public class DataTask { @Scheduled(cron = "30 3 0/1 * * ?") //@Scheduled(cron = "0 0/2 * * * ?") public void NEXALuckyDataToDB(){ + if(!enable){ + return; + } log.info("nexa幸运值---定时任务开始"); LuckDto dto = new LuckDto(); Date end = DateUtils.parseDate(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS)); @@ -500,7 +517,9 @@ public class DataTask { @Scheduled(cron = "11 1,3,11,31,33,41 * * * ?") public void GRS30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -665,6 +684,9 @@ public class DataTask { @Scheduled(cron = "1 1,3,5 0 * * ?") public void GRSDailyDataToDB(){ + if(!enable){ + return; + } String nowStr = DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD); Date now = DateUtils.parseDate( nowStr); @@ -819,7 +841,9 @@ public class DataTask { @Scheduled(cron = "51 0,1,30,31 * * * ?") public void GRSUserPowerRatioDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); now.setHours(0); now.setMinutes(0); @@ -849,6 +873,9 @@ public class DataTask { @Scheduled(cron = "31 3 0/1 * * ?") //@Scheduled(cron = "0 0/2 * * * ?") public void GRSLuckyDataToDB(){ + if(!enable){ + return; + } log.info("GRS幸运值---定时任务开始"); LuckDto dto = new LuckDto(); Date end = DateUtils.parseDate(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS)); @@ -912,7 +939,9 @@ public class DataTask { @Scheduled(cron = "12 1,3,12,31,33,42 * * * ?") public void MONA30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -1074,6 +1103,9 @@ public class DataTask { @Scheduled(cron = "2 1,3,5 0 * * ?") public void MONADailyDataToDB(){ + if(!enable){ + return; + } String nowStr = DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD); Date now = DateUtils.parseDate( nowStr); @@ -1230,7 +1262,9 @@ public class DataTask { @Scheduled(cron = "52 0,1,30,31 * * * ?") public void MONAUserPowerRatioDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); now.setHours(0); now.setMinutes(0); @@ -1259,6 +1293,9 @@ public class DataTask { @Scheduled(cron = "32 3 0/1 * * ?") //@Scheduled(cron = "0 0/2 * * * ?") public void MONALuckyDataToDB(){ + if(!enable){ + return; + } log.info("MONA幸运值---定时任务开始"); LuckDto dto = new LuckDto(); Date end = DateUtils.parseDate(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS)); @@ -1325,7 +1362,9 @@ public class DataTask { @Scheduled(cron = "14 1,3,9,31,33,39 * * * ?") public void DGBO30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -1487,6 +1526,9 @@ public class DataTask { @Scheduled(cron = "4 1,3,5 0 * * ?") public void DGBODailyDataToDB(){ + if(!enable){ + return; + } String nowStr = DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD); Date now = DateUtils.parseDate( nowStr); @@ -1643,7 +1685,9 @@ public class DataTask { @Scheduled(cron = "54 0,1,30,31 * * * ?") public void DGBOUserPowerRatioDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); now.setHours(0); now.setMinutes(0); @@ -1673,7 +1717,9 @@ public class DataTask { @Scheduled(cron = "34 3 0/1 * * ?") //@Scheduled(cron = "0 0/2 * * * ?") public void DGBOLuckyDataToDB(){ - + if(!enable){ + return; + } log.info("DGBO幸运值---定时任务开始"); LuckDto dto = new LuckDto(); Date end = DateUtils.parseDate(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS)); @@ -1740,7 +1786,9 @@ public class DataTask { @Scheduled(cron = "16 1,3,8,31,33,38 * * * ?") public void DGBQ30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -1902,6 +1950,9 @@ public class DataTask { @Scheduled(cron = "6 1,3,5 0 * * ?") public void DGBQDailyDataToDB(){ + if(!enable){ + return; + } String nowStr = DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD); Date now = DateUtils.parseDate( nowStr); @@ -2058,7 +2109,9 @@ public class DataTask { @Scheduled(cron = "56 0,1,30,31 * * * ?") public void DGBQUserPowerRatioDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); now.setHours(0); now.setMinutes(0); @@ -2087,6 +2140,9 @@ public class DataTask { @Scheduled(cron = "36 3 0/1 * * ?") //@Scheduled(cron = "0 0/2 * * * ?") public void DGBQLuckyDataToDB(){ + if(!enable){ + return; + } log.info("DGBQ幸运值---定时任务开始"); LuckDto dto = new LuckDto(); Date end = DateUtils.parseDate(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS)); @@ -2153,7 +2209,9 @@ public class DataTask { @Scheduled(cron = "18 1,3,7,31,33,37 * * * ?") public void DGBS30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -2315,6 +2373,9 @@ public class DataTask { @Scheduled(cron = "8 1,3,5 0 * * ?") public void DGBSDailyDataToDB(){ + if(!enable){ + return; + } String nowStr = DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD); Date now = DateUtils.parseDate( nowStr); @@ -2469,7 +2530,9 @@ public class DataTask { @Scheduled(cron = "58 0,1,30,31 * * * ?") public void DGBSUserPowerRatioDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); now.setHours(0); now.setMinutes(0); @@ -2498,6 +2561,9 @@ public class DataTask { @Scheduled(cron = "38 3 0/1 * * ?") //@Scheduled(cron = "0 0/2 * * * ?") public void DGBSLuckyDataToDB(){ + if(!enable){ + return; + } log.info("DGBS幸运值---定时任务开始"); LuckDto dto = new LuckDto(); Date end = DateUtils.parseDate(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS)); @@ -2564,7 +2630,9 @@ public class DataTask { @Scheduled(cron = "19 1,3,13,31,33,43 * * * ?") public void RXD30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -2724,6 +2792,9 @@ public class DataTask { @Scheduled(cron = "9 1,3,5 0 * * ?") public void RXDDailyDataToDB(){ + if(!enable){ + return; + } String nowStr = DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD); Date now = DateUtils.parseDate( nowStr); @@ -2877,7 +2948,9 @@ public class DataTask { @Scheduled(cron = "59 0,1,30,31 * * * ?") public void RXDUserPowerRatioDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); now.setHours(0); now.setMinutes(0); @@ -2901,6 +2974,9 @@ public class DataTask { @Scheduled(cron = "39 3 0/1 * * ?") //@Scheduled(cron = "0 0/2 * * * ?") public void RXDLuckyDataToDB(){ + if(!enable){ + return; + } log.info("rxd幸运值---定时任务开始"); LuckDto dto = new LuckDto(); Date end = DateUtils.parseDate(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS)); @@ -2966,7 +3042,9 @@ public class DataTask { @Scheduled(cron = "21 1,3,13,31,33,43 * * * ?") public void ENX30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -3126,6 +3204,9 @@ public class DataTask { @Scheduled(cron = "10 1,3,5 0 * * ?") public void ENXDailyDataToDB(){ + if(!enable){ + return; + } String nowStr = DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD); Date now = DateUtils.parseDate( nowStr); @@ -3279,7 +3360,9 @@ public class DataTask { @Scheduled(cron = "53 0,1,30,31 * * * ?") public void ENXUserPowerRatioDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); now.setHours(0); now.setMinutes(0); @@ -3303,6 +3386,9 @@ public class DataTask { //@Scheduled(cron = "30 2,7 0,12 * * ?") @Scheduled(cron = "41 2,5 0/12 * * ?") public void ENXLuckyDataToDB(){ + if(!enable){ + return; + } int time = 0; LuckDto dto = new LuckDto(); Date end = DateUtils.parseDate(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD)); @@ -3531,7 +3617,9 @@ public class DataTask { @Scheduled(cron = "23 1,3,13,31,33,43 * * * ?") public void ALPH30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -3691,6 +3779,9 @@ public class DataTask { @Scheduled(cron = "12 1,3,5 0 * * ?") public void ALPHDailyDataToDB(){ + if(!enable){ + return; + } String nowStr = DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD); Date now = DateUtils.parseDate( nowStr); @@ -3841,7 +3932,9 @@ public class DataTask { @Scheduled(cron = "52 0,1,30,31 * * * ?") public void ALPHUserPowerRatioDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); now.setHours(0); now.setMinutes(0); @@ -3865,6 +3958,9 @@ public class DataTask { //@Scheduled(cron = "30 2,7 0,12 * * ?") @Scheduled(cron = "42 2,5 0/12 * * ?") public void ALPHLuckyDataToDB(){ + if(!enable){ + return; + } int time = 0; LuckDto dto = new LuckDto(); Date end = DateUtils.parseDate(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD)); diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/NeaxPriceTask.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/NeaxPriceTask.java index c26af59..6df8fa1 100644 --- a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/NeaxPriceTask.java +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/NeaxPriceTask.java @@ -9,8 +9,10 @@ import com.m2pool.common.redis.service.RedisService; import com.m2pool.pool.mapper.PoolMapper; import com.m2pool.pool.utils.NodeRpc; import com.m2pool.pool.vo.DateValueVo; +import lombok.Data; import org.apache.http.HttpHeaders; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; @@ -25,10 +27,14 @@ import java.util.Map; * @Date 2024/6/14 14:03 * @Author dy */ +@Data @Configuration +@ConfigurationProperties(prefix = "task.price") @EnableScheduling public class NeaxPriceTask { + private boolean enable; + @Autowired private PoolMapper poolMapper; @@ -45,6 +51,10 @@ public class NeaxPriceTask { @Scheduled(cron = "0 0,3,30,33 * * * ?") public void NEXAPriceToRedis() { + if(!enable){ + System.out.println("NeaxPriceTask 定时任务已关闭,请在nacos修改配置"); + return; + } Map map = getResultFromNetByAllCoins(); int count = 1; while (StringUtils.isNull(map) diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/NodeTask.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/NodeTask.java index 0d1c59b..d64c102 100644 --- a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/NodeTask.java +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/NodeTask.java @@ -10,9 +10,13 @@ import com.m2pool.pool.entity.BlockInfo; import com.m2pool.pool.mapper.PoolMapper; import com.m2pool.pool.utils.NodeRpc; import com.m2pool.pool.vo.DateValueVo; +import lombok.Data; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; @@ -32,10 +36,13 @@ import java.util.Map; * @Date 2024/6/14 14:03 * @Author dy */ +@Data @Configuration +@ConfigurationProperties(prefix = "task.node") @EnableScheduling public class NodeTask { + private boolean enable; private static final Logger log = LoggerFactory.getLogger(NodeTask.class); @@ -49,9 +56,14 @@ public class NodeTask { @Autowired private TransactionTemplate transactionTemplate; + //@Scheduled(cron = "0 0/2 * * * ?") @Scheduled(cron = "5 0,30 * * * ?") public void NEXABlockInfoToRedisAndDB(){ + if(!enable){ + + return; + } BlockInfo blockInfo = NodeRpc.getBlock("nexa"); int count = 1; @@ -83,6 +95,10 @@ public class NodeTask { @Scheduled(cron = "0 0/1 * * * ?") public void NEXABlockInfoToRedis(){ + if(!enable){ + System.out.println("NodeTask 定时任务已关闭,请在nacos修改配置"); + return; + } BlockInfo blockInfo = NodeRpc.getBlock("nexa"); int count = 0; while (StringUtils.isNull(blockInfo)){ @@ -109,6 +125,9 @@ public class NodeTask { @Scheduled(cron = "10 0,30 * * * ?") public void GRSBlockInfoToRedisAndDB(){ + if(!enable){ + return; + } BlockInfo blockInfo = NodeRpc.getBlock("grs"); int count = 1; @@ -139,27 +158,32 @@ public class NodeTask { @Scheduled(cron = "2 0/1 * * * ?") public void GRSBlockInfoToRedis(){ - BlockInfo blockInfo = NodeRpc.getBlock("grs"); + if(!enable){ + return; + } + BlockInfo blockInfo = NodeRpc.getBlock("grs"); + if(StringUtils.isNotNull(blockInfo)){ + if(StringUtils.isNotNull(blockInfo.getPower())){ - if(StringUtils.isNotNull(blockInfo)){ - if(StringUtils.isNotNull(blockInfo.getPower())){ + if (redisService.hasKey("grs_block")){ + redisService.deleteObject("grs_block"); + redisService.setCacheObject("grs_block",blockInfo); + }else { + redisService.setCacheObject("grs_block",blockInfo); + } - if (redisService.hasKey("grs_block")){ - redisService.deleteObject("grs_block"); - redisService.setCacheObject("grs_block",blockInfo); - }else { - redisService.setCacheObject("grs_block",blockInfo); } - } - } - else { - System.out.println("未从节点获取到grs最新数据 :"+DateUtils.dateTimeNow()); - } + else { + System.out.println("未从节点获取到grs最新数据 :"+DateUtils.dateTimeNow()); + } } @Scheduled(cron = "15 0,30 * * * ?") public void MONABlockInfoToRedisAndDB(){ + if(!enable){ + return; + } BlockInfo blockInfo = NodeRpc.getBlock("mona"); int count = 1; @@ -191,6 +215,9 @@ public class NodeTask { @Scheduled(cron = "4 0/1 * * * ?") public void MONABlockInfoToRedis(){ + if(!enable){ + return; + } BlockInfo blockInfo = NodeRpc.getBlock("mona"); if(StringUtils.isNotNull(blockInfo)){ @@ -212,6 +239,9 @@ public class NodeTask { @Scheduled(cron = "20 0,30 * * * ?") public void DGBBlockInfoToRedisAndDB(){ + if(!enable){ + return; + } Map dgbMap = NodeRpc.getDGBBlock(); int count = 1; while (StringUtils.isNull(dgbMap)){ @@ -299,6 +329,9 @@ public class NodeTask { @Scheduled(cron = "6 0/1 * * * ?") public void DGBBlockInfoToRedis(){ + if(!enable){ + return; + } Map dgbMap = NodeRpc.getDGBBlock(); if(StringUtils.isNotNull(dgbMap)){ BlockInfo dgbo = dgbMap.getOrDefault("dgbo", null); @@ -344,6 +377,9 @@ public class NodeTask { @Scheduled(cron = "25 0,30 * * * ?") public void RXDBlockInfoToRedisAndDB(){ + if(!enable){ + return; + } BlockInfo blockInfo = NodeRpc.getBlock("rxd"); int count = 1; @@ -375,6 +411,9 @@ public class NodeTask { @Scheduled(cron = "8 0/1 * * * ?") public void RXDBlockInfoToRedis(){ + if(!enable){ + return; + } BlockInfo blockInfo = NodeRpc.getBlock("rxd"); if(StringUtils.isNotNull(blockInfo)){ @@ -396,6 +435,9 @@ public class NodeTask { @Scheduled(cron = "30 0,30 * * * ?") public void ALPHBlockInfoToRedisAndDB(){ + if(!enable){ + return; + } BlockInfo blockInfo = NodeRpc.getBlock("alph"); //改成根据swagger api调用 用与原有节点调用相比新的路径、新的api @@ -428,6 +470,9 @@ public class NodeTask { @Scheduled(cron = "14 0/1 * * * ?") public void ALPHBlockInfoToRedis(){ + if(!enable){ + return; + } BlockInfo blockInfo = NodeRpc.getBlock("alph"); if(StringUtils.isNotNull(blockInfo)){ @@ -449,6 +494,9 @@ public class NodeTask { @Scheduled(cron = "35 0,30 * * * ?") public void ENXBlockInfoToRedisAndDB(){ + if(!enable){ + return; + } BlockInfo blockInfo = NodeRpc.getBlock("enx"); int count = 1; @@ -480,6 +528,9 @@ public class NodeTask { @Scheduled(cron = "12 0/1 * * * ?") public void ENXBlockInfoToRedis(){ + if(!enable){ + return; + } BlockInfo blockInfo = NodeRpc.getBlock("enx"); if(StringUtils.isNotNull(blockInfo)){ @@ -506,6 +557,9 @@ public class NodeTask { @Scheduled(cron = "0 2 0/1 * * ?") //@Scheduled(cron = "0 0/2 * * * ?") public void insertNetBlock(){ + if(!enable){ + return; + } insertBlockWithRetry("nexa", "nexa_net_block", 5); insertBlockWithRetry("mona", "mona_net_block", 5); insertBlockWithRetry("rxd", "rxd_net_block", 5); diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/OffLineNoticeTask.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/OffLineNoticeTask.java index a212795..22f3f76 100644 --- a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/OffLineNoticeTask.java +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/OffLineNoticeTask.java @@ -9,7 +9,9 @@ import com.m2pool.pool.mapper.NoticeMapper; import com.m2pool.pool.mapper.PoolMapper; import com.m2pool.system.api.RemoteMailService; import com.m2pool.system.api.entity.EmailEntity; +import lombok.Data; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; @@ -22,9 +24,12 @@ import java.util.stream.Collectors; * @Date 2024/6/14 14:03 * @Author dy */ +@Data @Configuration +@ConfigurationProperties(prefix = "task.notice") @EnableScheduling public class OffLineNoticeTask { + private boolean enable; @Autowired private PoolMapper poolMapper; @@ -43,7 +48,10 @@ public class OffLineNoticeTask { @Scheduled(cron = "20 15,45 * * * ?") public void NEXA30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + System.out.println("OffLineNoticeTask 定时任务已关闭,请在nacos修改配置"); + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -125,7 +133,9 @@ public class OffLineNoticeTask { @Scheduled(cron = "11 16,46 * * * ?") public void GRS30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -203,7 +213,9 @@ public class OffLineNoticeTask { @Scheduled(cron = "12 17,47 * * * ?") public void MONA30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -281,7 +293,9 @@ public class OffLineNoticeTask { @Scheduled(cron = "14 18,48 * * * ?") public void DGBO30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -358,7 +372,9 @@ public class OffLineNoticeTask { @Scheduled(cron = "16 19,49 * * * ?") public void DGBQ30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -435,7 +451,9 @@ public class OffLineNoticeTask { @Scheduled(cron = "18 20,50 * * * ?") public void DGBS30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -512,7 +530,9 @@ public class OffLineNoticeTask { @Scheduled(cron = "19 21,51 * * * ?") public void RXD30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -589,7 +609,9 @@ public class OffLineNoticeTask { @Scheduled(cron = "20 23,53 * * * ?") public void ALPH30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); @@ -666,7 +688,9 @@ public class OffLineNoticeTask { @Scheduled(cron = "21 25,55 * * * ?") public void ENX30mDataToDB(){ //String nowStr = DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:00"); - + if(!enable){ + return; + } Date now = new Date(); int minute = (now.getMinutes() / 30) * 30; now.setMinutes( minute); diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/PoolBlkStatsTask.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/PoolBlkStatsTask.java index 4c7564a..17d4226 100644 --- a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/PoolBlkStatsTask.java +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/task/PoolBlkStatsTask.java @@ -4,7 +4,9 @@ import com.m2pool.common.core.utils.DateUtils; import com.m2pool.common.redis.service.RedisService; import com.m2pool.pool.dto.BlockInfoDto; import com.m2pool.pool.mapper.PoolMapper; +import lombok.Data; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; @@ -18,10 +20,14 @@ import java.util.List; * @Date 2024/6/14 14:03 * @Author dy */ +@Data @Configuration +@ConfigurationProperties(prefix = "task.pool") @EnableScheduling public class PoolBlkStatsTask { + private boolean enable; + @Autowired private PoolMapper poolMapper; @@ -30,6 +36,10 @@ public class PoolBlkStatsTask { @Scheduled(cron = "0 0/2 * * * ?") public void NEXABlockInfoToRedis(){ + if(!enable){ + System.out.println("PoolBlkStatsTask 定时任务已关闭,请在nacos修改配置"); + return; + } boolean result = NEXABlockInfo(); @@ -46,7 +56,9 @@ public class PoolBlkStatsTask { @Scheduled(cron = "5 0/2 * * * ?") public void GRSBlockInfoToRedis(){ - + if(!enable){ + return; + } boolean result = GRSBlockInfo(); int count = 1; @@ -62,7 +74,9 @@ public class PoolBlkStatsTask { @Scheduled(cron = "10 0/2 * * * ?") public void MONABlockInfoToRedis(){ - + if(!enable){ + return; + } boolean result = MONABlockInfo(); int count = 1; @@ -78,7 +92,9 @@ public class PoolBlkStatsTask { @Scheduled(cron = "15 0/2 * * * ?") public void DGBOBlockInfoToRedis(){ - + if(!enable){ + return; + } boolean result = DGBOBlockInfo(); int count = 1; @@ -94,7 +110,9 @@ public class PoolBlkStatsTask { @Scheduled(cron = "20 0/2 * * * ?") public void DGBQBlockInfoToRedis(){ - + if(!enable){ + return; + } boolean result = DGBQBlockInfo(); int count = 1; @@ -110,7 +128,9 @@ public class PoolBlkStatsTask { @Scheduled(cron = "25 0/2 * * * ?") public void DGBSBlockInfoToRedis(){ - + if(!enable){ + return; + } boolean result = DGBSBlockInfo(); int count = 1; @@ -126,7 +146,9 @@ public class PoolBlkStatsTask { @Scheduled(cron = "30 0/2 * * * ?") public void RXDBlockInfoToRedis(){ - + if(!enable){ + return; + } boolean result = RXDBlockInfo(); int count = 1; @@ -142,7 +164,9 @@ public class PoolBlkStatsTask { @Scheduled(cron = "35 0/2 * * * ?") public void ALPHBlockInfoToRedis(){ - + if(!enable){ + return; + } boolean result = ALPHBlockInfo(); int count = 1; @@ -158,7 +182,9 @@ public class PoolBlkStatsTask { @Scheduled(cron = "40 0/2 * * * ?") public void ENXBlockInfoToRedis(){ - + if(!enable){ + return; + } boolean result = ENXBlockInfo(); int count = 1; diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/utils/SocketDemo.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/utils/SocketDemo.java index afbb654..1f478ea 100644 --- a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/utils/SocketDemo.java +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/utils/SocketDemo.java @@ -2,12 +2,14 @@ package com.m2pool.pool.utils; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; +import com.m2pool.common.core.utils.DateUtils; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; +import java.util.Date; /** * @Description TODO @@ -25,15 +27,19 @@ public class SocketDemo { //} catch (IOException e) { // System.out.println("连接失败: " + e.getMessage()); //} - String url = "http://10.168.2.167:12973/blockflow/chain-info?fromGroup=0&toGroup=0"; - HttpHeaders headers = new HttpHeaders(); - headers.add("Content-Type","application/json"); - headers.add("User-Agent", "Mozilla/5.0"); - headers.add("apikey","0x09e220e226f2feb7a971a2b6f958e7d4b1c187c8"); - HttpEntity httpEntity = new HttpEntity(null, headers); - String s = HttpUtil.get(url); + //String url = "http://10.168.2.167:12973/blockflow/chain-info?fromGroup=0&toGroup=0"; + //HttpHeaders headers = new HttpHeaders(); + //headers.add("Content-Type","application/json"); + //headers.add("User-Agent", "Mozilla/5.0"); + //headers.add("apikey","0x09e220e226f2feb7a971a2b6f958e7d4b1c187c8"); + //HttpEntity httpEntity = new HttpEntity(null, headers); + //String s = HttpUtil.get(url); + // + //JSONObject jsonObject = JSONObject.parseObject(s); + //int currentHeight = jsonObject.getIntValue("currentHeight"); - JSONObject jsonObject = JSONObject.parseObject(s); - int currentHeight = jsonObject.getIntValue("currentHeight"); + Date endDate = DateUtils.getPreviousHalfHourOrFullHour(new Date()); + Date startDate = DateUtils.getOneMonthAgo(endDate); + System.out.println(startDate+" "+endDate); } }