diff --git a/tongran-common/tongran-common-core/src/main/java/com/tongran/common/core/enums/MsgEnum.java b/tongran-common/tongran-common-core/src/main/java/com/tongran/common/core/enums/MsgEnum.java index f183649..676d2d4 100644 --- a/tongran-common/tongran-common-core/src/main/java/com/tongran/common/core/enums/MsgEnum.java +++ b/tongran-common/tongran-common-core/src/main/java/com/tongran/common/core/enums/MsgEnum.java @@ -17,6 +17,8 @@ public enum MsgEnum { 修改frp配置文件应答("UPDATE_FRP_RSP"), + macvlan状态上报("MACVLAN_STATUS_RSP"), + 获取最新策略("GET_POLICY"), 获取最新策略应答("GET_POLICY_RSP"), diff --git a/tongran-modules/tongran-system/src/main/java/com/tongran/system/mapper/AllInterfaceNameMapper.java b/tongran-modules/tongran-system/src/main/java/com/tongran/system/mapper/AllInterfaceNameMapper.java index 51bf8b5..61134a6 100644 --- a/tongran-modules/tongran-system/src/main/java/com/tongran/system/mapper/AllInterfaceNameMapper.java +++ b/tongran-modules/tongran-system/src/main/java/com/tongran/system/mapper/AllInterfaceNameMapper.java @@ -92,4 +92,11 @@ public interface AllInterfaceNameMapper * @param records */ void batchUpdate(List records); + + /** + * 查询该服务器是否有子网卡 + * @param allInterfaceName + * @return + */ + Integer countNetChild(AllInterfaceName allInterfaceName); } diff --git a/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/AllInterfaceNameServiceImpl.java b/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/AllInterfaceNameServiceImpl.java index 8cc0233..ac471d9 100644 --- a/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/AllInterfaceNameServiceImpl.java +++ b/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/AllInterfaceNameServiceImpl.java @@ -93,7 +93,12 @@ public class AllInterfaceNameServiceImpl implements IAllInterfaceNameService // 只设置服务器类型的businessFlag if ("1".equals(interfaceName.getResourceType())) { - interfaceName.setBusinessFlag(isMatched); + int count = allInterfaceNameMapper.countNetChild(interfaceName); + boolean hasSub = false; + if(count > 0){ + hasSub = true; + } + interfaceName.setBusinessFlag(isMatched && hasSub); } } @@ -133,12 +138,13 @@ public class AllInterfaceNameServiceImpl implements IAllInterfaceNameService } List interfaceRemoteList = netWorkListR.getData(); - return interfaceRemoteList.stream() + boolean isBusiness = 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()) ); + return isBusiness; } else if ("2".equals(resourceType)) { // 交换机类型匹配逻辑 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 f1a80ad..a5d0ba2 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 @@ -532,7 +532,6 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio } if(memUtilList != null && !memUtilList.isEmpty()){ registration.setMemUtil(memUtilList.get(0).getMemUtil()); - registration.setMemTotalSize(memUtilList.get(0).getMemTotalSize()); } if(rmResourceRegistration != null){ registration.setMaxAgentVersion(rmResourceRegistration.getMaxAgentVersion()); diff --git a/tongran-modules/tongran-system/src/main/resources/mapper/system/AllInterfaceNameMapper.xml b/tongran-modules/tongran-system/src/main/resources/mapper/system/AllInterfaceNameMapper.xml index da1e0bb..62474be 100644 --- a/tongran-modules/tongran-system/src/main/resources/mapper/system/AllInterfaceNameMapper.xml +++ b/tongran-modules/tongran-system/src/main/resources/mapper/system/AllInterfaceNameMapper.xml @@ -313,4 +313,9 @@ WHERE id = #{item.id} + + \ No newline at end of file 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 42ef7a8..4284613 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 @@ -314,17 +314,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND d.create_time = latest.latest_time update rm_resource_registration set del_alarm_time = now() 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 index ed94240..4b35618 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmPppoeConfigSub.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmPppoeConfigSub.java @@ -5,6 +5,8 @@ import com.tongran.common.core.web.domain.BaseEntity; import com.tongran.rocketmq.domain.vo.RmPppoeConfigSubVo; import lombok.Data; +import java.math.BigDecimal; + /** * PPPoE配置子表对象 rm_pppoe_config_sub * @@ -19,10 +21,6 @@ public class RmPppoeConfigSub extends BaseEntity /** 主键ID */ private Long id; - /** 主表ID */ - @Excel(name = "主表ID") - private Long mainId; - /** 序号 */ @Excel(name = "序号") private Long serialNumber; @@ -42,6 +40,14 @@ public class RmPppoeConfigSub extends BaseEntity /** IPv4网关 */ @Excel(name = "IPv4网关") private String ipv4Gateway; + /** 状态(0未连通,1连通) */ + private String status; + /** 上报带宽 */ + private BigDecimal bandwidthResult; + /** MAC地址 */ + private String macAddress; + /** 客户端id */ + private String clientId; public RmPppoeConfigSubVo toVo() { RmPppoeConfigSubVo vo = new RmPppoeConfigSubVo(); diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/vo/MacVlanRspVo.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/vo/MacVlanRspVo.java new file mode 100644 index 0000000..355a289 --- /dev/null +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/vo/MacVlanRspVo.java @@ -0,0 +1,36 @@ +package com.tongran.rocketmq.domain.vo; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class MacVlanRspVo { + @JsonProperty("clientId") + private String clientId; + + @JsonProperty("macVlans") + private List macVlans; + + @JsonProperty("timestamp") + private long timestamp; + + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class MacVlanVo { + /** 虚拟网卡id */ + private String vlanId; + + /** 编号 */ + private String mid; + + /** 状态 */ + private String status; + } +} \ No newline at end of file diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/handler/MessageHandler.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/handler/MessageHandler.java index 96a9fcc..32b7b64 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/handler/MessageHandler.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/handler/MessageHandler.java @@ -101,6 +101,8 @@ public class MessageHandler { private IRmAlarmPushConfigService rmAlarmPushConfigService; @Autowired private IRmFrpcConfigManageService rmFrpcConfigManageService; + @Autowired + private IRmPppoeConfigSubService rmPppoeConfigSubService; /** @@ -124,6 +126,28 @@ public class MessageHandler { registerHandler(MsgEnum.心跳上报.getValue(), this::handleHeartbeatMessage); registerHandler(MsgEnum.多公网IP探测.getValue(), this::handleNetWorkDelectMessage); registerHandler(MsgEnum.修改frp配置文件应答.getValue(), this::handleUpdateFrpMessage); + registerHandler(MsgEnum.macvlan状态上报.getValue(), this::handleMacvlanMessage); + } + + private void handleMacvlanMessage(DeviceMessage message) { + List macVlanRspVoList = JsonDataParser.parseJsonData(message.getData(), MacVlanRspVo.class); + if(!macVlanRspVoList.isEmpty()){ + MacVlanRspVo macVlanRspVo = macVlanRspVoList.get(0); + // 时间戳转换 + long timestamp = macVlanRspVo.getTimestamp(); + long millis = timestamp * 1000; + Date createTime = new Date(millis / 1000 * 1000); // 去除毫秒 + List list = macVlanRspVo.getMacVlans(); + for (MacVlanRspVo.MacVlanVo macVlanVo : list) { + RmPppoeConfigSub rmPppoeConfigSub = new RmPppoeConfigSub(); + rmPppoeConfigSub.setVlanId(Long.valueOf(macVlanVo.getVlanId())); + rmPppoeConfigSub.setSerialNumber(Long.valueOf(macVlanVo.getMid())); + rmPppoeConfigSub.setClientId(message.getClientId()); + rmPppoeConfigSub.setStatus(macVlanVo.getStatus()); + rmPppoeConfigSub.setUpdateTime(createTime); + rmPppoeConfigSubService.updateRmPppoeConfigSubByVlan(rmPppoeConfigSub); + } + } } private void handleUpdateFrpMessage(DeviceMessage message) { @@ -1143,6 +1167,7 @@ public class MessageHandler { } rmNetworkInterfaceService.insertRmNetworkInterface(insertData); if(childList != null && !childList.isEmpty()){ + rmNetworkInterfaceChildService.deleteRmNetworkInterfaceChildByClientId(clientId); for (NetworkInfo info : childList) { RmNetworkInterfaceChild insertChild = new RmNetworkInterfaceChild(); setNetworkInterfaceChildData(insertChild, info, clientId, networkInfo.getName()); @@ -1168,6 +1193,7 @@ public class MessageHandler { boolean needCreateNew = (!StringUtils.equals(networkInfo.getName(), oldInterfaceMsg.getInterfaceName()) || !StringUtils.equals(networkInfo.getGateway(), oldInterfaceMsg.getGateway())) && StringUtils.equals(networkInfo.getMac(), oldInterfaceMsg.getMacAddress()); if(childList != null && !childList.isEmpty()){ + rmNetworkInterfaceChildService.deleteRmNetworkInterfaceChildByClientId(clientId); for (NetworkInfo info : childList) { RmNetworkInterfaceChild insertChild = new RmNetworkInterfaceChild(); setNetworkInterfaceChildData(insertChild, info, clientId, networkInfo.getName()); diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmNetworkInterfaceChildMapper.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmNetworkInterfaceChildMapper.java index 9f2fb9b..eb05d27 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmNetworkInterfaceChildMapper.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmNetworkInterfaceChildMapper.java @@ -1,8 +1,9 @@ package com.tongran.rocketmq.mapper; -import java.util.List; import com.tongran.rocketmq.domain.RmNetworkInterfaceChild; +import java.util.List; + /** * 客户端网络接口子接口信息Mapper接口 * @@ -58,4 +59,6 @@ public interface RmNetworkInterfaceChildMapper * @return 结果 */ public int deleteRmNetworkInterfaceChildByIds(Long[] ids); + + void deleteRmNetworkInterfaceChildByClientId(String clientId); } 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 index f1a4f4f..ba49e4e 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmPppoeConfigSubMapper.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/RmPppoeConfigSubMapper.java @@ -68,9 +68,11 @@ public interface RmPppoeConfigSubMapper int batchInsertRmPppoeConfigSub(List subList); /** - * 根据主表id删除子表信息 - * @param mainId + * 根据clientId删除子表信息 + * @param clientId * @return */ - int deleteRmPppoeConfigSubByMainId(Long mainId); + int deleteRmPppoeConfigSubByClientId(String clientId); + + int updateRmPppoeConfigSubByVlan(RmPppoeConfigSub rmPppoeConfigSub); } diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/IRmNetworkInterfaceChildService.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/IRmNetworkInterfaceChildService.java index 1b34f2e..e5a2cda 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/IRmNetworkInterfaceChildService.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/IRmNetworkInterfaceChildService.java @@ -1,8 +1,9 @@ package com.tongran.rocketmq.service; -import java.util.List; import com.tongran.rocketmq.domain.RmNetworkInterfaceChild; +import java.util.List; + /** * 客户端网络接口子接口信息Service接口 * @@ -58,4 +59,6 @@ public interface IRmNetworkInterfaceChildService * @return 结果 */ public int deleteRmNetworkInterfaceChildById(Long id); + + void deleteRmNetworkInterfaceChildByClientId(String clientId); } 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 index 385e414..3bc81e1 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/IRmPppoeConfigSubService.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/IRmPppoeConfigSubService.java @@ -1,8 +1,9 @@ package com.tongran.rocketmq.service; -import java.util.List; import com.tongran.rocketmq.domain.RmPppoeConfigSub; +import java.util.List; + /** * PPPoE配置子表Service接口 * @@ -58,4 +59,6 @@ public interface IRmPppoeConfigSubService * @return 结果 */ public int deleteRmPppoeConfigSubById(Long id); + + int updateRmPppoeConfigSubByVlan(RmPppoeConfigSub rmPppoeConfigSub); } diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java index 4f1f23f..3d8c333 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java @@ -251,6 +251,8 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf showRealation.put(name+"netInTraffic", name+"入站流量"); showRealation.put(name+"netOutTraffic", name+"出站流量"); boolean hasSubInterface = false; + boolean needAddIpv4Ipv6 = false; // 标记是否需要添加IPv4和IPv6数据 + // 如果是Ethernet类型,查询子网卡 if(isEthernetInterface(name)){ RmNetworkInterfaceChild query = new RmNetworkInterfaceChild(); @@ -271,6 +273,13 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf showRealation.put(child.getInterfaceName()+"netOutTraffic", child.getInterfaceName()+"出站流量"); } } + } else { + // 将ipv4和ipv6的线也集合过来 - 只有在没有子网卡时才添加 + needAddIpv4Ipv6 = true; + showRealation.put(name+"netInTrafficIPv4", name+"IPv4入站流量"); + showRealation.put(name+"netOutTrafficIPv4", name+"IPv4出站流量"); + showRealation.put(name+"netInTrafficIPv6", name+"IPv6入站流量"); + showRealation.put(name+"netOutTrafficIPv6", name+"IPv6出站流量"); } } @@ -282,7 +291,7 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf } BigDecimal divisor = SpeedUtils.getDivisor(unit); - // 使用工具类构建多网卡图表数据 + // 获取总流量图表数据 Map resultMap = EchartsMoreDataUtils.buildMultiInterfaceEchartsDataWithTotal( interfaceDataMap, InitialBandwidthTraffic::getCreateTime, @@ -294,10 +303,79 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf ); resultMap.put("unit", unit); + + // 如果没有子网卡,添加IPv4和IPv6的数据 + if (needAddIpv4Ipv6) { + // 获取总流量yData + Map yData = (Map) resultMap.get("yData"); + List xAxisData = (List) resultMap.get("xData"); + + // 获取IPv4流量图表数据 + Map ipv4Result = EchartsMoreDataUtils.buildMultiInterfaceEchartsDataWithTotal( + interfaceDataMap, + InitialBandwidthTraffic::getCreateTime, + info -> info != null && info.getIpv4InSpeed() != null ? + new BigDecimal(info.getIpv4InSpeed()) : null, + info -> info != null && info.getIpv4OutSpeed() != null ? + new BigDecimal(info.getIpv4OutSpeed()) : null, + initialBandwidthTraffic.getStartTime(), + initialBandwidthTraffic.getEndTime(), + divisor + ); + + // 获取IPv6流量图表数据 + Map ipv6Result = EchartsMoreDataUtils.buildMultiInterfaceEchartsDataWithTotal( + interfaceDataMap, + InitialBandwidthTraffic::getCreateTime, + info -> info != null && info.getIpv6InSpeed() != null ? + new BigDecimal(info.getIpv6InSpeed()) : null, + info -> info != null && info.getIpv6OutSpeed() != null ? + new BigDecimal(info.getIpv6OutSpeed()) : null, + initialBandwidthTraffic.getStartTime(), + initialBandwidthTraffic.getEndTime(), + divisor + ); + + // 合并IPv4的yData + Map ipv4YData = (Map) ipv4Result.get("yData"); + for (Map.Entry entry : ipv4YData.entrySet()) { + String key = entry.getKey(); + Object value = entry.getValue(); + + // 重命名key,添加IPv4后缀 + String newKey = key; + if (key.endsWith("netInTraffic")) { + newKey = key.replace("netInTraffic", "netInTrafficIPv4"); + } else if (key.endsWith("netOutTraffic")) { + newKey = key.replace("netOutTraffic", "netOutTrafficIPv4"); + } + yData.put(newKey, value); + } + + // 合并IPv6的yData + Map ipv6YData = (Map) ipv6Result.get("yData"); + for (Map.Entry entry : ipv6YData.entrySet()) { + String key = entry.getKey(); + Object value = entry.getValue(); + + // 重命名key,添加IPv6后缀 + String newKey = key; + if (key.endsWith("netInTraffic")) { + newKey = key.replace("netInTraffic", "netInTrafficIPv6"); + } else if (key.endsWith("netOutTraffic")) { + newKey = key.replace("netOutTraffic", "netOutTrafficIPv6"); + } + yData.put(newKey, value); + } + + resultMap.put("yData", yData); + } + if(!showRealation.isEmpty() && hasSubInterface){ showRealation.put("totalNetInTraffic", name+"总入站流量"); showRealation.put("totalNetOutTraffic", name+"总出站流量"); } + Map sortedShowRealation = EchartsMoreDataUtils.sortInterfaceMap(showRealation, name, hasSubInterface); resultMap.put("showRealation", sortedShowRealation); return resultMap; diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmNetworkInterfaceChildServiceImpl.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmNetworkInterfaceChildServiceImpl.java index eb8c321..eb1965b 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmNetworkInterfaceChildServiceImpl.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmNetworkInterfaceChildServiceImpl.java @@ -1,12 +1,13 @@ package com.tongran.rocketmq.service.impl; -import java.util.List; import com.tongran.common.core.utils.DateUtils; +import com.tongran.rocketmq.domain.RmNetworkInterfaceChild; +import com.tongran.rocketmq.mapper.RmNetworkInterfaceChildMapper; +import com.tongran.rocketmq.service.IRmNetworkInterfaceChildService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.tongran.rocketmq.mapper.RmNetworkInterfaceChildMapper; -import com.tongran.rocketmq.domain.RmNetworkInterfaceChild; -import com.tongran.rocketmq.service.IRmNetworkInterfaceChildService; + +import java.util.List; /** * 客户端网络接口子接口信息Service业务层处理 @@ -93,4 +94,9 @@ public class RmNetworkInterfaceChildServiceImpl implements IRmNetworkInterfaceCh { return rmNetworkInterfaceChildMapper.deleteRmNetworkInterfaceChildById(id); } + + @Override + public void deleteRmNetworkInterfaceChildByClientId(String clientId) { + rmNetworkInterfaceChildMapper.deleteRmNetworkInterfaceChildByClientId(clientId); + } } 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 index 0664e83..f22d7ea 100644 --- 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 @@ -49,7 +49,7 @@ public class RmPppoeConfigMainServiceImpl implements IRmPppoeConfigMainService RmPppoeConfigMain rmPppoeConfigMain = rmPppoeConfigMainMapper.selectRmPppoeConfigMainById(id); // 查询子表信息 RmPppoeConfigSub rmPppoeConfigSub = new RmPppoeConfigSub(); - rmPppoeConfigSub.setMainId(id); + rmPppoeConfigSub.setClientId(rmPppoeConfigMain.getClientId()); List subList = rmPppoeConfigSubMapper.selectRmPppoeConfigSubList(rmPppoeConfigSub); rmPppoeConfigMain.setSubList(subList); return rmPppoeConfigMain; @@ -81,12 +81,12 @@ public class RmPppoeConfigMainServiceImpl implements IRmPppoeConfigMainService List subList = rmPppoeConfigMain.getSubList(); if(subList != null && !subList.isEmpty()){ for (RmPppoeConfigSub rmPppoeConfigSub : subList) { - rmPppoeConfigSub.setMainId(rmPppoeConfigMain.getId()); + rmPppoeConfigSub.setClientId(rmPppoeConfigMain.getClientId()); rmPppoeConfigSub.setCreateTime(DateUtils.getNowDate()); rmPppoeConfigSub.setUpdateTime(DateUtils.getNowDate()); } // 删除子表信息 - rmPppoeConfigSubMapper.deleteRmPppoeConfigSubByMainId(rmPppoeConfigMain.getId()); + rmPppoeConfigSubMapper.deleteRmPppoeConfigSubByClientId(rmPppoeConfigMain.getClientId()); // 批量新增 rmPppoeConfigSubMapper.batchInsertRmPppoeConfigSub(subList); } 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 index 17adae1..4522b08 100644 --- 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 @@ -1,12 +1,13 @@ package com.tongran.rocketmq.service.impl; -import java.util.List; import com.tongran.common.core.utils.DateUtils; +import com.tongran.rocketmq.domain.RmPppoeConfigSub; +import com.tongran.rocketmq.mapper.RmPppoeConfigSubMapper; +import com.tongran.rocketmq.service.IRmPppoeConfigSubService; 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; + +import java.util.List; /** * PPPoE配置子表Service业务层处理 @@ -93,4 +94,9 @@ public class RmPppoeConfigSubServiceImpl implements IRmPppoeConfigSubService { return rmPppoeConfigSubMapper.deleteRmPppoeConfigSubById(id); } + + @Override + public int updateRmPppoeConfigSubByVlan(RmPppoeConfigSub rmPppoeConfigSub) { + return rmPppoeConfigSubMapper.updateRmPppoeConfigSubByVlan(rmPppoeConfigSub); + } } diff --git a/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceChildMapper.xml b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceChildMapper.xml index f267b41..46944dc 100644 --- a/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceChildMapper.xml +++ b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceChildMapper.xml @@ -146,4 +146,7 @@ #{id} + + delete from rm_network_interface_child where client_id = #{clientId} + \ No newline at end of file diff --git a/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigMainMapper.xml b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigMainMapper.xml index 7c02899..4b60b6a 100644 --- a/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigMainMapper.xml +++ b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigMainMapper.xml @@ -58,13 +58,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{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), - + pppoe_enabled = CASE + WHEN pppoe_enabled = VALUES(pppoe_enabled) THEN pppoe_enabled + WHEN VALUES(pppoe_enabled) IS NULL THEN pppoe_enabled + ELSE VALUES(pppoe_enabled) + END, + pppoe_config_mode = CASE + WHEN pppoe_config_mode = VALUES(pppoe_config_mode) THEN pppoe_config_mode + WHEN VALUES(pppoe_config_mode) IS NULL THEN pppoe_config_mode + ELSE VALUES(pppoe_config_mode) + END, + pppoe_interface = CASE + WHEN pppoe_interface = VALUES(pppoe_interface) THEN pppoe_interface + WHEN VALUES(pppoe_interface) IS NULL THEN pppoe_interface + ELSE VALUES(pppoe_interface) + END diff --git a/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigSubMapper.xml b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigSubMapper.xml index 9fc368d..e2e00a0 100644 --- a/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigSubMapper.xml +++ b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigSubMapper.xml @@ -3,10 +3,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + - + @@ -16,24 +16,46 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + - 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 + select id, client_id, serial_number, vlan_id, ipv4_address, ipv4_mask_bits, ipv4_gateway, create_time, update_time, create_by, update_by, status from rm_pppoe_config_sub - +