diff --git a/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/NetworkInfo.java b/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/NetworkInfo.java index 6e73651..2a0b161 100644 --- a/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/NetworkInfo.java +++ b/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/NetworkInfo.java @@ -17,6 +17,9 @@ public class NetworkInfo { // IPv4 地址 @JsonProperty("ipv4") private String ipv4; + // IPv4 地址 + @JsonProperty("ipv6") + private String ipv6; // MAC 地址 @JsonProperty("mac") private String mac; diff --git a/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/RmNetworkInterfaceRemote.java b/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/RmNetworkInterfaceRemote.java index 717e379..445b806 100644 --- a/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/RmNetworkInterfaceRemote.java +++ b/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/RmNetworkInterfaceRemote.java @@ -44,6 +44,8 @@ public class RmNetworkInterfaceRemote extends BaseEntity { /** IPv4地址 */ @Excel(name = "IPv4地址") private String ipv4Address; + /** IPv6地址 */ + private String ipv6Address; /** 网关 */ @Excel(name = "网关") diff --git a/tongran-modules/tongran-mtragent/src/main/java/com/tongran/mtragent/domain/RmNetworkInterface.java b/tongran-modules/tongran-mtragent/src/main/java/com/tongran/mtragent/domain/RmNetworkInterface.java deleted file mode 100644 index bde0064..0000000 --- a/tongran-modules/tongran-mtragent/src/main/java/com/tongran/mtragent/domain/RmNetworkInterface.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.tongran.mtragent.domain; - -import com.tongran.common.core.annotation.Excel; -import com.tongran.common.core.web.domain.BaseEntity; -import lombok.Data; - -/** - * 客户端网络接口信息对象 rm_network_interface - * - * @author gyt - * @date 2025-10-14 - */ -@Data -public class RmNetworkInterface extends BaseEntity -{ - private static final long serialVersionUID = 1L; - - /** 主键ID */ - private Long id; - - /** 客户端ID */ - @Excel(name = "客户端ID") - private String clientId; - - /** 运营商 */ - @Excel(name = "运营商") - private String isp; - - /** 省 */ - @Excel(name = "省") - private String province; - - /** 市 */ - @Excel(name = "市") - private String city; - - /** 公网IP */ - @Excel(name = "公网IP") - private String publicIp; - - /** 接口名称 */ - @Excel(name = "接口名称") - private String interfaceName; - - /** MAC地址 */ - @Excel(name = "MAC地址") - private String macAddress; - - /** 接口类型 */ - @Excel(name = "接口类型") - private String interfaceType; - - /** IPv4地址 */ - @Excel(name = "IPv4地址") - private String ipv4Address; - - /** 网关 */ - @Excel(name = "网关") - private String gateway; - /** 绑定ip 1业务IP,2管理ip */ - private String bindIp; - /** 是否为新信息 */ - private Integer newFlag; - -} diff --git a/tongran-modules/tongran-mtragent/src/main/java/com/tongran/mtragent/mapper/RmNetworkInterfaceMapper.java b/tongran-modules/tongran-mtragent/src/main/java/com/tongran/mtragent/mapper/RmNetworkInterfaceMapper.java deleted file mode 100644 index f2ccb7a..0000000 --- a/tongran-modules/tongran-mtragent/src/main/java/com/tongran/mtragent/mapper/RmNetworkInterfaceMapper.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.tongran.mtragent.mapper; - - -import com.tongran.mtragent.domain.RmNetworkInterface; - -import java.util.List; - -/** - * 客户端网络接口信息Mapper接口 - * - * @author gyt - * @date 2025-10-14 - */ -public interface RmNetworkInterfaceMapper -{ - /** - * 查询客户端网络接口信息 - * - * @param id 客户端网络接口信息主键 - * @return 客户端网络接口信息 - */ - public RmNetworkInterface selectRmNetworkInterfaceById(Long id); - - /** - * 查询客户端网络接口信息列表 - * - * @param rmNetworkInterface 客户端网络接口信息 - * @return 客户端网络接口信息集合 - */ - public List selectRmNetworkInterfaceList(RmNetworkInterface rmNetworkInterface); - - /** - * 新增客户端网络接口信息 - * - * @param rmNetworkInterface 客户端网络接口信息 - * @return 结果 - */ - public int insertRmNetworkInterface(RmNetworkInterface rmNetworkInterface); - - /** - * 修改客户端网络接口信息 - * - * @param rmNetworkInterface 客户端网络接口信息 - * @return 结果 - */ - public int updateRmNetworkInterface(RmNetworkInterface rmNetworkInterface); - - /** - * 删除客户端网络接口信息 - * - * @param id 客户端网络接口信息主键 - * @return 结果 - */ - public int deleteRmNetworkInterfaceById(Long id); - - /** - * 批量删除客户端网络接口信息 - * - * @param ids 需要删除的数据主键集合 - * @return 结果 - */ - public int deleteRmNetworkInterfaceByIds(Long[] ids); - - int updateRmNetworkInterfaceByMac(RmNetworkInterface rmNetworkInterface); -} diff --git a/tongran-modules/tongran-mtragent/src/main/java/com/tongran/mtragent/service/IRmNetworkInterfaceService.java b/tongran-modules/tongran-mtragent/src/main/java/com/tongran/mtragent/service/IRmNetworkInterfaceService.java deleted file mode 100644 index 8429c4c..0000000 --- a/tongran-modules/tongran-mtragent/src/main/java/com/tongran/mtragent/service/IRmNetworkInterfaceService.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.tongran.mtragent.service; - - -import com.tongran.mtragent.domain.RmNetworkInterface; - -import java.util.List; - -/** - * 客户端网络接口信息Service接口 - * - * @author gyt - * @date 2025-10-14 - */ -public interface IRmNetworkInterfaceService -{ - /** - * 查询客户端网络接口信息 - * - * @param id 客户端网络接口信息主键 - * @return 客户端网络接口信息 - */ - public RmNetworkInterface selectRmNetworkInterfaceById(Long id); - - /** - * 查询客户端网络接口信息列表 - * - * @param rmNetworkInterface 客户端网络接口信息 - * @return 客户端网络接口信息集合 - */ - public List selectRmNetworkInterfaceList(RmNetworkInterface rmNetworkInterface); - - /** - * 新增客户端网络接口信息 - * - * @param rmNetworkInterface 客户端网络接口信息 - * @return 结果 - */ - public int insertRmNetworkInterface(RmNetworkInterface rmNetworkInterface); - - /** - * 修改客户端网络接口信息 - * - * @param rmNetworkInterface 客户端网络接口信息 - * @return 结果 - */ - public int updateRmNetworkInterface(RmNetworkInterface rmNetworkInterface); - /** - * 修改客户端网络接口信息 - * - * @param rmNetworkInterface 客户端网络接口信息 - * @return 结果 - */ - public int updateRmNetworkInterfaceByMac(RmNetworkInterface rmNetworkInterface); - - /** - * 批量删除客户端网络接口信息 - * - * @param ids 需要删除的客户端网络接口信息主键集合 - * @return 结果 - */ - public int deleteRmNetworkInterfaceByIds(Long[] ids); - - /** - * 删除客户端网络接口信息信息 - * - * @param id 客户端网络接口信息主键 - * @return 结果 - */ - public int deleteRmNetworkInterfaceById(Long id); - - /** - * 绑定公网ip - * @param rmNetworkInterface - * @return - */ - int bindPublicIp(RmNetworkInterface rmNetworkInterface); - - /** - * 更新路由信息 - * @param clientId - */ - void updateRouteMsg(String clientId); -} diff --git a/tongran-modules/tongran-mtragent/src/main/java/com/tongran/mtragent/service/impl/RmNetworkInterfaceServiceImpl.java b/tongran-modules/tongran-mtragent/src/main/java/com/tongran/mtragent/service/impl/RmNetworkInterfaceServiceImpl.java deleted file mode 100644 index 37a16df..0000000 --- a/tongran-modules/tongran-mtragent/src/main/java/com/tongran/mtragent/service/impl/RmNetworkInterfaceServiceImpl.java +++ /dev/null @@ -1,182 +0,0 @@ -package com.tongran.mtragent.service.impl; - -import com.alibaba.fastjson.JSONObject; -import com.tongran.common.core.enums.MsgEnum; -import com.tongran.common.core.utils.DateUtils; -import com.tongran.mtragent.domain.DeviceMessage; -import com.tongran.mtragent.domain.RmNetworkInterface; -import com.tongran.mtragent.domain.vo.PolicyTypeVo; -import com.tongran.mtragent.mapper.RmNetworkInterfaceMapper; -import com.tongran.mtragent.model.ProducerMode; -import com.tongran.mtragent.producer.MessageProducer; -import com.tongran.mtragent.service.IRmNetworkInterfaceService; -import com.tongran.system.api.domain.RouteMsg; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.time.Instant; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -/** - * 客户端网络接口信息Service业务层处理 - * - * @author gyt - * @date 2025-10-14 - */ -@Service -public class RmNetworkInterfaceServiceImpl implements IRmNetworkInterfaceService -{ - @Autowired - private RmNetworkInterfaceMapper rmNetworkInterfaceMapper; - @Autowired - private ProducerMode producerMode; - - /** - * 查询客户端网络接口信息 - * - * @param id 客户端网络接口信息主键 - * @return 客户端网络接口信息 - */ - @Override - public RmNetworkInterface selectRmNetworkInterfaceById(Long id) - { - return rmNetworkInterfaceMapper.selectRmNetworkInterfaceById(id); - } - - /** - * 查询客户端网络接口信息列表 - * - * @param rmNetworkInterface 客户端网络接口信息 - * @return 客户端网络接口信息 - */ - @Override - public List selectRmNetworkInterfaceList(RmNetworkInterface rmNetworkInterface) - { - return rmNetworkInterfaceMapper.selectRmNetworkInterfaceList(rmNetworkInterface); - } - - /** - * 新增客户端网络接口信息 - * - * @param rmNetworkInterface 客户端网络接口信息 - * @return 结果 - */ - @Override - public int insertRmNetworkInterface(RmNetworkInterface rmNetworkInterface) - { - rmNetworkInterface.setCreateTime(DateUtils.getNowDate()); - return rmNetworkInterfaceMapper.insertRmNetworkInterface(rmNetworkInterface); - } - - /** - * 修改客户端网络接口信息 - * - * @param rmNetworkInterface 客户端网络接口信息 - * @return 结果 - */ - @Override - public int updateRmNetworkInterface(RmNetworkInterface rmNetworkInterface) - { - rmNetworkInterface.setUpdateTime(DateUtils.getNowDate()); - return rmNetworkInterfaceMapper.updateRmNetworkInterface(rmNetworkInterface); - } - - @Override - public int updateRmNetworkInterfaceByMac(RmNetworkInterface rmNetworkInterface) { - rmNetworkInterface.setUpdateTime(DateUtils.getNowDate()); - return rmNetworkInterfaceMapper.updateRmNetworkInterfaceByMac(rmNetworkInterface); - } - - /** - * 批量删除客户端网络接口信息 - * - * @param ids 需要删除的客户端网络接口信息主键 - * @return 结果 - */ - @Override - public int deleteRmNetworkInterfaceByIds(Long[] ids) - { - return rmNetworkInterfaceMapper.deleteRmNetworkInterfaceByIds(ids); - } - - /** - * 删除客户端网络接口信息信息 - * - * @param id 客户端网络接口信息主键 - * @return 结果 - */ - @Override - public int deleteRmNetworkInterfaceById(Long id) - { - return rmNetworkInterfaceMapper.deleteRmNetworkInterfaceById(id); - } - - /** - * 绑定公网ip - * @param rmNetworkInterface - * @return - */ - @Override - public int bindPublicIp(RmNetworkInterface rmNetworkInterface) { - return rmNetworkInterfaceMapper.updateRmNetworkInterface(rmNetworkInterface); - } - - /** - * 更新路由信息 - * @param clientId - */ - public void updateRouteMsg(String clientId){ - MessageProducer messageProducer = new MessageProducer(); - // 查询路由是否有变化 - RmNetworkInterface rmNetworkInterface = new RmNetworkInterface(); - rmNetworkInterface.setClientId(clientId); - rmNetworkInterface.setBindIp("2"); - List networkInterfaces = rmNetworkInterfaceMapper.selectRmNetworkInterfaceList(rmNetworkInterface); - if(!networkInterfaces.isEmpty()){ - List oldList = networkInterfaces.stream() - .filter(networkInterface -> networkInterface.getNewFlag() == 0) - .collect(Collectors.toList()); - if(!oldList.isEmpty()){ - Map resultMap = new HashMap<>(); - // 增加静态路由 - RmNetworkInterface oldMsg = oldList.get(0); - RouteMsg oldRouteMsg = new RouteMsg(); - oldRouteMsg.setGateway(oldMsg.getGateway()); - oldRouteMsg.setName(oldMsg.getInterfaceName()); - resultMap.put("delRoute", oldRouteMsg); - List newList = networkInterfaces.stream() - .filter(networkInterface -> networkInterface.getNewFlag() == 1) - .collect(Collectors.toList()); - RmNetworkInterface newMsg = newList.get(0); - RouteMsg newRouteMsg = new RouteMsg(); - newRouteMsg.setGateway(newMsg.getGateway()); - newRouteMsg.setName(newMsg.getInterfaceName()); - resultMap.put("addRoute", newRouteMsg); - resultMap.put("upTime", Instant.now().getEpochSecond()); - PolicyTypeVo policyTypeVo = new PolicyTypeVo(); - policyTypeVo.setRoutes(JSONObject.toJSONString(resultMap)); - String configJson = JSONObject.toJSONString(policyTypeVo); - // 构建发送消息 - DeviceMessage message = new DeviceMessage(); - message.setClientId(clientId); - message.setData(configJson); - message.setDataType(MsgEnum.获取最新策略应答.getValue()); - - messageProducer.sendAsyncProducerMessage( - producerMode.getAgentTopic(), - "", - "", - JSONObject.toJSONString(message) - ); - // 更新网卡信息表 - RmNetworkInterface updateQuery = new RmNetworkInterface(); - updateQuery.setNewFlag(999); - updateQuery.setMacAddress(networkInterfaces.get(0).getMacAddress()); - rmNetworkInterfaceMapper.updateRmNetworkInterfaceByMac(updateQuery); - } - } - } -} diff --git a/tongran-modules/tongran-mtragent/src/main/resources/mapper/mtragent/RmNetworkInterfaceMapper.xml b/tongran-modules/tongran-mtragent/src/main/resources/mapper/mtragent/RmNetworkInterfaceMapper.xml deleted file mode 100644 index da415f3..0000000 --- a/tongran-modules/tongran-mtragent/src/main/resources/mapper/mtragent/RmNetworkInterfaceMapper.xml +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - select id, client_id, isp, province, city, public_ip, interface_name, mac_address, interface_type, ipv4_address, gateway, create_time, update_time, create_by, update_by, bind_ip, new_flag from rm_network_interface - - - - - - - - insert into rm_network_interface - - client_id, - isp, - province, - city, - public_ip, - interface_name, - mac_address, - interface_type, - ipv4_address, - gateway, - create_time, - update_time, - create_by, - update_by, - bind_ip, - new_flag, - - - #{clientId}, - #{isp}, - #{province}, - #{city}, - #{publicIp}, - #{interfaceName}, - #{macAddress}, - #{interfaceType}, - #{ipv4Address}, - #{gateway}, - #{createTime}, - #{updateTime}, - #{createBy}, - #{updateBy}, - #{bindIp}, - #{newFlag}, - - - - - update rm_network_interface - - client_id = #{clientId}, - isp = #{isp}, - province = #{province}, - city = #{city}, - public_ip = #{publicIp}, - interface_name = #{interfaceName}, - mac_address = #{macAddress}, - interface_type = #{interfaceType}, - ipv4_address = #{ipv4Address}, - gateway = #{gateway}, - create_time = #{createTime}, - update_time = #{updateTime}, - create_by = #{createBy}, - update_by = #{updateBy}, - bind_ip = #{bindIp}, - new_flag = #{newFlag}, - - where id = #{id} - - - - delete from rm_network_interface where id = #{id} - - - - delete from rm_network_interface where id in - - #{id} - - - - update rm_network_interface - - isp = #{isp}, - province = #{province}, - city = #{city}, - public_ip = #{publicIp}, - interface_name = #{interfaceName}, - mac_address = #{macAddress}, - interface_type = #{interfaceType}, - ipv4_address = #{ipv4Address}, - gateway = #{gateway}, - create_time = #{createTime}, - update_time = #{updateTime}, - create_by = #{createBy}, - update_by = #{updateBy}, - bind_ip = #{bindIp}, - new_flag = #{newFlag}, - - where mac_address = #{macAddress} and client_id = #{clientId} - - \ No newline at end of file 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 3078d5f..fe1a909 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 @@ -247,5 +247,15 @@ public class RmResourceRegistrationController extends BaseController { return toAjax(rmResourceRegistrationService.updateRemark(rmResourceRegistration)); } + /** + * 添加上报带宽值 + */ + @RequiresPermissions("system:registration:edit") + @Log(title = "添加上报带宽值", businessType = BusinessType.UPDATE) + @PostMapping("/addReportedBandwidth") + public AjaxResult addReportedBandwidth(@RequestBody RmResourceRegistration rmResourceRegistration) + { + return toAjax(rmResourceRegistrationService.addReportedBandwidth(rmResourceRegistration)); + } } 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 81669ed..65e5d09 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 @@ -117,6 +117,9 @@ public class RmResourceRegistration extends BaseEntity @Excel(name = "IP1-IPv4地址") private String ip1Ipv4Address; // IP1-IPv4地址 + @Excel(name = "IP1-IPv6地址") + private String ip1Ipv6Address; // IP1-IPv6地址 + @Excel(name = "IP1-网关") private String ip1Gateway; // IP1-网关 @@ -145,6 +148,9 @@ public class RmResourceRegistration extends BaseEntity @Excel(name = "IP2-IPv4地址") private String ip2Ipv4Address; + @Excel(name = "IP2-IPv6地址") + private String ip2Ipv6Address; // IP2-IPv6地址 + @Excel(name = "IP2-网关") private String ip2Gateway; @@ -173,6 +179,9 @@ public class RmResourceRegistration extends BaseEntity @Excel(name = "IP3-IPv4地址") private String ip3Ipv4Address; + @Excel(name = "IP3-IPv6地址") + private String ip3Ipv6Address; // IP3-IPv6地址 + @Excel(name = "IP3-网关") private String ip3Gateway; @@ -200,8 +209,12 @@ public class RmResourceRegistration extends BaseEntity @Excel(name = "管理网-IPv4地址") private String mgmtIpv4Address; // 管理网-IPv4地址 + + @Excel(name = "管理网-IPv6地址") + private String mgmtIpv6Address; // 管理网-IPv6地址 + @Excel(name = "管理网-网关") - private String mgmtGateway; // 管理网-IPv4地址 + private String mgmtGateway; // 管理网-网关地址 /** 多条件查询 */ private String queryParam; @@ -216,7 +229,7 @@ public class RmResourceRegistration extends BaseEntity private Date createTime; /** 上机时间 */ - @Excel(name = "上机时间") + @Excel(name = "上机时间", dateFormat = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date onboardTime; /** 服务器列表 */ @@ -226,5 +239,14 @@ public class RmResourceRegistration extends BaseEntity /** 逻辑节点空标识 */ private boolean logicalNodeEmpty; /** 昨日95值 */ + @Excel(name = "昨日95值(MBit)") private BigDecimal bandwidthResult; + /** 上报带宽值(MBit) */ + @Excel(name = "上报带宽值(MBit)") + private BigDecimal reportedBandwidth; + /** 日95带宽值利用率 */ + @Excel(name = "日95带宽值利用率") + private String bandwidthRate; + /** 昨日95值排序 1正序 2倒叙 3不排序 */ + private Integer bandwidthResultSort; } \ 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 3fe483c..650473a 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 @@ -110,4 +110,6 @@ public interface RmResourceRegistrationMapper * @return */ int updateRemark(RmResourceRegistration rmResourceRegistration); + + int addReportedBandwidth(RmResourceRegistration rmResourceRegistration); } 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 fe0c6a8..19c4425 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 @@ -132,4 +132,11 @@ public interface IRmResourceRegistrationService * @return */ int updateRemark(RmResourceRegistration rmResourceRegistration); + + /** + * 添加上报带宽值 + * @param rmResourceRegistration + * @return + */ + int addReportedBandwidth(RmResourceRegistration rmResourceRegistration); } 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 c699da2..57e017d 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 @@ -20,6 +20,7 @@ import com.tongran.system.service.IRmResourceRegistrationService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.math.RoundingMode; @@ -83,106 +84,199 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio * @return 资源注册 */ @Override - public Map getRegistrationTableInfoList(RmResourceRegistration rmResourceRegistration) - { - Map resultMap = new HashMap(); - if(rmResourceRegistration.getQueryParam() == null || rmResourceRegistration.getQueryParam() == ""){ + public Map getRegistrationTableInfoList(RmResourceRegistration rmResourceRegistration) { + long startTime = System.currentTimeMillis(); + Map resultMap = new HashMap<>(); + + // 获取参数 + String queryParam = rmResourceRegistration.getQueryParam(); + Integer bandwidthResultSort = rmResourceRegistration.getBandwidthResultSort(); + int pageNum = rmResourceRegistration.getPageNum() != null ? rmResourceRegistration.getPageNum() : 1; + int pageSize = rmResourceRegistration.getPageSize() != null ? rmResourceRegistration.getPageSize() : 10; + + // 判断是否有查询条件 + boolean hasQueryParam = queryParam != null && !queryParam.trim().isEmpty(); + String queryValue = hasQueryParam ? queryParam.trim().toLowerCase() : null; + + // 情况1: 无查询参数且无特殊排序,使用数据库分页 + if (!hasQueryParam && (bandwidthResultSort == null || bandwidthResultSort == 3)) { PageDomain pageDomain = new PageDomain(); - pageDomain.setPageNum(rmResourceRegistration.getPageNum()); - pageDomain.setPageSize(rmResourceRegistration.getPageSize()); + pageDomain.setPageNum(pageNum); + pageDomain.setPageSize(pageSize); startPage(pageDomain); + + List list = rmResourceRegistrationMapper.getRegistrationTableInfoList(rmResourceRegistration); + + // 只处理当前页的数据 + processCurrentPageData(list); + + resultMap.put("list", list); + return resultMap; } - List rmResourceRegistrationList = rmResourceRegistrationMapper.getRegistrationTableInfoList(rmResourceRegistration); - for (RmResourceRegistration resourceRegistration : rmResourceRegistrationList) { - if(resourceRegistration.getClientId() != null){ - // 网卡信息 - setNetWorkMsg(resourceRegistration); - // set昨日95值 - setBandwidthYestoday(resourceRegistration); + + // 情况2: 有查询参数或需要排序,全量查询+内存处理 + List allData = rmResourceRegistrationMapper.getRegistrationTableInfoList(rmResourceRegistration); + + // 1. 过滤 + List filteredList = allData; + if (hasQueryParam) { + filteredList = allData.stream() + .filter(item -> item != null && quickMatches(item, queryValue)) + .collect(Collectors.toList()); + } + + // 2. 排序 + if (bandwidthResultSort != null && bandwidthResultSort != 3) { + sortList(filteredList, bandwidthResultSort); + } + + // 3. 内存分页 + int total = filteredList.size(); + int fromIndex = Math.min((pageNum - 1) * pageSize, total); + int toIndex = Math.min(fromIndex + pageSize, total); + + // 注意:这里要用copy,因为后续要修改数据 + List pageList = applyPagination(filteredList, rmResourceRegistration.getPageNum(), rmResourceRegistration.getPageSize()); + List currentPageData = new ArrayList<>(pageList); + + // 4. 只处理当前页数据 + processCurrentPageData(currentPageData); + + resultMap.put("list", currentPageData); + resultMap.put("total", total); + + log.info("查询完成,总耗时: {}ms, 总条数: {}, 处理条数: {}", + System.currentTimeMillis() - startTime, total, currentPageData.size()); + return resultMap; + } + + /** + * 只处理当前页的数据 + */ + private void processCurrentPageData(List pageList) { + if (CollectionUtils.isEmpty(pageList)) { + return; + } + + long startTime = System.currentTimeMillis(); + + for (RmResourceRegistration item : pageList) { + if (item.getClientId() != null) { + setNetWorkMsg(item); + setBandwidthYestoday(item); } } - if(rmResourceRegistration.getQueryParam() != null && !rmResourceRegistration.getQueryParam().trim().isEmpty()){ - String queryValue = rmResourceRegistration.getQueryParam().trim().toLowerCase(); // 转为小写便于模糊匹配 - // 从rmResourceRegistrationList列表中筛选符合条件的数据 - List filteredList = rmResourceRegistrationList.stream() - .filter(item -> item != null) - .filter(item -> { - // 如果查询值为空,返回所有数据 - if (queryValue.isEmpty()) { - return true; - } - - // 检查公网IP (IP1-3和管理网) - return (item.getIp1PublicIp() != null && item.getIp1PublicIp().toLowerCase().contains(queryValue)) || - (item.getIp2PublicIp() != null && item.getIp2PublicIp().toLowerCase().contains(queryValue)) || - (item.getIp3PublicIp() != null && item.getIp3PublicIp().toLowerCase().contains(queryValue)) || - (item.getMgmtPublicIp() != null && item.getMgmtPublicIp().toLowerCase().contains(queryValue)) || - - // 检查私网IP (IP1-3和管理网) - (item.getIp1Ipv4Address() != null && item.getIp1Ipv4Address().toLowerCase().contains(queryValue)) || - (item.getIp2Ipv4Address() != null && item.getIp2Ipv4Address().toLowerCase().contains(queryValue)) || - (item.getIp3Ipv4Address() != null && item.getIp3Ipv4Address().toLowerCase().contains(queryValue)) || - (item.getMgmtIpv4Address() != null && item.getMgmtIpv4Address().toLowerCase().contains(queryValue)) || - - // 检查设备SN - (item.getHardwareSn() != null && item.getHardwareSn().toLowerCase().contains(queryValue)) || - (item.getClientId() != null && item.getClientId().toLowerCase().contains(queryValue)); - }) - .collect(Collectors.toList()); - - List pageInfo = applyPagination(filteredList, rmResourceRegistration.getPageNum(), rmResourceRegistration.getPageSize()); - resultMap.put("list", pageInfo); - resultMap.put("total", filteredList.size()); - return resultMap; + long cost = System.currentTimeMillis() - startTime; + if (cost > 1000) { + log.info("处理{}条数据耗时较长: {}ms", pageList.size(), cost); + } else if (cost > 100) { + log.info("处理{}条数据耗时: {}ms", pageList.size(), cost); } else { - resultMap.put("list", rmResourceRegistrationList); + log.info("处理{}条数据耗时: {}ms", pageList.size(), cost); } - return resultMap; } /** * 查询资源注册列表 - * + * * @param rmResourceRegistration 资源注册 * @return 资源注册 */ @Override - public List selectRmResourceRegistrationList(RmResourceRegistration rmResourceRegistration) - { - List rmResourceRegistrationList = rmResourceRegistrationMapper.getRegistrationTableInfoList(rmResourceRegistration); - for (RmResourceRegistration resourceRegistration : rmResourceRegistrationList) { - if(resourceRegistration.getClientId() != null){ - // 网卡信息 - setNetWorkMsg(resourceRegistration); + public List selectRmResourceRegistrationList(RmResourceRegistration rmResourceRegistration) { + List allData = rmResourceRegistrationMapper.getRegistrationTableInfoList(rmResourceRegistration); + + // 获取参数 + String queryParam = rmResourceRegistration.getQueryParam(); + Integer bandwidthResultSort = rmResourceRegistration.getBandwidthResultSort(); + boolean hasQueryParam = queryParam != null && !queryParam.trim().isEmpty(); + String queryValue = hasQueryParam ? queryParam.trim().toLowerCase() : null; + + // 过滤 + List filteredList = allData; + if (hasQueryParam) { + filteredList = allData.stream() + .filter(item -> item != null && quickMatches(item, queryValue)) + .collect(Collectors.toList()); + } + + // 排序 + if (bandwidthResultSort != null && bandwidthResultSort != 3) { + sortList(filteredList, bandwidthResultSort); + } + + // 处理全部数据 + for (RmResourceRegistration item : filteredList) { + if (item.getClientId() != null) { + setNetWorkMsg(item); + setBandwidthYestoday(item); } } - if(rmResourceRegistration.getQueryParam() != null){ - String queryValue = rmResourceRegistration.getQueryParam().trim(); - // 筛选公网IP私网IP设备SN相等的数据 - // 从rmResourceRegistrationList列表中筛选符合条件的数据 - List filteredList = rmResourceRegistrationList.stream() - .filter(item -> item != null) - .filter(item -> - // 检查公网IP (IP1-3和管理网) - queryValue.equals(item.getIp1PublicIp()) || - queryValue.equals(item.getIp2PublicIp()) || - queryValue.equals(item.getIp3PublicIp()) || - queryValue.equals(item.getMgmtPublicIp()) || - // 检查私网IP (IP1-3和管理网) - queryValue.equals(item.getIp1Ipv4Address()) || - queryValue.equals(item.getIp2Ipv4Address()) || - queryValue.equals(item.getIp3Ipv4Address()) || - queryValue.equals(item.getMgmtIpv4Address()) || + return filteredList; + } - // 检查设备SN - queryValue.equals(item.getHardwareSn()) || - queryValue.equals(item.getClientId()) - ) - .collect(Collectors.toList()); - return filteredList; + /** + * 快速匹配方法 + */ + private boolean quickMatches(RmResourceRegistration item, String queryValue) { + if (item == null || queryValue == null) { + return false; + } + + // 优化检查顺序,先检查最可能匹配的字段 + String clientId = item.getClientId(); + String hardwareSn = item.getHardwareSn(); + + if ((clientId != null && clientId.toLowerCase().contains(queryValue)) || + (hardwareSn != null && hardwareSn.toLowerCase().contains(queryValue))) { + return true; + } + + // 检查IP地址 + return containsValue(item.getIp1PublicIp(), queryValue) || + containsValue(item.getIp2PublicIp(), queryValue) || + containsValue(item.getIp3PublicIp(), queryValue) || + containsValue(item.getMgmtPublicIp(), queryValue) || + containsValue(item.getIp1Ipv4Address(), queryValue) || + containsValue(item.getIp2Ipv4Address(), queryValue) || + containsValue(item.getIp3Ipv4Address(), queryValue) || + containsValue(item.getMgmtIpv4Address(), queryValue) || + containsValue(item.getIp1Ipv6Address(), queryValue) || + containsValue(item.getIp2Ipv6Address(), queryValue) || + containsValue(item.getIp3Ipv6Address(), queryValue) || + containsValue(item.getMgmtIpv6Address(), queryValue); + } + + private boolean containsValue(String value, String queryValue) { + return value != null && value.toLowerCase().contains(queryValue); + } + + /** + * 排序方法 + */ + private void sortList(List list, Integer sortType) { + if (CollectionUtils.isEmpty(list) || sortType == null) { + return; + } + + Comparator comparator = null; + + if (sortType == 1) { + comparator = Comparator.comparing( + RmResourceRegistration::getBandwidthResult, + Comparator.nullsLast(Comparator.naturalOrder()) + ); + } else if (sortType == 2) { + comparator = Comparator.comparing( + RmResourceRegistration::getBandwidthResult, + Comparator.nullsLast(Comparator.reverseOrder()) + ); + } + + if (comparator != null) { + list.sort(comparator); } - return rmResourceRegistrationList; } /** * 内存分页 @@ -200,6 +294,159 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio int toIndex = Math.min(fromIndex + pageSize, list.size()); return list.subList(fromIndex, toIndex); } + /** + * 批量处理网络信息 + */ + private void batchSetNetWorkMsg(List pageList) { + if (CollectionUtils.isEmpty(pageList)) { + return; + } + + long startTime = System.currentTimeMillis(); + + // 收集所有需要查询的clientId,用逗号分隔 + String clientIdsStr = pageList.stream() + .map(RmResourceRegistration::getClientId) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.joining(",")); + + if (StringUtils.isBlank(clientIdsStr)) { + return; + } + + log.debug("批量查询网络信息,clientIds: {}", clientIdsStr); + + try { + // 使用批量查询接口 + RmNetworkInterfaceRemote queryParam = new RmNetworkInterfaceRemote(); + queryParam.setClientIds(clientIdsStr); // 这里是逗号分隔的字符串 + queryParam.setNewFlag(1); + + R> result = remoteRocketMqService.getNetworkInterfaceList(queryParam, SecurityConstants.INNER); + + if (result == null || result.getData() == null || result.getData().isEmpty()) { + log.warn("批量查询网络信息返回为空,clientIds: {}", clientIdsStr); + // 回退到单条查询 + fallbackSetNetworkInfo(pageList); + return; + } + + List networkList = result.getData(); + + // 按clientId分组 + Map> networkMap = networkList.stream() + .filter(Objects::nonNull) + .filter(item -> item.getClientId() != null) + .collect(Collectors.groupingBy(RmNetworkInterfaceRemote::getClientId)); + + // 批量设置 + for (RmResourceRegistration registration : pageList) { + String clientId = registration.getClientId(); + if (clientId != null) { + List clientNetworks = networkMap.get(clientId); + if (clientNetworks != null && !clientNetworks.isEmpty()) { + // 调用原有的setNetWorkMsg方法 + setNetWorkMsgWithNetworkList(registration, clientNetworks); + } + } + } + + log.debug("批量处理网络信息完成,耗时: {}ms, 处理{}条记录, 返回{}条网络信息", + System.currentTimeMillis() - startTime, pageList.size(), networkList.size()); + + } catch (Exception e) { + log.error("批量查询网络信息异常", e); + // 回退到单条查询 + fallbackSetNetworkInfo(pageList); + } + } + /** + * 使用批量查询的结果设置网络信息 + */ + private void setNetWorkMsgWithNetworkList(RmResourceRegistration registration, List networkList) { + if (registration == null || CollectionUtils.isEmpty(networkList)) { + return; + } + + int businessIpCount = 1; + + for (RmNetworkInterfaceRemote network : networkList) { + if ("1".equals(network.getBindIp()) || "3".equals(network.getBindIp())) { + // 业务IP处理 + if (businessIpCount > 3) { + continue; // 最多只处理3个业务IP + } + + // 设置业务IP字段 + switch (businessIpCount) { + case 1: + registration.setIp1Isp(network.getIsp()); + registration.setIp1Province(network.getProvince()); + registration.setIp1City(network.getCity()); + registration.setIp1PublicIp(network.getPublicIp()); + registration.setIp1InterfaceName(network.getInterfaceName()); + registration.setIp1MacAddress(network.getMacAddress()); + registration.setIp1InterfaceType(network.getInterfaceType()); + registration.setIp1Ipv4Address(network.getIpv4Address()); + registration.setIp1Ipv6Address(network.getIpv6Address()); + registration.setIp1Gateway(network.getGateway()); + break; + case 2: + registration.setIp2Isp(network.getIsp()); + registration.setIp2Province(network.getProvince()); + registration.setIp2City(network.getCity()); + registration.setIp2PublicIp(network.getPublicIp()); + registration.setIp2InterfaceName(network.getInterfaceName()); + registration.setIp2MacAddress(network.getMacAddress()); + registration.setIp2InterfaceType(network.getInterfaceType()); + registration.setIp2Ipv4Address(network.getIpv4Address()); + registration.setIp2Ipv6Address(network.getIpv6Address()); + registration.setIp2Gateway(network.getGateway()); + break; + case 3: + registration.setIp3Isp(network.getIsp()); + registration.setIp3Province(network.getProvince()); + registration.setIp3City(network.getCity()); + registration.setIp3PublicIp(network.getPublicIp()); + registration.setIp3InterfaceName(network.getInterfaceName()); + registration.setIp3MacAddress(network.getMacAddress()); + registration.setIp3InterfaceType(network.getInterfaceType()); + registration.setIp3Ipv4Address(network.getIpv4Address()); + registration.setIp3Ipv6Address(network.getIpv6Address()); + registration.setIp3Gateway(network.getGateway()); + break; + } + + businessIpCount++; + } + if ("2".equals(network.getBindIp()) || "3".equals(network.getBindIp())) { + // 管理网IP处理 + registration.setMgmtIsp(network.getIsp()); + registration.setMgmtProvince(network.getProvince()); + registration.setMgmtCity(network.getCity()); + registration.setMgmtPublicIp(network.getPublicIp()); + registration.setMgmtInterfaceName(network.getInterfaceName()); + registration.setMgmtMacAddress(network.getMacAddress()); + registration.setMgmtInterfaceType(network.getInterfaceType()); + registration.setMgmtIpv4Address(network.getIpv4Address()); + registration.setMgmtIpv6Address(network.getIpv6Address()); + registration.setMgmtGateway(network.getGateway()); + } + } + } + + /** + * 回退到单条查询 + */ + private void fallbackSetNetworkInfo(List pageList) { + log.warn("批量查询失败,回退到单条查询"); + for (RmResourceRegistration registration : pageList) { + if (registration.getClientId() != null) { + setNetWorkMsg(registration); + } + } + } /** * 网卡信息赋值 @@ -246,6 +493,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio registration.setIp1MacAddress(network.getMacAddress()); registration.setIp1InterfaceType(network.getInterfaceType()); registration.setIp1Ipv4Address(network.getIpv4Address()); + registration.setIp1Ipv6Address(network.getIpv6Address()); registration.setIp1Gateway(network.getGateway()); break; case 2: @@ -257,6 +505,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio registration.setIp2MacAddress(network.getMacAddress()); registration.setIp2InterfaceType(network.getInterfaceType()); registration.setIp2Ipv4Address(network.getIpv4Address()); + registration.setIp2Ipv6Address(network.getIpv6Address()); registration.setIp2Gateway(network.getGateway()); break; case 3: @@ -268,6 +517,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio registration.setIp3MacAddress(network.getMacAddress()); registration.setIp3InterfaceType(network.getInterfaceType()); registration.setIp3Ipv4Address(network.getIpv4Address()); + registration.setIp3Ipv6Address(network.getIpv6Address()); registration.setIp3Gateway(network.getGateway()); break; } @@ -284,6 +534,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio registration.setMgmtMacAddress(network.getMacAddress()); registration.setMgmtInterfaceType(network.getInterfaceType()); registration.setMgmtIpv4Address(network.getIpv4Address()); + registration.setMgmtIpv6Address(network.getIpv6Address()); registration.setMgmtGateway(network.getGateway()); } } @@ -315,7 +566,18 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio List nodeBandwidthList = epsNodeBandwidthMapper.selectEpsNodeBandwidthList(epsNodeBandwidth); if(nodeBandwidthList != null && !nodeBandwidthList.isEmpty()){ EpsNodeBandwidth nodeBandwidth = nodeBandwidthList.get(0); - registration.setBandwidthResult(nodeBandwidth.getBandwidthResult()); + BigDecimal bandwidthResult = nodeBandwidth.getBandwidthResult(); + registration.setBandwidthResult(bandwidthResult); + BigDecimal reportedBandwidth = registration.getReportedBandwidth(); + if(reportedBandwidth != null){ + if(reportedBandwidth.compareTo(BigDecimal.ZERO) == 0){ + registration.setBandwidthRate("0%"); + }else{ + // 计算日95带宽值利用率 + BigDecimal bandwidthRate = bandwidthResult.multiply(new BigDecimal(100)).divide(reportedBandwidth, 1, RoundingMode.HALF_UP); + registration.setBandwidthRate(bandwidthRate + "%"); + } + } } } /** @@ -854,5 +1116,13 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio int rows = rmResourceRegistrationMapper.updateRemark(rmResourceRegistration); return rows; } + @Override + public int addReportedBandwidth(RmResourceRegistration rmResourceRegistration) { + if(rmResourceRegistration.getId() == null){ + throw new RuntimeException("id不可为null"); + } + int rows = rmResourceRegistrationMapper.addReportedBandwidth(rmResourceRegistration); + return rows; + } } diff --git a/tongran-modules/tongran-system/src/main/resources/mapper/system/EpsInitialTrafficDataMapper.xml b/tongran-modules/tongran-system/src/main/resources/mapper/system/EpsInitialTrafficDataMapper.xml index 7013bb2..7411df4 100644 --- a/tongran-modules/tongran-system/src/main/resources/mapper/system/EpsInitialTrafficDataMapper.xml +++ b/tongran-modules/tongran-system/src/main/resources/mapper/system/EpsInitialTrafficDataMapper.xml @@ -430,32 +430,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" \ No newline at end of file diff --git a/tongran-modules/tongran-system/src/main/resources/mapper/system/EpsNodeBandwidthMapper.xml b/tongran-modules/tongran-system/src/main/resources/mapper/system/EpsNodeBandwidthMapper.xml index 194f6eb..a46d1df 100644 --- a/tongran-modules/tongran-system/src/main/resources/mapper/system/EpsNodeBandwidthMapper.xml +++ b/tongran-modules/tongran-system/src/main/resources/mapper/system/EpsNodeBandwidthMapper.xml @@ -320,8 +320,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and calculation_mode = #{calculationMode} and bandwidth_type = #{bandwidthType} and resource_type = #{resourceType} - and create_time >= #{startTime} - and create_time <= #{endTime} + and create_time >= left(#{startTime},10) + and create_time <= left(#{endTime},10) and client_id in 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 d674b02..7676318 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 @@ -23,10 +23,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - select id, client_id, hardware_sn, business_name, logical_node_id, multi_public_ip_status, registration_status, online_status, resource_type, agent_version, create_time, update_time, heartbeat_count, heartbeat_interval, onboard_time, remark, create_by, update_by from rm_resource_registration + select id, client_id, hardware_sn, business_name, logical_node_id, multi_public_ip_status, registration_status, online_status, resource_type, agent_version, create_time, update_time, heartbeat_count, heartbeat_interval, onboard_time, remark, create_by, update_by, reported_bandwidth from rm_resource_registration @@ -143,12 +144,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + select + id, + `name`, + mac, + status, + `type`, + ipV4, + in_dropped as inDropped, + out_dropped as outDropped, + in_speed as inSpeed, + out_speed as outSpeed, + total_in_speed as totalInSpeed, + total_out_speed as totalOutSpeed, + create_time as createTime, + update_time as updateTime, + create_by as createBy, + update_by as updateBy, + client_id as clientId, + duplex, + speed, + ipv4_in_speed as ipv4InSpeed, + ipv4_out_speed as ipv4OutSpeed, + ipv6_in_speed as ipv6InSpeed, + ipv6_out_speed as ipv6OutSpeed, + total_ipv4_in_speed as totalIpv4InSpeed, + total_ipv4_out_speed as totalIpv4OutSpeed, + total_ipv6_in_speed as totalIpv6InSpeed, + total_ipv6_out_speed as totalIpv6OutSpeed, ipV6 from ${tableName} @@ -159,12 +183,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" limit 1 - + select + id, + `name`, + mac, + status, + `type`, + ipV4, + in_dropped as inDropped, + out_dropped as outDropped, + in_speed as inSpeed, + out_speed as outSpeed, + total_in_speed as totalInSpeed, + total_out_speed as totalOutSpeed, + create_time as createTime, + update_time as updateTime, + create_by as createBy, + update_by as updateBy, + client_id as clientId, + duplex, + speed, + ipv4_in_speed as ipv4InSpeed, + ipv4_out_speed as ipv4OutSpeed, + ipv6_in_speed as ipv6InSpeed, + ipv6_out_speed as ipv6OutSpeed, + total_ipv4_in_speed as totalIpv4InSpeed, + total_ipv4_out_speed as totalIpv4OutSpeed, + total_ipv6_in_speed as totalIpv6InSpeed, + total_ipv6_out_speed as totalIpv6OutSpeed, ipV6 from ${tableName} diff --git a/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceMapper.xml b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceMapper.xml index b442aba..de58fde 100644 --- a/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceMapper.xml +++ b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceMapper.xml @@ -15,6 +15,7 @@ + @@ -25,7 +26,7 @@ - select id, client_id, isp, province, city, public_ip, interface_name, mac_address, interface_type, ipv4_address, gateway, create_time, update_time, create_by, update_by, bind_ip, new_flag from rm_network_interface + select id, client_id, isp, province, city, public_ip, interface_name, mac_address, interface_type, ipv4_address, ipv6_address, gateway, create_time, update_time, create_by, update_by, bind_ip, new_flag from rm_network_interface