diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserOrgServiceApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserOrgServiceApi.java index 8060be407..9d30b5c66 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserOrgServiceApi.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysUserOrgServiceApi.java @@ -3,6 +3,7 @@ package cn.stylefeng.roses.kernel.sys.api; import cn.stylefeng.roses.kernel.sys.api.pojo.user.UserOrgDTO; import java.util.List; +import java.util.Set; /** * 单独编写用户和组织机构关系的Api @@ -67,4 +68,13 @@ public interface SysUserOrgServiceApi { */ Long getUserOrgPositionId(Long userId, Long orgId); + /** + * 查询某些组织机构下,有哪些用户 + * + * @param orgIdList 组织机构id集合 + * @author fengshuonan + * @since 2023/7/19 0:18 + */ + Set getOrgUserIdList(Set orgIdList); + } diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/service/impl/HrOrganizationServiceImpl.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/service/impl/HrOrganizationServiceImpl.java index 0cb1354e4..eb695299d 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/service/impl/HrOrganizationServiceImpl.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/org/service/impl/HrOrganizationServiceImpl.java @@ -19,7 +19,6 @@ import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; import cn.stylefeng.roses.kernel.rule.tree.factory.DefaultTreeBuildFactory; import cn.stylefeng.roses.kernel.sys.api.callback.RemoveOrgCallbackApi; import cn.stylefeng.roses.kernel.sys.api.constants.SysConstants; -import cn.stylefeng.roses.kernel.sys.api.context.DataScopeContext; import cn.stylefeng.roses.kernel.sys.api.enums.org.DetectModeEnum; import cn.stylefeng.roses.kernel.sys.api.enums.org.OrgTypeEnum; import cn.stylefeng.roses.kernel.sys.api.exception.enums.OrgExceptionEnum; @@ -531,12 +530,6 @@ public class HrOrganizationServiceImpl extends ServiceImpl dataScope = DataScopeContext.me().currentUserOrgScopeList(); - if (ObjectUtil.isNotEmpty(dataScope)) { - queryWrapper.in(HrOrganization::getOrgId, dataScope); - } - // 根据排序正序查询 queryWrapper.orderByAsc(HrOrganization::getOrgSort); @@ -599,12 +592,6 @@ public class HrOrganizationServiceImpl extends ServiceImpl dataScope = DataScopeContext.me().currentUserOrgScopeList(); - if (ObjectUtil.isNotEmpty(dataScope)) { - queryWrapper.in(HrOrganization::getOrgId, dataScope); - } - return queryWrapper; } diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserOrgServiceImpl.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserOrgServiceImpl.java index 5d0f32567..7fefbfd42 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserOrgServiceImpl.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserOrgServiceImpl.java @@ -250,6 +250,15 @@ public class SysUserOrgServiceImpl extends ServiceImpl getOrgUserIdList(Set orgIdList) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(SysUserOrg::getOrgId, orgIdList); + queryWrapper.select(SysUserOrg::getUserId); + List list = this.list(queryWrapper); + return list.stream().map(SysUserOrg::getUserId).collect(Collectors.toSet()); + } + /** * 获取信息 * diff --git a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java index ec87c50e4..3cab7bb43 100644 --- a/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java +++ b/kernel-s-system/system-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java @@ -18,6 +18,7 @@ import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; import cn.stylefeng.roses.kernel.sys.api.callback.RemoveUserCallbackApi; import cn.stylefeng.roses.kernel.sys.api.constants.SysConstants; +import cn.stylefeng.roses.kernel.sys.api.context.DataScopeContext; import cn.stylefeng.roses.kernel.sys.api.enums.user.UserStatusEnum; import cn.stylefeng.roses.kernel.sys.api.exception.enums.UserExceptionEnum; import cn.stylefeng.roses.kernel.sys.api.expander.SysConfigExpander; @@ -541,6 +542,13 @@ public class SysUserServiceImpl extends ServiceImpl impl } } + // 数据权限范围控制 + Set dataScope = DataScopeContext.me().currentUserOrgScopeList(); + if (ObjectUtil.isNotEmpty(dataScope)) { + Set userIdList = this.sysUserOrgService.getOrgUserIdList(dataScope); + queryWrapper.in(SysUser::getUserId, userIdList); + } + // 按用户排序字段排序 queryWrapper.orderByAsc(SysUser::getUserSort);