【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 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);
}

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.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;
}

View File

@ -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());
}
/**
*
*

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.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);