feat(device): 添加设备创建时关联DNS服务器功能
- 在DeviceServiceImpl中注入DnsServerService依赖 - 设备创建流程中增加DNS服务器名称列表的处理逻辑 - 调用DnsServerService根据DNS名称列表获取对应ID列表 - 新增DnsServerService接口及实现类DnsServerServiceImpl - 实现根据单个或多个DNS名称查询对应服务器ID的方法 - 在ErrorCode中新增DNS相关错误码定义
This commit is contained in:
@@ -13,6 +13,7 @@ import cn.nopj.chaos_api.mapper.DeviceMapper;
|
||||
import cn.nopj.chaos_api.mapper.InterfaceAddressConfigMapper;
|
||||
import cn.nopj.chaos_api.mapper.NetworkInterfaceMapper;
|
||||
import cn.nopj.chaos_api.service.DeviceService;
|
||||
import cn.nopj.chaos_api.service.DnsServerService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -33,6 +34,8 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
|
||||
NetworkInterfaceMapper networkInterfaceMapper;
|
||||
@Autowired
|
||||
InterfaceAddressConfigMapper interfaceAddressConfigMapper;
|
||||
@Autowired
|
||||
DnsServerService dnsServerService;
|
||||
@Override
|
||||
@Transactional
|
||||
public DeviceResponse createDevice(CreateDeviceRequest createDeviceRequest) {
|
||||
@@ -71,6 +74,10 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
|
||||
iac.setIsDhcp(a.getIsDhcp());
|
||||
iac.setMtu(a.getMtu());
|
||||
interfaceAddressConfigMapper.insert(iac);
|
||||
|
||||
List<String> dnsServers = a.getDnsServers();
|
||||
List<Long> dnsServerIdListByNameList = dnsServerService.getDnsServerIdListByNameList(dnsServers);
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
package cn.nopj.chaos_api.service.impl;
|
||||
|
||||
import cn.nopj.chaos_api.common.constants.ErrorCode;
|
||||
import cn.nopj.chaos_api.common.exceotion.BizException;
|
||||
import cn.nopj.chaos_api.domain.entity.DnsServer;
|
||||
import cn.nopj.chaos_api.mapper.DnsServerMapper;
|
||||
import cn.nopj.chaos_api.service.DnsServerService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class DnsServerServiceImpl extends ServiceImpl<DnsServerMapper, DnsServer> implements DnsServerService {
|
||||
|
||||
@Override
|
||||
public Long getDnsServerIdByName(String dnsAddress) {
|
||||
|
||||
if (dnsAddress == null || dnsAddress.isEmpty()){
|
||||
throw new BizException(ErrorCode.DNS_NOT_FOUND);
|
||||
}
|
||||
DnsServer dnsServer = this.baseMapper.selectOne(new LambdaQueryWrapper<DnsServer>().eq(DnsServer::getName, dnsAddress));
|
||||
|
||||
if (dnsServer == null ){
|
||||
throw new BizException(ErrorCode.DNS_NOT_DEFINED);
|
||||
}
|
||||
|
||||
return dnsServer.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Long> getDnsServerIdListByNameList(List<String> nameList) {
|
||||
return nameList.stream().map(this::getDnsServerIdByName).toList();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user