diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmAlarmLogMapper.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmAlarmLogMapper.java index b8cf7f0..b7667e8 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmAlarmLogMapper.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmAlarmLogMapper.java @@ -1,8 +1,9 @@ package com.tongran.rocketmq.mapper; -import java.util.List; import com.tongran.rocketmq.domain.RmAlarmLog; +import java.util.List; + /** * 客户端告警信息Mapper接口 * @@ -58,4 +59,5 @@ public interface RmAlarmLogMapper * @return 结果 */ public int deleteRmAlarmLogByIds(Long[] ids); + public int deleteAlarmLogByClientIdAndAlarmType(RmAlarmLog rmAlarmLog); } diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java index dd904dd..08ca3f4 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java @@ -1,5 +1,7 @@ package com.tongran.rocketmq.service.impl; +import com.tongran.common.core.constant.SecurityConstants; +import com.tongran.common.core.domain.R; import com.tongran.common.core.utils.*; import com.tongran.rocketmq.domain.*; import com.tongran.rocketmq.enums.AlarmTypeEnum; @@ -7,9 +9,12 @@ import com.tongran.rocketmq.enums.ConditionItemEnum; import com.tongran.rocketmq.mapper.*; import com.tongran.rocketmq.service.IInitialBandwidthTrafficService; import com.tongran.rocketmq.service.IInitialDiskInfoService; +import com.tongran.rocketmq.service.IRmAlarmLogService; import com.tongran.rocketmq.service.IRmNetworkInterfaceService; import com.tongran.rocketmq.utils.SendAlarmPushUtil; import com.tongran.rocketmq.utils.TableRouterUtil; +import com.tongran.system.api.RemoteRevenueConfigService; +import com.tongran.system.api.domain.RmResourceRegistrationRemote; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -47,11 +52,13 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf @Autowired private RmAlarmThresholdMapper rmAlarmThresholdMapper; @Autowired - private RmAlarmLogMapper rmAlarmLogMapper; + private IRmAlarmLogService rmAlarmLogService; @Autowired private SendAlarmPushUtil sendAlarmPushUtil; @Autowired private IRmNetworkInterfaceService rmNetworkInterfaceService; + @Autowired + private RemoteRevenueConfigService remoteRevenueConfigService; /** * 查询初始带宽流量 @@ -240,12 +247,22 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf log.warn("未知的运算符: {}", operator); } if (shouldAlarm) { + // 查询服务器信息 + RmResourceRegistrationRemote query = new RmResourceRegistrationRemote(); + query.setClientId(clientId); + R registerMsgR = remoteRevenueConfigService.getListByHardwareSn(query, SecurityConstants.INNER); RmAlarmLog rmAlarmLog = new RmAlarmLog(); + if(registerMsgR != null && registerMsgR.getData() != null){ + RmResourceRegistrationRemote serverMsg = registerMsgR.getData(); + rmAlarmLog.setMgmPublicIp(serverMsg.getIp1PublicIp()); + rmAlarmLog.setBusinessName(serverMsg.getBusinessName()); + rmAlarmLog.setRemark(serverMsg.getRemark()); + } rmAlarmLog.setAlarmType(AlarmTypeEnum.ping丢包率过高.getCode()); rmAlarmLog.setClientId(clientId); rmAlarmLog.setAlarmTime(DateUtils.getNowDate()); rmAlarmLog.setAlarmContent("丢包率:" + pingDropped); - rmAlarmLogMapper.insertRmAlarmLog(rmAlarmLog); + rmAlarmLogService.insertRmAlarmLog(rmAlarmLog); // 推送消息 sendAlarmPushUtil.sendAlarmPush(rmAlarmLog, AlarmTypeEnum.ping丢包率过高.getMsg()); } diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmAlarmLogServiceImpl.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmAlarmLogServiceImpl.java index 3bac884..ab9747c 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmAlarmLogServiceImpl.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmAlarmLogServiceImpl.java @@ -1,12 +1,14 @@ package com.tongran.rocketmq.service.impl; -import java.util.List; import com.tongran.common.core.utils.DateUtils; +import com.tongran.rocketmq.domain.RmAlarmLog; +import com.tongran.rocketmq.enums.AlarmTypeEnum; +import com.tongran.rocketmq.mapper.RmAlarmLogMapper; +import com.tongran.rocketmq.service.IRmAlarmLogService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.tongran.rocketmq.mapper.RmAlarmLogMapper; -import com.tongran.rocketmq.domain.RmAlarmLog; -import com.tongran.rocketmq.service.IRmAlarmLogService; + +import java.util.List; /** * 客户端告警信息Service业务层处理 @@ -54,6 +56,18 @@ public class RmAlarmLogServiceImpl implements IRmAlarmLogService public int insertRmAlarmLog(RmAlarmLog rmAlarmLog) { rmAlarmLog.setCreateTime(DateUtils.getNowDate()); + if(AlarmTypeEnum.ping丢包率过高.getCode().equals(rmAlarmLog.getAlarmType())){ + if(rmAlarmLog.getClientId() != null){ + // 查询是否已存在 + RmAlarmLog query = new RmAlarmLog(); + query.setClientId(rmAlarmLog.getClientId()); + query.setAlarmType(rmAlarmLog.getAlarmType()); + List rmAlarmLogList = rmAlarmLogMapper.selectRmAlarmLogList(query); + if(rmAlarmLogList != null && !rmAlarmLogList.isEmpty()){ + rmAlarmLogMapper.deleteAlarmLogByClientIdAndAlarmType(query); + } + } + } return rmAlarmLogMapper.insertRmAlarmLog(rmAlarmLog); } diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/utils/SendAlarmPushUtil.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/utils/SendAlarmPushUtil.java index 1d97c91..01480db 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/utils/SendAlarmPushUtil.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/utils/SendAlarmPushUtil.java @@ -4,6 +4,7 @@ import com.tongran.common.core.constant.SecurityConstants; import com.tongran.common.core.domain.R; import com.tongran.rocketmq.domain.RmAlarmLog; import com.tongran.rocketmq.domain.RmAlarmPushConfig; +import com.tongran.rocketmq.enums.AlarmTypeEnum; import com.tongran.rocketmq.enums.PushMethodEnum; import com.tongran.rocketmq.service.IRmAlarmLogService; import com.tongran.rocketmq.service.IRmAlarmPushConfigService; @@ -44,15 +45,17 @@ public class SendAlarmPushUtil { updateData.setId(rmAlarmLog.getId()); if (alarmConfigList != null && !alarmConfigList.isEmpty()) { try { - // 查询服务器信息 - RmResourceRegistrationRemote query = new RmResourceRegistrationRemote(); - query.setClientId(clientId); - R registerMsgR = remoteRevenueConfigService.getListByHardwareSn(query, SecurityConstants.INNER); - if(registerMsgR != null && registerMsgR.getData() != null){ - RmResourceRegistrationRemote serverMsg = registerMsgR.getData(); - rmAlarmLog.setMgmPublicIp(serverMsg.getIp1PublicIp()); - rmAlarmLog.setBusinessName(serverMsg.getBusinessName()); - rmAlarmLog.setRemark(serverMsg.getRemark()); + if(!AlarmTypeEnum.ping丢包率过高.getCode().equals(rmAlarmLog.getAlarmType())){ + // 查询服务器信息 + RmResourceRegistrationRemote query = new RmResourceRegistrationRemote(); + query.setClientId(clientId); + R registerMsgR = remoteRevenueConfigService.getListByHardwareSn(query, SecurityConstants.INNER); + if(registerMsgR != null && registerMsgR.getData() != null){ + RmResourceRegistrationRemote serverMsg = registerMsgR.getData(); + rmAlarmLog.setMgmPublicIp(serverMsg.getIp1PublicIp()); + rmAlarmLog.setBusinessName(serverMsg.getBusinessName()); + rmAlarmLog.setRemark(serverMsg.getRemark()); + } } Map alarmMap = new HashMap<>(); alarmMap.put("告警时间", rmAlarmLog.getAlarmTime()); diff --git a/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmAlarmLogMapper.xml b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmAlarmLogMapper.xml index a4cc8b6..43b6991 100644 --- a/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmAlarmLogMapper.xml +++ b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmAlarmLogMapper.xml @@ -105,4 +105,8 @@ #{id} + + delete from rm_alarm_log where client_id =#{clientId} and alarm_type =#{alarmType} + + \ No newline at end of file