Merge branch 'feature/REQ-2227' of https://axzsource.com/universal/infrastructure/backend/tyr into feature/REQ-2227
This commit is contained in:
commit
f9b3d9fc39
@ -1,6 +1,5 @@
|
||||
package cn.axzo.tyr.server.service.impl;
|
||||
|
||||
import cn.axzo.basics.auth.vo.resp.SaasFeatureTreeResp;
|
||||
import cn.axzo.basics.common.BeanMapper;
|
||||
import cn.axzo.basics.common.util.StopWatchUtil;
|
||||
import cn.axzo.basics.common.util.TreeUtil;
|
||||
@ -9,9 +8,11 @@ import cn.axzo.pokonyan.config.redis.RedisClient;
|
||||
import cn.axzo.tyr.client.common.enums.FeatureResourceAuthType;
|
||||
import cn.axzo.tyr.client.common.enums.FeatureResourceStatus;
|
||||
import cn.axzo.tyr.client.common.enums.FeatureResourceType;
|
||||
import cn.axzo.tyr.client.model.req.CommonDictQueryReq;
|
||||
import cn.axzo.tyr.client.model.req.FeatureComponentSaveReq;
|
||||
import cn.axzo.tyr.client.model.req.FeatureResourceTreeSaveReq;
|
||||
import cn.axzo.tyr.client.model.req.GetFeatureResourceTreeReq;
|
||||
import cn.axzo.tyr.client.model.res.CommonDictResp;
|
||||
import cn.axzo.tyr.client.model.res.FeatureResourceDTO;
|
||||
import cn.axzo.tyr.client.model.res.FeatureResourceTreeNode;
|
||||
import cn.axzo.tyr.server.model.ResourcePermission;
|
||||
@ -19,6 +20,7 @@ import cn.axzo.tyr.server.model.ResourcePermissionQueryDTO;
|
||||
import cn.axzo.tyr.server.model.convert.SaasFeatureResourceConvert;
|
||||
import cn.axzo.tyr.server.repository.dao.SaasFeatureResourceDao;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasFeatureResource;
|
||||
import cn.axzo.tyr.server.service.SaasCommonDictService;
|
||||
import cn.axzo.tyr.server.service.SaasFeatureResourceService;
|
||||
import cn.azxo.framework.common.utils.StringUtils;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
@ -28,9 +30,7 @@ import com.google.common.collect.Lists;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.cache.annotation.CacheEvict;
|
||||
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@ -40,6 +40,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -56,19 +57,14 @@ import static cn.axzo.tyr.server.common.constants.CacheConstant.KEY_AUTH_FREE;
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@RefreshScope
|
||||
public class SaasFeatureResourceServiceImpl implements SaasFeatureResourceService {
|
||||
|
||||
/** 功能资源树根节点所有端配置的scope **/
|
||||
private static final String RESOURCE_TERMINAL_SCOPE = "resource.terminal";
|
||||
|
||||
private final SaasFeatureResourceDao featureResourceDao;
|
||||
private final SaasFeatureResourceCacheService saasFeatureResourceCacheService;
|
||||
|
||||
/**
|
||||
* 功能资源树根节点配置
|
||||
* key < - > TerminalInfo定义的terminal
|
||||
* value < - > 端描述
|
||||
*/
|
||||
@Value("#{${featureResourceTreeRootNodeMap:{'NT_CMS_WEB_GENERAL':'CMS端', 'NT_OMS_WEB':'OMS端'}}}")
|
||||
private Map<String, String> treeRootNodeMap;
|
||||
private final SaasCommonDictService saasCommonDictService;
|
||||
|
||||
@Override
|
||||
public List<SaasFeatureResource> listNavByIds(List<Long> featureIds) {
|
||||
@ -129,8 +125,15 @@ public class SaasFeatureResourceServiceImpl implements SaasFeatureResourceServic
|
||||
|
||||
@Override
|
||||
public List<FeatureResourceTreeNode> getTree(GetFeatureResourceTreeReq req) {
|
||||
List<FeatureResourceTreeNode> rootNodes = treeRootNodeMap.entrySet().stream().map(e -> FeatureResourceTreeNode.builder()
|
||||
.id(0L).terminal(e.getKey()).featureName(e.getValue()).children(Lists.newArrayList()).build()).collect(Collectors.toList());
|
||||
List<CommonDictResp> commonDictResponses = saasCommonDictService.query(CommonDictQueryReq.builder().scope(RESOURCE_TERMINAL_SCOPE).build());
|
||||
if (CollectionUtils.isEmpty(commonDictResponses)) {
|
||||
log.error("not config resource terminal in saas_common_dict table");
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
final AtomicLong rootIdIndex = new AtomicLong(0L);
|
||||
List<FeatureResourceTreeNode> rootNodes = commonDictResponses.stream().map(e -> FeatureResourceTreeNode.builder()
|
||||
.id(rootIdIndex.decrementAndGet()).terminal(e.getDictCode()).featureName(e.getDictValue()).children(Lists.newArrayList()).build()).collect(Collectors.toList());
|
||||
|
||||
StopWatchUtil watch = StopWatchUtil.createStarted("feature-resource-tree");
|
||||
watch.start("dbQuery");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user