From 6e2ca8ac532110b8461fd6a0acde3f7cd1424222 Mon Sep 17 00:00:00 2001 From: gaoyutao Date: Mon, 29 Dec 2025 18:25:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E4=B8=8B=E6=9E=B6=E5=A4=84=E7=90=86=EF=BC=8C=20=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E8=AF=A6=E6=83=85=E5=A2=9E=E5=8A=A0agent?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E7=89=88=E6=9C=AC=E3=80=81cpu=E6=A0=B8?= =?UTF-8?q?=E6=95=B0=E3=80=81=E5=86=85=E5=AD=98=E5=AD=97=E6=AE=B5=E3=80=82?= =?UTF-8?q?=20=E5=BC=80=E5=8F=91pppoe=E4=B8=BB=E8=A1=A8=E5=8F=8A=E5=AD=90?= =?UTF-8?q?=E8=A1=A8CRUD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RmResourceRegistrationController.java | 10 ++ .../system/domain/RmResourceRegistration.java | 10 ++ .../mapper/RmResourceRegistrationMapper.java | 4 + .../IRmResourceRegistrationService.java | 7 + .../RmResourceRegistrationServiceImpl.java | 47 +++--- .../system/RmResourceRegistrationMapper.xml | 22 ++- .../RmPppoeConfigMainController.java | 66 ++++++++ .../RmPppoeConfigSubController.java | 42 +++++ .../rocketmq/domain/InitialCpuInfo.java | 5 +- .../rocketmq/domain/RmPppoeConfigMain.java | 41 +++++ .../rocketmq/domain/RmPppoeConfigSub.java | 56 +++++++ .../rocketmq/domain/vo/PolicyTypeVo.java | 2 + .../tongran/rocketmq/domain/vo/PppoeVo.java | 20 +++ .../domain/vo/RmPppoeConfigSubVo.java | 29 ++++ .../mapper/RmPppoeConfigMainMapper.java | 61 +++++++ .../mapper/RmPppoeConfigSubMapper.java | 76 +++++++++ .../service/IRmPppoeConfigMainService.java | 61 +++++++ .../service/IRmPppoeConfigSubService.java | 61 +++++++ .../impl/RmPppoeConfigMainServiceImpl.java | 155 ++++++++++++++++++ .../impl/RmPppoeConfigSubServiceImpl.java | 96 +++++++++++ .../mapper/rocketmq/InitialCpuInfoMapper.xml | 10 +- .../rocketmq/RmPppoeConfigMainMapper.xml | 95 +++++++++++ .../rocketmq/RmPppoeConfigSubMapper.xml | 119 ++++++++++++++ 23 files changed, 1065 insertions(+), 30 deletions(-) create mode 100644 tongran-rocketmq/src/main/java/com/tongran/rocketmq/controller/RmPppoeConfigMainController.java create mode 100644 tongran-rocketmq/src/main/java/com/tongran/rocketmq/controller/RmPppoeConfigSubController.java create mode 100644 tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmPppoeConfigMain.java create mode 100644 tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmPppoeConfigSub.java create mode 100644 tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/vo/PppoeVo.java create mode 100644 tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/vo/RmPppoeConfigSubVo.java create mode 100644 tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmPppoeConfigMainMapper.java create mode 100644 tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmPppoeConfigSubMapper.java create mode 100644 tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/IRmPppoeConfigMainService.java create mode 100644 tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/IRmPppoeConfigSubService.java create mode 100644 tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmPppoeConfigMainServiceImpl.java create mode 100644 tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmPppoeConfigSubServiceImpl.java create mode 100644 tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigMainMapper.xml create mode 100644 tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigSubMapper.xml diff --git a/tongran-modules/tongran-system/src/main/java/com/tongran/system/controller/RmResourceRegistrationController.java b/tongran-modules/tongran-system/src/main/java/com/tongran/system/controller/RmResourceRegistrationController.java index c15145f..f7afd36 100644 --- a/tongran-modules/tongran-system/src/main/java/com/tongran/system/controller/RmResourceRegistrationController.java +++ b/tongran-modules/tongran-system/src/main/java/com/tongran/system/controller/RmResourceRegistrationController.java @@ -272,4 +272,14 @@ public class RmResourceRegistrationController extends BaseController return toAjax(rmResourceRegistrationService.removeAlarmFlag(rmResourceRegistration)); } + /** + * 下架 + */ + @Log(title = "下架", businessType = BusinessType.UPDATE) + @PostMapping("/removeServer") + public AjaxResult removeServer(@RequestBody RmResourceRegistration rmResourceRegistration) + { + return toAjax(rmResourceRegistrationService.removeServer(rmResourceRegistration.getIds())); + } + } diff --git a/tongran-modules/tongran-system/src/main/java/com/tongran/system/domain/RmResourceRegistration.java b/tongran-modules/tongran-system/src/main/java/com/tongran/system/domain/RmResourceRegistration.java index 6ac23a4..5bed217 100644 --- a/tongran-modules/tongran-system/src/main/java/com/tongran/system/domain/RmResourceRegistration.java +++ b/tongran-modules/tongran-system/src/main/java/com/tongran/system/domain/RmResourceRegistration.java @@ -259,8 +259,12 @@ public class RmResourceRegistration extends BaseEntity private Integer bandwidthResultSort; /** cpu利用率 */ private BigDecimal cpuUtil; + /** cpu核数 */ + private BigDecimal cpuCores; /** 内存使用率 */ private BigDecimal memUtil; + /** 总内存 */ + private Integer memTotalSize; /** 是否告警 */ private boolean alarmFlag; /** 取消告警时间 */ @@ -272,4 +276,10 @@ public class RmResourceRegistration extends BaseEntity private String frpcRemotePort; /** FRPC服务器地址 */ private String frpcServerAddr; + /** 下架标识(0未下架、1下架) */ + private Integer delFlag; + /** agent最新版本号 */ + private String maxAgentVersion; + /** id集合 */ + private Long[] ids; } \ No newline at end of file diff --git a/tongran-modules/tongran-system/src/main/java/com/tongran/system/mapper/RmResourceRegistrationMapper.java b/tongran-modules/tongran-system/src/main/java/com/tongran/system/mapper/RmResourceRegistrationMapper.java index 23a037d..1b63b6b 100644 --- a/tongran-modules/tongran-system/src/main/java/com/tongran/system/mapper/RmResourceRegistrationMapper.java +++ b/tongran-modules/tongran-system/src/main/java/com/tongran/system/mapper/RmResourceRegistrationMapper.java @@ -128,4 +128,8 @@ public interface RmResourceRegistrationMapper List getMemUtil(@Param("clientIdsStr") String clientIdsStr); int removeAlarmFlag(RmResourceRegistration rmResourceRegistration); + + int removeServer(Long[] ids); + + RmResourceRegistration getMaxAgentVersion(); } diff --git a/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/IRmResourceRegistrationService.java b/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/IRmResourceRegistrationService.java index c92ff48..e0ede51 100644 --- a/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/IRmResourceRegistrationService.java +++ b/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/IRmResourceRegistrationService.java @@ -146,4 +146,11 @@ public interface IRmResourceRegistrationService * @return */ int removeAlarmFlag(RmResourceRegistration rmResourceRegistration); + + /** + * 下架 + * @param ids + * @return + */ + int removeServer(Long[] ids); } diff --git a/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/RmResourceRegistrationServiceImpl.java b/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/RmResourceRegistrationServiceImpl.java index 5796f6a..f1a80ad 100644 --- a/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/RmResourceRegistrationServiceImpl.java +++ b/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/RmResourceRegistrationServiceImpl.java @@ -513,17 +513,6 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio } } - /** - * 回退到单条查询 - */ - private void fallbackSetNetworkInfo(List pageList) { - log.warn("批量查询失败,回退到单条查询"); - for (RmResourceRegistration registration : pageList) { - if (registration.getClientId() != null) { - setNetWorkMsg(registration); - } - } - } /** * 网卡信息赋值 @@ -535,11 +524,18 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio List cpuUtilList = rmResourceRegistrationMapper.getCpuUtil(clientId); // 根据clientId查询mem利用率 List memUtilList = rmResourceRegistrationMapper.getMemUtil(clientId); + // 查询agent最新版本 + RmResourceRegistration rmResourceRegistration = rmResourceRegistrationMapper.getMaxAgentVersion(); if(cpuUtilList != null && !cpuUtilList.isEmpty()){ registration.setCpuUtil(cpuUtilList.get(0).getCpuUtil()); + registration.setCpuCores(cpuUtilList.get(0).getCpuCores()); } if(memUtilList != null && !memUtilList.isEmpty()){ registration.setMemUtil(memUtilList.get(0).getMemUtil()); + registration.setMemTotalSize(memUtilList.get(0).getMemTotalSize()); + } + if(rmResourceRegistration != null){ + registration.setMaxAgentVersion(rmResourceRegistration.getMaxAgentVersion()); } // 根据clientId查询网卡信息 RmNetworkInterfaceRemote queryParam = new RmNetworkInterfaceRemote(); @@ -1079,17 +1075,18 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio network.setId(Long.parseLong(map.get("id").toString())); network.setBindIp(map.get("status").toString()); remoteRocketMqService.bindPublicIp(network, SecurityConstants.INNER); - - // 添加变更记录 - EpsMethodChangeRecord record = new EpsMethodChangeRecord(); - record.setClientId(clientId); - record.setTrafficPort(map.get("interfaceName").toString()); - record.setCreateTime(now); - record.setUpdateTime(now); - record.setUpdateBy(username); - record.setCreatBy(username); - record.setChangeContent("流量网口设置为" + map.get("interfaceName")); - epsMethodChangeRecordMapper.insertEpsMethodChangeRecord(record); + if("1".equals(map.get("status").toString()) || "3".equals(map.get("status").toString())){ + // 添加变更记录 + EpsMethodChangeRecord record = new EpsMethodChangeRecord(); + record.setClientId(clientId); + record.setTrafficPort(map.get("interfaceName").toString()); + record.setCreateTime(now); + record.setUpdateTime(now); + record.setUpdateBy(username); + record.setCreatBy(username); + record.setChangeContent("流量网口设置为" + map.get("interfaceName")); + epsMethodChangeRecordMapper.insertEpsMethodChangeRecord(record); + } }); // 2. 更新注册状态 @@ -1255,5 +1252,9 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio int rows = rmResourceRegistrationMapper.removeAlarmFlag(rmResourceRegistration); return 1; } - + @Override + public int removeServer(Long[] ids) + { + return rmResourceRegistrationMapper.removeServer(ids); + } } diff --git a/tongran-modules/tongran-system/src/main/resources/mapper/system/RmResourceRegistrationMapper.xml b/tongran-modules/tongran-system/src/main/resources/mapper/system/RmResourceRegistrationMapper.xml index afd242f..42ef7a8 100644 --- a/tongran-modules/tongran-system/src/main/resources/mapper/system/RmResourceRegistrationMapper.xml +++ b/tongran-modules/tongran-system/src/main/resources/mapper/system/RmResourceRegistrationMapper.xml @@ -37,6 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT d.client_id as clientId, + d.cores as cpuCores, d.uti as cpuUtil FROM initial_cpu_info d INNER JOIN ( @@ -311,16 +314,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND d.create_time = latest.latest_time update rm_resource_registration set del_alarm_time = now() where id =#{id} + + update rm_resource_registration set del_flag=1 where id in + + #{id} + + + \ No newline at end of file diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/controller/RmPppoeConfigMainController.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/controller/RmPppoeConfigMainController.java new file mode 100644 index 0000000..df97120 --- /dev/null +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/controller/RmPppoeConfigMainController.java @@ -0,0 +1,66 @@ +package com.tongran.rocketmq.controller; + +import com.tongran.common.core.web.controller.BaseController; +import com.tongran.common.core.web.domain.AjaxResult; +import com.tongran.common.log.annotation.Log; +import com.tongran.common.log.enums.BusinessType; +import com.tongran.common.security.annotation.RequiresPermissions; +import com.tongran.rocketmq.domain.RmPppoeConfigMain; +import com.tongran.rocketmq.service.IRmPppoeConfigMainService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * PPPoE配置主表Controller + * + * @author tongran + * @date 2025-12-29 + */ +@RestController +@RequestMapping("/rmPppoeConfigMain") +@RequiresPermissions("system:registration") +public class RmPppoeConfigMainController extends BaseController +{ + @Autowired + private IRmPppoeConfigMainService rmPppoeConfigMainService; + + + /** + * 获取PPPoE配置主表详细信息 + */ + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(rmPppoeConfigMainService.selectRmPppoeConfigMainById(id)); + } + + /** + * 新增PPPoE配置主表 + */ + @Log(title = "PPPoE配置主表", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody RmPppoeConfigMain rmPppoeConfigMain) + { + return toAjax(rmPppoeConfigMainService.insertRmPppoeConfigMain(rmPppoeConfigMain)); + } + + /** + * 修改PPPoE配置主表 + */ + @Log(title = "PPPoE配置主表", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody RmPppoeConfigMain rmPppoeConfigMain) + { + return toAjax(rmPppoeConfigMainService.updateRmPppoeConfigMain(rmPppoeConfigMain)); + } + + /** + * 删除PPPoE配置主表 + */ + @Log(title = "PPPoE配置主表", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(rmPppoeConfigMainService.deleteRmPppoeConfigMainByIds(ids)); + } +} diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/controller/RmPppoeConfigSubController.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/controller/RmPppoeConfigSubController.java new file mode 100644 index 0000000..8f6a2c1 --- /dev/null +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/controller/RmPppoeConfigSubController.java @@ -0,0 +1,42 @@ +package com.tongran.rocketmq.controller; + +import com.tongran.common.core.web.controller.BaseController; +import com.tongran.common.core.web.domain.AjaxResult; +import com.tongran.common.security.annotation.RequiresPermissions; +import com.tongran.rocketmq.domain.RmPppoeConfigSub; +import com.tongran.rocketmq.service.IRmPppoeConfigSubService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * PPPoE配置子表Controller + * + * @author tongran + * @date 2025-12-29 + */ +@RestController +@RequestMapping("/rmPppoeConfigSub") +@RequiresPermissions("system:registration") +public class RmPppoeConfigSubController extends BaseController +{ + @Autowired + private IRmPppoeConfigSubService rmPppoeConfigSubService; + + /** + * 查询PPPoE配置子表列表 + */ + @PostMapping("/list") + public AjaxResult list(@RequestBody RmPppoeConfigSub rmPppoeConfigSub) + { + List list = rmPppoeConfigSubService.selectRmPppoeConfigSubList(rmPppoeConfigSub); + return success(list); + } + + + +} diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/InitialCpuInfo.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/InitialCpuInfo.java index 96c4734..6b4cb7b 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/InitialCpuInfo.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/InitialCpuInfo.java @@ -42,9 +42,12 @@ public class InitialCpuInfo extends BaseEntity @Excel(name = "CPU使用率(%)") private Long uti; - /** CPU数量(核数) */ + /** CPU数量 */ @Excel(name = "CPU数量") private Long num; + /** CPU核数 */ + @Excel(name = "CPU核数") + private Long cores; /** CPU正常运行时间(秒) */ @Excel(name = "CPU正常运行时间") diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmPppoeConfigMain.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmPppoeConfigMain.java new file mode 100644 index 0000000..d2cd212 --- /dev/null +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmPppoeConfigMain.java @@ -0,0 +1,41 @@ +package com.tongran.rocketmq.domain; + +import com.tongran.common.core.annotation.Excel; +import com.tongran.common.core.web.domain.BaseEntity; +import lombok.Data; + +import java.util.List; + +/** + * PPPoE配置主表对象 rm_pppoe_config_main + * + * @author tongran + * @date 2025-12-29 + */ +@Data +public class RmPppoeConfigMain extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private Long id; + + /** 客户端ID */ + @Excel(name = "客户端ID") + private String clientId; + + /** 是否启用PPPoE(0-否,1-是) */ + @Excel(name = "是否启用PPPoE(0-否,1-是)") + private Long pppoeEnabled; + + /** PPPoE配置方式 */ + @Excel(name = "PPPoE配置方式") + private String pppoeConfigMode; + + /** PPPoE网卡名称 */ + @Excel(name = "PPPoE网卡名称") + private String pppoeInterface; + /** pppoe子表集合 */ + private List subList; + +} diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmPppoeConfigSub.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmPppoeConfigSub.java new file mode 100644 index 0000000..ed94240 --- /dev/null +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmPppoeConfigSub.java @@ -0,0 +1,56 @@ +package com.tongran.rocketmq.domain; + +import com.tongran.common.core.annotation.Excel; +import com.tongran.common.core.web.domain.BaseEntity; +import com.tongran.rocketmq.domain.vo.RmPppoeConfigSubVo; +import lombok.Data; + +/** + * PPPoE配置子表对象 rm_pppoe_config_sub + * + * @author tongran + * @date 2025-12-29 + */ +@Data +public class RmPppoeConfigSub extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private Long id; + + /** 主表ID */ + @Excel(name = "主表ID") + private Long mainId; + + /** 序号 */ + @Excel(name = "序号") + private Long serialNumber; + + /** VLANID */ + @Excel(name = "VLANID") + private Long vlanId; + + /** IPv4地址 */ + @Excel(name = "IPv4地址") + private String ipv4Address; + + /** IPv4掩码位数 */ + @Excel(name = "IPv4掩码位数") + private Long ipv4MaskBits; + + /** IPv4网关 */ + @Excel(name = "IPv4网关") + private String ipv4Gateway; + + public RmPppoeConfigSubVo toVo() { + RmPppoeConfigSubVo vo = new RmPppoeConfigSubVo(); + vo.setSerialNumber(this.serialNumber); + vo.setVlanId(this.vlanId); + vo.setIpv4Address(this.ipv4Address); + vo.setIpv4MaskBits(this.ipv4MaskBits); + vo.setIpv4Gateway(this.ipv4Gateway); + return vo; + } + +} diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/vo/PolicyTypeVo.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/vo/PolicyTypeVo.java index 0e28bad..dfe5047 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/vo/PolicyTypeVo.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/vo/PolicyTypeVo.java @@ -19,6 +19,8 @@ public class PolicyTypeVo { private String netName; /** frp配置信息 */ private String frpMsg; + /** pppoe配置信息 */ + private String pppoeConfig; /** 时间戳 */ private Long timestamp = Instant.now().getEpochSecond(); } diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/vo/PppoeVo.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/vo/PppoeVo.java new file mode 100644 index 0000000..c2ff636 --- /dev/null +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/vo/PppoeVo.java @@ -0,0 +1,20 @@ +package com.tongran.rocketmq.domain.vo; + +import lombok.Data; + +import java.util.List; + +@Data +public class PppoeVo { + + /** 是否启用PPPoE(0-否,1-是) */ + private Long pppoeEnabled; + + /** PPPoE配置方式 */ + private String pppoeConfigMode; + + /** PPPoE网卡名称 */ + private String pppoeInterface; + /** pppoe子表集合 */ + private List subList; +} diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/vo/RmPppoeConfigSubVo.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/vo/RmPppoeConfigSubVo.java new file mode 100644 index 0000000..b8cd90f --- /dev/null +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/vo/RmPppoeConfigSubVo.java @@ -0,0 +1,29 @@ +package com.tongran.rocketmq.domain.vo; + +import lombok.Data; + +/** + * PPPoE配置子表对象 rm_pppoe_config_sub + * + * @author tongran + * @date 2025-12-29 + */ +@Data +public class RmPppoeConfigSubVo +{ + + /** 序号 */ + private Long serialNumber; + + /** VLANID */ + private Long vlanId; + + /** IPv4地址 */ + private String ipv4Address; + + /** IPv4掩码位数 */ + private Long ipv4MaskBits; + + /** IPv4网关 */ + private String ipv4Gateway; +} diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmPppoeConfigMainMapper.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmPppoeConfigMainMapper.java new file mode 100644 index 0000000..ff9d42e --- /dev/null +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmPppoeConfigMainMapper.java @@ -0,0 +1,61 @@ +package com.tongran.rocketmq.mapper; + +import java.util.List; +import com.tongran.rocketmq.domain.RmPppoeConfigMain; + +/** + * PPPoE配置主表Mapper接口 + * + * @author tongran + * @date 2025-12-29 + */ +public interface RmPppoeConfigMainMapper +{ + /** + * 查询PPPoE配置主表 + * + * @param id PPPoE配置主表主键 + * @return PPPoE配置主表 + */ + public RmPppoeConfigMain selectRmPppoeConfigMainById(Long id); + + /** + * 查询PPPoE配置主表列表 + * + * @param rmPppoeConfigMain PPPoE配置主表 + * @return PPPoE配置主表集合 + */ + public List selectRmPppoeConfigMainList(RmPppoeConfigMain rmPppoeConfigMain); + + /** + * 新增PPPoE配置主表 + * + * @param rmPppoeConfigMain PPPoE配置主表 + * @return 结果 + */ + public int insertRmPppoeConfigMain(RmPppoeConfigMain rmPppoeConfigMain); + + /** + * 修改PPPoE配置主表 + * + * @param rmPppoeConfigMain PPPoE配置主表 + * @return 结果 + */ + public int updateRmPppoeConfigMain(RmPppoeConfigMain rmPppoeConfigMain); + + /** + * 删除PPPoE配置主表 + * + * @param id PPPoE配置主表主键 + * @return 结果 + */ + public int deleteRmPppoeConfigMainById(Long id); + + /** + * 批量删除PPPoE配置主表 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRmPppoeConfigMainByIds(Long[] ids); +} diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmPppoeConfigSubMapper.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmPppoeConfigSubMapper.java new file mode 100644 index 0000000..f1a4f4f --- /dev/null +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmPppoeConfigSubMapper.java @@ -0,0 +1,76 @@ +package com.tongran.rocketmq.mapper; + +import com.tongran.rocketmq.domain.RmPppoeConfigSub; + +import java.util.List; + +/** + * PPPoE配置子表Mapper接口 + * + * @author tongran + * @date 2025-12-29 + */ +public interface RmPppoeConfigSubMapper +{ + /** + * 查询PPPoE配置子表 + * + * @param id PPPoE配置子表主键 + * @return PPPoE配置子表 + */ + public RmPppoeConfigSub selectRmPppoeConfigSubById(Long id); + + /** + * 查询PPPoE配置子表列表 + * + * @param rmPppoeConfigSub PPPoE配置子表 + * @return PPPoE配置子表集合 + */ + public List selectRmPppoeConfigSubList(RmPppoeConfigSub rmPppoeConfigSub); + + /** + * 新增PPPoE配置子表 + * + * @param rmPppoeConfigSub PPPoE配置子表 + * @return 结果 + */ + public int insertRmPppoeConfigSub(RmPppoeConfigSub rmPppoeConfigSub); + + /** + * 修改PPPoE配置子表 + * + * @param rmPppoeConfigSub PPPoE配置子表 + * @return 结果 + */ + public int updateRmPppoeConfigSub(RmPppoeConfigSub rmPppoeConfigSub); + + /** + * 删除PPPoE配置子表 + * + * @param id PPPoE配置子表主键 + * @return 结果 + */ + public int deleteRmPppoeConfigSubById(Long id); + + /** + * 批量删除PPPoE配置子表 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRmPppoeConfigSubByIds(Long[] ids); + + /** + * 批量新增子表信息 + * @param subList + * @return + */ + int batchInsertRmPppoeConfigSub(List subList); + + /** + * 根据主表id删除子表信息 + * @param mainId + * @return + */ + int deleteRmPppoeConfigSubByMainId(Long mainId); +} diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/IRmPppoeConfigMainService.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/IRmPppoeConfigMainService.java new file mode 100644 index 0000000..87e16b9 --- /dev/null +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/IRmPppoeConfigMainService.java @@ -0,0 +1,61 @@ +package com.tongran.rocketmq.service; + +import java.util.List; +import com.tongran.rocketmq.domain.RmPppoeConfigMain; + +/** + * PPPoE配置主表Service接口 + * + * @author tongran + * @date 2025-12-29 + */ +public interface IRmPppoeConfigMainService +{ + /** + * 查询PPPoE配置主表 + * + * @param id PPPoE配置主表主键 + * @return PPPoE配置主表 + */ + public RmPppoeConfigMain selectRmPppoeConfigMainById(Long id); + + /** + * 查询PPPoE配置主表列表 + * + * @param rmPppoeConfigMain PPPoE配置主表 + * @return PPPoE配置主表集合 + */ + public List selectRmPppoeConfigMainList(RmPppoeConfigMain rmPppoeConfigMain); + + /** + * 新增PPPoE配置主表 + * + * @param rmPppoeConfigMain PPPoE配置主表 + * @return 结果 + */ + public int insertRmPppoeConfigMain(RmPppoeConfigMain rmPppoeConfigMain); + + /** + * 修改PPPoE配置主表 + * + * @param rmPppoeConfigMain PPPoE配置主表 + * @return 结果 + */ + public int updateRmPppoeConfigMain(RmPppoeConfigMain rmPppoeConfigMain); + + /** + * 批量删除PPPoE配置主表 + * + * @param ids 需要删除的PPPoE配置主表主键集合 + * @return 结果 + */ + public int deleteRmPppoeConfigMainByIds(Long[] ids); + + /** + * 删除PPPoE配置主表信息 + * + * @param id PPPoE配置主表主键 + * @return 结果 + */ + public int deleteRmPppoeConfigMainById(Long id); +} diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/IRmPppoeConfigSubService.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/IRmPppoeConfigSubService.java new file mode 100644 index 0000000..385e414 --- /dev/null +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/IRmPppoeConfigSubService.java @@ -0,0 +1,61 @@ +package com.tongran.rocketmq.service; + +import java.util.List; +import com.tongran.rocketmq.domain.RmPppoeConfigSub; + +/** + * PPPoE配置子表Service接口 + * + * @author tongran + * @date 2025-12-29 + */ +public interface IRmPppoeConfigSubService +{ + /** + * 查询PPPoE配置子表 + * + * @param id PPPoE配置子表主键 + * @return PPPoE配置子表 + */ + public RmPppoeConfigSub selectRmPppoeConfigSubById(Long id); + + /** + * 查询PPPoE配置子表列表 + * + * @param rmPppoeConfigSub PPPoE配置子表 + * @return PPPoE配置子表集合 + */ + public List selectRmPppoeConfigSubList(RmPppoeConfigSub rmPppoeConfigSub); + + /** + * 新增PPPoE配置子表 + * + * @param rmPppoeConfigSub PPPoE配置子表 + * @return 结果 + */ + public int insertRmPppoeConfigSub(RmPppoeConfigSub rmPppoeConfigSub); + + /** + * 修改PPPoE配置子表 + * + * @param rmPppoeConfigSub PPPoE配置子表 + * @return 结果 + */ + public int updateRmPppoeConfigSub(RmPppoeConfigSub rmPppoeConfigSub); + + /** + * 批量删除PPPoE配置子表 + * + * @param ids 需要删除的PPPoE配置子表主键集合 + * @return 结果 + */ + public int deleteRmPppoeConfigSubByIds(Long[] ids); + + /** + * 删除PPPoE配置子表信息 + * + * @param id PPPoE配置子表主键 + * @return 结果 + */ + public int deleteRmPppoeConfigSubById(Long id); +} diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmPppoeConfigMainServiceImpl.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmPppoeConfigMainServiceImpl.java new file mode 100644 index 0000000..0664e83 --- /dev/null +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmPppoeConfigMainServiceImpl.java @@ -0,0 +1,155 @@ +package com.tongran.rocketmq.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.tongran.common.core.enums.MsgEnum; +import com.tongran.common.core.utils.DateUtils; +import com.tongran.rocketmq.domain.DeviceMessage; +import com.tongran.rocketmq.domain.RmPppoeConfigMain; +import com.tongran.rocketmq.domain.RmPppoeConfigSub; +import com.tongran.rocketmq.domain.vo.PolicyTypeVo; +import com.tongran.rocketmq.domain.vo.PppoeVo; +import com.tongran.rocketmq.domain.vo.RmPppoeConfigSubVo; +import com.tongran.rocketmq.mapper.RmPppoeConfigMainMapper; +import com.tongran.rocketmq.mapper.RmPppoeConfigSubMapper; +import com.tongran.rocketmq.model.ProducerMode; +import com.tongran.rocketmq.producer.MessageProducer; +import com.tongran.rocketmq.service.IRmPppoeConfigMainService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * PPPoE配置主表Service业务层处理 + * + * @author tongran + * @date 2025-12-29 + */ +@Service +public class RmPppoeConfigMainServiceImpl implements IRmPppoeConfigMainService +{ + @Autowired + private RmPppoeConfigMainMapper rmPppoeConfigMainMapper; + @Autowired + private RmPppoeConfigSubMapper rmPppoeConfigSubMapper; + @Autowired + private ProducerMode producerMode; + + /** + * 查询PPPoE配置主表 + * + * @param id PPPoE配置主表主键 + * @return PPPoE配置主表 + */ + @Override + public RmPppoeConfigMain selectRmPppoeConfigMainById(Long id) + { + RmPppoeConfigMain rmPppoeConfigMain = rmPppoeConfigMainMapper.selectRmPppoeConfigMainById(id); + // 查询子表信息 + RmPppoeConfigSub rmPppoeConfigSub = new RmPppoeConfigSub(); + rmPppoeConfigSub.setMainId(id); + List subList = rmPppoeConfigSubMapper.selectRmPppoeConfigSubList(rmPppoeConfigSub); + rmPppoeConfigMain.setSubList(subList); + return rmPppoeConfigMain; + } + + /** + * 查询PPPoE配置主表列表 + * + * @param rmPppoeConfigMain PPPoE配置主表 + * @return PPPoE配置主表 + */ + @Override + public List selectRmPppoeConfigMainList(RmPppoeConfigMain rmPppoeConfigMain) + { + return rmPppoeConfigMainMapper.selectRmPppoeConfigMainList(rmPppoeConfigMain); + } + + /** + * 新增PPPoE配置主表 + * + * @param rmPppoeConfigMain PPPoE配置主表 + * @return 结果 + */ + @Override + public int insertRmPppoeConfigMain(RmPppoeConfigMain rmPppoeConfigMain) + { + rmPppoeConfigMain.setCreateTime(DateUtils.getNowDate()); + int rows = rmPppoeConfigMainMapper.insertRmPppoeConfigMain(rmPppoeConfigMain); + List subList = rmPppoeConfigMain.getSubList(); + if(subList != null && !subList.isEmpty()){ + for (RmPppoeConfigSub rmPppoeConfigSub : subList) { + rmPppoeConfigSub.setMainId(rmPppoeConfigMain.getId()); + rmPppoeConfigSub.setCreateTime(DateUtils.getNowDate()); + rmPppoeConfigSub.setUpdateTime(DateUtils.getNowDate()); + } + // 删除子表信息 + rmPppoeConfigSubMapper.deleteRmPppoeConfigSubByMainId(rmPppoeConfigMain.getId()); + // 批量新增 + rmPppoeConfigSubMapper.batchInsertRmPppoeConfigSub(subList); + } + // 构建pppoe策略 + PppoeVo pppoeVo = new PppoeVo(); + BeanUtils.copyProperties(rmPppoeConfigMain, pppoeVo); + List voList = subList.stream() + .map(RmPppoeConfigSub::toVo) + .collect(Collectors.toList()); + pppoeVo.setSubList(voList); + String pppoeStr = JSONObject.toJSONString(pppoeVo); + PolicyTypeVo policyTypeVo = new PolicyTypeVo(); + policyTypeVo.setPppoeConfig(pppoeStr); + MessageProducer messageProducer = new MessageProducer(); + String configJson = JSONObject.toJSONString(policyTypeVo); + DeviceMessage message = new DeviceMessage(); + message.setClientId(rmPppoeConfigMain.getClientId()); + message.setData(configJson); + message.setDataType(MsgEnum.获取最新策略应答.getValue()); + + messageProducer.sendAsyncProducerMessage( + producerMode.getAgentTopic(), + "", + "", + JSONObject.toJSONString(message) + ); + return 1; + } + + /** + * 修改PPPoE配置主表 + * + * @param rmPppoeConfigMain PPPoE配置主表 + * @return 结果 + */ + @Override + public int updateRmPppoeConfigMain(RmPppoeConfigMain rmPppoeConfigMain) + { + rmPppoeConfigMain.setUpdateTime(DateUtils.getNowDate()); + return rmPppoeConfigMainMapper.updateRmPppoeConfigMain(rmPppoeConfigMain); + } + + /** + * 批量删除PPPoE配置主表 + * + * @param ids 需要删除的PPPoE配置主表主键 + * @return 结果 + */ + @Override + public int deleteRmPppoeConfigMainByIds(Long[] ids) + { + return rmPppoeConfigMainMapper.deleteRmPppoeConfigMainByIds(ids); + } + + /** + * 删除PPPoE配置主表信息 + * + * @param id PPPoE配置主表主键 + * @return 结果 + */ + @Override + public int deleteRmPppoeConfigMainById(Long id) + { + return rmPppoeConfigMainMapper.deleteRmPppoeConfigMainById(id); + } +} diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmPppoeConfigSubServiceImpl.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmPppoeConfigSubServiceImpl.java new file mode 100644 index 0000000..17adae1 --- /dev/null +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmPppoeConfigSubServiceImpl.java @@ -0,0 +1,96 @@ +package com.tongran.rocketmq.service.impl; + +import java.util.List; +import com.tongran.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.tongran.rocketmq.mapper.RmPppoeConfigSubMapper; +import com.tongran.rocketmq.domain.RmPppoeConfigSub; +import com.tongran.rocketmq.service.IRmPppoeConfigSubService; + +/** + * PPPoE配置子表Service业务层处理 + * + * @author tongran + * @date 2025-12-29 + */ +@Service +public class RmPppoeConfigSubServiceImpl implements IRmPppoeConfigSubService +{ + @Autowired + private RmPppoeConfigSubMapper rmPppoeConfigSubMapper; + + /** + * 查询PPPoE配置子表 + * + * @param id PPPoE配置子表主键 + * @return PPPoE配置子表 + */ + @Override + public RmPppoeConfigSub selectRmPppoeConfigSubById(Long id) + { + return rmPppoeConfigSubMapper.selectRmPppoeConfigSubById(id); + } + + /** + * 查询PPPoE配置子表列表 + * + * @param rmPppoeConfigSub PPPoE配置子表 + * @return PPPoE配置子表 + */ + @Override + public List selectRmPppoeConfigSubList(RmPppoeConfigSub rmPppoeConfigSub) + { + return rmPppoeConfigSubMapper.selectRmPppoeConfigSubList(rmPppoeConfigSub); + } + + /** + * 新增PPPoE配置子表 + * + * @param rmPppoeConfigSub PPPoE配置子表 + * @return 结果 + */ + @Override + public int insertRmPppoeConfigSub(RmPppoeConfigSub rmPppoeConfigSub) + { + rmPppoeConfigSub.setCreateTime(DateUtils.getNowDate()); + return rmPppoeConfigSubMapper.insertRmPppoeConfigSub(rmPppoeConfigSub); + } + + /** + * 修改PPPoE配置子表 + * + * @param rmPppoeConfigSub PPPoE配置子表 + * @return 结果 + */ + @Override + public int updateRmPppoeConfigSub(RmPppoeConfigSub rmPppoeConfigSub) + { + rmPppoeConfigSub.setUpdateTime(DateUtils.getNowDate()); + return rmPppoeConfigSubMapper.updateRmPppoeConfigSub(rmPppoeConfigSub); + } + + /** + * 批量删除PPPoE配置子表 + * + * @param ids 需要删除的PPPoE配置子表主键 + * @return 结果 + */ + @Override + public int deleteRmPppoeConfigSubByIds(Long[] ids) + { + return rmPppoeConfigSubMapper.deleteRmPppoeConfigSubByIds(ids); + } + + /** + * 删除PPPoE配置子表信息 + * + * @param id PPPoE配置子表主键 + * @return 结果 + */ + @Override + public int deleteRmPppoeConfigSubById(Long id) + { + return rmPppoeConfigSubMapper.deleteRmPppoeConfigSubById(id); + } +} diff --git a/tongran-rocketmq/src/main/resources/mapper/rocketmq/InitialCpuInfoMapper.xml b/tongran-rocketmq/src/main/resources/mapper/rocketmq/InitialCpuInfoMapper.xml index 31d2b4a..59e19de 100644 --- a/tongran-rocketmq/src/main/resources/mapper/rocketmq/InitialCpuInfoMapper.xml +++ b/tongran-rocketmq/src/main/resources/mapper/rocketmq/InitialCpuInfoMapper.xml @@ -13,6 +13,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -26,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, client_id, avg1, avg5, avg15, interrupt, uti, num, normal, idle, iowait, system, noresp, user, create_by, update_by, create_time, update_time from initial_cpu_info + select id, client_id, avg1, avg5, avg15, interrupt, uti, num, cores, normal, idle, iowait, system, noresp, user, create_by, update_by, create_time, update_time from initial_cpu_info + + + and client_id = #{clientId} + and pppoe_enabled = #{pppoeEnabled} + and pppoe_config_mode = #{pppoeConfigMode} + and pppoe_interface = #{pppoeInterface} + + + + + + + insert into rm_pppoe_config_main + + client_id, + pppoe_enabled, + pppoe_config_mode, + pppoe_interface, + create_time, + update_time, + create_by, + update_by, + + + #{clientId}, + #{pppoeEnabled}, + #{pppoeConfigMode}, + #{pppoeInterface}, + #{createTime}, + #{updateTime}, + #{createBy}, + #{updateBy}, + + ON DUPLICATE KEY UPDATE + + pppoe_enabled = VALUES(pppoe_enabled), + pppoe_config_mode = VALUES(pppoe_config_mode), + pppoe_interface = VALUES(pppoe_interface), + update_time = VALUES(update_time), + update_by = VALUES(update_by), + + + + + update rm_pppoe_config_main + + client_id = #{clientId}, + pppoe_enabled = #{pppoeEnabled}, + pppoe_config_mode = #{pppoeConfigMode}, + pppoe_interface = #{pppoeInterface}, + create_time = #{createTime}, + update_time = #{updateTime}, + create_by = #{createBy}, + update_by = #{updateBy}, + + where id = #{id} + + + + delete from rm_pppoe_config_main where id = #{id} + + + + delete from rm_pppoe_config_main where id in + + #{id} + + + \ No newline at end of file diff --git a/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigSubMapper.xml b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigSubMapper.xml new file mode 100644 index 0000000..9fc368d --- /dev/null +++ b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigSubMapper.xml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + select id, main_id, serial_number, vlan_id, ipv4_address, ipv4_mask_bits, ipv4_gateway, create_time, update_time, create_by, update_by from rm_pppoe_config_sub + + + + + + + + insert into rm_pppoe_config_sub + + main_id, + serial_number, + vlan_id, + ipv4_address, + ipv4_mask_bits, + ipv4_gateway, + create_time, + update_time, + create_by, + update_by, + + + #{mainId}, + #{serialNumber}, + #{vlanId}, + #{ipv4Address}, + #{ipv4MaskBits}, + #{ipv4Gateway}, + #{createTime}, + #{updateTime}, + #{createBy}, + #{updateBy}, + + + + + update rm_pppoe_config_sub + + main_id = #{mainId}, + serial_number = #{serialNumber}, + vlan_id = #{vlanId}, + ipv4_address = #{ipv4Address}, + ipv4_mask_bits = #{ipv4MaskBits}, + ipv4_gateway = #{ipv4Gateway}, + create_time = #{createTime}, + update_time = #{updateTime}, + create_by = #{createBy}, + update_by = #{updateBy}, + + where id = #{id} + + + + delete from rm_pppoe_config_sub where id = #{id} + + + + delete from rm_pppoe_config_sub where id in + + #{id} + + + + insert into rm_pppoe_config_sub + (main_id, serial_number, vlan_id, ipv4_address, ipv4_mask_bits, ipv4_gateway, create_time, update_time, create_by, update_by) + values + + ( + #{item.mainId}, + #{item.serialNumber}, + #{item.vlanId}, + #{item.ipv4Address}, + #{item.ipv4MaskBits}, + #{item.ipv4Gateway}, + #{item.createTime}, + #{item.updateTime}, + #{item.createBy}, + #{item.updateBy} + ) + + + + delete from rm_pppoe_config_sub where main_id = #{mainId} + + \ No newline at end of file