1、优化告警信息展示。

2、搜索栏增加备注搜索模糊查询。
This commit is contained in:
gaoyutao
2026-03-09 18:11:17 +08:00
parent bbb50ba56f
commit d4902a488d
5 changed files with 39 additions and 42 deletions
@@ -189,5 +189,7 @@ public class RmResourceRegistrationRemote extends BaseEntity
private String frpcServerAddr;
/** 出省流量占比 */
private BigDecimal outboundRate;
/** 公网ip */
private String ip1PublicIp;
}
@@ -279,9 +279,11 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
// 优化检查顺序,先检查最可能匹配的字段
String clientId = item.getClientId();
String hardwareSn = item.getHardwareSn();
String remark = item.getRemark();
if ((clientId != null && clientId.toLowerCase().contains(queryValue)) ||
(hardwareSn != null && hardwareSn.toLowerCase().contains(queryValue))) {
(hardwareSn != null && hardwareSn.toLowerCase().contains(queryValue)) ||
(remark != null && remark.toLowerCase().contains(queryValue))) {
return true;
}
@@ -1697,28 +1697,15 @@ public class MessageHandler {
rmAlarmLog.setAlarmType("2");
alarmContent = switchName + "下线";
} else {
// 查询管理网公网ip
RmNetworkInterface rmNetworkInterface = new RmNetworkInterface();
rmNetworkInterface.setClientId(clientId);
rmNetworkInterface.setNewFlag(1);
List<RmNetworkInterface> interfaceList = rmNetworkInterfaceService.selectRmNetworkInterfaceList(rmNetworkInterface);
if (interfaceList != null && !interfaceList.isEmpty()) {
interfaceList.stream()
.filter(info -> "2".equals(info.getBindIp()) || "3".equals(info.getBindIp()))
.findFirst()
.ifPresent(networkInterface -> {
rmAlarmLog.setMgmPublicIp(networkInterface.getPublicIp());
});
}
// 查询业务名称
// 查询服务器信息
RmResourceRegistrationRemote query = new RmResourceRegistrationRemote();
query.setClientId(clientId);
R<RmResourceRegistrationRemote> registrationR = remoteRevenueConfigService.getListByHardwareSn(query, SecurityConstants.INNER);
if(registrationR != null){
RmResourceRegistrationRemote registrationMsg = registrationR.getData();
if(registrationMsg != null){
rmAlarmLog.setBusinessName(registrationMsg.getBusinessName());
}
R<RmResourceRegistrationRemote> 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());
}
rmAlarmLog.setClientId(clientId);
rmAlarmLog.setAlarmType("1");
@@ -1,12 +1,14 @@
package com.tongran.rocketmq.utils;
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.domain.RmNetworkInterface;
import com.tongran.rocketmq.enums.PushMethodEnum;
import com.tongran.rocketmq.service.IRmAlarmLogService;
import com.tongran.rocketmq.service.IRmAlarmPushConfigService;
import com.tongran.rocketmq.service.IRmNetworkInterfaceService;
import com.tongran.system.api.RemoteRevenueConfigService;
import com.tongran.system.api.domain.RmResourceRegistrationRemote;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -25,7 +27,7 @@ public class SendAlarmPushUtil {
@Autowired
private IRmAlarmPushConfigService rmAlarmPushConfigService;
@Autowired
private IRmNetworkInterfaceService rmNetworkInterfaceService;
private RemoteRevenueConfigService remoteRevenueConfigService;
@Autowired
private SmsAlarmUtil smsAlarmUtil;
/**
@@ -42,18 +44,15 @@ public class SendAlarmPushUtil {
updateData.setId(rmAlarmLog.getId());
if (alarmConfigList != null && !alarmConfigList.isEmpty()) {
try {
// 查询管理网公网ip
RmNetworkInterface rmNetworkInterface = new RmNetworkInterface();
rmNetworkInterface.setClientId(rmAlarmLog.getClientId());
rmNetworkInterface.setNewFlag(1);
List<RmNetworkInterface> interfaceList = rmNetworkInterfaceService.selectRmNetworkInterfaceList(rmNetworkInterface);
if (interfaceList != null && !interfaceList.isEmpty()) {
interfaceList.stream()
.filter(info -> "2".equals(info.getBindIp()) || "3".equals(info.getBindIp()))
.findFirst()
.ifPresent(networkInterface -> {
rmAlarmLog.setMgmPublicIp(networkInterface.getPublicIp());
});
// 查询服务器信息
RmResourceRegistrationRemote query = new RmResourceRegistrationRemote();
query.setClientId(clientId);
R<RmResourceRegistrationRemote> 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<String, Object> alarmMap = new HashMap<>();
alarmMap.put("告警时间", rmAlarmLog.getAlarmTime());
@@ -61,6 +60,8 @@ public class SendAlarmPushUtil {
alarmMap.put("告警类型", alarmTypeMsg);
alarmMap.put("告警设备", clientId.substring(clientId.length() - 8));
alarmMap.put("告警内容", rmAlarmLog.getAlarmContent());
alarmMap.put("标签", rmAlarmLog.getRemark());
alarmMap.put("业务名称", rmAlarmLog.getBusinessName());
for (RmAlarmPushConfig alarmPushConfig : alarmConfigList) {
if(PushMethodEnum.企业微信.getCode().equals(alarmPushConfig.getPushMethod())){
updateData.setPushFlag(processWeComPush(alarmPushConfig, alarmMap));
@@ -89,7 +90,7 @@ public class SendAlarmPushUtil {
String webhookUrl = alarmPushConfig.getPushAddress();
if (alarmPushConfig.getContactPhones() != null) {
String[] phones = alarmPushConfig.getContactPhones().split(",");
WeChatWorkBot.sendTemplateMessage(webhookUrl, contentTemplate, alarmMap, alarmMap.get("告警内容"), phones, false);
WeChatWorkBot.sendTemplateMessage(webhookUrl, contentTemplate, alarmMap, "", phones, false);
} else {
WeChatWorkBot.sendTemplateMessage(webhookUrl, contentTemplate, alarmMap);
}
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tongran.rocketmq.mapper.RmAlarmLogMapper">
<resultMap type="RmAlarmLog" id="RmAlarmLogResult">
@@ -13,6 +13,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="alarmContent" column="alarm_content" />
<result property="businessName" column="business_name" />
<result property="pushFlag" column="push_flag" />
<result property="remark" column="remark" />
<result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" />
<result property="createBy" column="create_by" />
@@ -20,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectRmAlarmLogVo">
select id, client_id, alarm_time, mgm_public_ip, alarm_type, alarm_content, business_name, push_flag, create_time, update_time, create_by, update_by from rm_alarm_log
select id, client_id, alarm_time, mgm_public_ip, alarm_type, alarm_content, business_name, push_flag, remark, create_time, update_time, create_by, update_by from rm_alarm_log
</sql>
<select id="selectRmAlarmLogList" parameterType="RmAlarmLog" resultMap="RmAlarmLogResult">
@@ -33,10 +34,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="alarmContent != null and alarmContent != ''"> and alarm_content = #{alarmContent}</if>
<if test="businessName != null and businessName != ''"> and business_name like concat('%', #{businessName}, '%')</if>
<if test="pushFlag != null "> and push_flag = #{pushFlag}</if>
<if test="remark != null and remark != ''"> and remark = #{remark}</if>
</where>
order by alarm_time desc
</select>
<select id="selectRmAlarmLogById" parameterType="Long" resultMap="RmAlarmLogResult">
<include refid="selectRmAlarmLogVo"/>
where id = #{id}
@@ -52,6 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="alarmContent != null">alarm_content,</if>
<if test="businessName != null">business_name,</if>
<if test="pushFlag != null">push_flag,</if>
<if test="remark != null">remark,</if>
<if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if>
<if test="createBy != null">create_by,</if>
@@ -65,6 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="alarmContent != null">#{alarmContent},</if>
<if test="businessName != null">#{businessName},</if>
<if test="pushFlag != null">#{pushFlag},</if>
<if test="remark != null">#{remark},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="createBy != null">#{createBy},</if>
@@ -82,6 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="alarmContent != null">alarm_content = #{alarmContent},</if>
<if test="businessName != null">business_name = #{businessName},</if>
<if test="pushFlag != null">push_flag = #{pushFlag},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
@@ -95,7 +100,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteRmAlarmLogByIds" parameterType="String">
delete from rm_alarm_log where id in
delete from rm_alarm_log where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>