【8.0】【sys】更新用户列表接口增加数据范围控制

pull/57/head
fengshuonan 2023-07-19 00:33:09 +08:00
parent 657a0a854c
commit ded1c7ec54
4 changed files with 27 additions and 13 deletions

View File

@ -3,6 +3,7 @@ package cn.stylefeng.roses.kernel.sys.api;
import cn.stylefeng.roses.kernel.sys.api.pojo.user.UserOrgDTO; import cn.stylefeng.roses.kernel.sys.api.pojo.user.UserOrgDTO;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* Api * Api
@ -67,4 +68,13 @@ public interface SysUserOrgServiceApi {
*/ */
Long getUserOrgPositionId(Long userId, Long orgId); Long getUserOrgPositionId(Long userId, Long orgId);
/**
*
*
* @param orgIdList id
* @author fengshuonan
* @since 2023/7/19 0:18
*/
Set<Long> getOrgUserIdList(Set<Long> orgIdList);
} }

View File

@ -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.rule.tree.factory.DefaultTreeBuildFactory;
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveOrgCallbackApi; 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.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.DetectModeEnum;
import cn.stylefeng.roses.kernel.sys.api.enums.org.OrgTypeEnum; import cn.stylefeng.roses.kernel.sys.api.enums.org.OrgTypeEnum;
import cn.stylefeng.roses.kernel.sys.api.exception.enums.OrgExceptionEnum; 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); queryWrapper.orderByAsc(HrOrganization::getOrgSort);
@ -599,12 +592,6 @@ public class HrOrganizationServiceImpl extends ServiceImpl<HrOrganizationMapper,
queryWrapper.eq(HrOrganization::getOrgType, OrgTypeEnum.COMPANY.getCode()); queryWrapper.eq(HrOrganization::getOrgType, OrgTypeEnum.COMPANY.getCode());
} }
// 更新数据范围的筛选条件
Set<Long> dataScope = DataScopeContext.me().currentUserOrgScopeList();
if (ObjectUtil.isNotEmpty(dataScope)) {
queryWrapper.in(HrOrganization::getOrgId, dataScope);
}
return queryWrapper; return queryWrapper;
} }

View File

@ -250,6 +250,15 @@ public class SysUserOrgServiceImpl extends ServiceImpl<SysUserOrgMapper, SysUser
return null; 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());
}
/** /**
* *
* *

View File

@ -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.rule.exception.base.ServiceException;
import cn.stylefeng.roses.kernel.sys.api.callback.RemoveUserCallbackApi; 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.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.enums.user.UserStatusEnum;
import cn.stylefeng.roses.kernel.sys.api.exception.enums.UserExceptionEnum; import cn.stylefeng.roses.kernel.sys.api.exception.enums.UserExceptionEnum;
import cn.stylefeng.roses.kernel.sys.api.expander.SysConfigExpander; 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); queryWrapper.orderByAsc(SysUser::getUserSort);