public ConfigImportResult importData()

in shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/DiscoveryServiceImpl.java [398:452]


    public ConfigImportResult importData(final List<DiscoveryDTO> discoveryList) {
        if (CollectionUtils.isEmpty(discoveryList)) {
            return ConfigImportResult.success();
        }

        Map<String, List<DiscoveryDO>> pluginDiscoveryMap = discoveryMapper
                .selectAll()
                .stream()
                .collect(Collectors.groupingBy(DiscoveryDO::getPluginName));
        int successCount = 0;
        StringBuilder errorMsgBuilder = new StringBuilder();
        for (DiscoveryDTO discoveryDTO : discoveryList) {
            String pluginName = discoveryDTO.getPluginName();
            String discoveryName = discoveryDTO.getName();
            Set<String> existDiscoveryNameSet = pluginDiscoveryMap
                    .getOrDefault(pluginName, Lists.newArrayList())
                    .stream()
                    .map(DiscoveryDO::getName)
                    .collect(Collectors.toSet());
            if (existDiscoveryNameSet.contains(discoveryName)) {
                errorMsgBuilder
                        .append(discoveryName)
                        .append(",");
                continue;
            }
            String discoveryId = UUIDUtils.getInstance().generateShortUuid();
            discoveryDTO.setId(discoveryId);
            create(discoveryDTO);
            successCount++;

            // import discovery handler data
            if (Objects.nonNull(discoveryDTO.getDiscoveryHandler())) {
                DiscoveryHandlerDO discoveryHandlerDO = DiscoveryTransfer
                        .INSTANCE
                        .mapToDO(discoveryDTO.getDiscoveryHandler());
                discoveryHandlerDO.setDiscoveryId(discoveryId);
                discoveryHandlerMapper.insertSelective(discoveryHandlerDO);
            }

            // import discovery rel data
            if (Objects.nonNull(discoveryDTO.getDiscoveryRel())) {
                DiscoveryRelDO discoveryRelDO = DiscoveryTransfer
                        .INSTANCE
                        .mapToDO(discoveryDTO.getDiscoveryRel());
                discoveryRelMapper.insertSelective(discoveryRelDO);
            }
        }

        if (StringUtils.isNotEmpty(errorMsgBuilder)) {
            errorMsgBuilder.setLength(errorMsgBuilder.length() - 1);
            return ConfigImportResult
                    .fail(successCount, "import fail discovery: " + errorMsgBuilder);
        }
        return ConfigImportResult.success(successCount);
    }