diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/ResourceServiceApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/ResourceServiceApi.java index e07341af3..436d48f0a 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/ResourceServiceApi.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/ResourceServiceApi.java @@ -27,6 +27,8 @@ package cn.stylefeng.roses.kernel.sys.api; import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.ResourceDefinition; import cn.stylefeng.roses.kernel.scanner.api.pojo.resource.ResourceUrlParam; +import java.util.Set; + /** * 资源服务相关接口 * @@ -47,4 +49,16 @@ public interface ResourceServiceApi { */ ResourceDefinition getResourceByUrl(ResourceUrlParam resourceUrlReq); + /** + * 获取资源的url列表,根据资源code集合查询 + *

+ * 一般用在api认证模块,获取api客户端的url范围 + * + * @param resourceCodes 资源编码集合 + * @return 资源url列表 + * @author fengshuonan + * @since 2020/11/29 19:49 + */ + Set getResourceUrlsListByCodes(Set resourceCodes); + } diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/resource/service/impl/SysResourceServiceImpl.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/resource/service/impl/SysResourceServiceImpl.java index 561afdf06..07cbb22ff 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/resource/service/impl/SysResourceServiceImpl.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/resource/service/impl/SysResourceServiceImpl.java @@ -52,10 +52,8 @@ import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * 资源表 服务实现类 @@ -230,6 +228,22 @@ public class SysResourceServiceImpl extends ServiceImpl getResourceUrlsListByCodes(Set resourceCodes) { + if (resourceCodes == null || resourceCodes.isEmpty()) { + return new HashSet<>(); + } + + // 拼接in条件 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(SysResource::getResourceCode, resourceCodes); + queryWrapper.select(SysResource::getUrl); + + // 获取资源详情 + List list = this.list(queryWrapper); + return list.stream().map(SysResource::getUrl).collect(Collectors.toSet()); + } + /** * 创建wrapper *