private void updateSubTags(final TagDTO tagDTO) {
        List<TagDO> allData = tagMapper.selectByQuery(new TagQuery());
        Map<String, TagDO> allDataMap = allData.stream().collect(
                Collectors.toMap(BaseDO::getId, Function.identity(), (a, b) -> b, ConcurrentHashMap::new));
        TagDO update = TagDO.buildTagDO(tagDTO);
        allDataMap.put(update.getId(), update);
        Map<String, List<String>> relationMap = new ConcurrentHashMap<>();
        allDataMap.keySet().stream().map(allDataMap::get).forEach(tagDO -> {
            if (CollectionUtils.isEmpty(relationMap.get(tagDO.getParentTagId()))) {
                relationMap.put(tagDO.getParentTagId(), Lists.newArrayList(tagDO.getId()));
            } else {
                List<String> list = relationMap.get(tagDO.getParentTagId());
                list.add(tagDO.getId());
                relationMap.put(tagDO.getParentTagId(), list);
            }
        });
        recurseUpdateTag(allDataMap, relationMap, tagDTO.getId());
    }
update sub tags.

@param tagDTO tagDTO
shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/TagServiceImpl.java