diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmNetworkInterfaceRemote.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmNetworkInterfaceRemote.java index 2f9a621..22c6f16 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmNetworkInterfaceRemote.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmNetworkInterfaceRemote.java @@ -52,4 +52,6 @@ public class RmNetworkInterfaceRemote extends BaseEntity { private String bindIp; /** 新旧标识 */ private Integer newFlag; + /** 服务器clientId集合 */ + private String clientIds; } diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/controller/RmMtrClientRegistrationController.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/controller/RmMtrClientRegistrationController.java new file mode 100644 index 0000000..8bf578a --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/controller/RmMtrClientRegistrationController.java @@ -0,0 +1,105 @@ +package com.ruoyi.mtragent.controller; + +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.PageDomain; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.mtragent.domain.RmMtrClientRegistration; +import com.ruoyi.mtragent.service.IRmMtrClientRegistrationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * MTR客户端注册Controller + * + * @author gyt + * @date 2025-11-18 + */ +@RestController +@RequestMapping("/mtrClientRegistration") +public class RmMtrClientRegistrationController extends BaseController +{ + @Autowired + private IRmMtrClientRegistrationService rmMtrClientRegistrationService; + + /** + * 查询MTR客户端注册列表 + */ + @RequiresPermissions("mtragent:mtrClientRegistration:list") + @PostMapping("/list") + public TableDataInfo list(@RequestBody RmMtrClientRegistration rmMtrClientRegistration) + { + PageDomain pageDomain = new PageDomain(); + pageDomain.setPageNum(rmMtrClientRegistration.getPageNum()); + pageDomain.setPageSize(rmMtrClientRegistration.getPageSize()); + startPage(pageDomain); + List list = rmMtrClientRegistrationService.selectRmMtrClientRegistrationList(rmMtrClientRegistration); + return getDataTable(list); + } + + /** + * 导出MTR客户端注册列表 + */ + @RequiresPermissions("mtragent:mtrClientRegistration:export") + @Log(title = "MTR客户端注册", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, RmMtrClientRegistration rmMtrClientRegistration) + { + List list = rmMtrClientRegistrationService.selectRmMtrClientRegistrationList(rmMtrClientRegistration); + ExcelUtil util = new ExcelUtil(RmMtrClientRegistration.class); + util.showColumn(rmMtrClientRegistration.getProperties()); + util.exportExcel(response, list, "MTR客户端注册数据"); + } + + /** + * 获取MTR客户端注册详细信息 + */ + @RequiresPermissions("mtragent:mtrClientRegistration:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(rmMtrClientRegistrationService.selectRmMtrClientRegistrationById(id)); + } + + /** + * 新增MTR客户端注册 + */ + @RequiresPermissions("mtragent:mtrClientRegistration:add") + @Log(title = "MTR客户端注册", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody RmMtrClientRegistration rmMtrClientRegistration) + { + return toAjax(rmMtrClientRegistrationService.insertRmMtrClientRegistration(rmMtrClientRegistration)); + } + + /** + * 修改MTR客户端注册 + */ + @RequiresPermissions("mtragent:mtrClientRegistration:edit") + @Log(title = "MTR客户端注册", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody RmMtrClientRegistration rmMtrClientRegistration) + { + return toAjax(rmMtrClientRegistrationService.updateRmMtrClientRegistration(rmMtrClientRegistration)); + } + + /** + * 配置更新策略 + * @param rmMtrClientRegistration + * @return + */ + @RequiresPermissions("mtragent:mtrClientRegistration:add") + @PostMapping("/addAgentUpdatePolicy") + public AjaxResult addAgentUpdatePolicy(@RequestBody RmMtrClientRegistration rmMtrClientRegistration){ + int rows = rmMtrClientRegistrationService.addAgentUpdatePolicy(rmMtrClientRegistration); + return toAjax(rows); + } + +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/controller/RmMtrPolicyConfigController.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/controller/RmMtrPolicyConfigController.java new file mode 100644 index 0000000..cb4616a --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/controller/RmMtrPolicyConfigController.java @@ -0,0 +1,103 @@ +package com.ruoyi.mtragent.controller; + +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.PageDomain; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.mtragent.domain.RmMtrPolicyConfig; +import com.ruoyi.mtragent.service.IRmMtrPolicyConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * mtr探测策略配置Controller + * + * @author gyt + * @date 2025-11-18 + */ +@RestController +@RequestMapping("/mtrPolicyConfig") +public class RmMtrPolicyConfigController extends BaseController +{ + @Autowired + private IRmMtrPolicyConfigService rmMtrPolicyConfigService; + + /** + * 查询mtr探测策略配置列表 + */ + @RequiresPermissions("mtragent:mtrPolicyConfig:list") + @PostMapping("/list") + public TableDataInfo list(@RequestBody RmMtrPolicyConfig rmMtrPolicyConfig) + { + PageDomain pageDomain = new PageDomain(); + pageDomain.setPageNum(rmMtrPolicyConfig.getPageNum()); + pageDomain.setPageSize(rmMtrPolicyConfig.getPageSize()); + startPage(pageDomain); + List list = rmMtrPolicyConfigService.selectRmMtrPolicyConfigList(rmMtrPolicyConfig); + return getDataTable(list); + } + + /** + * 导出mtr探测策略配置列表 + */ + @RequiresPermissions("mtragent:mtrPolicyConfig:export") + @Log(title = "mtr探测策略配置", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, RmMtrPolicyConfig rmMtrPolicyConfig) + { + List list = rmMtrPolicyConfigService.selectRmMtrPolicyConfigList(rmMtrPolicyConfig); + ExcelUtil util = new ExcelUtil(RmMtrPolicyConfig.class); + util.showColumn(rmMtrPolicyConfig.getProperties()); + util.exportExcel(response, list, "mtr探测策略配置数据"); + } + + /** + * 获取mtr探测策略配置详细信息 + */ + @RequiresPermissions("mtragent:mtrPolicyConfig:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(rmMtrPolicyConfigService.selectRmMtrPolicyConfigById(id)); + } + + /** + * 新增mtr探测策略配置 + */ + @RequiresPermissions("mtragent:mtrPolicyConfig:add") + @Log(title = "mtr探测策略配置", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody RmMtrPolicyConfig rmMtrPolicyConfig) + { + return toAjax(rmMtrPolicyConfigService.insertRmMtrPolicyConfig(rmMtrPolicyConfig)); + } + + /** + * 修改mtr探测策略配置 + */ + @RequiresPermissions("mtragent:mtrPolicyConfig:edit") + @Log(title = "mtr探测策略配置", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody RmMtrPolicyConfig rmMtrPolicyConfig) + { + return toAjax(rmMtrPolicyConfigService.updateRmMtrPolicyConfig(rmMtrPolicyConfig)); + } + + /** + * 删除mtr探测策略配置 + */ + @RequiresPermissions("mtragent:mtrPolicyConfig:remove") + @Log(title = "mtr探测策略配置", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(rmMtrPolicyConfigService.deleteRmMtrPolicyConfigByIds(ids)); + } +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/InitialHeartbeatListenLog.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/InitialHeartbeatListenLog.java new file mode 100644 index 0000000..d790eea --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/InitialHeartbeatListenLog.java @@ -0,0 +1,25 @@ +package com.ruoyi.mtragent.domain; + +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; +import lombok.Data; + +/** + * 心跳信息日志对象 initial_heartbeat_listen_log + * + * @author gyt + * @date 2025-09-08 + */ +@Data +public class InitialHeartbeatListenLog extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + private Long id; + /** 客户端ID */ + private String clientId; + + /** 状态0-正常 1-恢复 2-两次丢失 3-三次丢失 */ + @Excel(name = "状态0-正常 1-恢复 2-两次丢失 3-三次丢失") + private String status; +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/NetworkInfoDeserializer.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/NetworkInfoDeserializer.java new file mode 100644 index 0000000..59a42ef --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/NetworkInfoDeserializer.java @@ -0,0 +1,34 @@ +package com.ruoyi.mtragent.domain; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.ruoyi.system.api.domain.NetworkInfo; + +import java.io.IOException; +import java.util.List; + +public class NetworkInfoDeserializer extends JsonDeserializer> { + // 添加无参构造函数(Jackson 需要) + public NetworkInfoDeserializer() { + } + @Override + public List deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + ObjectMapper mapper = (ObjectMapper) p.getCodec(); + JsonNode node = mapper.readTree(p); + + // 如果 networkInfo 是字符串(如日志中的情况),先解析字符串 + if (node.isTextual()) { + String jsonStr = node.textValue(); + return mapper.readValue(jsonStr, new TypeReference>() {}); + } + // 如果 networkInfo 是数组,直接解析 + else if (node.isArray()) { + return mapper.readValue(node.traverse(), new TypeReference>() {}); + } + throw new IOException("Invalid networkInfo format"); + } +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/RmAlarmLog.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/RmAlarmLog.java new file mode 100644 index 0000000..2254022 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/RmAlarmLog.java @@ -0,0 +1,44 @@ +package com.ruoyi.mtragent.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; +import lombok.Data; + +import java.util.Date; + +/** + * 客户端告警信息对象 rm_alarm_log + * + * @author gyt + * @date 2025-11-10 + */ +@Data +public class RmAlarmLog extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private Long id; + + /** 客户端ID */ + @Excel(name = "客户端ID") + private String clientId; + + /** 告警时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "告警时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date alarmTime; + + /** 管理网-公网IP */ + @Excel(name = "管理网-公网IP") + private String mgmPublicIp; + + /** 告警类型 */ + @Excel(name = "告警类型") + private String alarmType; + + /** 告警内容 */ + @Excel(name = "告警内容") + private String alarmContent; +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/RmAlarmPushConfig.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/RmAlarmPushConfig.java new file mode 100644 index 0000000..15b1015 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/RmAlarmPushConfig.java @@ -0,0 +1,44 @@ +package com.ruoyi.mtragent.domain; + +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; +import lombok.Data; + +/** + * 告警推送配置对象 rm_alarm_push_config + * + * @author gyt + * @date 2025-11-11 + */ +@Data +public class RmAlarmPushConfig extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private Long id; + + /** 配置名称 */ + @Excel(name = "配置名称") + private String configName; + + /** 推送方式 */ + @Excel(name = "推送方式") + private String pushMethod; + + /** 推送地址 */ + @Excel(name = "推送地址") + private String pushAddress; + + /** 推送告警类型 */ + @Excel(name = "推送告警类型") + private String pushAlarmTypes; + + /** 消息内容 */ + @Excel(name = "消息内容") + private String messageContent; + + /** 消息提示人手机号 */ + @Excel(name = "消息提示人手机号") + private String contactPhones; +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/RmMtrClientRegistration.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/RmMtrClientRegistration.java new file mode 100644 index 0000000..c84bd3b --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/RmMtrClientRegistration.java @@ -0,0 +1,92 @@ +package com.ruoyi.mtragent.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; +import lombok.Data; + +import java.util.Date; + +/** + * MTR客户端注册对象 rm_mtr_client_registration + * + * @author gyt + * @date 2025-11-18 + */ +@Data +public class RmMtrClientRegistration extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private Long id; + + /** MTR客户端ID */ + @Excel(name = "MTR客户端ID") + private String mtrClientId; + + /** 描述 */ + @Excel(name = "描述") + private String description; + + /** 版本 */ + @Excel(name = "版本") + private String version; + + /** 标识 */ + @Excel(name = "标识") + private String logicalNode; + + /** 注册时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "注册时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date registerTime; + + /** 注册状态(0-未注册,1-已注册) */ + @Excel(name = "注册状态(0-未注册,1-已注册)") + private String registerStatus; + + /** 在线状态(0-离线,1-在线) */ + @Excel(name = "在线状态(0-离线,1-在线)") + private String onlineStatus; + + /** 心跳时间间隔(秒) */ + @Excel(name = "心跳时间间隔(秒)") + private Integer heartbeatInterval; + + /** 心跳次数 */ + @Excel(name = "心跳次数") + private Integer heartbeatCount; + + /** 更新方式 */ + @Excel(name = "更新方式") + private String method; + + /** 定时更新时间 */ + @Excel(name = "定时更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date scheduledUpdateTime; + + /** 文件地址 */ + @Excel(name = "文件地址") + private String filePath; + + /** 文件MD5值 */ + @Excel(name = "文件MD5值") + private String fileMd5; + + /** 最后一次更新结果 */ + @Excel(name = "最后一次更新结果") + private String lastUpdateResult; + + /** 最后一次更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "最后一次更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date lastUpdateTime; + + /** 网卡信息(JSON格式) */ + @Excel(name = "网卡信息(JSON格式)") + private String networkInfo; + /** 部署设备 */ + private String mtrClientIds; +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/RmMtrPolicyConfig.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/RmMtrPolicyConfig.java new file mode 100644 index 0000000..255255e --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/RmMtrPolicyConfig.java @@ -0,0 +1,59 @@ +package com.ruoyi.mtragent.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; +import lombok.Data; + +import java.util.Date; + +/** + * mtr探测策略配置对象 rm_mtr_policy_config + * + * @author gyt + * @date 2025-11-18 + */ +@Data +public class RmMtrPolicyConfig extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private Long id; + + /** 策略名称 */ + @Excel(name = "策略名称") + private String policyName; + + /** 优先级 */ + @Excel(name = "优先级") + private Long priority; + + /** MTR客户端ID */ + @Excel(name = "MTR客户端ID") + private String mtrClientId; + + /** 服务器集合(换行符分割) */ + @Excel(name = "服务器集合(换行符分割)") + private String serverGroup; + /** 探测目标ip集合 */ + private String serveripGroup; + + /** 是否探测(0-否,1-是) */ + @Excel(name = "是否探测(0-否,1-是)") + private Long probeFlag; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date startTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date endTime; + + /** 探测频率(秒) */ + @Excel(name = "探测频率(秒)") + private Long probeFrequency; +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/RmNetworkInterface.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/RmNetworkInterface.java new file mode 100644 index 0000000..edda238 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/RmNetworkInterface.java @@ -0,0 +1,65 @@ +package com.ruoyi.mtragent.domain; + +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; +import lombok.Data; + +/** + * 客户端网络接口信息对象 rm_network_interface + * + * @author gyt + * @date 2025-10-14 + */ +@Data +public class RmNetworkInterface extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private Long id; + + /** 客户端ID */ + @Excel(name = "客户端ID") + private String clientId; + + /** 运营商 */ + @Excel(name = "运营商") + private String isp; + + /** 省 */ + @Excel(name = "省") + private String province; + + /** 市 */ + @Excel(name = "市") + private String city; + + /** 公网IP */ + @Excel(name = "公网IP") + private String publicIp; + + /** 接口名称 */ + @Excel(name = "接口名称") + private String interfaceName; + + /** MAC地址 */ + @Excel(name = "MAC地址") + private String macAddress; + + /** 接口类型 */ + @Excel(name = "接口类型") + private String interfaceType; + + /** IPv4地址 */ + @Excel(name = "IPv4地址") + private String ipv4Address; + + /** 网关 */ + @Excel(name = "网关") + private String gateway; + /** 绑定ip 1业务IP,2管理ip */ + private String bindIp; + /** 是否为新信息 */ + private Integer newFlag; + +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/vo/MessageVo.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/vo/MessageVo.java new file mode 100644 index 0000000..7052f02 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/vo/MessageVo.java @@ -0,0 +1,13 @@ +package com.ruoyi.mtragent.domain.vo; + +import lombok.Data; + +@Data +public class MessageVo { + + private String clientId; + + private String dataType; + + private String data; +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/vo/RegisterMsgVo.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/vo/RegisterMsgVo.java new file mode 100644 index 0000000..b888ce9 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/domain/vo/RegisterMsgVo.java @@ -0,0 +1,26 @@ +package com.ruoyi.mtragent.domain.vo; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.ruoyi.mtragent.domain.NetworkInfoDeserializer; +import com.ruoyi.system.api.domain.NetworkInfo; +import lombok.Data; + +import java.util.List; + +@Data +public class RegisterMsgVo { + @JsonProperty("clientId") + private String clientId; + + @JsonProperty("sn") + private String sn; + + @JsonProperty("networkInfo") + @JsonDeserialize(using = NetworkInfoDeserializer.class) + private List networkInfo; + + @JsonProperty("timestamp") + private long timestamp; + +} \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/InitialHeartbeatListenLogMapper.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/InitialHeartbeatListenLogMapper.java new file mode 100644 index 0000000..3c0746f --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/InitialHeartbeatListenLogMapper.java @@ -0,0 +1,63 @@ +package com.ruoyi.mtragent.mapper; + + +import com.ruoyi.mtragent.domain.InitialHeartbeatListenLog; + +import java.util.List; + +/** + * 心跳信息日志Mapper接口 + * + * @author gyt + * @date 2025-09-08 + */ +public interface InitialHeartbeatListenLogMapper +{ + /** + * 查询心跳信息日志 + * + * @param clientId 心跳信息日志主键 + * @return 心跳信息日志 + */ + public InitialHeartbeatListenLog selectInitialHeartbeatListenLogByClientId(String clientId); + + /** + * 查询心跳信息日志列表 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 心跳信息日志集合 + */ + public List selectInitialHeartbeatListenLogList(InitialHeartbeatListenLog initialHeartbeatListenLog); + + /** + * 新增心跳信息日志 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 结果 + */ + public int insertInitialHeartbeatListenLog(InitialHeartbeatListenLog initialHeartbeatListenLog); + + /** + * 修改心跳信息日志 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 结果 + */ + public int updateInitialHeartbeatListenLog(InitialHeartbeatListenLog initialHeartbeatListenLog); + + /** + * 删除心跳信息日志 + * + * @param clientId 心跳信息日志主键 + * @return 结果 + */ + public int deleteInitialHeartbeatListenLogByClientId(String clientId); + + /** + * 批量删除心跳信息日志 + * + * @param clientIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteInitialHeartbeatListenLogByClientIds(String[] clientIds); +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/RmAlarmLogMapper.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/RmAlarmLogMapper.java new file mode 100644 index 0000000..9342763 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/RmAlarmLogMapper.java @@ -0,0 +1,63 @@ +package com.ruoyi.mtragent.mapper; + + +import com.ruoyi.mtragent.domain.RmAlarmLog; + +import java.util.List; + +/** + * 客户端告警信息Mapper接口 + * + * @author gyt + * @date 2025-11-10 + */ +public interface RmAlarmLogMapper +{ + /** + * 查询客户端告警信息 + * + * @param id 客户端告警信息主键 + * @return 客户端告警信息 + */ + public RmAlarmLog selectRmAlarmLogById(Long id); + + /** + * 查询客户端告警信息列表 + * + * @param rmAlarmLog 客户端告警信息 + * @return 客户端告警信息集合 + */ + public List selectRmAlarmLogList(RmAlarmLog rmAlarmLog); + + /** + * 新增客户端告警信息 + * + * @param rmAlarmLog 客户端告警信息 + * @return 结果 + */ + public int insertRmAlarmLog(RmAlarmLog rmAlarmLog); + + /** + * 修改客户端告警信息 + * + * @param rmAlarmLog 客户端告警信息 + * @return 结果 + */ + public int updateRmAlarmLog(RmAlarmLog rmAlarmLog); + + /** + * 删除客户端告警信息 + * + * @param id 客户端告警信息主键 + * @return 结果 + */ + public int deleteRmAlarmLogById(Long id); + + /** + * 批量删除客户端告警信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRmAlarmLogByIds(Long[] ids); +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/RmAlarmPushConfigMapper.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/RmAlarmPushConfigMapper.java new file mode 100644 index 0000000..32d45bc --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/RmAlarmPushConfigMapper.java @@ -0,0 +1,63 @@ +package com.ruoyi.mtragent.mapper; + + +import com.ruoyi.mtragent.domain.RmAlarmPushConfig; + +import java.util.List; + +/** + * 告警推送配置Mapper接口 + * + * @author gyt + * @date 2025-11-11 + */ +public interface RmAlarmPushConfigMapper +{ + /** + * 查询告警推送配置 + * + * @param id 告警推送配置主键 + * @return 告警推送配置 + */ + public RmAlarmPushConfig selectRmAlarmPushConfigById(Long id); + + /** + * 查询告警推送配置列表 + * + * @param rmAlarmPushConfig 告警推送配置 + * @return 告警推送配置集合 + */ + public List selectRmAlarmPushConfigList(RmAlarmPushConfig rmAlarmPushConfig); + + /** + * 新增告警推送配置 + * + * @param rmAlarmPushConfig 告警推送配置 + * @return 结果 + */ + public int insertRmAlarmPushConfig(RmAlarmPushConfig rmAlarmPushConfig); + + /** + * 修改告警推送配置 + * + * @param rmAlarmPushConfig 告警推送配置 + * @return 结果 + */ + public int updateRmAlarmPushConfig(RmAlarmPushConfig rmAlarmPushConfig); + + /** + * 删除告警推送配置 + * + * @param id 告警推送配置主键 + * @return 结果 + */ + public int deleteRmAlarmPushConfigById(Long id); + + /** + * 批量删除告警推送配置 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRmAlarmPushConfigByIds(Long[] ids); +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/RmMtrClientRegistrationMapper.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/RmMtrClientRegistrationMapper.java new file mode 100644 index 0000000..98dfdbf --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/RmMtrClientRegistrationMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.mtragent.mapper; + +import java.util.List; +import com.ruoyi.mtragent.domain.RmMtrClientRegistration; + +/** + * MTR客户端注册Mapper接口 + * + * @author gyt + * @date 2025-11-18 + */ +public interface RmMtrClientRegistrationMapper +{ + /** + * 查询MTR客户端注册 + * + * @param id MTR客户端注册主键 + * @return MTR客户端注册 + */ + public RmMtrClientRegistration selectRmMtrClientRegistrationById(Long id); + + /** + * 查询MTR客户端注册列表 + * + * @param rmMtrClientRegistration MTR客户端注册 + * @return MTR客户端注册集合 + */ + public List selectRmMtrClientRegistrationList(RmMtrClientRegistration rmMtrClientRegistration); + + /** + * 新增MTR客户端注册 + * + * @param rmMtrClientRegistration MTR客户端注册 + * @return 结果 + */ + public int insertRmMtrClientRegistration(RmMtrClientRegistration rmMtrClientRegistration); + + /** + * 修改MTR客户端注册 + * + * @param rmMtrClientRegistration MTR客户端注册 + * @return 结果 + */ + public int updateRmMtrClientRegistration(RmMtrClientRegistration rmMtrClientRegistration); + + /** + * 删除MTR客户端注册 + * + * @param id MTR客户端注册主键 + * @return 结果 + */ + public int deleteRmMtrClientRegistrationById(Long id); + + /** + * 批量删除MTR客户端注册 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRmMtrClientRegistrationByIds(Long[] ids); +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/RmMtrPolicyConfigMapper.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/RmMtrPolicyConfigMapper.java new file mode 100644 index 0000000..47e8b3d --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/RmMtrPolicyConfigMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.mtragent.mapper; + +import java.util.List; +import com.ruoyi.mtragent.domain.RmMtrPolicyConfig; + +/** + * mtr探测策略配置Mapper接口 + * + * @author gyt + * @date 2025-11-18 + */ +public interface RmMtrPolicyConfigMapper +{ + /** + * 查询mtr探测策略配置 + * + * @param id mtr探测策略配置主键 + * @return mtr探测策略配置 + */ + public RmMtrPolicyConfig selectRmMtrPolicyConfigById(Long id); + + /** + * 查询mtr探测策略配置列表 + * + * @param rmMtrPolicyConfig mtr探测策略配置 + * @return mtr探测策略配置集合 + */ + public List selectRmMtrPolicyConfigList(RmMtrPolicyConfig rmMtrPolicyConfig); + + /** + * 新增mtr探测策略配置 + * + * @param rmMtrPolicyConfig mtr探测策略配置 + * @return 结果 + */ + public int insertRmMtrPolicyConfig(RmMtrPolicyConfig rmMtrPolicyConfig); + + /** + * 修改mtr探测策略配置 + * + * @param rmMtrPolicyConfig mtr探测策略配置 + * @return 结果 + */ + public int updateRmMtrPolicyConfig(RmMtrPolicyConfig rmMtrPolicyConfig); + + /** + * 删除mtr探测策略配置 + * + * @param id mtr探测策略配置主键 + * @return 结果 + */ + public int deleteRmMtrPolicyConfigById(Long id); + + /** + * 批量删除mtr探测策略配置 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRmMtrPolicyConfigByIds(Long[] ids); +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/RmNetworkInterfaceMapper.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/RmNetworkInterfaceMapper.java new file mode 100644 index 0000000..68feccc --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/mapper/RmNetworkInterfaceMapper.java @@ -0,0 +1,65 @@ +package com.ruoyi.mtragent.mapper; + + +import com.ruoyi.mtragent.domain.RmNetworkInterface; + +import java.util.List; + +/** + * 客户端网络接口信息Mapper接口 + * + * @author gyt + * @date 2025-10-14 + */ +public interface RmNetworkInterfaceMapper +{ + /** + * 查询客户端网络接口信息 + * + * @param id 客户端网络接口信息主键 + * @return 客户端网络接口信息 + */ + public RmNetworkInterface selectRmNetworkInterfaceById(Long id); + + /** + * 查询客户端网络接口信息列表 + * + * @param rmNetworkInterface 客户端网络接口信息 + * @return 客户端网络接口信息集合 + */ + public List selectRmNetworkInterfaceList(RmNetworkInterface rmNetworkInterface); + + /** + * 新增客户端网络接口信息 + * + * @param rmNetworkInterface 客户端网络接口信息 + * @return 结果 + */ + public int insertRmNetworkInterface(RmNetworkInterface rmNetworkInterface); + + /** + * 修改客户端网络接口信息 + * + * @param rmNetworkInterface 客户端网络接口信息 + * @return 结果 + */ + public int updateRmNetworkInterface(RmNetworkInterface rmNetworkInterface); + + /** + * 删除客户端网络接口信息 + * + * @param id 客户端网络接口信息主键 + * @return 结果 + */ + public int deleteRmNetworkInterfaceById(Long id); + + /** + * 批量删除客户端网络接口信息 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRmNetworkInterfaceByIds(Long[] ids); + + int updateRmNetworkInterfaceByMac(RmNetworkInterface rmNetworkInterface); +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IInitialHeartbeatListenLogService.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IInitialHeartbeatListenLogService.java new file mode 100644 index 0000000..a84a374 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IInitialHeartbeatListenLogService.java @@ -0,0 +1,63 @@ +package com.ruoyi.mtragent.service; + + +import com.ruoyi.mtragent.domain.InitialHeartbeatListenLog; + +import java.util.List; + +/** + * 心跳信息日志Service接口 + * + * @author gyt + * @date 2025-09-08 + */ +public interface IInitialHeartbeatListenLogService +{ + /** + * 查询心跳信息日志 + * + * @param clientId 心跳信息日志主键 + * @return 心跳信息日志 + */ + public InitialHeartbeatListenLog selectInitialHeartbeatListenLogByClientId(String clientId); + + /** + * 查询心跳信息日志列表 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 心跳信息日志集合 + */ + public List selectInitialHeartbeatListenLogList(InitialHeartbeatListenLog initialHeartbeatListenLog); + + /** + * 新增心跳信息日志 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 结果 + */ + public int insertInitialHeartbeatListenLog(InitialHeartbeatListenLog initialHeartbeatListenLog); + + /** + * 修改心跳信息日志 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 结果 + */ + public int updateInitialHeartbeatListenLog(InitialHeartbeatListenLog initialHeartbeatListenLog); + + /** + * 批量删除心跳信息日志 + * + * @param clientIds 需要删除的心跳信息日志主键集合 + * @return 结果 + */ + public int deleteInitialHeartbeatListenLogByClientIds(String[] clientIds); + + /** + * 删除心跳信息日志信息 + * + * @param clientId 心跳信息日志主键 + * @return 结果 + */ + public int deleteInitialHeartbeatListenLogByClientId(String clientId); +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IRmAlarmLogService.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IRmAlarmLogService.java new file mode 100644 index 0000000..b6e3a18 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IRmAlarmLogService.java @@ -0,0 +1,63 @@ +package com.ruoyi.mtragent.service; + + +import com.ruoyi.mtragent.domain.RmAlarmLog; + +import java.util.List; + +/** + * 客户端告警信息Service接口 + * + * @author gyt + * @date 2025-11-10 + */ +public interface IRmAlarmLogService +{ + /** + * 查询客户端告警信息 + * + * @param id 客户端告警信息主键 + * @return 客户端告警信息 + */ + public RmAlarmLog selectRmAlarmLogById(Long id); + + /** + * 查询客户端告警信息列表 + * + * @param rmAlarmLog 客户端告警信息 + * @return 客户端告警信息集合 + */ + public List selectRmAlarmLogList(RmAlarmLog rmAlarmLog); + + /** + * 新增客户端告警信息 + * + * @param rmAlarmLog 客户端告警信息 + * @return 结果 + */ + public int insertRmAlarmLog(RmAlarmLog rmAlarmLog); + + /** + * 修改客户端告警信息 + * + * @param rmAlarmLog 客户端告警信息 + * @return 结果 + */ + public int updateRmAlarmLog(RmAlarmLog rmAlarmLog); + + /** + * 批量删除客户端告警信息 + * + * @param ids 需要删除的客户端告警信息主键集合 + * @return 结果 + */ + public int deleteRmAlarmLogByIds(Long[] ids); + + /** + * 删除客户端告警信息信息 + * + * @param id 客户端告警信息主键 + * @return 结果 + */ + public int deleteRmAlarmLogById(Long id); +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IRmAlarmPushConfigService.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IRmAlarmPushConfigService.java new file mode 100644 index 0000000..2db1c80 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IRmAlarmPushConfigService.java @@ -0,0 +1,63 @@ +package com.ruoyi.mtragent.service; + + +import com.ruoyi.mtragent.domain.RmAlarmPushConfig; + +import java.util.List; + +/** + * 告警推送配置Service接口 + * + * @author gyt + * @date 2025-11-11 + */ +public interface IRmAlarmPushConfigService +{ + /** + * 查询告警推送配置 + * + * @param id 告警推送配置主键 + * @return 告警推送配置 + */ + public RmAlarmPushConfig selectRmAlarmPushConfigById(Long id); + + /** + * 查询告警推送配置列表 + * + * @param rmAlarmPushConfig 告警推送配置 + * @return 告警推送配置集合 + */ + public List selectRmAlarmPushConfigList(RmAlarmPushConfig rmAlarmPushConfig); + + /** + * 新增告警推送配置 + * + * @param rmAlarmPushConfig 告警推送配置 + * @return 结果 + */ + public int insertRmAlarmPushConfig(RmAlarmPushConfig rmAlarmPushConfig); + + /** + * 修改告警推送配置 + * + * @param rmAlarmPushConfig 告警推送配置 + * @return 结果 + */ + public int updateRmAlarmPushConfig(RmAlarmPushConfig rmAlarmPushConfig); + + /** + * 批量删除告警推送配置 + * + * @param ids 需要删除的告警推送配置主键集合 + * @return 结果 + */ + public int deleteRmAlarmPushConfigByIds(Long[] ids); + + /** + * 删除告警推送配置信息 + * + * @param id 告警推送配置主键 + * @return 结果 + */ + public int deleteRmAlarmPushConfigById(Long id); +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IRmMtrClientRegistrationService.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IRmMtrClientRegistrationService.java new file mode 100644 index 0000000..69d9ef0 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IRmMtrClientRegistrationService.java @@ -0,0 +1,69 @@ +package com.ruoyi.mtragent.service; + +import com.ruoyi.mtragent.domain.RmMtrClientRegistration; + +import java.util.List; + +/** + * MTR客户端注册Service接口 + * + * @author gyt + * @date 2025-11-18 + */ +public interface IRmMtrClientRegistrationService +{ + /** + * 查询MTR客户端注册 + * + * @param id MTR客户端注册主键 + * @return MTR客户端注册 + */ + public RmMtrClientRegistration selectRmMtrClientRegistrationById(Long id); + + /** + * 查询MTR客户端注册列表 + * + * @param rmMtrClientRegistration MTR客户端注册 + * @return MTR客户端注册集合 + */ + public List selectRmMtrClientRegistrationList(RmMtrClientRegistration rmMtrClientRegistration); + + /** + * 新增MTR客户端注册 + * + * @param rmMtrClientRegistration MTR客户端注册 + * @return 结果 + */ + public int insertRmMtrClientRegistration(RmMtrClientRegistration rmMtrClientRegistration); + + /** + * 修改MTR客户端注册 + * + * @param rmMtrClientRegistration MTR客户端注册 + * @return 结果 + */ + public int updateRmMtrClientRegistration(RmMtrClientRegistration rmMtrClientRegistration); + + /** + * 批量删除MTR客户端注册 + * + * @param ids 需要删除的MTR客户端注册主键集合 + * @return 结果 + */ + public int deleteRmMtrClientRegistrationByIds(Long[] ids); + + /** + * 删除MTR客户端注册信息 + * + * @param id MTR客户端注册主键 + * @return 结果 + */ + public int deleteRmMtrClientRegistrationById(Long id); + + /** + * 配置更新策略 + * @param rmMtrClientRegistration + * @return + */ + int addAgentUpdatePolicy(RmMtrClientRegistration rmMtrClientRegistration); +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IRmMtrPolicyConfigService.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IRmMtrPolicyConfigService.java new file mode 100644 index 0000000..5c722d6 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IRmMtrPolicyConfigService.java @@ -0,0 +1,61 @@ +package com.ruoyi.mtragent.service; + +import java.util.List; +import com.ruoyi.mtragent.domain.RmMtrPolicyConfig; + +/** + * mtr探测策略配置Service接口 + * + * @author gyt + * @date 2025-11-18 + */ +public interface IRmMtrPolicyConfigService +{ + /** + * 查询mtr探测策略配置 + * + * @param id mtr探测策略配置主键 + * @return mtr探测策略配置 + */ + public RmMtrPolicyConfig selectRmMtrPolicyConfigById(Long id); + + /** + * 查询mtr探测策略配置列表 + * + * @param rmMtrPolicyConfig mtr探测策略配置 + * @return mtr探测策略配置集合 + */ + public List selectRmMtrPolicyConfigList(RmMtrPolicyConfig rmMtrPolicyConfig); + + /** + * 新增mtr探测策略配置 + * + * @param rmMtrPolicyConfig mtr探测策略配置 + * @return 结果 + */ + public int insertRmMtrPolicyConfig(RmMtrPolicyConfig rmMtrPolicyConfig); + + /** + * 修改mtr探测策略配置 + * + * @param rmMtrPolicyConfig mtr探测策略配置 + * @return 结果 + */ + public int updateRmMtrPolicyConfig(RmMtrPolicyConfig rmMtrPolicyConfig); + + /** + * 批量删除mtr探测策略配置 + * + * @param ids 需要删除的mtr探测策略配置主键集合 + * @return 结果 + */ + public int deleteRmMtrPolicyConfigByIds(Long[] ids); + + /** + * 删除mtr探测策略配置信息 + * + * @param id mtr探测策略配置主键 + * @return 结果 + */ + public int deleteRmMtrPolicyConfigById(Long id); +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IRmNetworkInterfaceService.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IRmNetworkInterfaceService.java new file mode 100644 index 0000000..08d60f9 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/IRmNetworkInterfaceService.java @@ -0,0 +1,83 @@ +package com.ruoyi.mtragent.service; + + +import com.ruoyi.mtragent.domain.RmNetworkInterface; + +import java.util.List; + +/** + * 客户端网络接口信息Service接口 + * + * @author gyt + * @date 2025-10-14 + */ +public interface IRmNetworkInterfaceService +{ + /** + * 查询客户端网络接口信息 + * + * @param id 客户端网络接口信息主键 + * @return 客户端网络接口信息 + */ + public RmNetworkInterface selectRmNetworkInterfaceById(Long id); + + /** + * 查询客户端网络接口信息列表 + * + * @param rmNetworkInterface 客户端网络接口信息 + * @return 客户端网络接口信息集合 + */ + public List selectRmNetworkInterfaceList(RmNetworkInterface rmNetworkInterface); + + /** + * 新增客户端网络接口信息 + * + * @param rmNetworkInterface 客户端网络接口信息 + * @return 结果 + */ + public int insertRmNetworkInterface(RmNetworkInterface rmNetworkInterface); + + /** + * 修改客户端网络接口信息 + * + * @param rmNetworkInterface 客户端网络接口信息 + * @return 结果 + */ + public int updateRmNetworkInterface(RmNetworkInterface rmNetworkInterface); + /** + * 修改客户端网络接口信息 + * + * @param rmNetworkInterface 客户端网络接口信息 + * @return 结果 + */ + public int updateRmNetworkInterfaceByMac(RmNetworkInterface rmNetworkInterface); + + /** + * 批量删除客户端网络接口信息 + * + * @param ids 需要删除的客户端网络接口信息主键集合 + * @return 结果 + */ + public int deleteRmNetworkInterfaceByIds(Long[] ids); + + /** + * 删除客户端网络接口信息信息 + * + * @param id 客户端网络接口信息主键 + * @return 结果 + */ + public int deleteRmNetworkInterfaceById(Long id); + + /** + * 绑定公网ip + * @param rmNetworkInterface + * @return + */ + int bindPublicIp(RmNetworkInterface rmNetworkInterface); + + /** + * 更新路由信息 + * @param clientId + */ + void updateRouteMsg(String clientId); +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/InitialHeartbeatListenLogServiceImpl.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/InitialHeartbeatListenLogServiceImpl.java new file mode 100644 index 0000000..86287cc --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/InitialHeartbeatListenLogServiceImpl.java @@ -0,0 +1,97 @@ +package com.ruoyi.mtragent.service.impl; + +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.mtragent.domain.InitialHeartbeatListenLog; +import com.ruoyi.mtragent.mapper.InitialHeartbeatListenLogMapper; +import com.ruoyi.mtragent.service.IInitialHeartbeatListenLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 心跳信息日志Service业务层处理 + * + * @author gyt + * @date 2025-09-08 + */ +@Service +public class InitialHeartbeatListenLogServiceImpl implements IInitialHeartbeatListenLogService +{ + @Autowired + private InitialHeartbeatListenLogMapper initialHeartbeatListenLogMapper; + + /** + * 查询心跳信息日志 + * + * @param clientId 心跳信息日志主键 + * @return 心跳信息日志 + */ + @Override + public InitialHeartbeatListenLog selectInitialHeartbeatListenLogByClientId(String clientId) + { + return initialHeartbeatListenLogMapper.selectInitialHeartbeatListenLogByClientId(clientId); + } + + /** + * 查询心跳信息日志列表 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 心跳信息日志 + */ + @Override + public List selectInitialHeartbeatListenLogList(InitialHeartbeatListenLog initialHeartbeatListenLog) + { + return initialHeartbeatListenLogMapper.selectInitialHeartbeatListenLogList(initialHeartbeatListenLog); + } + + /** + * 新增心跳信息日志 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 结果 + */ + @Override + public int insertInitialHeartbeatListenLog(InitialHeartbeatListenLog initialHeartbeatListenLog) + { + initialHeartbeatListenLog.setCreateTime(DateUtils.getNowDate()); + return initialHeartbeatListenLogMapper.insertInitialHeartbeatListenLog(initialHeartbeatListenLog); + } + + /** + * 修改心跳信息日志 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 结果 + */ + @Override + public int updateInitialHeartbeatListenLog(InitialHeartbeatListenLog initialHeartbeatListenLog) + { + initialHeartbeatListenLog.setUpdateTime(DateUtils.getNowDate()); + return initialHeartbeatListenLogMapper.updateInitialHeartbeatListenLog(initialHeartbeatListenLog); + } + + /** + * 批量删除心跳信息日志 + * + * @param clientIds 需要删除的心跳信息日志主键 + * @return 结果 + */ + @Override + public int deleteInitialHeartbeatListenLogByClientIds(String[] clientIds) + { + return initialHeartbeatListenLogMapper.deleteInitialHeartbeatListenLogByClientIds(clientIds); + } + + /** + * 删除心跳信息日志信息 + * + * @param clientId 心跳信息日志主键 + * @return 结果 + */ + @Override + public int deleteInitialHeartbeatListenLogByClientId(String clientId) + { + return initialHeartbeatListenLogMapper.deleteInitialHeartbeatListenLogByClientId(clientId); + } +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/RmAlarmLogServiceImpl.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/RmAlarmLogServiceImpl.java new file mode 100644 index 0000000..0411ac1 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/RmAlarmLogServiceImpl.java @@ -0,0 +1,97 @@ +package com.ruoyi.mtragent.service.impl; + +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.mtragent.domain.RmAlarmLog; +import com.ruoyi.mtragent.mapper.RmAlarmLogMapper; +import com.ruoyi.mtragent.service.IRmAlarmLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 客户端告警信息Service业务层处理 + * + * @author gyt + * @date 2025-11-10 + */ +@Service +public class RmAlarmLogServiceImpl implements IRmAlarmLogService +{ + @Autowired + private RmAlarmLogMapper rmAlarmLogMapper; + + /** + * 查询客户端告警信息 + * + * @param id 客户端告警信息主键 + * @return 客户端告警信息 + */ + @Override + public RmAlarmLog selectRmAlarmLogById(Long id) + { + return rmAlarmLogMapper.selectRmAlarmLogById(id); + } + + /** + * 查询客户端告警信息列表 + * + * @param rmAlarmLog 客户端告警信息 + * @return 客户端告警信息 + */ + @Override + public List selectRmAlarmLogList(RmAlarmLog rmAlarmLog) + { + return rmAlarmLogMapper.selectRmAlarmLogList(rmAlarmLog); + } + + /** + * 新增客户端告警信息 + * + * @param rmAlarmLog 客户端告警信息 + * @return 结果 + */ + @Override + public int insertRmAlarmLog(RmAlarmLog rmAlarmLog) + { + rmAlarmLog.setCreateTime(DateUtils.getNowDate()); + return rmAlarmLogMapper.insertRmAlarmLog(rmAlarmLog); + } + + /** + * 修改客户端告警信息 + * + * @param rmAlarmLog 客户端告警信息 + * @return 结果 + */ + @Override + public int updateRmAlarmLog(RmAlarmLog rmAlarmLog) + { + rmAlarmLog.setUpdateTime(DateUtils.getNowDate()); + return rmAlarmLogMapper.updateRmAlarmLog(rmAlarmLog); + } + + /** + * 批量删除客户端告警信息 + * + * @param ids 需要删除的客户端告警信息主键 + * @return 结果 + */ + @Override + public int deleteRmAlarmLogByIds(Long[] ids) + { + return rmAlarmLogMapper.deleteRmAlarmLogByIds(ids); + } + + /** + * 删除客户端告警信息信息 + * + * @param id 客户端告警信息主键 + * @return 结果 + */ + @Override + public int deleteRmAlarmLogById(Long id) + { + return rmAlarmLogMapper.deleteRmAlarmLogById(id); + } +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/RmAlarmPushConfigServiceImpl.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/RmAlarmPushConfigServiceImpl.java new file mode 100644 index 0000000..2a112ae --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/RmAlarmPushConfigServiceImpl.java @@ -0,0 +1,97 @@ +package com.ruoyi.mtragent.service.impl; + +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.mtragent.domain.RmAlarmPushConfig; +import com.ruoyi.mtragent.mapper.RmAlarmPushConfigMapper; +import com.ruoyi.mtragent.service.IRmAlarmPushConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 告警推送配置Service业务层处理 + * + * @author gyt + * @date 2025-11-11 + */ +@Service +public class RmAlarmPushConfigServiceImpl implements IRmAlarmPushConfigService +{ + @Autowired + private RmAlarmPushConfigMapper rmAlarmPushConfigMapper; + + /** + * 查询告警推送配置 + * + * @param id 告警推送配置主键 + * @return 告警推送配置 + */ + @Override + public RmAlarmPushConfig selectRmAlarmPushConfigById(Long id) + { + return rmAlarmPushConfigMapper.selectRmAlarmPushConfigById(id); + } + + /** + * 查询告警推送配置列表 + * + * @param rmAlarmPushConfig 告警推送配置 + * @return 告警推送配置 + */ + @Override + public List selectRmAlarmPushConfigList(RmAlarmPushConfig rmAlarmPushConfig) + { + return rmAlarmPushConfigMapper.selectRmAlarmPushConfigList(rmAlarmPushConfig); + } + + /** + * 新增告警推送配置 + * + * @param rmAlarmPushConfig 告警推送配置 + * @return 结果 + */ + @Override + public int insertRmAlarmPushConfig(RmAlarmPushConfig rmAlarmPushConfig) + { + rmAlarmPushConfig.setCreateTime(DateUtils.getNowDate()); + return rmAlarmPushConfigMapper.insertRmAlarmPushConfig(rmAlarmPushConfig); + } + + /** + * 修改告警推送配置 + * + * @param rmAlarmPushConfig 告警推送配置 + * @return 结果 + */ + @Override + public int updateRmAlarmPushConfig(RmAlarmPushConfig rmAlarmPushConfig) + { + rmAlarmPushConfig.setUpdateTime(DateUtils.getNowDate()); + return rmAlarmPushConfigMapper.updateRmAlarmPushConfig(rmAlarmPushConfig); + } + + /** + * 批量删除告警推送配置 + * + * @param ids 需要删除的告警推送配置主键 + * @return 结果 + */ + @Override + public int deleteRmAlarmPushConfigByIds(Long[] ids) + { + return rmAlarmPushConfigMapper.deleteRmAlarmPushConfigByIds(ids); + } + + /** + * 删除告警推送配置信息 + * + * @param id 告警推送配置主键 + * @return 结果 + */ + @Override + public int deleteRmAlarmPushConfigById(Long id) + { + return rmAlarmPushConfigMapper.deleteRmAlarmPushConfigById(id); + } +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/RmMtrClientRegistrationServiceImpl.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/RmMtrClientRegistrationServiceImpl.java new file mode 100644 index 0000000..238c56b --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/RmMtrClientRegistrationServiceImpl.java @@ -0,0 +1,212 @@ +package com.ruoyi.mtragent.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.core.enums.MsgEnum; +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.mtragent.domain.DeviceMessage; +import com.ruoyi.mtragent.domain.RmMtrClientRegistration; +import com.ruoyi.mtragent.domain.vo.AgentUpdateMsgVo; +import com.ruoyi.mtragent.domain.vo.PolicyTypeVo; +import com.ruoyi.mtragent.domain.vo.PolicyVo; +import com.ruoyi.mtragent.mapper.RmMtrClientRegistrationMapper; +import com.ruoyi.mtragent.model.ProducerMode; +import com.ruoyi.mtragent.producer.MessageProducer; +import com.ruoyi.mtragent.service.IRmMtrClientRegistrationService; +import com.ruoyi.system.api.domain.NetworkInfo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.StringJoiner; + +/** + * MTR客户端注册Service业务层处理 + * + * @author gyt + * @date 2025-11-18 + */ +@Service +@Slf4j +public class RmMtrClientRegistrationServiceImpl implements IRmMtrClientRegistrationService +{ + @Autowired + private RmMtrClientRegistrationMapper rmMtrClientRegistrationMapper; + @Autowired + private ProducerMode producerMode; + + /** + * 查询MTR客户端注册 + * + * @param id MTR客户端注册主键 + * @return MTR客户端注册 + */ + @Override + public RmMtrClientRegistration selectRmMtrClientRegistrationById(Long id) + { + RmMtrClientRegistration rmMtrClientRegistration = rmMtrClientRegistrationMapper.selectRmMtrClientRegistrationById(id); + // 处理网卡信息 + setNetworkMsg(rmMtrClientRegistration); + return rmMtrClientRegistration; + } + + /** + * 查询MTR客户端注册列表 + * + * @param rmMtrClientRegistration MTR客户端注册 + * @return MTR客户端注册 + */ + @Override + public List selectRmMtrClientRegistrationList(RmMtrClientRegistration rmMtrClientRegistration) + { + List list = rmMtrClientRegistrationMapper.selectRmMtrClientRegistrationList(rmMtrClientRegistration); + for (RmMtrClientRegistration mtrClientRegistration : list) { + // 处理网卡信息 + setNetworkMsg(rmMtrClientRegistration); + } + return list; + } + + /** + * 网卡信息处理 + * @param rmMtrClientRegistration + */ + public void setNetworkMsg(RmMtrClientRegistration rmMtrClientRegistration){ + String networkMsg = rmMtrClientRegistration.getNetworkInfo(); + StringJoiner resultJoiner = new StringJoiner(";"); + if(networkMsg != null){ + List networkInfoList = JSONObject.parseArray(networkMsg, NetworkInfo.class); + for (NetworkInfo networkInfo : networkInfoList) { + String name = networkInfo.getName() != null ? networkInfo.getName() : ""; + String mac = networkInfo.getMac() != null ? networkInfo.getMac() : ""; + String type = networkInfo.getType() != null ? networkInfo.getType() : ""; + String ipv4 = networkInfo.getIpv4() != null ? networkInfo.getIpv4() : ""; + // 单个对象的字段用逗号隔开 + StringJoiner objectJoiner = new StringJoiner(","); + objectJoiner.add("接口名称:" + name) + .add("MAC地址:" + mac) + .add("接口类型:" + type) + .add("IPv4地址:" + ipv4); + resultJoiner.add(objectJoiner.toString()); + } + rmMtrClientRegistration.setNetworkInfo(resultJoiner.toString()); + } + } + /** + * 新增MTR客户端注册 + * + * @param rmMtrClientRegistration MTR客户端注册 + * @return 结果 + */ + @Override + public int insertRmMtrClientRegistration(RmMtrClientRegistration rmMtrClientRegistration) + { + rmMtrClientRegistration.setCreateTime(DateUtils.getNowDate()); + return rmMtrClientRegistrationMapper.insertRmMtrClientRegistration(rmMtrClientRegistration); + } + + /** + * 修改MTR客户端注册 + * + * @param rmMtrClientRegistration MTR客户端注册 + * @return 结果 + */ + @Override + public int updateRmMtrClientRegistration(RmMtrClientRegistration rmMtrClientRegistration) + { + rmMtrClientRegistration.setUpdateTime(DateUtils.getNowDate()); + return rmMtrClientRegistrationMapper.updateRmMtrClientRegistration(rmMtrClientRegistration); + } + + /** + * 批量删除MTR客户端注册 + * + * @param ids 需要删除的MTR客户端注册主键 + * @return 结果 + */ + @Override + public int deleteRmMtrClientRegistrationByIds(Long[] ids) + { + return rmMtrClientRegistrationMapper.deleteRmMtrClientRegistrationByIds(ids); + } + + /** + * 删除MTR客户端注册信息 + * + * @param id MTR客户端注册主键 + * @return 结果 + */ + @Override + public int deleteRmMtrClientRegistrationById(Long id) + { + return rmMtrClientRegistrationMapper.deleteRmMtrClientRegistrationById(id); + } + + /** + * 配置更新策略 + * @param rmMtrClientRegistration + * @return + */ + @Override + public int addAgentUpdatePolicy(RmMtrClientRegistration rmMtrClientRegistration) { + String mtrClientIdStr = rmMtrClientRegistration.getMtrClientIds(); + String[] mtrClientIdArr = mtrClientIdStr.split("\n"); + + // 只提取公共变量 + String method = rmMtrClientRegistration.getMethod(); + String fileMd5 = rmMtrClientRegistration.getFileMd5(); + String filePath = rmMtrClientRegistration.getFilePath(); + Date scheduledUpdateTime = rmMtrClientRegistration.getScheduledUpdateTime(); + + for (String mtrClientId : mtrClientIdArr) { + // 配置更新参数 + RmMtrClientRegistration updateData = new RmMtrClientRegistration(); + updateData.setMtrClientId(mtrClientId); + updateData.setMethod(method); + updateData.setFileMd5(fileMd5); + updateData.setFilePath(filePath); + updateData.setScheduledUpdateTime(scheduledUpdateTime); + if("0".equals(method)){ + updateData.setScheduledUpdateTime(null); + } + rmMtrClientRegistrationMapper.updateRmMtrClientRegistration(updateData); + // 构建更新策略 + AgentUpdateMsgVo agentUpdateMsgVo = new AgentUpdateMsgVo(); + agentUpdateMsgVo.setFileUrl(filePath); + agentUpdateMsgVo.setFileMd5(fileMd5); + agentUpdateMsgVo.setMethod(Integer.valueOf(method)); + if("1".equals(method)){ + Date scheduledUpdateTimeInner = scheduledUpdateTime; + long scheduledTime = scheduledUpdateTimeInner.toInstant().getEpochSecond(); + agentUpdateMsgVo.setPolicyTime(scheduledTime); + } + try { + PolicyVo policyVo = new PolicyVo(); + List list = new ArrayList<>(); + list.add(agentUpdateMsgVo); + policyVo.setContents(list); + String policyVoStr = JSONObject.toJSONString(policyVo); + PolicyTypeVo policyTypeVo = new PolicyTypeVo(); + policyTypeVo.setVersions(policyVoStr); + String configJson = JSONObject.toJSONString(policyTypeVo); + DeviceMessage deviceMessage = new DeviceMessage(); + deviceMessage.setClientId(mtrClientId); + deviceMessage.setDataType(MsgEnum.获取最新策略应答.getValue()); + deviceMessage.setData(configJson); + MessageProducer messageProducer = new MessageProducer(); + + messageProducer.sendAsyncProducerMessage( + producerMode.getAgentTopic(), + "", + "", + JSONObject.toJSONString(deviceMessage) + ); + } catch (Exception e) { + log.error("发送设备配置失败,deviceId: {}", mtrClientId, e); + } + } + return 1; + } +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/RmMtrPolicyConfigServiceImpl.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/RmMtrPolicyConfigServiceImpl.java new file mode 100644 index 0000000..5721cd4 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/RmMtrPolicyConfigServiceImpl.java @@ -0,0 +1,138 @@ +package com.ruoyi.mtragent.service.impl; + +import com.ruoyi.common.core.constant.SecurityConstants; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.mtragent.domain.RmMtrPolicyConfig; +import com.ruoyi.mtragent.mapper.RmMtrPolicyConfigMapper; +import com.ruoyi.mtragent.service.IRmMtrPolicyConfigService; +import com.ruoyi.system.api.RemoteRocketMqService; +import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.StringJoiner; + +/** + * mtr探测策略配置Service业务层处理 + * + * @author gyt + * @date 2025-11-18 + */ +@Service +public class RmMtrPolicyConfigServiceImpl implements IRmMtrPolicyConfigService +{ + @Autowired + private RmMtrPolicyConfigMapper rmMtrPolicyConfigMapper; + @Autowired + private RemoteRocketMqService remoteRocketMqService; + + /** + * 查询mtr探测策略配置 + * + * @param id mtr探测策略配置主键 + * @return mtr探测策略配置 + */ + @Override + public RmMtrPolicyConfig selectRmMtrPolicyConfigById(Long id) + { + RmMtrPolicyConfig mtrPolicyConfig = rmMtrPolicyConfigMapper.selectRmMtrPolicyConfigById(id); + mtrPolicyConfig.setServerGroup(mtrPolicyConfig.getServerGroup().replace("\n", ";")); + return mtrPolicyConfig; + } + + /** + * 查询mtr探测策略配置列表 + * + * @param rmMtrPolicyConfig mtr探测策略配置 + * @return mtr探测策略配置 + */ + @Override + public List selectRmMtrPolicyConfigList(RmMtrPolicyConfig rmMtrPolicyConfig) + { + List list = rmMtrPolicyConfigMapper.selectRmMtrPolicyConfigList(rmMtrPolicyConfig); + for (RmMtrPolicyConfig mtrPolicyConfig : list) { + mtrPolicyConfig.setServerGroup(mtrPolicyConfig.getServerGroup().replace("\n", ";")); + } + return list; + } + + /** + * 辅助方法,给ip集合赋值 + * @param mtrPolicyConfig + */ + public void setServerip(RmMtrPolicyConfig mtrPolicyConfig){ + StringJoiner resultJoiner = new StringJoiner(";"); + String serverGroupStr = mtrPolicyConfig.getServerGroup().replace("\n",","); + RmNetworkInterfaceRemote query = new RmNetworkInterfaceRemote(); + query.setClientIds(serverGroupStr); + R> networkList = remoteRocketMqService.getNetworkInterfaceList(query, SecurityConstants.INNER); + if(networkList != null && networkList.getData() != null){ + List rmNetworkInterfaceRemoteList = networkList.getData(); + if(!rmNetworkInterfaceRemoteList.isEmpty()){ + for (RmNetworkInterfaceRemote rmNetworkInterfaceRemote : rmNetworkInterfaceRemoteList) { + String publicIp = rmNetworkInterfaceRemote.getPublicIp(); + resultJoiner.add(publicIp); + } + mtrPolicyConfig.setServeripGroup(resultJoiner.toString()); + } + } + } + + /** + * 新增mtr探测策略配置 + * + * @param rmMtrPolicyConfig mtr探测策略配置 + * @return 结果 + */ + @Override + public int insertRmMtrPolicyConfig(RmMtrPolicyConfig rmMtrPolicyConfig) + { + rmMtrPolicyConfig.setCreateTime(DateUtils.getNowDate()); + rmMtrPolicyConfig.setUpdateTime(DateUtils.getNowDate()); + rmMtrPolicyConfig.setCreateBy(SecurityUtils.getUsername()); + // 给ip赋值 + setServerip(rmMtrPolicyConfig); + int rows = rmMtrPolicyConfigMapper.insertRmMtrPolicyConfig(rmMtrPolicyConfig); + return rows; + } + + /** + * 修改mtr探测策略配置 + * + * @param rmMtrPolicyConfig mtr探测策略配置 + * @return 结果 + */ + @Override + public int updateRmMtrPolicyConfig(RmMtrPolicyConfig rmMtrPolicyConfig) + { + rmMtrPolicyConfig.setUpdateTime(DateUtils.getNowDate()); + return rmMtrPolicyConfigMapper.updateRmMtrPolicyConfig(rmMtrPolicyConfig); + } + + /** + * 批量删除mtr探测策略配置 + * + * @param ids 需要删除的mtr探测策略配置主键 + * @return 结果 + */ + @Override + public int deleteRmMtrPolicyConfigByIds(Long[] ids) + { + return rmMtrPolicyConfigMapper.deleteRmMtrPolicyConfigByIds(ids); + } + + /** + * 删除mtr探测策略配置信息 + * + * @param id mtr探测策略配置主键 + * @return 结果 + */ + @Override + public int deleteRmMtrPolicyConfigById(Long id) + { + return rmMtrPolicyConfigMapper.deleteRmMtrPolicyConfigById(id); + } +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/RmNetworkInterfaceServiceImpl.java b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/RmNetworkInterfaceServiceImpl.java new file mode 100644 index 0000000..fbd3f82 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/java/com/ruoyi/mtragent/service/impl/RmNetworkInterfaceServiceImpl.java @@ -0,0 +1,182 @@ +package com.ruoyi.mtragent.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.core.enums.MsgEnum; +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.mtragent.domain.DeviceMessage; +import com.ruoyi.mtragent.domain.RmNetworkInterface; +import com.ruoyi.mtragent.domain.vo.PolicyTypeVo; +import com.ruoyi.mtragent.mapper.RmNetworkInterfaceMapper; +import com.ruoyi.mtragent.model.ProducerMode; +import com.ruoyi.mtragent.producer.MessageProducer; +import com.ruoyi.mtragent.service.IRmNetworkInterfaceService; +import com.ruoyi.system.api.domain.RouteMsg; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.Instant; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 客户端网络接口信息Service业务层处理 + * + * @author gyt + * @date 2025-10-14 + */ +@Service +public class RmNetworkInterfaceServiceImpl implements IRmNetworkInterfaceService +{ + @Autowired + private RmNetworkInterfaceMapper rmNetworkInterfaceMapper; + @Autowired + private ProducerMode producerMode; + + /** + * 查询客户端网络接口信息 + * + * @param id 客户端网络接口信息主键 + * @return 客户端网络接口信息 + */ + @Override + public RmNetworkInterface selectRmNetworkInterfaceById(Long id) + { + return rmNetworkInterfaceMapper.selectRmNetworkInterfaceById(id); + } + + /** + * 查询客户端网络接口信息列表 + * + * @param rmNetworkInterface 客户端网络接口信息 + * @return 客户端网络接口信息 + */ + @Override + public List selectRmNetworkInterfaceList(RmNetworkInterface rmNetworkInterface) + { + return rmNetworkInterfaceMapper.selectRmNetworkInterfaceList(rmNetworkInterface); + } + + /** + * 新增客户端网络接口信息 + * + * @param rmNetworkInterface 客户端网络接口信息 + * @return 结果 + */ + @Override + public int insertRmNetworkInterface(RmNetworkInterface rmNetworkInterface) + { + rmNetworkInterface.setCreateTime(DateUtils.getNowDate()); + return rmNetworkInterfaceMapper.insertRmNetworkInterface(rmNetworkInterface); + } + + /** + * 修改客户端网络接口信息 + * + * @param rmNetworkInterface 客户端网络接口信息 + * @return 结果 + */ + @Override + public int updateRmNetworkInterface(RmNetworkInterface rmNetworkInterface) + { + rmNetworkInterface.setUpdateTime(DateUtils.getNowDate()); + return rmNetworkInterfaceMapper.updateRmNetworkInterface(rmNetworkInterface); + } + + @Override + public int updateRmNetworkInterfaceByMac(RmNetworkInterface rmNetworkInterface) { + rmNetworkInterface.setUpdateTime(DateUtils.getNowDate()); + return rmNetworkInterfaceMapper.updateRmNetworkInterfaceByMac(rmNetworkInterface); + } + + /** + * 批量删除客户端网络接口信息 + * + * @param ids 需要删除的客户端网络接口信息主键 + * @return 结果 + */ + @Override + public int deleteRmNetworkInterfaceByIds(Long[] ids) + { + return rmNetworkInterfaceMapper.deleteRmNetworkInterfaceByIds(ids); + } + + /** + * 删除客户端网络接口信息信息 + * + * @param id 客户端网络接口信息主键 + * @return 结果 + */ + @Override + public int deleteRmNetworkInterfaceById(Long id) + { + return rmNetworkInterfaceMapper.deleteRmNetworkInterfaceById(id); + } + + /** + * 绑定公网ip + * @param rmNetworkInterface + * @return + */ + @Override + public int bindPublicIp(RmNetworkInterface rmNetworkInterface) { + return rmNetworkInterfaceMapper.updateRmNetworkInterface(rmNetworkInterface); + } + + /** + * 更新路由信息 + * @param clientId + */ + public void updateRouteMsg(String clientId){ + MessageProducer messageProducer = new MessageProducer(); + // 查询路由是否有变化 + RmNetworkInterface rmNetworkInterface = new RmNetworkInterface(); + rmNetworkInterface.setClientId(clientId); + rmNetworkInterface.setBindIp("2"); + List networkInterfaces = rmNetworkInterfaceMapper.selectRmNetworkInterfaceList(rmNetworkInterface); + if(!networkInterfaces.isEmpty()){ + List oldList = networkInterfaces.stream() + .filter(networkInterface -> networkInterface.getNewFlag() == 0) + .collect(Collectors.toList()); + if(!oldList.isEmpty()){ + Map resultMap = new HashMap<>(); + // 增加静态路由 + RmNetworkInterface oldMsg = oldList.get(0); + RouteMsg oldRouteMsg = new RouteMsg(); + oldRouteMsg.setGateway(oldMsg.getGateway()); + oldRouteMsg.setName(oldMsg.getInterfaceName()); + resultMap.put("delRoute", oldRouteMsg); + List newList = networkInterfaces.stream() + .filter(networkInterface -> networkInterface.getNewFlag() == 1) + .collect(Collectors.toList()); + RmNetworkInterface newMsg = newList.get(0); + RouteMsg newRouteMsg = new RouteMsg(); + newRouteMsg.setGateway(newMsg.getGateway()); + newRouteMsg.setName(newMsg.getInterfaceName()); + resultMap.put("addRoute", newRouteMsg); + resultMap.put("upTime", Instant.now().getEpochSecond()); + PolicyTypeVo policyTypeVo = new PolicyTypeVo(); + policyTypeVo.setRoutes(JSONObject.toJSONString(resultMap)); + String configJson = JSONObject.toJSONString(policyTypeVo); + // 构建发送消息 + DeviceMessage message = new DeviceMessage(); + message.setClientId(clientId); + message.setData(configJson); + message.setDataType(MsgEnum.获取最新策略应答.getValue()); + + messageProducer.sendAsyncProducerMessage( + producerMode.getAgentTopic(), + "", + "", + JSONObject.toJSONString(message) + ); + // 更新网卡信息表 + RmNetworkInterface updateQuery = new RmNetworkInterface(); + updateQuery.setNewFlag(999); + updateQuery.setMacAddress(networkInterfaces.get(0).getMacAddress()); + rmNetworkInterfaceMapper.updateRmNetworkInterfaceByMac(updateQuery); + } + } + } +} diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/InitialHeartbeatListenLogMapper.xml b/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/InitialHeartbeatListenLogMapper.xml new file mode 100644 index 0000000..cf09b43 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/InitialHeartbeatListenLogMapper.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + select id, client_id, status, remark, create_time, update_time, create_by, update_by from initial_heartbeat_listen_log + + + + + + + + insert into initial_heartbeat_listen_log + + client_id, + status, + remark, + create_time, + update_time, + create_by, + update_by, + + + #{clientId}, + #{status}, + #{remark}, + #{createTime}, + #{updateTime}, + #{createBy}, + #{updateBy}, + + + + + update initial_heartbeat_listen_log + + client_id = #{clientId}, + status = #{status}, + remark = #{remark}, + create_time = #{createTime}, + update_time = #{updateTime}, + create_by = #{createBy}, + update_by = #{updateBy}, + + where id = #{id} + + + + delete from initial_heartbeat_listen_log where id = #{id} + + + + delete from initial_heartbeat_listen_log where id in + + #{id} + + + \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/RmAlarmLogMapper.xml b/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/RmAlarmLogMapper.xml new file mode 100644 index 0000000..56407c7 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/RmAlarmLogMapper.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + select id, client_id, alarm_time, mgm_public_ip, alarm_type, alarm_content, create_time, update_time, create_by, update_by from rm_alarm_log + + + + + + + + insert into rm_alarm_log + + client_id, + alarm_time, + mgm_public_ip, + alarm_type, + alarm_content, + create_time, + update_time, + create_by, + update_by, + + + #{clientId}, + #{alarmTime}, + #{mgmPublicIp}, + #{alarmType}, + #{alarmContent}, + #{createTime}, + #{updateTime}, + #{createBy}, + #{updateBy}, + + + + + update rm_alarm_log + + mgm_public_ip = #{mgmPublicIp}, + alarm_content = #{alarmContent}, + create_time = #{createTime}, + update_time = #{updateTime}, + create_by = #{createBy}, + update_by = #{updateBy}, + + + + + and id = #[id] + + + and client_id = #{clientId} and alarm_type = #{alarmType} + + + and 1=0 + + + + + + + delete from rm_alarm_log where id = #{id} + + + + delete from rm_alarm_log where id in + + #{id} + + + \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/RmAlarmPushConfigMapper.xml b/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/RmAlarmPushConfigMapper.xml new file mode 100644 index 0000000..6ac15ce --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/RmAlarmPushConfigMapper.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + select id, config_name, push_method, push_address, push_alarm_types, message_content, contact_phones, create_time, update_time, create_by, update_by from rm_alarm_push_config + + + + + + + + insert into rm_alarm_push_config + + config_name, + push_method, + push_address, + push_alarm_types, + message_content, + contact_phones, + create_time, + update_time, + create_by, + update_by, + + + #{configName}, + #{pushMethod}, + #{pushAddress}, + #{pushAlarmTypes}, + #{messageContent}, + #{contactPhones}, + #{createTime}, + #{updateTime}, + #{createBy}, + #{updateBy}, + + + + + update rm_alarm_push_config + + config_name = #{configName}, + push_method = #{pushMethod}, + push_address = #{pushAddress}, + push_alarm_types = #{pushAlarmTypes}, + message_content = #{messageContent}, + contact_phones = #{contactPhones}, + create_time = #{createTime}, + update_time = #{updateTime}, + create_by = #{createBy}, + update_by = #{updateBy}, + + where id = #{id} + + + + delete from rm_alarm_push_config where id = #{id} + + + + delete from rm_alarm_push_config where id in + + #{id} + + + \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/RmMtrClientRegistrationMapper.xml b/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/RmMtrClientRegistrationMapper.xml new file mode 100644 index 0000000..f18b651 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/RmMtrClientRegistrationMapper.xml @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, mtr_client_id, description, version, logical_node, register_time, register_status, online_status, heartbeat_interval, heartbeat_count, method, scheduled_update_time, file_path, file_md5, last_update_result, last_update_time, network_info, create_time, update_time, create_by, update_by from rm_mtr_client_registration + + + + + + + + insert into rm_mtr_client_registration + + mtr_client_id, + description, + version, + logical_node, + register_time, + register_status, + online_status, + heartbeat_interval, + heartbeat_count, + method, + scheduled_update_time, + file_path, + file_md5, + last_update_result, + last_update_time, + network_info, + create_time, + update_time, + create_by, + update_by, + + + #{mtrClientId}, + #{description}, + #{version}, + #{logicalNode}, + #{registerTime}, + #{registerStatus}, + #{onlineStatus}, + #{heartbeatInterval}, + #{heartbeatCount}, + #{method}, + #{scheduledUpdateTime}, + #{filePath}, + #{fileMd5}, + #{lastUpdateResult}, + #{lastUpdateTime}, + #{networkInfo}, + #{createTime}, + #{updateTime}, + #{createBy}, + #{updateBy}, + + + + + update rm_mtr_client_registration + + mtr_client_id = #{mtrClientId}, + description = #{description}, + version = #{version}, + logical_node = #{logicalNode}, + register_time = #{registerTime}, + register_status = #{registerStatus}, + online_status = #{onlineStatus}, + heartbeat_interval = #{heartbeatInterval}, + heartbeat_count = #{heartbeatCount}, + method = #{method}, + scheduled_update_time = #{scheduledUpdateTime}, + file_path = #{filePath}, + file_md5 = #{fileMd5}, + last_update_result = #{lastUpdateResult}, + last_update_time = #{lastUpdateTime}, + network_info = #{networkInfo}, + create_time = #{createTime}, + update_time = #{updateTime}, + create_by = #{createBy}, + update_by = #{updateBy}, + + + + + and id=#{id} + + + and mtr_client_id = #{mtrClientId} + + + and 1=0 + + + + + + + delete from rm_mtr_client_registration where id = #{id} + + + + delete from rm_mtr_client_registration where id in + + #{id} + + + \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/RmMtrPolicyConfigMapper.xml b/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/RmMtrPolicyConfigMapper.xml new file mode 100644 index 0000000..facbe60 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/RmMtrPolicyConfigMapper.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + select id, policy_name, priority, mtr_client_id, server_group, serverip_group, probe_flag, start_time, end_time, probe_frequency, create_time, update_time, create_by, update_by from rm_mtr_policy_config + + + + + + + + insert into rm_mtr_policy_config + + policy_name, + priority, + mtr_client_id, + server_group, + serverip_group, + probe_flag, + start_time, + end_time, + probe_frequency, + create_time, + update_time, + create_by, + update_by, + + + #{policyName}, + #{priority}, + #{mtrClientId}, + #{serverGroup}, + #{serveripGroup}, + #{probeFlag}, + #{startTime}, + #{endTime}, + #{probeFrequency}, + #{createTime}, + #{updateTime}, + #{createBy}, + #{updateBy}, + + + + + update rm_mtr_policy_config + + policy_name = #{policyName}, + priority = #{priority}, + mtr_client_id = #{mtrClientId}, + server_group = #{serverGroup}, + serverip_group = #{serveripGroup}, + probe_flag = #{probeFlag}, + start_time = #{startTime}, + end_time = #{endTime}, + probe_frequency = #{probeFrequency}, + create_time = #{createTime}, + update_time = #{updateTime}, + create_by = #{createBy}, + update_by = #{updateBy}, + + where id = #{id} + + + + delete from rm_mtr_policy_config where id = #{id} + + + + delete from rm_mtr_policy_config where id in + + #{id} + + + \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/RmNetworkInterfaceMapper.xml b/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/RmNetworkInterfaceMapper.xml new file mode 100644 index 0000000..50b63a5 --- /dev/null +++ b/ruoyi-modules/ruoyi-mtragent/src/main/resources/mapper/mtragent/RmNetworkInterfaceMapper.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + select id, client_id, isp, province, city, public_ip, interface_name, mac_address, interface_type, ipv4_address, gateway, create_time, update_time, create_by, update_by, bind_ip, new_flag from rm_network_interface + + + + + + + + insert into rm_network_interface + + client_id, + isp, + province, + city, + public_ip, + interface_name, + mac_address, + interface_type, + ipv4_address, + gateway, + create_time, + update_time, + create_by, + update_by, + bind_ip, + new_flag, + + + #{clientId}, + #{isp}, + #{province}, + #{city}, + #{publicIp}, + #{interfaceName}, + #{macAddress}, + #{interfaceType}, + #{ipv4Address}, + #{gateway}, + #{createTime}, + #{updateTime}, + #{createBy}, + #{updateBy}, + #{bindIp}, + #{newFlag}, + + + + + update rm_network_interface + + client_id = #{clientId}, + isp = #{isp}, + province = #{province}, + city = #{city}, + public_ip = #{publicIp}, + interface_name = #{interfaceName}, + mac_address = #{macAddress}, + interface_type = #{interfaceType}, + ipv4_address = #{ipv4Address}, + gateway = #{gateway}, + create_time = #{createTime}, + update_time = #{updateTime}, + create_by = #{createBy}, + update_by = #{updateBy}, + bind_ip = #{bindIp}, + new_flag = #{newFlag}, + + where id = #{id} + + + + delete from rm_network_interface where id = #{id} + + + + delete from rm_network_interface where id in + + #{id} + + + + update rm_network_interface + + isp = #{isp}, + province = #{province}, + city = #{city}, + public_ip = #{publicIp}, + interface_name = #{interfaceName}, + mac_address = #{macAddress}, + interface_type = #{interfaceType}, + ipv4_address = #{ipv4Address}, + gateway = #{gateway}, + create_time = #{createTime}, + update_time = #{updateTime}, + create_by = #{createBy}, + update_by = #{updateBy}, + bind_ip = #{bindIp}, + new_flag = #{newFlag}, + + where mac_address = #{macAddress} and clientId = #{clientId} + + \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceRegistrationServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceRegistrationServiceImpl.java index 0cf7e00..1a1f501 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceRegistrationServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceRegistrationServiceImpl.java @@ -675,6 +675,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio if(exits.getOnboardTime() == null){ // 如果服务器已注册 增加节点标识 updateData.setOnboardTime(DateUtils.getNowDate()); + updateData.setOnlineStatus("1"); needUpdate = true; } if(exits.getLogicalNodeId() == null || diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmResourceRemoteController.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmResourceRemoteController.java index 4f89f13..f188b9d 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmResourceRemoteController.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmResourceRemoteController.java @@ -2,12 +2,17 @@ package com.ruoyi.rocketmq.controller; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.web.page.PageDomain; +import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.rocketmq.domain.RmResourceRemote; import com.ruoyi.rocketmq.service.IRmResourceRemoteService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; +import java.util.Map; + /** * 资源远程管理Controller * @@ -32,5 +37,20 @@ public class RmResourceRemoteController extends BaseController return success(rmResourceRemoteService.getScriptResultBySn(rmResourceRemote)); } + /** + * 获取资源远程管理详细信息 -- 分页 + */ + @RequiresPermissions("rocketmq:remote:query") + @PostMapping(value = "/getScriptResultByScriptId") + public TableDataInfo getScriptResultByScriptId(@RequestBody RmResourceRemote rmResourceRemote) + { + PageDomain pageDomain = new PageDomain(); + pageDomain.setPageNum(rmResourceRemote.getPageNum()); + pageDomain.setPageSize(rmResourceRemote.getPageSize()); + startPage(pageDomain); + List> list = rmResourceRemoteService.getScriptResultByScriptId(rmResourceRemote); + return getDataTable(list); + } + } diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/RmNetworkInterface.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/RmNetworkInterface.java index 8b4739d..fbe46c9 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/RmNetworkInterface.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/RmNetworkInterface.java @@ -61,5 +61,7 @@ public class RmNetworkInterface extends BaseEntity private String bindIp; /** 是否为新信息 */ private Integer newFlag; + /** 服务器clientId集合 */ + private String clientIds; } diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IRmResourceRemoteService.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IRmResourceRemoteService.java index ff32468..e0559b6 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IRmResourceRemoteService.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IRmResourceRemoteService.java @@ -62,4 +62,11 @@ public interface IRmResourceRemoteService public int deleteRmResourceRemoteById(Long id); Map getScriptResultBySn(RmResourceRemote rmResourceRemote); + + /** + * 根据脚本策略id查询执行结果 + * @param rmResourceRemote + * @return + */ + List> getScriptResultByScriptId(RmResourceRemote rmResourceRemote); } diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmResourceRemoteServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmResourceRemoteServiceImpl.java index 189c65e..1725d6c 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmResourceRemoteServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmResourceRemoteServiceImpl.java @@ -137,4 +137,30 @@ public class RmResourceRemoteServiceImpl implements IRmResourceRemoteService resultMap.put("scriptResult", scriptList); return resultMap; } + + @Override + public List> getScriptResultByScriptId(RmResourceRemote rmResourceRemote) { + // 脚本执行结果构建 + List> scriptList = new ArrayList<>(); + List reslutList = rmResourceRemoteMapper.selectRmResourceRemoteList(rmResourceRemote); + for (RmResourceRemote resourceRemote : reslutList) { + // 脚本执行返回结果 + JSONObject jsonObject = JSONObject.parseObject(resourceRemote.getDescription()); + String command = jsonObject.getString("command"); + String resOut = jsonObject.getString("resOut"); + String sucOrFail = (!"".equals(resOut) && !"脚本执行失败".equals(resOut)) ? "\n执行成功,\n":"\n执行失败,\n"; + StringBuilder resultSb = new StringBuilder(); + resultSb.append("【").append(resourceRemote.getClientId()).append("】脚本执行命令:\n") + .append(command).append(sucOrFail).append("执行结果如下:\n").append(resOut); + Map map = new HashMap<>(); + Date createTime = resourceRemote.getCreateTime(); + String createTimeStr = DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", createTime); + map.put("createTime", createTimeStr); + map.put("content", resultSb); + map.put("clientId", resourceRemote.getClientId()); + map.put("resultFlag", resourceRemote.getResultFlag()); + scriptList.add(map); + } + return scriptList; + } } diff --git a/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceMapper.xml b/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceMapper.xml index ccbf1f9..cf742eb 100644 --- a/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceMapper.xml +++ b/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceMapper.xml @@ -43,6 +43,13 @@ and gateway = #{gateway} and bind_ip = #{bindIp} and new_flag = #{newFlag} + + and (bind_ip='1' or bind_ip='3') and new_flag=1 + and client_id in + + #{clientId} + +