diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/FeatureResourceApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/FeatureResourceApi.java index 6e968ccb..a9b6eaf1 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/FeatureResourceApi.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/FeatureResourceApi.java @@ -58,4 +58,8 @@ public interface FeatureResourceApi { /** 菜单详情 **/ @PostMapping("/api/featureResource/detail") ApiResult detail(@RequestParam Long featureId); + + /** 从基准环境查询功能资源树 **/ + @PostMapping("/api/featureResource/getBaseTree") + ApiResult> getBaseTree(@RequestBody @Valid GetFeatureResourceTreeReq req); } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/FeatureResourceController.java b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/FeatureResourceController.java index 211c74b8..f987f67e 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/FeatureResourceController.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/controller/permission/FeatureResourceController.java @@ -84,4 +84,9 @@ public class FeatureResourceController implements FeatureResourceApi { public ApiResult> getTree(GetFeatureResourceTreeReq req) { return ApiResult.ok(featureResourceService.getTree(req)); } + + @Override + public ApiResult> getBaseTree(GetFeatureResourceTreeReq req) { + return ApiResult.ok(featureResourceSyncService.getBaseTree(req)); + } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/inner/feign/BaseFeatureResourceApi.java b/tyr-server/src/main/java/cn/axzo/tyr/server/inner/feign/BaseFeatureResourceApi.java index 19ad14fb..1034f957 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/inner/feign/BaseFeatureResourceApi.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/inner/feign/BaseFeatureResourceApi.java @@ -1,11 +1,16 @@ package cn.axzo.tyr.server.inner.feign; import cn.axzo.framework.domain.web.result.ApiResult; +import cn.axzo.tyr.client.model.req.GetFeatureResourceTreeReq; import cn.axzo.tyr.client.model.res.FeatureResourceTreeNode; +import cn.axzo.tyr.client.model.res.NavTreeResp; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; +import javax.validation.Valid; import java.util.List; /** @@ -15,12 +20,16 @@ import java.util.List; * @author: ZhanSiHu * @date: 2024/4/3 10:25 */ -//@FeignClient(name = "tyr", url = "${axzo.service.base.tyr:https://pre-api.axzo.cn/tyr}") -@FeignClient(name = "tyr", url = "${axzo.service.base.tyr:http://127.0.0.1:8080}") +@FeignClient(name = "tyr", url = "${axzo.service.base.tyr:https://pre-api.axzo.cn/tyr}") public interface BaseFeatureResourceApi { /** 从基准环境同步接口功能资源 - 批量限制20条 **/ - @PostMapping("/api/featureResource/sync/getTreeById") + @GetMapping("/api/featureResource/sync/getTreeById") ApiResult> getSyncTreeById(@RequestParam Long id); + + /** 从基准环境拉取资源树 **/ + @PostMapping("/api/featureResource/getTree") + ApiResult> getTree(@RequestBody @Valid GetFeatureResourceTreeReq req); + } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/FeatureResourceSyncService.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/FeatureResourceSyncService.java index 94da849f..875cb911 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/FeatureResourceSyncService.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/FeatureResourceSyncService.java @@ -1,5 +1,6 @@ package cn.axzo.tyr.server.service; +import cn.axzo.tyr.client.model.req.GetFeatureResourceTreeReq; import cn.axzo.tyr.client.model.req.ResourceSyncReq; import cn.axzo.tyr.client.model.res.FeatureResourceTreeNode; @@ -17,4 +18,6 @@ public interface FeatureResourceSyncService { List getSyncTreeById(Long id); void syncFromBase(ResourceSyncReq req); + + List getBaseTree(GetFeatureResourceTreeReq req); } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/FeatureResourceSyncServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/FeatureResourceSyncServiceImpl.java index c2b2314d..5ac579f2 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/FeatureResourceSyncServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/FeatureResourceSyncServiceImpl.java @@ -3,6 +3,7 @@ package cn.axzo.tyr.server.service.impl; import cn.axzo.basics.common.BeanMapper; import cn.axzo.basics.common.util.TreeUtil; import cn.axzo.tyr.client.common.enums.FeatureResourceType; +import cn.axzo.tyr.client.model.req.GetFeatureResourceTreeReq; import cn.axzo.tyr.client.model.req.ResourceSyncReq; import cn.axzo.tyr.client.model.res.FeatureResourceTreeNode; import cn.axzo.tyr.server.inner.feign.BaseFeatureResourceApi; @@ -75,6 +76,12 @@ public class FeatureResourceSyncServiceImpl implements FeatureResourceSyncServic } } + @Override + public List getBaseTree(GetFeatureResourceTreeReq req) { + return RpcInternalUtil.rpcProcessor(() -> baseFeatureResourceApi.getTree(req), + "get resource tree from base env", req).getData(); + } + private void doSyncFromBase(List syncList, Map codeCache, Long operatorId) { for (FeatureResourceTreeNode treeNode : syncList) {