From da64a7a517825a5cad5bc16d8701e5a7026ee751 Mon Sep 17 00:00:00 2001 From: yyb <1416014977@qq.com> Date: Tue, 14 Oct 2025 15:49:23 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E7=9F=BF=E6=9C=BA=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E9=82=AE=E7=AE=B1=E5=8F=91=E9=80=81=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/manage/ManageWalletOutInMapper.xml | 2 +- .../pool/controller/NoticeController.java | 7 +++++++ .../pool/dto/NoticeMinerCoinListDto.java | 3 +++ .../m2pool/pool/mapper/UserAccountMapper.java | 3 +++ .../pool/service/impl/NoticeServiceImpl.java | 5 +++++ .../m2pool/pool/task/OffLineNoticeTask.java | 19 +++++++++++-------- .../resources/mapper/pool/NoticeMapper.xml | 1 + .../mapper/pool/UserAccountMapper.xml | 13 ++++++++++++- 8 files changed, 43 insertions(+), 10 deletions(-) diff --git a/m2pool-modules/m2pool-manage/src/main/resources/mapper/manage/ManageWalletOutInMapper.xml b/m2pool-modules/m2pool-manage/src/main/resources/mapper/manage/ManageWalletOutInMapper.xml index 577ee94..a174830 100644 --- a/m2pool-modules/m2pool-manage/src/main/resources/mapper/manage/ManageWalletOutInMapper.xml +++ b/m2pool-modules/m2pool-manage/src/main/resources/mapper/manage/ManageWalletOutInMapper.xml @@ -36,7 +36,7 @@ wallet_outv2 - `date` > #{startDate} + `date` >= #{startDate} diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/controller/NoticeController.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/controller/NoticeController.java index 75f6f76..d575321 100644 --- a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/controller/NoticeController.java +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/controller/NoticeController.java @@ -77,6 +77,13 @@ public class NoticeController extends BaseController { } + @PostMapping("/getNoticeInfoListInCache") + @ApiOperation(value = "获取用户最新的矿机在离线警报") + @RequiresLogin + public AjaxResult getNoticeInfoListInCache(){ + return noticeService.getNoticeInfoListInCache(); + } + } diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/dto/NoticeMinerCoinListDto.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/dto/NoticeMinerCoinListDto.java index e1d0244..b4a4548 100644 --- a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/dto/NoticeMinerCoinListDto.java +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/dto/NoticeMinerCoinListDto.java @@ -21,6 +21,9 @@ public class NoticeMinerCoinListDto implements Serializable { /** 挖矿账户 */ private String miner; + /** 挖矿账户表主键id */ + private Long maId; + ///** 币种 */ //private String coin; diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/mapper/UserAccountMapper.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/mapper/UserAccountMapper.java index 81ce594..672a432 100644 --- a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/mapper/UserAccountMapper.java +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/mapper/UserAccountMapper.java @@ -108,4 +108,7 @@ public interface UserAccountMapper { * @return */ int deleteBatchReadOnlyPage(@Param("list")List list); + + + List getUserMinerByUserEmail(@Param("email") String email); } diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/service/impl/NoticeServiceImpl.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/service/impl/NoticeServiceImpl.java index ffd2f37..0b63c2a 100644 --- a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/service/impl/NoticeServiceImpl.java +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/service/impl/NoticeServiceImpl.java @@ -21,7 +21,9 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; /** * @Description TODO @@ -223,4 +225,7 @@ public class NoticeServiceImpl implements NoticeService { return AjaxResult.error(r.getCode(),r.getMsg()); } } + + + } 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 f7f9bcf..c9c807b 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 @@ -78,19 +78,16 @@ public class OffLineNoticeTask { Collectors.mapping(NoticeMinerCoinListDto::getEmail, Collectors.toList()) )); - //先获取通知列表 TODO 这里查询notice_info为空,notice_info 里面存的从哪里来? (这张表不再使用) + // 获取通知列表 //List nmcList = noticeMapper.getNoticeEmailListByMinerAndCoin(list, Pools.NEXA.getCoin()); //System.out.println("查询到离线通知列表"+nmcList); - //Map> userEmails = nmcList.stream(). - // collect(Collectors.groupingBy( - // NoticeMinerCoinListDto::getMiner, - // Collectors.mapping(NoticeMinerCoinListDto::getEmail, Collectors.toList()) - // )); + //Map> userEmails = nmcList.stream().collect(Collectors.groupingBy(NoticeMinerCoinListDto::getMiner, Collectors.mapping(NoticeMinerCoinListDto::getEmail, Collectors.toList()))); + //获取上一次离线矿机数 可能为null 要做处理 如果没有redis记录 则上次离线数设置为0 若有redis但是key没有此挖矿账户也设置上次离线数为0 TODO 这里也没看到redis里面存储的位置 Map map = redisService.getCacheMap("NEXA_USERS_OFFLINE"); - list.stream().forEach(e -> { + list.forEach(e -> { long lastOff = 0; if(StringUtils.isNotNull(map)){ lastOff = map.getOrDefault(e.getUser(),0L); @@ -104,7 +101,9 @@ public class OffLineNoticeTask { String text = "您的"+Pools.NEXA.getCoin()+"下挖矿账户: "+e.getUser()+"\n有" + e.getOffline() + "台矿机离线!\n"+ "若您的矿机是因异常断开,请及时处理!"; - emails.stream().forEach(email ->{ + + //emails为list,实际情况下,一个miner只会对应一个邮箱 + emails.forEach(email ->{ System.out.println("用户"+e.getUser()+"矿机离线通知到"+email); EmailEntity entity = new EmailEntity(); entity.setSubject("[M2Pool] 矿机离线提示"); @@ -115,6 +114,7 @@ public class OffLineNoticeTask { redisService.setCacheMapValue("NEXA_USERS_OFFLINE",e.getUser(),e.getOffline()); }else { System.out.println("该用户未添加离线通知 :"+userEmails.toString()); + } }else { @@ -122,8 +122,11 @@ public class OffLineNoticeTask { System.out.println("挖矿账户"+e.getUser()+"本次无需通知,本次离线为"+e.getOffline()+",上次离线数"+ map.getOrDefault(e.getUser(),0L)); } + + }); + //TODO 离线警报数据入库或者修改 } diff --git a/m2pool-modules/m2pool-pool/src/main/resources/mapper/pool/NoticeMapper.xml b/m2pool-modules/m2pool-pool/src/main/resources/mapper/pool/NoticeMapper.xml index 5884fdd..b353c9c 100644 --- a/m2pool-modules/m2pool-pool/src/main/resources/mapper/pool/NoticeMapper.xml +++ b/m2pool-modules/m2pool-pool/src/main/resources/mapper/pool/NoticeMapper.xml @@ -80,6 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - +