mirror of https://gitee.com/stylefeng/roses
【8.0】【sys】更新用户列表接口增加数据范围控制
parent
657a0a854c
commit
ded1c7ec54
|
@ -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<Long> getOrgUserIdList(Set<Long> orgIdList);
|
||||
|
||||
}
|
||||
|
|
|
@ -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<HrOrganizationMapper,
|
|||
});
|
||||
}
|
||||
|
||||
// 更新数据范围的筛选条件
|
||||
Set<Long> 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<HrOrganizationMapper,
|
|||
queryWrapper.eq(HrOrganization::getOrgType, OrgTypeEnum.COMPANY.getCode());
|
||||
}
|
||||
|
||||
// 更新数据范围的筛选条件
|
||||
Set<Long> dataScope = DataScopeContext.me().currentUserOrgScopeList();
|
||||
if (ObjectUtil.isNotEmpty(dataScope)) {
|
||||
queryWrapper.in(HrOrganization::getOrgId, dataScope);
|
||||
}
|
||||
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
|
|
|
@ -250,6 +250,15 @@ public class SysUserOrgServiceImpl extends ServiceImpl<SysUserOrgMapper, SysUser
|
|||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<Long> getOrgUserIdList(Set<Long> orgIdList) {
|
||||
LambdaQueryWrapper<SysUserOrg> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(SysUserOrg::getOrgId, orgIdList);
|
||||
queryWrapper.select(SysUserOrg::getUserId);
|
||||
List<SysUserOrg> list = this.list(queryWrapper);
|
||||
return list.stream().map(SysUserOrg::getUserId).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取信息
|
||||
*
|
||||
|
|
|
@ -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<SysUserMapper, SysUser> impl
|
|||
}
|
||||
}
|
||||
|
||||
// 数据权限范围控制
|
||||
Set<Long> dataScope = DataScopeContext.me().currentUserOrgScopeList();
|
||||
if (ObjectUtil.isNotEmpty(dataScope)) {
|
||||
Set<Long> userIdList = this.sysUserOrgService.getOrgUserIdList(dataScope);
|
||||
queryWrapper.in(SysUser::getUserId, userIdList);
|
||||
}
|
||||
|
||||
// 按用户排序字段排序
|
||||
queryWrapper.orderByAsc(SysUser::getUserSort);
|
||||
|
||||
|
|
Loading…
Reference in New Issue