diff --git a/m2pool-auth/src/main/resources/templates/emailCode-en.html b/m2pool-auth/src/main/resources/templates/emailCode-en.html index aa1d849..144b875 100644 --- a/m2pool-auth/src/main/resources/templates/emailCode-en.html +++ b/m2pool-auth/src/main/resources/templates/emailCode-en.html @@ -27,7 +27,7 @@ style="position:relative; display:inline-flex; align-items:center; justify-content:center; margin-top:2vh; width:80%; max-width:300px; height:50px; border-radius:12px; background:#ffffff; border:3px solid #651EFE;"> + style="font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace; font-weight:800; font-size:24px; letter-spacing:0.18em; color:#111827;margin:auto;"> diff --git a/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/dto/MinerIncomeDto.java b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/dto/MinerIncomeDto.java new file mode 100644 index 0000000..d3b5547 --- /dev/null +++ b/m2pool-modules/m2pool-pool/src/main/java/com/m2pool/pool/dto/MinerIncomeDto.java @@ -0,0 +1,33 @@ +package com.m2pool.pool.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Description 矿机收益 + * @Date 2025/8/15 11:17 + * @Author yyb + */ +@Data +public class MinerIncomeDto { + + + /** + * 挖矿账户 + */ + private String user; + + /** + * 矿工编号 + */ + private String miner; + + /** + * 一小时平均算力 + */ + private BigDecimal avgPower; + + +} 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 83d411c..c2b8e9b 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 @@ -121,18 +121,16 @@ public class OffLineNoticeTask { //执行通知 List emails = userEmails.getOrDefault(e.getUser(), null); if(StringUtils.isNotNull(emails)){ - String text = "您的"+Pools.NEXA.getCoin()+"下挖矿账户: "+e.getUser()+"\n有" + - e.getOffline() + "台矿机离线!\n"+ - "若您的矿机是因异常断开,请及时处理!"; //emails为list,实际情况下,一个miner只会对应一个邮箱 emails.forEach(email ->{ System.out.println("用户"+e.getUser()+"矿机离线通知到"+email); - EmailEntity entity = new EmailEntity(); - entity.setSubject("[M2Pool] 矿机离线提示"); - entity.setEmail(email); - entity.setText(text); - mailService.sendTextMail(entity); + Map text = new HashMap<>(); + text.put("user",e.getUser()); + text.put("coin",Pools.NEXA.getCoin()); + text.put("offOnlineNumbers",e.getOffline()); + EmailTemplateEntity entity = new EmailTemplateEntity(email,"[M2Pool] Offline prompt for mining machine","emailoffline-en",text); + mailService.sendHtmlMailMessage(entity); }); redisService.setCacheMapValue("NEXA_USERS_OFFLINE",e.getUser(),e.getOffline()); }else { @@ -216,16 +214,17 @@ public class OffLineNoticeTask { //执行通知 List emails = userEmails.getOrDefault(e.getUser(), null); if(StringUtils.isNotNull(emails)){ - String text = "您的"+Pools.NEXA.getName()+"下挖矿账户: "+e.getUser()+"\n有" + - e.getOffline() + "台矿机离线!\n"+ - "若您的矿机是因异常断开,请及时处理!"; + //String text = "您的"+Pools.NEXA.getName()+"下挖矿账户: "+e.getUser()+"\n有" + + // e.getOffline() + "台矿机离线!\n"+ + // "若您的矿机是因异常断开,请及时处理!"; emails.stream().forEach(email ->{ System.out.println("用户"+e.getUser()+"矿机离线通知到"+email); - EmailEntity entity = new EmailEntity(); - entity.setSubject("[M2Pool] 矿机离线提示"); - entity.setEmail(email); - entity.setText(text); - mailService.sendTextMail(entity); + Map text = new HashMap<>(); + text.put("user",e.getUser()); + text.put("coin",Pools.GRS.getCoin()); + text.put("offOnlineNumbers",e.getOffline()); + EmailTemplateEntity entity = new EmailTemplateEntity(email,"[M2Pool] Offline prompt for mining machine","emailoffline-en",text); + mailService.sendHtmlMailMessage(entity); }); redisService.setCacheMapValue("GRS_USERS_OFFLINE",e.getUser(),e.getOffline()); }else { @@ -303,16 +302,17 @@ public class OffLineNoticeTask { //执行通知 List emails = userEmails.getOrDefault(e.getUser(), null); if(StringUtils.isNotNull(emails)){ - String text = "您的"+Pools.MONA.getName()+"下挖矿账户: "+e.getUser()+"\n有" + - e.getOffline() + "台矿机离线!\n"+ - "若您的矿机是因异常断开,请及时处理!"; + //String text = "您的"+Pools.MONA.getName()+"下挖矿账户: "+e.getUser()+"\n有" + + // e.getOffline() + "台矿机离线!\n"+ + // "若您的矿机是因异常断开,请及时处理!"; emails.stream().forEach(email ->{ System.out.println("用户"+e.getUser()+"矿机离线通知到"+email); - EmailEntity entity = new EmailEntity(); - entity.setSubject("[M2Pool] 矿机离线提示"); - entity.setEmail(email); - entity.setText(text); - mailService.sendTextMail(entity); + Map text = new HashMap<>(); + text.put("user",e.getUser()); + text.put("coin",Pools.MONA.getCoin()); + text.put("offOnlineNumbers",e.getOffline()); + EmailTemplateEntity entity = new EmailTemplateEntity(email,"[M2Pool] Offline prompt for mining machine","emailoffline-en",text); + mailService.sendHtmlMailMessage(entity); }); redisService.setCacheMapValue("MONA_USERS_OFFLINE",e.getUser(),e.getOffline()); }else { @@ -389,16 +389,17 @@ public class OffLineNoticeTask { //执行通知 List emails = userEmails.getOrDefault(e.getUser(), null); if(StringUtils.isNotNull(emails)){ - String text = "您的"+Pools.DGBO.getName()+"下挖矿账户: "+e.getUser()+"\n有" + - e.getOffline() + "台矿机离线!\n"+ - "若您的矿机是因异常断开,请及时处理!"; + //String text = "您的"+Pools.DGBO.getName()+"下挖矿账户: "+e.getUser()+"\n有" + + // e.getOffline() + "台矿机离线!\n"+ + // "若您的矿机是因异常断开,请及时处理!"; emails.stream().forEach(email ->{ System.out.println("用户"+e.getUser()+"矿机离线通知到"+email); - EmailEntity entity = new EmailEntity(); - entity.setSubject("[M2Pool] 矿机离线提示"); - entity.setEmail(email); - entity.setText(text); - mailService.sendTextMail(entity); + Map text = new HashMap<>(); + text.put("user",e.getUser()); + text.put("coin",Pools.DGBO.getCoin()); + text.put("offOnlineNumbers",e.getOffline()); + EmailTemplateEntity entity = new EmailTemplateEntity(email,"[M2Pool] Offline prompt for mining machine","emailoffline-en",text); + mailService.sendHtmlMailMessage(entity); }); redisService.setCacheMapValue("DGBO_USERS_OFFLINE",e.getUser(),e.getOffline()); }else { @@ -475,16 +476,17 @@ public class OffLineNoticeTask { //执行通知 List emails = userEmails.getOrDefault(e.getUser(), null); if(StringUtils.isNotNull(emails)){ - String text = "您的"+Pools.DGBQ.getName()+"下挖矿账户: "+e.getUser()+"\n有" + - e.getOffline() + "台矿机离线!\n"+ - "若您的矿机是因异常断开,请及时处理!"; + //String text = "您的"+Pools.DGBQ.getName()+"下挖矿账户: "+e.getUser()+"\n有" + + // e.getOffline() + "台矿机离线!\n"+ + // "若您的矿机是因异常断开,请及时处理!"; emails.stream().forEach(email ->{ System.out.println("用户"+e.getUser()+"矿机离线通知到"+email); - EmailEntity entity = new EmailEntity(); - entity.setSubject("[M2Pool] 矿机离线提示"); - entity.setEmail(email); - entity.setText(text); - mailService.sendTextMail(entity); + Map text = new HashMap<>(); + text.put("user",e.getUser()); + text.put("coin",Pools.DGBQ.getCoin()); + text.put("offOnlineNumbers",e.getOffline()); + EmailTemplateEntity entity = new EmailTemplateEntity(email,"[M2Pool] Offline prompt for mining machine","emailoffline-en",text); + mailService.sendHtmlMailMessage(entity); }); redisService.setCacheMapValue("DGBQ_USERS_OFFLINE",e.getUser(),e.getOffline()); }else { @@ -561,16 +563,17 @@ public class OffLineNoticeTask { //执行通知 List emails = userEmails.getOrDefault(e.getUser(), null); if(StringUtils.isNotNull(emails)){ - String text = "您的"+Pools.DGBS.getName()+"下挖矿账户: "+e.getUser()+"\n有" + - e.getOffline() + "台矿机离线!\n"+ - "若您的矿机是因异常断开,请及时处理!"; + //String text = "您的"+Pools.DGBS.getName()+"下挖矿账户: "+e.getUser()+"\n有" + + // e.getOffline() + "台矿机离线!\n"+ + // "若您的矿机是因异常断开,请及时处理!"; emails.stream().forEach(email ->{ System.out.println("用户"+e.getUser()+"矿机离线通知到"+email); - EmailEntity entity = new EmailEntity(); - entity.setSubject("[M2Pool] 矿机离线提示"); - entity.setEmail(email); - entity.setText(text); - mailService.sendTextMail(entity); + Map text = new HashMap<>(); + text.put("user",e.getUser()); + text.put("coin",Pools.DGBS.getCoin()); + text.put("offOnlineNumbers",e.getOffline()); + EmailTemplateEntity entity = new EmailTemplateEntity(email,"[M2Pool] Offline prompt for mining machine","emailoffline-en",text); + mailService.sendHtmlMailMessage(entity); }); redisService.setCacheMapValue("DGBS_USERS_OFFLINE",e.getUser(),e.getOffline()); }else { @@ -647,16 +650,17 @@ public class OffLineNoticeTask { //执行通知 List emails = userEmails.getOrDefault(e.getUser(), null); if(StringUtils.isNotNull(emails)){ - String text = "您的"+Pools.RXD.getName()+"下挖矿账户: "+e.getUser()+"\n有" + - e.getOffline() + "台矿机离线!\n"+ - "若您的矿机是因异常断开,请及时处理!"; + //String text = "您的"+Pools.RXD.getName()+"下挖矿账户: "+e.getUser()+"\n有" + + // e.getOffline() + "台矿机离线!\n"+ + // "若您的矿机是因异常断开,请及时处理!"; emails.stream().forEach(email ->{ System.out.println("用户"+e.getUser()+"矿机离线通知到"+email); - EmailEntity entity = new EmailEntity(); - entity.setSubject("[M2Pool] 矿机离线提示"); - entity.setEmail(email); - entity.setText(text); - mailService.sendTextMail(entity); + Map text = new HashMap<>(); + text.put("user",e.getUser()); + text.put("coin",Pools.RXD.getCoin()); + text.put("offOnlineNumbers",e.getOffline()); + EmailTemplateEntity entity = new EmailTemplateEntity(email,"[M2Pool] Offline prompt for mining machine","emailoffline-en",text); + mailService.sendHtmlMailMessage(entity); }); redisService.setCacheMapValue("RXD_USERS_OFFLINE",e.getUser(),e.getOffline()); }else { @@ -733,16 +737,17 @@ public class OffLineNoticeTask { //执行通知 List emails = userEmails.getOrDefault(e.getUser(), null); if(StringUtils.isNotNull(emails)){ - String text = "您的"+Pools.ALPH.getName()+"下挖矿账户: "+e.getUser()+"\n有" + - e.getOffline() + "台矿机离线!\n"+ - "若您的矿机是因异常断开,请及时处理!"; + //String text = "您的"+Pools.ALPH.getName()+"下挖矿账户: "+e.getUser()+"\n有" + + // e.getOffline() + "台矿机离线!\n"+ + // "若您的矿机是因异常断开,请及时处理!"; emails.stream().forEach(email ->{ System.out.println("用户"+e.getUser()+"矿机离线通知到"+email); - EmailEntity entity = new EmailEntity(); - entity.setSubject("[M2Pool] 矿机离线提示"); - entity.setEmail(email); - entity.setText(text); - mailService.sendTextMail(entity); + Map text = new HashMap<>(); + text.put("user",e.getUser()); + text.put("coin",Pools.ALPH.getCoin()); + text.put("offOnlineNumbers",e.getOffline()); + EmailTemplateEntity entity = new EmailTemplateEntity(email,"[M2Pool] Offline prompt for mining machine","emailoffline-en",text); + mailService.sendHtmlMailMessage(entity); }); redisService.setCacheMapValue("ALPH_USERS_OFFLINE",e.getUser(),e.getOffline()); }else { @@ -819,16 +824,17 @@ public class OffLineNoticeTask { //执行通知 List emails = userEmails.getOrDefault(e.getUser(), null); if(StringUtils.isNotNull(emails)){ - String text = "您的"+Pools.ENX.getName()+"下挖矿账户: "+e.getUser()+"\n有" + - e.getOffline() + "台矿机离线!\n"+ - "若您的矿机是因异常断开,请及时处理!"; + //String text = "您的"+Pools.ENX.getName()+"下挖矿账户: "+e.getUser()+"\n有" + + // e.getOffline() + "台矿机离线!\n"+ + // "若您的矿机是因异常断开,请及时处理!"; emails.stream().forEach(email ->{ System.out.println("用户"+e.getUser()+"矿机离线通知到"+email); - EmailEntity entity = new EmailEntity(); - entity.setSubject("[M2Pool] 矿机离线提示"); - entity.setEmail(email); - entity.setText(text); - mailService.sendTextMail(entity); + Map text = new HashMap<>(); + text.put("user",e.getUser()); + text.put("coin",Pools.ENX.getCoin()); + text.put("offOnlineNumbers",e.getOffline()); + EmailTemplateEntity entity = new EmailTemplateEntity(email,"[M2Pool] Offline prompt for mining machine","emailoffline-en",text); + mailService.sendHtmlMailMessage(entity); }); redisService.setCacheMapValue("ENX_USERS_OFFLINE",e.getUser(),e.getOffline()); }else { @@ -908,16 +914,17 @@ public class OffLineNoticeTask { //执行通知 List emails = userEmails.getOrDefault(e.getUser(), null); if(StringUtils.isNotNull(emails)){ - String text = "您的"+Pools.MONERO.getCoin()+"下挖矿账户: "+e.getUser()+"\n有" + - e.getOffline() + "台矿机离线!\n"+ - "若您的矿机是因异常断开,请及时处理!"; + //String text = "您的"+Pools.MONERO.getCoin()+"下挖矿账户: "+e.getUser()+"\n有" + + // e.getOffline() + "台矿机离线!\n"+ + // "若您的矿机是因异常断开,请及时处理!"; emails.stream().forEach(email ->{ System.out.println("用户"+e.getUser()+"矿机离线通知到"+email); - EmailEntity entity = new EmailEntity(); - entity.setSubject("[M2Pool] 矿机离线提示"); - entity.setEmail(email); - entity.setText(text); - mailService.sendTextMail(entity); + Map text = new HashMap<>(); + text.put("user",e.getUser()); + text.put("coin",Pools.MONERO.getCoin()); + text.put("offOnlineNumbers",e.getOffline()); + EmailTemplateEntity entity = new EmailTemplateEntity(email,"[M2Pool] Offline prompt for mining machine","emailoffline-en",text); + mailService.sendHtmlMailMessage(entity); }); redisService.setCacheMapValue("MONERO_USERS_OFFLINE",e.getUser(),e.getOffline()); }else { @@ -999,16 +1006,17 @@ public class OffLineNoticeTask { //执行通知 List emails = userEmails.getOrDefault(e.getUser(), null); if(StringUtils.isNotNull(emails)){ - String text = "您的"+Pools.SHA3X.getCoin()+"下挖矿账户: "+e.getUser()+"\n有" + - e.getOffline() + "台矿机离线!\n"+ - "若您的矿机是因异常断开,请及时处理!"; + //String text = "您的"+Pools.SHA3X.getCoin()+"下挖矿账户: "+e.getUser()+"\n有" + + // e.getOffline() + "台矿机离线!\n"+ + // "若您的矿机是因异常断开,请及时处理!"; emails.stream().forEach(email ->{ System.out.println("用户"+e.getUser()+"矿机离线通知到"+email); - EmailEntity entity = new EmailEntity(); - entity.setSubject("[M2Pool] 矿机离线提示"); - entity.setEmail(email); - entity.setText(text); - mailService.sendTextMail(entity); + Map text = new HashMap<>(); + text.put("user",e.getUser()); + text.put("coin",Pools.SHA3X.getCoin()); + text.put("offOnlineNumbers",e.getOffline()); + EmailTemplateEntity entity = new EmailTemplateEntity(email,"[M2Pool] Offline prompt for mining machine","emailoffline-en",text); + mailService.sendHtmlMailMessage(entity); }); }else { System.out.println("该用户未添加离线通知 :"+userEmails.toString());