From 77d82a913ebf88a324c31d56791fb8d63b7a474f Mon Sep 17 00:00:00 2001 From: wtt <30461027+wtt40122@users.noreply.github.com> Date: Wed, 11 Sep 2024 15:41:17 +0800 Subject: [PATCH] fix: the issue of storing pagination list queries is fixed (#455) --- .../MilogMiddlewareConfigServiceImpl.java | 47 +++++++++---------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/ozhera-log/log-manager/src/main/java/com/xiaomi/mone/log/manager/service/impl/MilogMiddlewareConfigServiceImpl.java b/ozhera-log/log-manager/src/main/java/com/xiaomi/mone/log/manager/service/impl/MilogMiddlewareConfigServiceImpl.java index 85080e61..167ef627 100644 --- a/ozhera-log/log-manager/src/main/java/com/xiaomi/mone/log/manager/service/impl/MilogMiddlewareConfigServiceImpl.java +++ b/ozhera-log/log-manager/src/main/java/com/xiaomi/mone/log/manager/service/impl/MilogMiddlewareConfigServiceImpl.java @@ -16,11 +16,11 @@ package com.xiaomi.mone.log.manager.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.PageDto; import com.google.common.collect.Lists; import com.xiaomi.mone.log.api.enums.*; import com.xiaomi.mone.log.api.model.bo.MiLogResource; @@ -71,7 +71,7 @@ import java.util.stream.Collectors; import static com.xiaomi.mone.log.common.Constant.*; -import static com.xiaomi.mone.log.manager.common.ManagerConstant.*; +import static com.xiaomi.mone.log.manager.common.ManagerConstant.RESOURCE_NOT_INITIALIZED_MESSAGE; /** * @author wtt @@ -220,7 +220,6 @@ public PageInfo queryResourceWithTab(ResourcePage resourcePage) { Long esResourceTotal = queryStorageResource(pageList, resourcePage); - pageList = resourceExtensionService.userShowAuthority(pageList); List resourceInfos = pageList.stream().map(MilogMiddlewareConfig::configToResourceVO).collect(Collectors.toList()); return new PageInfo(resourcePage.getPage(), resourcePage.getPageSize(), mqResourceTotal + esResourceTotal.intValue(), resourceInfos); @@ -249,14 +248,14 @@ private Cnd buildMqQueryCnd(ResourcePage resourcePage) { private Long queryStorageResource(List milogMiddlewareConfigs, ResourcePage resourcePage) { Integer count = 0; if (Objects.equals(ResourceEnum.STORAGE.getCode(), resourcePage.getResourceCode())) { - PageDto page = new PageDto(resourcePage.getPage(), resourcePage.getPageSize()); - Wrapper queryWrapper = generateEsQueryWrapper(resourcePage); - PageDto esClusterPage = milogEsClusterMapper.selectPage(page, queryWrapper); - List configEsList = esClusterPage.getRecords().stream().map(MilogEsClusterDO::miLogEsResourceToConfig).toList(); - milogMiddlewareConfigs.addAll(configEsList); + List clusterDOList = milogEsClusterMapper.selectList(generateEsQueryWrapper(resourcePage)); + List configEsList = clusterDOList.stream().map(MilogEsClusterDO::miLogEsResourceToConfig).toList(); + configEsList = resourceExtensionService.userShowAuthority(configEsList); + List pageList = CollectionUtil.page(resourcePage.getPage() - 1, resourcePage.getPageSize(), configEsList); + milogMiddlewareConfigs.addAll(pageList); - count = milogEsClusterMapper.selectCount(queryWrapper); + count = configEsList.size(); } return count.longValue(); } @@ -311,10 +310,10 @@ private void checkEsAddressPortOperate(MiLogResource miLogResource) { if (index == -1) { serviceUrl = String.format("%s:%s", serviceUrl, "80"); } else { - String portStr = serviceUrl.substring(index + 1); - if (StringUtils.isBlank(portStr)) { - serviceUrl = String.format("%s%s", serviceUrl, "80"); - } + String portStr = serviceUrl.substring(index + 1); + if (StringUtils.isBlank(portStr)) { + serviceUrl = String.format("%s%s", serviceUrl, "80"); + } } miLogResource.setServiceUrl(serviceUrl); } @@ -346,9 +345,7 @@ private void synchronousMqResourceLabel(Long id) { if (CollectionUtils.isEmpty(milogMiddlewareConfigs)) { milogMiddlewareConfigs = milogMiddlewareConfigDao.queryAll(); } - milogMiddlewareConfigs.forEach(milogMiddlewareConfig -> { - updateMqResourceLabel(milogMiddlewareConfig); - }); + milogMiddlewareConfigs.forEach(this::updateMqResourceLabel); } private void synchronousEsResourceLabel(Long id) { @@ -359,9 +356,7 @@ private void synchronousEsResourceLabel(Long id) { if (CollectionUtils.isEmpty(esClusterDOS)) { esClusterDOS = milogEsClusterMapper.selectList(new QueryWrapper<>()); } - esClusterDOS.forEach(clusterDO -> { - updateEsResourceLabel(clusterDO); - }); + esClusterDOS.forEach(this::updateEsResourceLabel); } /** @@ -524,7 +519,7 @@ private void updateMqResourceLabel(MilogMiddlewareConfig milogMiddlewareConfig) if (Constant.DEFAULT_OPERATOR.equals(milogMiddlewareConfig.getUpdater())) { return; } - List newLabels = generateResourceLabels(milogMiddlewareConfig.getUpdater(), labels); + List newLabels = mergeUserAndResourceLabels(milogMiddlewareConfig.getCreator(), milogMiddlewareConfig.getUpdater(), labels); milogMiddlewareConfig.setLabels(newLabels); milogMiddlewareConfigDao.updateMiddlewareConfig(milogMiddlewareConfig); } @@ -534,18 +529,18 @@ private void updateEsResourceLabel(MilogEsClusterDO clusterDO) { if (StringUtils.isBlank(clusterDO.getUpdater()) && StringUtils.isBlank(clusterDO.getCreator())) { return; } - List newLabels = generateResourceLabels(StringUtils.isBlank(clusterDO.getUpdater()) ? clusterDO.getCreator() : clusterDO.getUpdater(), labels); + List newLabels = mergeUserAndResourceLabels(clusterDO.getCreator(), StringUtils.isBlank(clusterDO.getUpdater()) ? clusterDO.getCreator() : clusterDO.getUpdater(), labels); clusterDO.setLabels(newLabels); milogEsClusterMapper.updateById(clusterDO); } - private List generateResourceLabels(String updaterUId, List existLabels) { + private List mergeUserAndResourceLabels(String creatorUId, String updaterUId, List existLabels) { List resourceDeptLabels = resourceExtensionService.generateResourceLabels(updaterUId); - if (CollectionUtils.isNotEmpty(existLabels)) { - List userLabelList = existLabels.stream().filter(label -> !label.startsWith(DEPT_LEVEL_PREFIX) || !label.contains(DEPT_NAME_PREFIX)).collect(Collectors.toList()); - resourceDeptLabels.addAll(userLabelList); + if (!Objects.equals(creatorUId, updaterUId) && + CollectionUtils.isNotEmpty(existLabels) && !CollUtil.containsAll(existLabels, resourceDeptLabels)) { + existLabels.addAll(resourceDeptLabels); } - return resourceDeptLabels; + return existLabels; } /**