增加agent联调,获取最新策略应答功能

This commit is contained in:
gaoyutao
2025-10-22 17:54:46 +08:00
parent 4fdaadee65
commit 31d8114c05
45 changed files with 1686 additions and 341 deletions
@@ -11,6 +11,7 @@ import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.InnerAuth;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.system.api.domain.RmRegisterMsgRemote;
import com.ruoyi.system.api.domain.RmResourceRegistrationRemote;
import com.ruoyi.system.domain.RmResourceRegistration;
import com.ruoyi.system.service.IRmResourceRegistrationService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -189,5 +190,27 @@ public class RmResourceRegistrationController extends BaseController
int rows = rmResourceRegistrationService.innerAddRegist(rmResourceRegistration);
return R.ok(rows);
}
/**
* 添加节点标识
* @param rmResourceRegistration mq接收的消息
* @return
*/
@PostMapping("/innerUpdateRegist")
@InnerAuth
public R<Integer> innerUpdateRegist(@RequestBody RmResourceRegistrationRemote rmResourceRegistration)
{
int rows = rmResourceRegistrationService.innerUpdateRegist(rmResourceRegistration);
return R.ok(rows);
}
/**
* 选择公网业务IP
*/
@RequiresPermissions("system:registration:update")
@PostMapping("/bindBusinessPubulicIp")
public AjaxResult bindBusinessPubulicIp(@RequestBody RmResourceRegistration rmResourceRegistration)
{
int rows = rmResourceRegistrationService.bindBusinessPubulicIp(rmResourceRegistration);
return toAjax(rows);
}
}
@@ -4,6 +4,9 @@ import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* 资源注册对象 rm_resource_registration
*
@@ -173,4 +176,6 @@ public class RmResourceRegistration extends BaseEntity
* 心跳周期(单位:秒)
*/
private Integer heartbeatInterval;
/** 需要绑定的网卡信息 */
private List<Map> bindNetworkMsg;
}
@@ -85,5 +85,7 @@ public class RmSwitchManagement extends BaseEntity
private List<RmSwitchInterfaceInfo> switchInterfaceInfoList;
/** 自动生成客户端id(uuid) */
private String clientId;
/** 查询条件 */
private String queryName;
}
@@ -3,6 +3,7 @@ package com.ruoyi.system.service;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.system.api.domain.RmRegisterMsgRemote;
import com.ruoyi.system.api.domain.RmResourceRegistrationRemote;
import com.ruoyi.system.domain.RmResourceRegistration;
import java.util.List;
@@ -98,4 +99,18 @@ public interface IRmResourceRegistrationService
* @return
*/
int innerAddRegist(RmRegisterMsgRemote rmResourceRegistration);
/**
* 添加节点标识
* @param rmResourceRegistration
* @return
*/
int innerUpdateRegist(RmResourceRegistrationRemote rmResourceRegistration);
/**
* 选择公网业务IP
* @param rmResourceRegistration
* @return
*/
int bindBusinessPubulicIp(RmResourceRegistration rmResourceRegistration);
}
@@ -5,11 +5,14 @@ import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.enums.MsgEnum;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.RemoteRocketMqService;
import com.ruoyi.system.api.domain.NetworkInfo;
import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote;
import com.ruoyi.system.api.domain.RmRegisterMsgRemote;
import com.ruoyi.system.api.domain.RmResourceRegistrationRemote;
import com.ruoyi.system.domain.EpsNodeBandwidth;
import com.ruoyi.system.domain.EpsServerRevenueConfig;
import com.ruoyi.system.domain.RmEpsTopologyManagement;
@@ -427,5 +430,53 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
return 1;
}
/**
* 添加节点标识
* @param rmResourceRegistration
* @return
*/
@Override
public int innerUpdateRegist(RmResourceRegistrationRemote rmResourceRegistration) {
// 查询此数据是否存在
RmResourceRegistration queryParam = new RmResourceRegistration();
queryParam.setClientId(rmResourceRegistration.getClientId());
RmResourceRegistration exits = rmResourceRegistrationMapper.selectRegistMsgByClientId(queryParam);
if(exits != null){
// 如果逻辑节点为空或者有变化 设置新节点
if(exits.getLogicalNodeId() == null ||
!StringUtils.equals(rmResourceRegistration.getLogicalNodeId(),exits.getLogicalNodeId())){
// 如果服务器已注册 增加节点标识
RmResourceRegistration updateData = new RmResourceRegistration();
updateData.setId(exits.getId());
updateData.setLogicalNodeId(rmResourceRegistration.getLogicalNodeId());
rmResourceRegistrationMapper.updateRmResourceRegistration(updateData);
log.info("设备:{},逻辑节点增加成功",rmResourceRegistration.getClientId());
return 1;
}
}
return 0;
}
@Override
public int bindBusinessPubulicIp(RmResourceRegistration rmResourceRegistration) {
List<Map> bindMsgMap = rmResourceRegistration.getBindNetworkMsg();
for (Map map : bindMsgMap) {
// id
Long id = (Long) map.get("id");
String status = map.get("status").toString();
// 绑定ip
RmNetworkInterfaceRemote rmNetworkInterfaceRemote = new RmNetworkInterfaceRemote();
rmNetworkInterfaceRemote.setId(id);
rmNetworkInterfaceRemote.setBindIp(status);
remoteRocketMqService.bindPublicIp(rmNetworkInterfaceRemote, SecurityConstants.INNER);
}
// 修改多公网IP状态为已绑定
RmResourceRegistration updateData = new RmResourceRegistration();
updateData.setId(rmResourceRegistration.getId());
updateData.setMultiPublicIpStatus("1");
rmResourceRegistrationMapper.updateRmResourceRegistration(updateData);
return 1;
}
}
@@ -55,6 +55,9 @@
<if test="switchUser != null and switchUser != ''"> and switch_user = #{switchUser}</if>
<if test="switchPassword != null and switchPassword != ''"> and switch_password = #{switchPassword}</if>
<if test="clientId != null and clientId != ''"> and client_id = #{clientId}</if>
<if test="queryName != null and queryName != ''">
and (snmp_address = #{snmpAddress} or switch_name like concat('%', #{switchName}, '%'))
</if>
</where>
</select>