mirror of https://gitee.com/stylefeng/roses
【SysUserDataScope】业务优化
parent
7871ab637f
commit
da18b5eec6
|
@ -8,8 +8,6 @@ import cn.stylefeng.roses.kernel.resource.api.annotation.PostResource;
|
|||
import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
||||
import cn.stylefeng.roses.kernel.system.exception.SystemModularException;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUserRole;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserRoleService;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.user.request.SysUserRequest;
|
||||
|
@ -19,7 +17,6 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
@ -202,12 +199,7 @@ public class SysUserController {
|
|||
@GetResource(name = "系统用户_获取用户的角色列表", path = "/sysUser/getUserRoles")
|
||||
public ResponseData ownRole(@Validated(SysUserRequest.detail.class) SysUserRequest sysUserRequest) {
|
||||
Long userId = sysUserRequest.getUserId();
|
||||
try {
|
||||
List<SysUserRole> userRoles = sysUserRoleService.getUserRoles(userId);
|
||||
return new SuccessResponseData(userRoles);
|
||||
} catch (SystemModularException e) {
|
||||
return new SuccessResponseData(new ArrayList<>());
|
||||
}
|
||||
return new SuccessResponseData(sysUserRoleService.findListByUserId(userId));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.user.service;
|
||||
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUserDataScope;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.UserDataScopeRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.user.request.SysUserRequest;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
|
@ -14,14 +15,51 @@ import java.util.List;
|
|||
*/
|
||||
public interface SysUserDataScopeService extends IService<SysUserDataScope> {
|
||||
|
||||
|
||||
/**
|
||||
* 授权数据范围(组织机构id集合)给某个用户
|
||||
* 新增
|
||||
*
|
||||
* @param sysUserRequest 授权参数
|
||||
* @author fengshuonan
|
||||
* @date 2020/11/21 14:49
|
||||
* @param userDataScopeRequest 参数对象
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/26 12:52
|
||||
*/
|
||||
void grantData(SysUserRequest sysUserRequest);
|
||||
void add(UserDataScopeRequest userDataScopeRequest);
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param userDataScopeRequest 参数对象
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/26 12:52
|
||||
*/
|
||||
void del(UserDataScopeRequest userDataScopeRequest);
|
||||
|
||||
/**
|
||||
* 根据 用户id 删除
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/26 12:52
|
||||
*/
|
||||
void delByUserId(Long userId);
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*
|
||||
* @param userDataScopeRequest 参数对象
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/26 12:52
|
||||
*/
|
||||
void edit(UserDataScopeRequest userDataScopeRequest);
|
||||
|
||||
/**
|
||||
* 查询-详情-根据主键id
|
||||
*
|
||||
* @param userDataScopeRequest 参数对象
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/26 12:52
|
||||
*/
|
||||
SysUserDataScope detail(UserDataScopeRequest userDataScopeRequest);
|
||||
|
||||
/**
|
||||
* 获取用户的数据范围id集合
|
||||
|
@ -31,14 +69,23 @@ public interface SysUserDataScopeService extends IService<SysUserDataScope> {
|
|||
* @author luojie
|
||||
* @date 2020/11/6 15:01
|
||||
*/
|
||||
List<Long> getUserDataScopeIdList(Long uerId);
|
||||
List<Long> findOrgIdsByUserId(Long uerId);
|
||||
|
||||
/**
|
||||
* 根据用户id删除对应的用户-数据范围关联信息
|
||||
* 查询-列表-按实体对象
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @author luojie
|
||||
* @date 2020/11/6 15:01
|
||||
* @param userDataScopeRequest 参数对象
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/26 12:52
|
||||
*/
|
||||
void deleteUserDataScopeListByUserId(Long userId);
|
||||
List<SysUserDataScope> findList(UserDataScopeRequest userDataScopeRequest);
|
||||
|
||||
/**
|
||||
* 分配数据范围
|
||||
*
|
||||
* @author chenjinlong
|
||||
* @date 2021/2/3 15:49
|
||||
*/
|
||||
void assignData(SysUserRequest sysUserRequest);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.user.service;
|
||||
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUserRole;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.UserRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.user.request.SysUserRequest;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
|
@ -9,46 +10,94 @@ import java.util.List;
|
|||
/**
|
||||
* 系统用户角色service接口
|
||||
*
|
||||
* @author luojie
|
||||
* @date 2020/11/6 10:28
|
||||
* @author chenjinlong
|
||||
* @date 2021/2/3 15:23
|
||||
*/
|
||||
public interface SysUserRoleService extends IService<SysUserRole> {
|
||||
|
||||
/**
|
||||
* 获取账号绑定的角色
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @author fengshuonan
|
||||
* @date 2020/12/22 16:52
|
||||
*/
|
||||
List<SysUserRole> getUserRoles(Long userId);
|
||||
|
||||
/**
|
||||
* 获取账号绑定的角色id集合
|
||||
* 新增
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @return 角色id集合
|
||||
* @param userRoleRequest 参数对象
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/12 19:42
|
||||
* @date 2021/1/26 12:52
|
||||
*/
|
||||
List<Long> getUserRoleIds(Long userId);
|
||||
void add(UserRoleRequest userRoleRequest);
|
||||
|
||||
/**
|
||||
* 给某个用户授权角色
|
||||
* 删除
|
||||
*
|
||||
* @param sysUserRequest 用户和角色id集合
|
||||
* @author fengshuonan
|
||||
* @date 2020/11/21 14:44
|
||||
* @param userRoleRequest 参数对象
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/26 12:52
|
||||
*/
|
||||
void grantRole(SysUserRequest sysUserRequest);
|
||||
void del(UserRoleRequest userRoleRequest);
|
||||
|
||||
/**
|
||||
* 根据用户id删除对应的用户-角色表关联信息
|
||||
* 根据用户id删除角色
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @author luojie
|
||||
* @date 2020/11/6 15:03
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/26 12:52
|
||||
*/
|
||||
void deleteUserRoleListByUserId(Long userId);
|
||||
void delByUserId(Long userId);
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*
|
||||
* @param userRoleRequest 参数对象
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/26 12:52
|
||||
*/
|
||||
void edit(UserRoleRequest userRoleRequest);
|
||||
|
||||
/**
|
||||
* 查询-详情
|
||||
*
|
||||
* @param userRoleRequest 参数对象
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/26 12:52
|
||||
*/
|
||||
SysUserRole detail(UserRoleRequest userRoleRequest);
|
||||
|
||||
/**
|
||||
* 查询-列表
|
||||
*
|
||||
* @param userRoleRequest 参数对象
|
||||
* @author chenjinlong
|
||||
* @date 2021/1/26 12:52
|
||||
*/
|
||||
List<SysUserRole> findList(UserRoleRequest userRoleRequest);
|
||||
|
||||
/**
|
||||
* 根据userId查询列表
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @return
|
||||
* @author chenjinlong
|
||||
* @date 2021/2/3 15:06
|
||||
*/
|
||||
List<SysUserRole> findListByUserId(Long userId);
|
||||
|
||||
/**
|
||||
* 根据userId查询角色集合
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @return 用户角色集合
|
||||
* @author chenjinlong
|
||||
* @date 2021/2/3 15:09
|
||||
*/
|
||||
List<Long> findRoleIdsByUserId(Long userId);
|
||||
|
||||
/**
|
||||
* 角色分配
|
||||
*
|
||||
* @param sysUserRequest 请求参数
|
||||
* @return
|
||||
* @author chenjinlong
|
||||
* @date 2021/2/3 15:16
|
||||
*/
|
||||
void assignRoles(SysUserRequest sysUserRequest);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,14 +1,18 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.user.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUserDataScope;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.mapper.SysUserDataScopeMapper;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.user.request.SysUserRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserDataScopeService;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.UserDataScopeRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.user.request.SysUserRequest;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
@ -22,44 +26,107 @@ import java.util.stream.Collectors;
|
|||
public class SysUserDataScopeServiceImpl extends ServiceImpl<SysUserDataScopeMapper, SysUserDataScope> implements SysUserDataScopeService {
|
||||
|
||||
@Override
|
||||
public void grantData(SysUserRequest sysUserRequest) {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void assignData(SysUserRequest sysUserRequest) {
|
||||
|
||||
// 获取用户id
|
||||
Long userId = sysUserRequest.getUserId();
|
||||
|
||||
// 删除该用户的数据范围集合,sys_user_data_scope表中
|
||||
LambdaQueryWrapper<SysUserDataScope> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SysUserDataScope::getUserId, userId);
|
||||
this.remove(queryWrapper);
|
||||
// 删除用户所有授权范围
|
||||
this.delByUserId(userId);
|
||||
|
||||
List<Long> orgIdList = sysUserRequest.getGrantOrgIdList();
|
||||
List<Long> orgIds = sysUserRequest.getGrantOrgIdList();
|
||||
|
||||
// 授权组织机构数据范围给用户
|
||||
ArrayList<SysUserDataScope> sysUserDataScopes = new ArrayList<>();
|
||||
for (Long orgId : orgIdList) {
|
||||
List<SysUserDataScope> sysUserDataScopeList = CollUtil.newArrayList();
|
||||
|
||||
// 批量添加数据范围
|
||||
orgIds.forEach(orgId -> {
|
||||
SysUserDataScope sysUserDataScope = new SysUserDataScope();
|
||||
sysUserDataScope.setUserId(userId);
|
||||
sysUserDataScope.setOrgId(orgId);
|
||||
sysUserDataScopes.add(sysUserDataScope);
|
||||
}
|
||||
this.saveBatch(sysUserDataScopes);
|
||||
sysUserDataScopeList.add(sysUserDataScope);
|
||||
|
||||
});
|
||||
|
||||
this.saveBatch(sysUserDataScopeList);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void add(UserDataScopeRequest userDataScopeRequest) {
|
||||
SysUserDataScope sysUserDataScope = new SysUserDataScope();
|
||||
BeanUtil.copyProperties(userDataScopeRequest, sysUserDataScope);
|
||||
this.save(sysUserDataScope);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Long> getUserDataScopeIdList(Long uerId) {
|
||||
LambdaQueryWrapper<SysUserDataScope> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SysUserDataScope::getUserId, uerId);
|
||||
queryWrapper.select(SysUserDataScope::getOrgId);
|
||||
|
||||
List<SysUserDataScope> list = this.list(queryWrapper);
|
||||
return list.stream().map(SysUserDataScope::getOrgId).collect(Collectors.toList());
|
||||
public void del(UserDataScopeRequest userDataScopeRequest) {
|
||||
SysUserDataScope sysUserDataScope = this.querySysUserRoleById(userDataScopeRequest);
|
||||
this.removeById(sysUserDataScope.getUserDataScopeId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteUserDataScopeListByUserId(Long userId) {
|
||||
LambdaQueryWrapper<SysUserDataScope> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SysUserDataScope::getUserId, userId);
|
||||
|
||||
public void delByUserId(Long userId) {
|
||||
UserDataScopeRequest userDataScopeRequest = new UserDataScopeRequest();
|
||||
userDataScopeRequest.setUserId(userId);
|
||||
LambdaQueryWrapper<SysUserDataScope> queryWrapper = this.createQueryWrapper(userDataScopeRequest);
|
||||
this.remove(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void edit(UserDataScopeRequest userDataScopeRequest) {
|
||||
SysUserDataScope sysUserDataScope = this.querySysUserRoleById(userDataScopeRequest);
|
||||
BeanUtil.copyProperties(sysUserDataScope, userDataScopeRequest);
|
||||
this.updateById(sysUserDataScope);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SysUserDataScope detail(UserDataScopeRequest userDataScopeRequest) {
|
||||
LambdaQueryWrapper<SysUserDataScope> queryWrapper = this.createQueryWrapper(userDataScopeRequest);
|
||||
return this.getOne(queryWrapper, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Long> findOrgIdsByUserId(Long uerId) {
|
||||
UserDataScopeRequest userDataScopeRequest = new UserDataScopeRequest();
|
||||
userDataScopeRequest.setUserId(uerId);
|
||||
List<SysUserDataScope> sysUserDataScopeList = this.findList(userDataScopeRequest);
|
||||
return sysUserDataScopeList.stream().map(SysUserDataScope::getOrgId).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysUserDataScope> findList(UserDataScopeRequest userDataScopeRequest) {
|
||||
LambdaQueryWrapper<SysUserDataScope> queryWrapper = this.createQueryWrapper(userDataScopeRequest);
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据主键查询
|
||||
*
|
||||
* @param userDataScopeRequest dto实体
|
||||
* @author chenjinlong
|
||||
* @date 2021/2/3 15:02
|
||||
*/
|
||||
private SysUserDataScope querySysUserRoleById(UserDataScopeRequest userDataScopeRequest) {
|
||||
return this.getById(userDataScopeRequest.getUserDataScopeId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建 QueryWrapper
|
||||
*
|
||||
* @param userDataScopeRequest dto实体
|
||||
* @author chenjinlong
|
||||
* @date 2021/2/3 14:54
|
||||
*/
|
||||
private LambdaQueryWrapper<SysUserDataScope> createQueryWrapper(UserDataScopeRequest userDataScopeRequest) {
|
||||
LambdaQueryWrapper<SysUserDataScope> queryWrapper = new LambdaQueryWrapper<>();
|
||||
// SQL拼接
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(userDataScopeRequest.getOrgId()), SysUserDataScope::getOrgId, userDataScopeRequest.getOrgId());
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(userDataScopeRequest.getUserId()), SysUserDataScope::getUserId, userDataScopeRequest.getUserId());
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(userDataScopeRequest.getUserDataScopeId()), SysUserDataScope::getUserDataScopeId, userDataScopeRequest.getUserDataScopeId());
|
||||
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.user.service.impl;
|
||||
|
||||
import cn.stylefeng.roses.kernel.system.exception.SystemModularException;
|
||||
import cn.stylefeng.roses.kernel.system.exception.enums.SysUserExceptionEnum;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUserRole;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.mapper.SysUserRoleMapper;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserRoleService;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.UserRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.system.pojo.user.request.SysUserRequest;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
@ -24,58 +25,114 @@ import java.util.stream.Collectors;
|
|||
@Service
|
||||
public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUserRole> implements SysUserRoleService {
|
||||
|
||||
|
||||
@Override
|
||||
public List<SysUserRole> getUserRoles(Long userId) {
|
||||
LambdaQueryWrapper<SysUserRole> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(SysUserRole::getUserId, userId);
|
||||
List<SysUserRole> list = this.list(wrapper);
|
||||
|
||||
// 账号下没有绑定角色
|
||||
if (list.isEmpty()) {
|
||||
throw new SystemModularException(SysUserExceptionEnum.USER_NOT_BIND_ROLE);
|
||||
}
|
||||
|
||||
return list;
|
||||
public void add(UserRoleRequest userRoleRequest) {
|
||||
SysUserRole sysUserRole = new SysUserRole();
|
||||
BeanUtil.copyProperties(userRoleRequest, sysUserRole);
|
||||
this.save(sysUserRole);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Long> getUserRoleIds(Long userId) {
|
||||
LambdaQueryWrapper<SysUserRole> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(SysUserRole::getUserId, userId);
|
||||
List<SysUserRole> list = this.list(wrapper);
|
||||
return list.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
|
||||
public void del(UserRoleRequest userRoleRequest) {
|
||||
SysUserRole sysUserRole = querySysUserRoleById(userRoleRequest);
|
||||
this.removeById(sysUserRole.getUserRoleId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delByUserId(Long userId) {
|
||||
LambdaQueryWrapper<SysUserRole> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SysUserRole::getUserId, userId);
|
||||
this.remove(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void edit(UserRoleRequest userRoleRequest) {
|
||||
SysUserRole sysUserRole = this.querySysUserRoleById(userRoleRequest);
|
||||
BeanUtil.copyProperties(userRoleRequest, sysUserRole);
|
||||
this.updateById(sysUserRole);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SysUserRole detail(UserRoleRequest userRoleRequest) {
|
||||
LambdaQueryWrapper<SysUserRole> queryWrapper = this.createQueryWrapper(userRoleRequest);
|
||||
return this.getOne(queryWrapper, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysUserRole> findList(UserRoleRequest userRoleRequest) {
|
||||
LambdaQueryWrapper<SysUserRole> queryWrapper = this.createQueryWrapper(userRoleRequest);
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysUserRole> findListByUserId(Long userId) {
|
||||
UserRoleRequest userRoleRequest = new UserRoleRequest();
|
||||
userRoleRequest.setUserId(userId);
|
||||
return this.findList(userRoleRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public List<Long> findRoleIdsByUserId(Long userId) {
|
||||
UserRoleRequest userRoleRequest = new UserRoleRequest();
|
||||
userRoleRequest.setUserId(userId);
|
||||
List<SysUserRole> sysUserRoleList = this.findList(userRoleRequest);
|
||||
return sysUserRoleList.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void grantRole(SysUserRequest sysUserRequest) {
|
||||
|
||||
public void assignRoles(SysUserRequest sysUserRequest) {
|
||||
// 获取用户id
|
||||
Long userId = sysUserRequest.getUserId();
|
||||
|
||||
// 删除该用户的所有角色
|
||||
LambdaQueryWrapper<SysUserRole> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SysUserRole::getUserId, userId);
|
||||
this.remove(queryWrapper);
|
||||
// 删除已有角色
|
||||
this.delByUserId(userId);
|
||||
|
||||
// 为该用户授权角色
|
||||
List<Long> roleIdList = sysUserRequest.getGrantRoleIdList();
|
||||
List<Long> rileIds = sysUserRequest.getGrantRoleIdList();
|
||||
|
||||
ArrayList<SysUserRole> sysUserRoles = new ArrayList<>();
|
||||
for (Long roleId : roleIdList) {
|
||||
// 批量添加角色
|
||||
List<SysUserRole> sysUserRoleList = CollUtil.newArrayList();
|
||||
rileIds.forEach(roleId -> {
|
||||
SysUserRole sysUserRole = new SysUserRole();
|
||||
sysUserRole.setUserId(userId);
|
||||
sysUserRole.setRoleId(roleId);
|
||||
sysUserRoles.add(sysUserRole);
|
||||
}
|
||||
this.saveBatch(sysUserRoles);
|
||||
sysUserRoleList.add(sysUserRole);
|
||||
});
|
||||
|
||||
this.saveBatch(sysUserRoleList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteUserRoleListByUserId(Long userId) {
|
||||
/**
|
||||
* 根据主键查询
|
||||
*
|
||||
* @param userRoleRequest dto实体
|
||||
* @return
|
||||
* @author chenjinlong
|
||||
* @date 2021/2/3 15:02
|
||||
*/
|
||||
private SysUserRole querySysUserRoleById(UserRoleRequest userRoleRequest) {
|
||||
return this.getById(userRoleRequest.getUserRoleId());
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建 QueryWrapper
|
||||
*
|
||||
* @param userRoleRequest dto实体
|
||||
* @author chenjinlong
|
||||
* @date 2021/2/3 14:54
|
||||
*/
|
||||
private LambdaQueryWrapper<SysUserRole> createQueryWrapper(UserRoleRequest userRoleRequest) {
|
||||
LambdaQueryWrapper<SysUserRole> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(SysUserRole::getUserId, userId);
|
||||
// SQL拼接
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(userRoleRequest.getUserRoleId()), SysUserRole::getUserRoleId, userRoleRequest.getUserRoleId());
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(userRoleRequest.getUserId()), SysUserRole::getUserId, userRoleRequest.getUserId());
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(userRoleRequest.getRoleId()), SysUserRole::getRoleId, userRoleRequest.getRoleId());
|
||||
|
||||
this.remove(queryWrapper);
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
}
|
|
@ -273,7 +273,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
DataScopeUtil.quickValidateDataScope(organizationId);
|
||||
|
||||
// 给用户授权角色
|
||||
sysUserRoleService.grantRole(sysUserRequest);
|
||||
sysUserRoleService.assignRoles(sysUserRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -288,7 +288,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
// 判断当前用户有无该用户的权限
|
||||
DataScopeUtil.quickValidateDataScope(organizationId);
|
||||
|
||||
sysUserDataScopeService.grantData(sysUserRequest);
|
||||
sysUserDataScopeService.assignData(sysUserRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -318,10 +318,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
sysUserOrgService.delByUserId(userId);
|
||||
|
||||
// 删除该用户对应的用户-角色表关联信息
|
||||
sysUserRoleService.deleteUserRoleListByUserId(userId);
|
||||
sysUserRoleService.delByUserId(userId);
|
||||
|
||||
// 删除该用户对应的用户-数据范围表关联信息
|
||||
sysUserDataScopeService.deleteUserDataScopeListByUserId(userId);
|
||||
sysUserDataScopeService.delByUserId(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -338,7 +338,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
sysUserResponse.setPositionId(userOrgInfo.getPositionId());
|
||||
|
||||
// 获取用户角色信息
|
||||
sysUserResponse.setGrantRoleIdList(sysUserRoleService.getUserRoleIds(sysUser.getUserId()));
|
||||
sysUserResponse.setGrantRoleIdList(sysUserRoleService.findRoleIdsByUserId(sysUser.getUserId()));
|
||||
|
||||
return sysUserResponse;
|
||||
}
|
||||
|
@ -433,8 +433,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
Long userId = sysUser.getUserId();
|
||||
|
||||
// 2. 获取用户角色信息
|
||||
List<SysUserRole> userRoles = sysUserRoleService.getUserRoles(userId);
|
||||
List<Long> roleIds = userRoles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
|
||||
List<Long> roleIds = sysUserRoleService.findRoleIdsByUserId(userId);
|
||||
List<SysRoleResponse> roleResponseList = roleServiceApi.getRolesByIds(roleIds);
|
||||
|
||||
// 3. 获取用户的数据范围
|
||||
|
@ -505,7 +504,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
|
||||
@Override
|
||||
public List<Long> getUserBindDataScope(Long userId) {
|
||||
return sysUserDataScopeService.getUserDataScopeIdList(userId);
|
||||
return sysUserDataScopeService.findOrgIdsByUserId(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -656,7 +655,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|||
queryWrapper.eq(ObjectUtil.isNotEmpty(sysUserRequest.getUserId()), SysUser::getUserId, sysUserRequest.getUserId());
|
||||
queryWrapper.like(ObjectUtil.isNotEmpty(sysUserRequest.getAccount()), SysUser::getAccount, sysUserRequest.getAccount());
|
||||
queryWrapper.eq(ObjectUtil.isNotEmpty(sysUserRequest.getRealName()), SysUser::getRealName, sysUserRequest.getRealName());
|
||||
|
||||
|
||||
// 查询未删除状态的
|
||||
queryWrapper.eq(SysUser::getDelFlag, YesOrNotEnum.N.getCode());
|
||||
|
||||
|
|
Loading…
Reference in New Issue