feat(sj_1.0.0): 优化查询组配置
This commit is contained in:
parent
469e8061d2
commit
b980b6706d
@ -18,6 +18,8 @@ public class GroupConfigResponseVO {
|
|||||||
|
|
||||||
private String namespaceId;
|
private String namespaceId;
|
||||||
|
|
||||||
|
private String namespaceName;
|
||||||
|
|
||||||
private Integer groupStatus;
|
private Integer groupStatus;
|
||||||
|
|
||||||
private Integer groupPartition;
|
private Integer groupPartition;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.aizuda.snailjob.server.web.service.impl;
|
package com.aizuda.snailjob.server.web.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.HashUtil;
|
import cn.hutool.core.util.HashUtil;
|
||||||
import cn.hutool.core.util.ReUtil;
|
import cn.hutool.core.util.ReUtil;
|
||||||
@ -22,9 +23,11 @@ import com.aizuda.snailjob.template.datasource.access.AccessTemplate;
|
|||||||
import com.aizuda.snailjob.template.datasource.access.ConfigAccess;
|
import com.aizuda.snailjob.template.datasource.access.ConfigAccess;
|
||||||
import com.aizuda.snailjob.template.datasource.access.TaskAccess;
|
import com.aizuda.snailjob.template.datasource.access.TaskAccess;
|
||||||
import com.aizuda.snailjob.template.datasource.enums.DbTypeEnum;
|
import com.aizuda.snailjob.template.datasource.enums.DbTypeEnum;
|
||||||
|
import com.aizuda.snailjob.template.datasource.persistence.mapper.NamespaceMapper;
|
||||||
import com.aizuda.snailjob.template.datasource.persistence.mapper.SequenceAllocMapper;
|
import com.aizuda.snailjob.template.datasource.persistence.mapper.SequenceAllocMapper;
|
||||||
import com.aizuda.snailjob.template.datasource.persistence.mapper.ServerNodeMapper;
|
import com.aizuda.snailjob.template.datasource.persistence.mapper.ServerNodeMapper;
|
||||||
import com.aizuda.snailjob.template.datasource.persistence.po.GroupConfig;
|
import com.aizuda.snailjob.template.datasource.persistence.po.GroupConfig;
|
||||||
|
import com.aizuda.snailjob.template.datasource.persistence.po.Namespace;
|
||||||
import com.aizuda.snailjob.template.datasource.persistence.po.RetryDeadLetter;
|
import com.aizuda.snailjob.template.datasource.persistence.po.RetryDeadLetter;
|
||||||
import com.aizuda.snailjob.template.datasource.persistence.po.RetryTask;
|
import com.aizuda.snailjob.template.datasource.persistence.po.RetryTask;
|
||||||
import com.aizuda.snailjob.template.datasource.persistence.po.SequenceAlloc;
|
import com.aizuda.snailjob.template.datasource.persistence.po.SequenceAlloc;
|
||||||
@ -37,6 +40,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.jdbc.BadSqlGrammarException;
|
import org.springframework.jdbc.BadSqlGrammarException;
|
||||||
@ -53,6 +57,7 @@ import java.sql.SQLException;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -65,23 +70,17 @@ import java.util.stream.Collectors;
|
|||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
public class GroupConfigServiceImpl implements GroupConfigService {
|
public class GroupConfigServiceImpl implements GroupConfigService {
|
||||||
|
|
||||||
@Autowired
|
private final ServerNodeMapper serverNodeMapper;
|
||||||
private ServerNodeMapper serverNodeMapper;
|
private final AccessTemplate accessTemplate;
|
||||||
@Autowired
|
private final SequenceAllocMapper sequenceAllocMapper;
|
||||||
private AccessTemplate accessTemplate;
|
|
||||||
@Autowired
|
|
||||||
private SequenceAllocMapper sequenceAllocMapper;
|
|
||||||
@Autowired
|
|
||||||
@Lazy
|
@Lazy
|
||||||
private ConfigVersionSyncHandler configVersionSyncHandler;
|
private final ConfigVersionSyncHandler configVersionSyncHandler;
|
||||||
@Autowired
|
private final SystemProperties systemProperties;
|
||||||
private SystemProperties systemProperties;
|
private final JdbcTemplate jdbcTemplate;
|
||||||
@Autowired
|
private final NamespaceMapper namespaceMapper;
|
||||||
private JdbcTemplate jdbcTemplate;
|
|
||||||
@Autowired
|
|
||||||
private MybatisPlusProperties mybatisPlusProperties;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
@ -315,16 +314,29 @@ public class GroupConfigServiceImpl implements GroupConfigService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<GroupConfigResponseVO> getAllGroupConfigList(final List<String> namespaceIds) {
|
public List<GroupConfigResponseVO> getAllGroupConfigList(final List<String> namespaceIds) {
|
||||||
if (CollectionUtils.isEmpty(namespaceIds)) {
|
|
||||||
return new ArrayList<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
ConfigAccess<GroupConfig> groupConfigAccess = accessTemplate.getGroupConfigAccess();
|
ConfigAccess<GroupConfig> groupConfigAccess = accessTemplate.getGroupConfigAccess();
|
||||||
|
|
||||||
List<GroupConfig> groupConfigs = groupConfigAccess.list(new LambdaQueryWrapper<GroupConfig>()
|
List<GroupConfig> groupConfigs = groupConfigAccess.list(new LambdaQueryWrapper<GroupConfig>()
|
||||||
.select(GroupConfig::getGroupName, GroupConfig::getNamespaceId)
|
.select(GroupConfig::getGroupName, GroupConfig::getNamespaceId)
|
||||||
.in(GroupConfig::getNamespaceId, namespaceIds));
|
.in(CollectionUtil.isNotEmpty(namespaceIds), GroupConfig::getNamespaceId, namespaceIds));
|
||||||
return GroupConfigResponseVOConverter.INSTANCE.toGroupConfigResponseVO(groupConfigs);
|
if (CollectionUtils.isEmpty(groupConfigs)) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Namespace> namespaces = namespaceMapper.selectList(new LambdaQueryWrapper<Namespace>()
|
||||||
|
.in(Namespace::getUniqueId, groupConfigs.stream().map(GroupConfig::getNamespaceId).collect(Collectors.toList())));
|
||||||
|
|
||||||
|
Map<String, String> namespaceMap = namespaces.stream()
|
||||||
|
.collect(Collectors.toMap(Namespace::getUniqueId, Namespace::getName));
|
||||||
|
|
||||||
|
List<GroupConfigResponseVO> groupConfigResponses = GroupConfigResponseVOConverter.INSTANCE.toGroupConfigResponseVO(
|
||||||
|
groupConfigs);
|
||||||
|
for (final GroupConfigResponseVO groupConfigResponseVO : groupConfigResponses) {
|
||||||
|
groupConfigResponseVO.setNamespaceName(namespaceMap.get(groupConfigResponseVO.getNamespaceId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
return groupConfigResponses;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user