diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsInitialTrafficDataController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsInitialTrafficDataController.java index b359b1d..e53b77d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsInitialTrafficDataController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsInitialTrafficDataController.java @@ -14,6 +14,8 @@ import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Map; +import static com.ruoyi.common.core.web.domain.AjaxResult.success; + /** * EPS初始流量数据控制器 * 提供流量数据的REST接口 @@ -65,7 +67,7 @@ public class EpsInitialTrafficDataController { @PostMapping("/getServerGraphicalAnalysisDaily") public AjaxResult getServerGraphicalAnalysisDaily(@RequestBody EpsInitialTrafficData queryParam){ List> echartsData = epsInitialTrafficDataService.getServerGraphicalAnalysisDaily(queryParam); - return AjaxResult.success(echartsData); + return success(echartsData); } /** * 图形分析 - 95值/日 @@ -75,6 +77,16 @@ public class EpsInitialTrafficDataController { @PostMapping("/getServerGraphicalAnalysisMonthy") public AjaxResult getServerGraphicalAnalysisMonthy(@RequestBody EpsInitialTrafficData queryParam){ List> echartsData = epsInitialTrafficDataService.getServerGraphicalAnalysisMonthy(queryParam); - return AjaxResult.success(echartsData); + return success(echartsData); + } + /** + * 监控看板-详情视图 出入流量 + */ + @RequiresPermissions("system:bandwidth:list") + @PostMapping("/getServerTrafficByMonitorView") + public AjaxResult getServerTrafficByMonitorView(@RequestBody EpsInitialTrafficData queryParam) + { + Map echartsData = epsInitialTrafficDataService.getServerTrafficByMonitorView(queryParam); + return success(echartsData); } } \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsNodeBandwidthController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsNodeBandwidthController.java index 79b092f..151c3d6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsNodeBandwidthController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsNodeBandwidthController.java @@ -329,4 +329,21 @@ public class EpsNodeBandwidthController extends BaseController List list = epsNodeBandwidthService.selectEpsNodeBandwidthList(epsNodeBandwidth); return R.ok(list); } + + /** + * 监控看板-详情视图 95值列表 + * @param epsNodeBandwidth + * @return + */ + @RequiresPermissions("system:bandwidth:list") + @PostMapping("/getListByMonitorView") + public TableDataInfo getListByMonitorView(@RequestBody EpsNodeBandwidth epsNodeBandwidth) + { + PageDomain pageDomain = new PageDomain(); + pageDomain.setPageNum(epsNodeBandwidth.getPageNum()); + pageDomain.setPageSize(epsNodeBandwidth.getPageSize()); + startPage(pageDomain); + List list = epsNodeBandwidthService.getListByMonitorView(epsNodeBandwidth); + return getDataTable(list); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/InitialSwitchInfoDetailsController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/InitialSwitchInfoDetailsController.java index 115758e..9bef3cb 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/InitialSwitchInfoDetailsController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/InitialSwitchInfoDetailsController.java @@ -126,4 +126,25 @@ public class InitialSwitchInfoDetailsController extends BaseController List> echartsData = initialSwitchInfoDetailsService.getGraphicalAnalysisMonthy(initialSwitchInfoDetails); return success(echartsData); } + + /** + * 监控看板-详情视图 出入流量 + */ + @RequiresPermissions("system:bandwidth:list") + @PostMapping("/getSwitchTrafficByMonitorView") + public AjaxResult getSwitchTrafficByMonitorView(@RequestBody InitialSwitchInfoDetails initialSwitchInfoDetails) + { + Map echartsData = initialSwitchInfoDetailsService.getMonitorViewDetails(initialSwitchInfoDetails); + return success(echartsData); + } + /** + * 监控看板-详情视图 出入流量列表 + */ + @RequiresPermissions("system:bandwidth:list") + @PostMapping("/geSwitchListByMonitorView") + public TableDataInfo geSwitchListByMonitorView(@RequestBody InitialSwitchInfoDetails initialSwitchInfoDetails) + { + List list = initialSwitchInfoDetailsService.geSwitchListByMonitorView(initialSwitchInfoDetails); + return getDataTable(list); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmMonitorConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmMonitorConfigController.java new file mode 100644 index 0000000..24a587a --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmMonitorConfigController.java @@ -0,0 +1,96 @@ +package com.ruoyi.system.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.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.system.domain.RmMonitorConfig; +import com.ruoyi.system.service.IRmMonitorConfigService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 监控配置Controller + * + * @author gyt + * @date 2025-11-12 + */ +@RestController +@RequestMapping("/monitorConfig") +public class RmMonitorConfigController extends BaseController +{ + @Autowired + private IRmMonitorConfigService rmMonitorConfigService; + + /** + * 查询监控配置列表 + */ + @RequiresPermissions("system:monitorConfig:list") + @PostMapping("/list") + public AjaxResult list(@RequestBody RmMonitorConfig rmMonitorConfig) + { + List list = rmMonitorConfigService.selectRmMonitorConfigList(rmMonitorConfig); + return success(list); + } + + /** + * 导出监控配置列表 + */ + @RequiresPermissions("system:monitorConfig:export") + @Log(title = "监控配置", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, RmMonitorConfig rmMonitorConfig) + { + List list = rmMonitorConfigService.selectRmMonitorConfigList(rmMonitorConfig); + ExcelUtil util = new ExcelUtil(RmMonitorConfig.class); + util.exportExcel(response, list, "监控配置数据"); + } + + /** + * 获取监控配置详细信息 + */ + @RequiresPermissions("system:monitorConfig:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(rmMonitorConfigService.selectRmMonitorConfigById(id)); + } + + /** + * 新增监控配置 + */ + @RequiresPermissions("system:monitorConfig:add") + @Log(title = "监控配置", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody RmMonitorConfig rmMonitorConfig) + { + return toAjax(rmMonitorConfigService.insertRmMonitorConfig(rmMonitorConfig)); + } + + /** + * 修改监控配置 + */ + @RequiresPermissions("system:monitorConfig:edit") + @Log(title = "监控配置", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody RmMonitorConfig rmMonitorConfig) + { + return toAjax(rmMonitorConfigService.updateRmMonitorConfig(rmMonitorConfig)); + } + + /** + * 删除监控配置 + */ + @RequiresPermissions("system:monitorConfig:remove") + @Log(title = "监控配置", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(rmMonitorConfigService.deleteRmMonitorConfigByIds(ids)); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceRegistrationController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceRegistrationController.java index 7a25b71..546bbbf 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceRegistrationController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceRegistrationController.java @@ -235,5 +235,19 @@ public class RmResourceRegistrationController extends BaseController int rows = rmResourceRegistrationService.bindBusinessByClientIds(rmResourceRegistration); return toAjax(rows); } + /** + * 根据clientId查询详情 + * @return 资源注册集合 + */ + @RequiresPermissions("system:registration:list") + @PostMapping("/getServerMsgByClientId") + public AjaxResult getServerMsgByClientId(@RequestBody RmResourceRegistration rmResourceRegistration) + { + List list = rmResourceRegistrationService.selectRmResourceRegistrationList(rmResourceRegistration); + if(list != null && !list.isEmpty()){ + return success(list.get(0)); + } + return success(list); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuClickController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuClickController.java new file mode 100644 index 0000000..b2526b9 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuClickController.java @@ -0,0 +1,48 @@ +package com.ruoyi.system.controller; + +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.system.domain.SysMenuClick; +import com.ruoyi.system.service.ISysMenuClickService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 菜单点击计数Controller + * + * @author gyt + * @date 2025-11-12 + */ +@RestController +@RequestMapping("/sysMenuClick") +public class SysMenuClickController extends BaseController +{ + @Autowired + private ISysMenuClickService sysMenuClickService; + + /** + * 查询菜单点击计数列表 + */ + @RequiresPermissions("system:sysMenuClick:list") + @GetMapping("/list") + public AjaxResult list(SysMenuClick sysMenuClick) + { + List list = sysMenuClickService.selectSysMenuClickList(sysMenuClick); + return success(list); + } + /** + * 新增菜单点击计数 + */ + @RequiresPermissions("system:sysMenuClick:add") + @Log(title = "菜单点击计数", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SysMenuClick sysMenuClick) + { + return toAjax(sysMenuClickService.insertSysMenuClick(sysMenuClick)); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/AllInterfaceName.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/AllInterfaceName.java index a7efcec..5673de0 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/AllInterfaceName.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/AllInterfaceName.java @@ -79,5 +79,7 @@ public class AllInterfaceName extends BaseEntity private String value; /** 前端需要 name 别名 */ private String label; + /** 是否需要展开 */ + private boolean expand; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsInitialTrafficData.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsInitialTrafficData.java index 3e92115..4ccb55a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsInitialTrafficData.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsInitialTrafficData.java @@ -126,6 +126,8 @@ public class EpsInitialTrafficData extends BaseEntity { private String totalInSpeed; /** 总发送带宽 */ private String totalOutSpeed; + /** 监控看板id */ + private Long monitorId; } \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsNodeBandwidth.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsNodeBandwidth.java index b3fe144..7192ff9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsNodeBandwidth.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsNodeBandwidth.java @@ -125,7 +125,9 @@ public class EpsNodeBandwidth extends BaseEntity private String clientId; /** 交换机连接的服务器客户端id */ private String serverClientId; - - + /** 监控看板配置id */ + private Long monitorId; + /** 服务器id \n 分割 */ + private String clientIds; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/InitialSwitchInfoDetails.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/InitialSwitchInfoDetails.java index cfc56bd..81a1825 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/InitialSwitchInfoDetails.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/InitialSwitchInfoDetails.java @@ -126,4 +126,6 @@ public class InitialSwitchInfoDetails extends BaseEntity private BigDecimal percentile95; /** 单位 */ private String unit; + /** 监控看板概览id */ + private Long monitorId; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmMonitorConfig.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmMonitorConfig.java new file mode 100644 index 0000000..5f9f61d --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmMonitorConfig.java @@ -0,0 +1,101 @@ +package com.ruoyi.system.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; + +/** + * 监控配置对象 rm_monitor_config + * + * @author gyt + * @date 2025-11-12 + */ +public class RmMonitorConfig extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private Long id; + + /** 配置名称 */ + @Excel(name = "配置名称") + private String configName; + + /** 监控数据开始时间 */ + @Excel(name = "监控数据开始时间") + private String monitorStartTime; + + /** 资源类型 */ + @Excel(name = "资源类型") + private String resourceType; + + /** 部署设备 */ + @Excel(name = "部署设备") + private String deployDevice; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setConfigName(String configName) + { + this.configName = configName; + } + + public String getConfigName() + { + return configName; + } + + public void setMonitorStartTime(String monitorStartTime) + { + this.monitorStartTime = monitorStartTime; + } + + public String getMonitorStartTime() + { + return monitorStartTime; + } + + public void setResourceType(String resourceType) + { + this.resourceType = resourceType; + } + + public String getResourceType() + { + return resourceType; + } + + public void setDeployDevice(String deployDevice) + { + this.deployDevice = deployDevice; + } + + public String getDeployDevice() + { + return deployDevice; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("configName", getConfigName()) + .append("monitorStartTime", getMonitorStartTime()) + .append("resourceType", getResourceType()) + .append("deployDevice", getDeployDevice()) + .append("createTime", getCreateTime()) + .append("updateTime", getUpdateTime()) + .append("createBy", getCreateBy()) + .append("updateBy", getUpdateBy()) + .toString(); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenuClick.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenuClick.java new file mode 100644 index 0000000..a89d3eb --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenuClick.java @@ -0,0 +1,105 @@ +package com.ruoyi.system.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; + +/** + * 菜单点击计数对象 sys_menu_click + * + * @author gyt + * @date 2025-11-12 + */ +public class SysMenuClick extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private Long id; + + /** 页面路由标识(例如:system:user:list, business:order:manage) */ + @Excel(name = "页面路由标识", readConverterExp = "例=如:system:user:list,,b=usiness:order:manage") + private String pageRoute; + + /** 页面名称 */ + @Excel(name = "页面名称") + private String pageName; + + /** 点击次数 */ + @Excel(name = "点击次数") + private Long clickCount; + + /** 最后点击时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "最后点击时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date lastClickTime; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setPageRoute(String pageRoute) + { + this.pageRoute = pageRoute; + } + + public String getPageRoute() + { + return pageRoute; + } + + public void setPageName(String pageName) + { + this.pageName = pageName; + } + + public String getPageName() + { + return pageName; + } + + public void setClickCount(Long clickCount) + { + this.clickCount = clickCount; + } + + public Long getClickCount() + { + return clickCount; + } + + public void setLastClickTime(Date lastClickTime) + { + this.lastClickTime = lastClickTime; + } + + public Date getLastClickTime() + { + return lastClickTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("pageRoute", getPageRoute()) + .append("pageName", getPageName()) + .append("clickCount", getClickCount()) + .append("lastClickTime", getLastClickTime()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/EpsNodeBandwidthMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/EpsNodeBandwidthMapper.java index b2d4cdf..8cd1558 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/EpsNodeBandwidthMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/EpsNodeBandwidthMapper.java @@ -85,4 +85,11 @@ public interface EpsNodeBandwidthMapper int updateEpsNodeBandwidthByServerSn(EpsNodeBandwidth epsNodeBandwidth); int updateEpsNodeBandwidthBySwitchSn(EpsNodeBandwidth epsNodeBandwidth); + + /** + * 监控看板-详情视图 95值列表 + * @param epsNodeBandwidth + * @return + */ + List getListByMonitorView(EpsNodeBandwidth epsNodeBandwidth); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/InitialSwitchInfoDetailsMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/InitialSwitchInfoDetailsMapper.java index 6c3b055..7c83abf 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/InitialSwitchInfoDetailsMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/InitialSwitchInfoDetailsMapper.java @@ -82,4 +82,11 @@ public interface InitialSwitchInfoDetailsMapper * @return */ List sumSwitchTrafficByclientIds(InitialSwitchInfoDetails queryParam); + + /** + * 监控看板-详情视图 出入流量列表 + * @param queryParam + * @return + */ + List geSwitchListByMonitorView(InitialSwitchInfoDetails queryParam); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RmMonitorConfigMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RmMonitorConfigMapper.java new file mode 100644 index 0000000..f576980 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RmMonitorConfigMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.system.domain.RmMonitorConfig; + +/** + * 监控配置Mapper接口 + * + * @author gyt + * @date 2025-11-12 + */ +public interface RmMonitorConfigMapper +{ + /** + * 查询监控配置 + * + * @param id 监控配置主键 + * @return 监控配置 + */ + public RmMonitorConfig selectRmMonitorConfigById(Long id); + + /** + * 查询监控配置列表 + * + * @param rmMonitorConfig 监控配置 + * @return 监控配置集合 + */ + public List selectRmMonitorConfigList(RmMonitorConfig rmMonitorConfig); + + /** + * 新增监控配置 + * + * @param rmMonitorConfig 监控配置 + * @return 结果 + */ + public int insertRmMonitorConfig(RmMonitorConfig rmMonitorConfig); + + /** + * 修改监控配置 + * + * @param rmMonitorConfig 监控配置 + * @return 结果 + */ + public int updateRmMonitorConfig(RmMonitorConfig rmMonitorConfig); + + /** + * 删除监控配置 + * + * @param id 监控配置主键 + * @return 结果 + */ + public int deleteRmMonitorConfigById(Long id); + + /** + * 批量删除监控配置 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRmMonitorConfigByIds(Long[] ids); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuClickMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuClickMapper.java new file mode 100644 index 0000000..5aaaa97 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuClickMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.system.mapper; + +import java.util.List; +import com.ruoyi.system.domain.SysMenuClick; + +/** + * 菜单点击计数Mapper接口 + * + * @author gyt + * @date 2025-11-12 + */ +public interface SysMenuClickMapper +{ + /** + * 查询菜单点击计数 + * + * @param id 菜单点击计数主键 + * @return 菜单点击计数 + */ + public SysMenuClick selectSysMenuClickById(Long id); + + /** + * 查询菜单点击计数列表 + * + * @param sysMenuClick 菜单点击计数 + * @return 菜单点击计数集合 + */ + public List selectSysMenuClickList(SysMenuClick sysMenuClick); + + /** + * 新增菜单点击计数 + * + * @param sysMenuClick 菜单点击计数 + * @return 结果 + */ + public int insertSysMenuClick(SysMenuClick sysMenuClick); + + /** + * 修改菜单点击计数 + * + * @param sysMenuClick 菜单点击计数 + * @return 结果 + */ + public int updateSysMenuClick(SysMenuClick sysMenuClick); + + /** + * 删除菜单点击计数 + * + * @param id 菜单点击计数主键 + * @return 结果 + */ + public int deleteSysMenuClickById(Long id); + + /** + * 批量删除菜单点击计数 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteSysMenuClickByIds(Long[] ids); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/EpsInitialTrafficDataService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/EpsInitialTrafficDataService.java index e009220..afd95ac 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/EpsInitialTrafficDataService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/EpsInitialTrafficDataService.java @@ -87,4 +87,11 @@ public interface EpsInitialTrafficDataService { List> getServerGraphicalAnalysisDaily(EpsInitialTrafficData queryParam); List> getServerGraphicalAnalysisMonthy(EpsInitialTrafficData queryParam); + + /** + * 监控看板-详情视图 出入流量 + * @param queryParam + * @return + */ + Map getServerTrafficByMonitorView(EpsInitialTrafficData queryParam); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IEpsNodeBandwidthService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IEpsNodeBandwidthService.java index 4119c7c..14c5fcb 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IEpsNodeBandwidthService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IEpsNodeBandwidthService.java @@ -87,4 +87,11 @@ public interface IEpsNodeBandwidthService * @return */ List graphicalAnalysis(EpsNodeBandwidth epsNodeBandwidth, String bandwidthType, ChronoUnit timeUnit); + + /** + * 监控看板-详情视图 95值列表 + * @param epsNodeBandwidth + * @return + */ + List getListByMonitorView(EpsNodeBandwidth epsNodeBandwidth); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IInitialSwitchInfoDetailsService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IInitialSwitchInfoDetailsService.java index 95016be..cd3b519 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IInitialSwitchInfoDetailsService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IInitialSwitchInfoDetailsService.java @@ -109,4 +109,18 @@ public interface IInitialSwitchInfoDetailsService * @return */ List> getGraphicalAnalysisMonthy(InitialSwitchInfoDetails initialSwitchInfoDetails); + + /** + * 监控看板-详情视图 出入流量 + * @param initialSwitchInfoDetails + * @return + */ + Map getMonitorViewDetails(InitialSwitchInfoDetails initialSwitchInfoDetails); + + /** + * 监控看板-详情视图 出入流量列表 + * @param initialSwitchInfoDetails + * @return + */ + List geSwitchListByMonitorView(InitialSwitchInfoDetails initialSwitchInfoDetails); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IRmMonitorConfigService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IRmMonitorConfigService.java new file mode 100644 index 0000000..8a346f2 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IRmMonitorConfigService.java @@ -0,0 +1,61 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.system.domain.RmMonitorConfig; + +/** + * 监控配置Service接口 + * + * @author gyt + * @date 2025-11-12 + */ +public interface IRmMonitorConfigService +{ + /** + * 查询监控配置 + * + * @param id 监控配置主键 + * @return 监控配置 + */ + public RmMonitorConfig selectRmMonitorConfigById(Long id); + + /** + * 查询监控配置列表 + * + * @param rmMonitorConfig 监控配置 + * @return 监控配置集合 + */ + public List selectRmMonitorConfigList(RmMonitorConfig rmMonitorConfig); + + /** + * 新增监控配置 + * + * @param rmMonitorConfig 监控配置 + * @return 结果 + */ + public int insertRmMonitorConfig(RmMonitorConfig rmMonitorConfig); + + /** + * 修改监控配置 + * + * @param rmMonitorConfig 监控配置 + * @return 结果 + */ + public int updateRmMonitorConfig(RmMonitorConfig rmMonitorConfig); + + /** + * 批量删除监控配置 + * + * @param ids 需要删除的监控配置主键集合 + * @return 结果 + */ + public int deleteRmMonitorConfigByIds(Long[] ids); + + /** + * 删除监控配置信息 + * + * @param id 监控配置主键 + * @return 结果 + */ + public int deleteRmMonitorConfigById(Long id); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuClickService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuClickService.java new file mode 100644 index 0000000..efe537d --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuClickService.java @@ -0,0 +1,61 @@ +package com.ruoyi.system.service; + +import java.util.List; +import com.ruoyi.system.domain.SysMenuClick; + +/** + * 菜单点击计数Service接口 + * + * @author gyt + * @date 2025-11-12 + */ +public interface ISysMenuClickService +{ + /** + * 查询菜单点击计数 + * + * @param id 菜单点击计数主键 + * @return 菜单点击计数 + */ + public SysMenuClick selectSysMenuClickById(Long id); + + /** + * 查询菜单点击计数列表 + * + * @param sysMenuClick 菜单点击计数 + * @return 菜单点击计数集合 + */ + public List selectSysMenuClickList(SysMenuClick sysMenuClick); + + /** + * 新增菜单点击计数 + * + * @param sysMenuClick 菜单点击计数 + * @return 结果 + */ + public int insertSysMenuClick(SysMenuClick sysMenuClick); + + /** + * 修改菜单点击计数 + * + * @param sysMenuClick 菜单点击计数 + * @return 结果 + */ + public int updateSysMenuClick(SysMenuClick sysMenuClick); + + /** + * 批量删除菜单点击计数 + * + * @param ids 需要删除的菜单点击计数主键集合 + * @return 结果 + */ + public int deleteSysMenuClickByIds(Long[] ids); + + /** + * 删除菜单点击计数信息 + * + * @param id 菜单点击计数主键 + * @return 结果 + */ + public int deleteSysMenuClickById(Long id); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AllInterfaceNameServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AllInterfaceNameServiceImpl.java index d0867ab..6516172 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AllInterfaceNameServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AllInterfaceNameServiceImpl.java @@ -1,13 +1,20 @@ package com.ruoyi.system.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.system.api.RemoteRocketMqService; +import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote; import com.ruoyi.system.domain.AllInterfaceName; +import com.ruoyi.system.domain.RmEpsTopologyManagement; import com.ruoyi.system.mapper.AllInterfaceNameMapper; import com.ruoyi.system.service.IAllInterfaceNameService; +import com.ruoyi.system.service.IRmEpsTopologyManagementService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.stream.Collectors; /** * 所有接口名称Service业务层处理 @@ -20,6 +27,10 @@ public class AllInterfaceNameServiceImpl implements IAllInterfaceNameService { @Autowired private AllInterfaceNameMapper allInterfaceNameMapper; + @Autowired + private RemoteRocketMqService remoteRocketMqService; + @Autowired + private IRmEpsTopologyManagementService rmEpsTopologyManagementService; /** * 查询所有接口名称 @@ -35,14 +46,87 @@ public class AllInterfaceNameServiceImpl implements IAllInterfaceNameService /** * 查询所有接口名称列表 - * + * * @param allInterfaceName 所有接口名称 * @return 所有接口名称 */ @Override public List selectAllInterfaceNameList(AllInterfaceName allInterfaceName) { - return allInterfaceNameMapper.selectAllInterfaceNameList(allInterfaceName); + List allInterfaceNameList = allInterfaceNameMapper.selectAllInterfaceNameList(allInterfaceName); + + if (allInterfaceNameList == null || allInterfaceNameList.isEmpty()) { + return allInterfaceNameList; + } + + // 使用自定义排序 + return allInterfaceNameList.stream() + .sorted((a, b) -> { + boolean aMatched = isInterfaceMatched(a); + boolean bMatched = isInterfaceMatched(b); + + // 匹配的排在前面(返回-1),不匹配的排在后面(返回1) + if (aMatched && !bMatched) { + return -1; + } else if (!aMatched && bMatched) { + return 1; + } else { + return 0; // 都匹配或都不匹配,保持原有顺序 + } + }) + .collect(Collectors.toList()); + } + + /** + * 辅助方法,匹配的项排序在前 + * @param interfaceName + * @return + */ + private boolean isInterfaceMatched(AllInterfaceName interfaceName) { + String resourceType = interfaceName.getResourceType(); + + if ("1".equals(resourceType)) { + // 服务器类型匹配逻辑 + RmNetworkInterfaceRemote rmNetworkInterfaceRemote = new RmNetworkInterfaceRemote(); + rmNetworkInterfaceRemote.setClientId(interfaceName.getClientId()); + R> netWorkListR = remoteRocketMqService.getNetworkInterfaceList(rmNetworkInterfaceRemote, SecurityConstants.INNER); + + if (netWorkListR == null || netWorkListR.getData() == null) { + return false; + } + + List interfaceRemoteList = netWorkListR.getData(); + return interfaceRemoteList.stream() + .filter(info -> "1".equals(info.getBindIp()) || "3".equals(info.getBindIp())) + .anyMatch(internet -> + interfaceName.getServerIp() != null && internet.getMacAddress() != null && + interfaceName.getServerIp().equalsIgnoreCase(internet.getMacAddress()) + ); + + } else if ("2".equals(resourceType)) { + // 交换机类型匹配逻辑 + RmEpsTopologyManagement query = new RmEpsTopologyManagement(); + query.setClientId(interfaceName.getClientId()); + List topologyManagementList = rmEpsTopologyManagementService.selectRmEpsTopologyManagementList(query); + + if (topologyManagementList == null || topologyManagementList.isEmpty()) { + return false; + } + boolean isMatched = topologyManagementList.stream() + .anyMatch(topologyManagement -> + interfaceName.getInterfaceName() != null && topologyManagement.getInterfaceName() != null && + interfaceName.getInterfaceName().equalsIgnoreCase(topologyManagement.getInterfaceName()) + ); + + // 如果匹配成功,设置 expand 属性为 true + if (isMatched) { + interfaceName.setExpand(true); + } + + return isMatched; + } + + return false; } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsInitialTrafficDataServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsInitialTrafficDataServiceImpl.java index 69d1aaa..5802200 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsInitialTrafficDataServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsInitialTrafficDataServiceImpl.java @@ -7,6 +7,7 @@ import com.ruoyi.system.domain.*; import com.ruoyi.system.enums.ReviewEnum; import com.ruoyi.system.mapper.*; import com.ruoyi.system.service.EpsInitialTrafficDataService; +import com.ruoyi.system.service.IRmMonitorConfigService; import com.ruoyi.system.util.CalculateUtil; import com.ruoyi.system.util.DateUtil; import com.ruoyi.system.util.TableRouterUtil; @@ -51,6 +52,8 @@ public class EpsInitialTrafficDataServiceImpl implements EpsInitialTrafficDataSe private RmEpsTopologyManagementMapper rmEpsTopologyManagementMapper; @Autowired private RmRegistrationMachineMapper rmRegistrationMachineMapper; + @Autowired + private IRmMonitorConfigService rmMonitorConfigService; @Override public void createNextMonthTables() { LocalDate nextMonth = LocalDate.now().plusMonths(1); @@ -584,6 +587,56 @@ public class EpsInitialTrafficDataServiceImpl implements EpsInitialTrafficDataSe } return resultList.isEmpty() ? new ArrayList<>() : resultList; } + + /** + * 监控看板-详情视图 出入流量 + * @param queryParam + * @return + */ + @Override + public Map getServerTrafficByMonitorView(EpsInitialTrafficData queryParam) { + // 查询概览配置内容 + RmMonitorConfig rmMonitorConfig = rmMonitorConfigService.selectRmMonitorConfigById(queryParam.getMonitorId()); + if(rmMonitorConfig != null){ + // 拿到开始时间 + String startTime = rmMonitorConfig.getMonitorStartTime(); + // 拿到部署设备 + String deoloyDevice = rmMonitorConfig.getDeployDevice(); + String clientIds = deoloyDevice.replace("\n",","); + queryParam.setStartTime(startTime); + queryParam.setClientIds(clientIds); + List list = getTrafficListByClientIds(queryParam); + if(list == null){ + list = new ArrayList<>(); + } + try { + String unit = SpeedUtils.calculateUnit(list, "inSpeed", "outSpeed"); + if(queryParam.getUnit() != null){ + unit = queryParam.getUnit(); + } + BigDecimal divisor = SpeedUtils.getDivisor(unit); + Map> extractors = new LinkedHashMap<>(); + + extractors.put("netOutSpeedData", info -> + info != null && info.getOutSpeed() != null ? + new BigDecimal(info.getOutSpeed()).divide(divisor, 2, RoundingMode.HALF_UP) : + 0); + extractors.put("netMachineFlowData", info -> + info != null && info.getMachineFlow() != null ? + new BigDecimal(info.getMachineFlow()).divide(divisor, 2, RoundingMode.HALF_UP) : + 0); + Map resultMap = EchartsDataUtils.buildEchartsDataAutoPadding( + list, EpsInitialTrafficData::getCreateTime, extractors, queryParam.getStartTime(), queryParam.getEndTime() + ); + resultMap.put("unit", unit); + return resultMap; + } catch (Exception e){ + e.printStackTrace(); + } + } + return null; + } + /** * 获取服务器网口网络速率 * @param epsInitialTrafficData diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsNodeBandwidthServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsNodeBandwidthServiceImpl.java index 4c75923..b62a8d1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsNodeBandwidthServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsNodeBandwidthServiceImpl.java @@ -5,13 +5,13 @@ import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.web.page.PageDomain; import com.ruoyi.system.domain.EpsInitialTrafficData; import com.ruoyi.system.domain.EpsNodeBandwidth; +import com.ruoyi.system.domain.RmMonitorConfig; import com.ruoyi.system.domain.RmSwitchManagement; -import com.ruoyi.system.mapper.EpsMethodChangeRecordMapper; import com.ruoyi.system.mapper.EpsNodeBandwidthMapper; -import com.ruoyi.system.mapper.EpsServerRevenueConfigMapper; import com.ruoyi.system.mapper.RmSwitchManagementMapper; import com.ruoyi.system.service.EpsInitialTrafficDataService; import com.ruoyi.system.service.IEpsNodeBandwidthService; +import com.ruoyi.system.service.IRmMonitorConfigService; import com.ruoyi.system.util.EchartsDataConverter; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -44,11 +44,9 @@ public class EpsNodeBandwidthServiceImpl implements IEpsNodeBandwidthService @Autowired private EpsInitialTrafficDataService epsInitialTrafficDataService; @Autowired - private EpsServerRevenueConfigMapper epsServerRevenueConfigMapper; - @Autowired - private EpsMethodChangeRecordMapper epsMethodChangeRecordMapper; - @Autowired private RmSwitchManagementMapper rmSwitchManagementMapper; + @Autowired + private IRmMonitorConfigService rmMonitorConfigService; /** * 查询节点带宽信息 @@ -329,6 +327,40 @@ public class EpsNodeBandwidthServiceImpl implements IEpsNodeBandwidthService } return mapList; } + /** + * 监控看板-详情视图 95值列表 + * @param epsNodeBandwidth + * @return + */ + @Override + public List getListByMonitorView(EpsNodeBandwidth epsNodeBandwidth) { + // 查询概览配置内容 + RmMonitorConfig rmMonitorConfig = rmMonitorConfigService.selectRmMonitorConfigById(epsNodeBandwidth.getMonitorId()); + if(rmMonitorConfig != null){ + // 拿到部署设备 + String deoloyDevice = rmMonitorConfig.getDeployDevice(); + if(deoloyDevice == null){ + return new ArrayList<>(); + } + String clientIds = deoloyDevice.replace("\n",","); + epsNodeBandwidth.setClientIds(clientIds); + if(epsNodeBandwidth.getCalculationMode() == null){ + // 计算方式 默认1000 + epsNodeBandwidth.setCalculationMode("1000"); + } + if(epsNodeBandwidth.getResourceType() == null){ + // 资源类型 默认服务器 + epsNodeBandwidth.setResourceType("1"); + } + if(epsNodeBandwidth.getBandwidthType() == null){ + // 默认日95值 + epsNodeBandwidth.setBandwidthType("1"); + } + List list = epsNodeBandwidthMapper.getListByMonitorView(epsNodeBandwidth); + return list; + } + return new ArrayList<>(); + } // 动态生成复合键 private String generateCompositeKey(EpsNodeBandwidth item) { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InitialSwitchInfoDetailsServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InitialSwitchInfoDetailsServiceImpl.java index 951e607..e2edcaa 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InitialSwitchInfoDetailsServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InitialSwitchInfoDetailsServiceImpl.java @@ -5,10 +5,12 @@ import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.EchartsDataUtils; import com.ruoyi.common.core.utils.SpeedUtils; import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.web.page.PageDomain; import com.ruoyi.system.domain.*; import com.ruoyi.system.enums.ReviewEnum; import com.ruoyi.system.mapper.*; import com.ruoyi.system.service.IInitialSwitchInfoDetailsService; +import com.ruoyi.system.service.IRmMonitorConfigService; import com.ruoyi.system.util.CalculateUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; @@ -28,6 +30,8 @@ import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; +import static com.ruoyi.common.core.utils.PageUtils.startPage; + /** * 交换机监控信息Service业务层处理 * @@ -56,6 +60,8 @@ public class InitialSwitchInfoDetailsServiceImpl implements IInitialSwitchInfoDe private RmSwitchInterfaceInfoMapper rmSwitchInterfaceInfoMapper; @Autowired private EpsBusinessDeployMapper epsBusinessDeployMapper; + @Autowired + private IRmMonitorConfigService rmMonitorConfigService; private static final String DATE_TIME_FORMATTER = "yyyy-MM-dd HH:mm:ss"; @@ -918,6 +924,101 @@ public class InitialSwitchInfoDetailsServiceImpl implements IInitialSwitchInfoDe } return resultList.isEmpty() ? new ArrayList<>() : resultList; } + /** + * 监控看板-详情视图 出入流量 + * @param initialSwitchInfoDetails + * @return + */ + @Override + public Map getMonitorViewDetails(InitialSwitchInfoDetails initialSwitchInfoDetails) { + // 查询概览配置内容 + RmMonitorConfig rmMonitorConfig = rmMonitorConfigService.selectRmMonitorConfigById(initialSwitchInfoDetails.getMonitorId()); + if(rmMonitorConfig != null){ + // 拿到开始时间 + String startTime = rmMonitorConfig.getMonitorStartTime(); + // 拿到结束时间 + String endTime = initialSwitchInfoDetails.getEndTime(); + // 拿到选中的交换机 + String resources = rmMonitorConfig.getDeployDevice(); + String clientIds = Arrays.stream(resources.split(",")) + .map(msg -> msg.split(";")) + .filter(resource -> resource.length >= 3) + .map(resource -> resource[1]) + .collect(Collectors.joining(",")); + String interfaceNames = Arrays.stream(resources.split(",")) + .map(msg -> msg.split(";")) + .filter(resource -> resource.length >= 3) + .map(resource -> resource[2]) + .collect(Collectors.joining(",")); + // 查询流量信息 + InitialSwitchInfoDetails queryParam = new InitialSwitchInfoDetails(); + queryParam.setStartTime(startTime); + queryParam.setEndTime(endTime); + queryParam.setClientIds(clientIds); + queryParam.setInterfaceNames(interfaceNames); + List list = initialSwitchInfoDetailsMapper.sumSwitchTrafficByclientIds(queryParam); + try { + String unit = SpeedUtils.calculateUnit(list, "inSpeed", "outSpeed"); + if(initialSwitchInfoDetails.getUnit() != null){ + unit = initialSwitchInfoDetails.getUnit(); + } + BigDecimal divisor = SpeedUtils.getDivisor(unit); + Map> extractors = new LinkedHashMap<>(); + extractors.put("netInSpeedData", info -> + info != null && info.getInSpeed() != null ? + info.getInSpeed().divide(divisor, 2, RoundingMode.HALF_UP) : + 0); + + extractors.put("netOutSpeedData", info -> + info != null && info.getOutSpeed() != null ? + info.getOutSpeed().divide(divisor, 2, RoundingMode.HALF_UP) : + 0); + Map resultMap = EchartsDataUtils.buildEchartsDataAutoPadding( + list, InitialSwitchInfoDetails::getCreateTime, extractors, + queryParam.getStartTime(), queryParam.getEndTime()); + resultMap.put("unit", unit); + return resultMap; + }catch (Exception e){ + log.error(e.getMessage()); + } + } + return null; + } + /** + * 监控看板-详情视图 出入流量列表 + * @param initialSwitchInfoDetails + * @return + */ + @Override + public List geSwitchListByMonitorView(InitialSwitchInfoDetails initialSwitchInfoDetails) { + // 查询概览配置内容 + RmMonitorConfig rmMonitorConfig = rmMonitorConfigService.selectRmMonitorConfigById(initialSwitchInfoDetails.getMonitorId()); + if(rmMonitorConfig != null){ + // 拿到选中的交换机 + String resources = rmMonitorConfig.getDeployDevice(); + String clientIds = Arrays.stream(resources.split(",")) + .map(msg -> msg.split(";")) + .filter(resource -> resource.length >= 3) + .map(resource -> resource[1]) + .collect(Collectors.joining(",")); + String interfaceNames = Arrays.stream(resources.split(",")) + .map(msg -> msg.split(";")) + .filter(resource -> resource.length >= 3) + .map(resource -> resource[2]) + .collect(Collectors.joining(",")); + // 查询流量信息 + initialSwitchInfoDetails.setClientIds(clientIds); + initialSwitchInfoDetails.setInterfaceNames(interfaceNames); + PageDomain pageDomain = new PageDomain(); + pageDomain.setPageNum(initialSwitchInfoDetails.getPageNum()); + pageDomain.setPageSize(initialSwitchInfoDetails.getPageSize()); + startPage(pageDomain); + List list = initialSwitchInfoDetailsMapper.geSwitchListByMonitorView(initialSwitchInfoDetails); + return list; + } + return new ArrayList<>(); + } + /** * 获取交换机网口网络速率 * @param initialSwitchInfoDetails diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmMonitorConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmMonitorConfigServiceImpl.java new file mode 100644 index 0000000..65af926 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmMonitorConfigServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.system.service.impl; + +import java.util.List; +import com.ruoyi.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.system.mapper.RmMonitorConfigMapper; +import com.ruoyi.system.domain.RmMonitorConfig; +import com.ruoyi.system.service.IRmMonitorConfigService; + +/** + * 监控配置Service业务层处理 + * + * @author gyt + * @date 2025-11-12 + */ +@Service +public class RmMonitorConfigServiceImpl implements IRmMonitorConfigService +{ + @Autowired + private RmMonitorConfigMapper rmMonitorConfigMapper; + + /** + * 查询监控配置 + * + * @param id 监控配置主键 + * @return 监控配置 + */ + @Override + public RmMonitorConfig selectRmMonitorConfigById(Long id) + { + return rmMonitorConfigMapper.selectRmMonitorConfigById(id); + } + + /** + * 查询监控配置列表 + * + * @param rmMonitorConfig 监控配置 + * @return 监控配置 + */ + @Override + public List selectRmMonitorConfigList(RmMonitorConfig rmMonitorConfig) + { + return rmMonitorConfigMapper.selectRmMonitorConfigList(rmMonitorConfig); + } + + /** + * 新增监控配置 + * + * @param rmMonitorConfig 监控配置 + * @return 结果 + */ + @Override + public int insertRmMonitorConfig(RmMonitorConfig rmMonitorConfig) + { + rmMonitorConfig.setCreateTime(DateUtils.getNowDate()); + return rmMonitorConfigMapper.insertRmMonitorConfig(rmMonitorConfig); + } + + /** + * 修改监控配置 + * + * @param rmMonitorConfig 监控配置 + * @return 结果 + */ + @Override + public int updateRmMonitorConfig(RmMonitorConfig rmMonitorConfig) + { + rmMonitorConfig.setUpdateTime(DateUtils.getNowDate()); + return rmMonitorConfigMapper.updateRmMonitorConfig(rmMonitorConfig); + } + + /** + * 批量删除监控配置 + * + * @param ids 需要删除的监控配置主键 + * @return 结果 + */ + @Override + public int deleteRmMonitorConfigByIds(Long[] ids) + { + return rmMonitorConfigMapper.deleteRmMonitorConfigByIds(ids); + } + + /** + * 删除监控配置信息 + * + * @param id 监控配置主键 + * @return 结果 + */ + @Override + public int deleteRmMonitorConfigById(Long id) + { + return rmMonitorConfigMapper.deleteRmMonitorConfigById(id); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuClickServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuClickServiceImpl.java new file mode 100644 index 0000000..c2c3b7c --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuClickServiceImpl.java @@ -0,0 +1,114 @@ +package com.ruoyi.system.service.impl; + +import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.system.domain.SysMenuClick; +import com.ruoyi.system.mapper.SysMenuClickMapper; +import com.ruoyi.system.service.ISysMenuClickService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 菜单点击计数Service业务层处理 + * + * @author gyt + * @date 2025-11-12 + */ +@Service +public class SysMenuClickServiceImpl implements ISysMenuClickService +{ + @Autowired + private SysMenuClickMapper sysMenuClickMapper; + + /** + * 查询菜单点击计数 + * + * @param id 菜单点击计数主键 + * @return 菜单点击计数 + */ + @Override + public SysMenuClick selectSysMenuClickById(Long id) + { + return sysMenuClickMapper.selectSysMenuClickById(id); + } + + /** + * 查询菜单点击计数列表 + * + * @param sysMenuClick 菜单点击计数 + * @return 菜单点击计数 + */ + @Override + public List selectSysMenuClickList(SysMenuClick sysMenuClick) + { + return sysMenuClickMapper.selectSysMenuClickList(sysMenuClick); + } + + /** + * 新增菜单点击计数 + * + * @param sysMenuClick 菜单点击计数 + * @return 结果 + */ + @Override + public int insertSysMenuClick(SysMenuClick sysMenuClick) + { + // 查询该路由是否存在 + SysMenuClick query = new SysMenuClick(); + query.setPageRoute(sysMenuClick.getPageRoute()); + List menuClickList = sysMenuClickMapper.selectSysMenuClickList(query); + if(menuClickList != null && !menuClickList.isEmpty()){ + SysMenuClick menuClick = menuClickList.get(0); + // 如果存在 计数 + Long count = menuClick.getClickCount() + 1; + SysMenuClick updateData = new SysMenuClick(); + updateData.setId(menuClick.getId()); + updateData.setClickCount(count); + updateData.setLastClickTime(DateUtils.getNowDate()); + sysMenuClickMapper.updateSysMenuClick(updateData); + }else{ + sysMenuClick.setCreateTime(DateUtils.getNowDate()); + sysMenuClick.setLastClickTime(DateUtils.getNowDate()); + sysMenuClickMapper.insertSysMenuClick(sysMenuClick); + } + return 1; + } + + /** + * 修改菜单点击计数 + * + * @param sysMenuClick 菜单点击计数 + * @return 结果 + */ + @Override + public int updateSysMenuClick(SysMenuClick sysMenuClick) + { + sysMenuClick.setUpdateTime(DateUtils.getNowDate()); + return sysMenuClickMapper.updateSysMenuClick(sysMenuClick); + } + + /** + * 批量删除菜单点击计数 + * + * @param ids 需要删除的菜单点击计数主键 + * @return 结果 + */ + @Override + public int deleteSysMenuClickByIds(Long[] ids) + { + return sysMenuClickMapper.deleteSysMenuClickByIds(ids); + } + + /** + * 删除菜单点击计数信息 + * + * @param id 菜单点击计数主键 + * @return 结果 + */ + @Override + public int deleteSysMenuClickById(Long id) + { + return sysMenuClickMapper.deleteSysMenuClickById(id); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/EpsInitialTrafficDataMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/EpsInitialTrafficDataMapper.xml index 93b7eb6..12e77c8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/EpsInitialTrafficDataMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/EpsInitialTrafficDataMapper.xml @@ -273,6 +273,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/InitialSwitchInfoDetailsMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/InitialSwitchInfoDetailsMapper.xml index f34c601..bda75b4 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/InitialSwitchInfoDetailsMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/InitialSwitchInfoDetailsMapper.xml @@ -369,4 +369,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" group by create_time ORDER BY max_speed desc + \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmMonitorConfigMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmMonitorConfigMapper.xml new file mode 100644 index 0000000..759afbc --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmMonitorConfigMapper.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + select id, config_name, monitor_start_time, resource_type, deploy_device, create_time, update_time, create_by, update_by from rm_monitor_config + + + + + + + + insert into rm_monitor_config + + config_name, + monitor_start_time, + resource_type, + deploy_device, + create_time, + update_time, + create_by, + update_by, + + + #{configName}, + #{monitorStartTime}, + #{resourceType}, + #{deployDevice}, + #{createTime}, + #{updateTime}, + #{createBy}, + #{updateBy}, + + + + + update rm_monitor_config + + config_name = #{configName}, + monitor_start_time = #{monitorStartTime}, + resource_type = #{resourceType}, + deploy_device = #{deployDevice}, + create_time = #{createTime}, + update_time = #{updateTime}, + create_by = #{createBy}, + update_by = #{updateBy}, + + where id = #{id} + + + + delete from rm_monitor_config where id = #{id} + + + + delete from rm_monitor_config where id in + + #{id} + + + \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuClickMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuClickMapper.xml new file mode 100644 index 0000000..a9b7e83 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuClickMapper.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + select id, page_route, page_name, click_count, last_click_time, create_by, create_time, update_by, update_time, remark from sys_menu_click + + + + + + + + insert into sys_menu_click + + page_route, + page_name, + click_count, + last_click_time, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{pageRoute}, + #{pageName}, + #{clickCount}, + #{lastClickTime}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update sys_menu_click + + page_route = #{pageRoute}, + page_name = #{pageName}, + click_count = #{clickCount}, + last_click_time = #{lastClickTime}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + + delete from sys_menu_click where id = #{id} + + + + delete from sys_menu_click where id in + + #{id} + + + \ No newline at end of file diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmAlarmLogController.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmAlarmLogController.java index f20926d..e3f87df 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmAlarmLogController.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmAlarmLogController.java @@ -1,26 +1,20 @@ package com.ruoyi.rocketmq.controller; -import java.util.List; -import java.io.IOException; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +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.rocketmq.domain.RmAlarmLog; import com.ruoyi.rocketmq.service.IRmAlarmLogService; -import com.ruoyi.common.core.web.controller.BaseController; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.core.utils.poi.ExcelUtil; -import com.ruoyi.common.core.web.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 客户端告警信息Controller @@ -39,10 +33,13 @@ public class RmAlarmLogController extends BaseController * 查询客户端告警信息列表 */ @RequiresPermissions("rocketmq:alarmLog:list") - @GetMapping("/list") - public TableDataInfo list(RmAlarmLog rmAlarmLog) + @PostMapping("/list") + public TableDataInfo list(@RequestBody RmAlarmLog rmAlarmLog) { - startPage(); + PageDomain pageDomain = new PageDomain(); + pageDomain.setPageNum(rmAlarmLog.getPageNum()); + pageDomain.setPageSize(rmAlarmLog.getPageSize()); + startPage(pageDomain); List list = rmAlarmLogService.selectRmAlarmLogList(rmAlarmLog); return getDataTable(list); } @@ -57,6 +54,7 @@ public class RmAlarmLogController extends BaseController { List list = rmAlarmLogService.selectRmAlarmLogList(rmAlarmLog); ExcelUtil util = new ExcelUtil(RmAlarmLog.class); + util.showColumn(rmAlarmLog.getProperties()); util.exportExcel(response, list, "客户端告警信息数据"); } diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmAlarmPushConfigController.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmAlarmPushConfigController.java index f0cde9c..91d9777 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmAlarmPushConfigController.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmAlarmPushConfigController.java @@ -1,26 +1,20 @@ package com.ruoyi.rocketmq.controller; -import java.util.List; -import java.io.IOException; -import javax.servlet.http.HttpServletResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +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.rocketmq.domain.RmAlarmPushConfig; import com.ruoyi.rocketmq.service.IRmAlarmPushConfigService; -import com.ruoyi.common.core.web.controller.BaseController; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.core.utils.poi.ExcelUtil; -import com.ruoyi.common.core.web.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; /** * 告警推送配置Controller @@ -39,10 +33,13 @@ public class RmAlarmPushConfigController extends BaseController * 查询告警推送配置列表 */ @RequiresPermissions("rocketmq:alarmPushConfig:list") - @GetMapping("/list") - public TableDataInfo list(RmAlarmPushConfig rmAlarmPushConfig) + @PostMapping("/list") + public TableDataInfo list(@RequestBody RmAlarmPushConfig rmAlarmPushConfig) { - startPage(); + PageDomain pageDomain = new PageDomain(); + pageDomain.setPageNum(rmAlarmPushConfig.getPageNum()); + pageDomain.setPageSize(rmAlarmPushConfig.getPageSize()); + startPage(pageDomain); List list = rmAlarmPushConfigService.selectRmAlarmPushConfigList(rmAlarmPushConfig); return getDataTable(list); } @@ -57,6 +54,7 @@ public class RmAlarmPushConfigController extends BaseController { List list = rmAlarmPushConfigService.selectRmAlarmPushConfigList(rmAlarmPushConfig); ExcelUtil util = new ExcelUtil(RmAlarmPushConfig.class); + util.showColumn(rmAlarmPushConfig.getProperties()); util.exportExcel(response, list, "告警推送配置数据"); }