From c96c780d9445efdf6369cdba869cb41b8bd13259 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=98=86=E9=B9=8F?= Date: Wed, 10 Apr 2024 17:05:28 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(2227-featureResource):=20=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E5=8A=9F=E8=83=BD=E8=B5=84=E6=BA=90=E6=A0=91=E6=A0=B9?= =?UTF-8?q?=E8=8A=82=E7=82=B9id=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SaasFeatureResourceServiceImpl.java | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasFeatureResourceServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasFeatureResourceServiceImpl.java index 47b00aa1..c1962616 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasFeatureResourceServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasFeatureResourceServiceImpl.java @@ -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,7 +30,6 @@ 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; @@ -40,6 +41,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; @@ -59,16 +61,12 @@ import static cn.axzo.tyr.server.common.constants.CacheConstant.KEY_AUTH_FREE; @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 treeRootNodeMap; + private final SaasCommonDictService saasCommonDictService; @Override public List listNavByIds(List featureIds) { @@ -129,8 +127,15 @@ public class SaasFeatureResourceServiceImpl implements SaasFeatureResourceServic @Override public List getTree(GetFeatureResourceTreeReq req) { - List rootNodes = treeRootNodeMap.entrySet().stream().map(e -> FeatureResourceTreeNode.builder() - .id(0L).terminal(e.getKey()).featureName(e.getValue()).children(Lists.newArrayList()).build()).collect(Collectors.toList()); + List 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 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"); From 558c137f8299bb1ff05578ca78efda15d0015c17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=98=86=E9=B9=8F?= Date: Wed, 10 Apr 2024 17:36:02 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat(2227-featureResource):=20=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E5=8A=9F=E8=83=BD=E8=B5=84=E6=BA=90=E6=A0=91=E6=A0=B9?= =?UTF-8?q?=E8=8A=82=E7=82=B9id=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tyr/server/service/impl/SaasFeatureResourceServiceImpl.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasFeatureResourceServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasFeatureResourceServiceImpl.java index c1962616..46a125b4 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasFeatureResourceServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasFeatureResourceServiceImpl.java @@ -31,7 +31,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; 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; @@ -58,7 +57,6 @@ import static cn.axzo.tyr.server.common.constants.CacheConstant.KEY_AUTH_FREE; @Slf4j @Service @RequiredArgsConstructor -@RefreshScope public class SaasFeatureResourceServiceImpl implements SaasFeatureResourceService { /** 功能资源树根节点所有端配置的scope **/