用户管理-角色配置修改

This commit is contained in:
liyawei
2022-03-24 20:51:51 +08:00
parent e825e0adec
commit 8135e0b4c4
5 changed files with 55 additions and 17 deletions
@@ -19,7 +19,6 @@ import com.jero.common.system.util.JwtUtil;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.common.system.vo.SysDepartTreeModel; import com.jero.common.system.vo.SysDepartTreeModel;
import com.jero.common.system.vo.SysDepartUserTreeModel; import com.jero.common.system.vo.SysDepartUserTreeModel;
import com.jero.common.system.vo.SysUserTreeModel;
import com.jero.common.util.ImportExcelUtil; import com.jero.common.util.ImportExcelUtil;
import com.jero.common.util.PasswordUtil; import com.jero.common.util.PasswordUtil;
import com.jero.common.util.RedisUtil; import com.jero.common.util.RedisUtil;
@@ -187,8 +186,27 @@ public class SysUserController {
user.setPassword(sysUser.getPassword()); user.setPassword(sysUser.getPassword());
String roles = jsonObject.getString("selectedroles"); String roles = jsonObject.getString("selectedroles");
String departs = jsonObject.getString("selecteddeparts"); String departs = jsonObject.getString("selecteddeparts");
sysUserService.editUserWithRole(user, roles); List<SysDepartRole> departRoleList = departRoleService.queryByDepartId(departs);
sysUserService.editUserWithDepart(user, departs); List<String> roleIdList = departRoleList.stream()
.map(SysDepartRole::getRoleId)
.collect(Collectors.toList());
String[] targetRoleIdList = roles.split(",");
List<String> droleIdList = new ArrayList<>();
for(int i = 0; i < targetRoleIdList.length; i++){
String targetRoleId = targetRoleIdList[i];
if(!roleIdList.contains(targetRoleId)){
return result.error500("存在不是用户部门下的角色");
}
List<String> droleIds = departRoleList.stream()
.filter(e->e.getRoleId().equals(targetRoleId))
.map(SysDepartRole::getId)
.collect(Collectors.toList());
droleIdList.addAll(droleIds);
}
droleIdList = droleIdList.stream().distinct().collect(Collectors.toList());
sysUserService.editUserWithRole(user, droleIdList);
// 不允许修改部门
// sysUserService.editUserWithDepart(user, departs);
sysUserService.updateNullPhoneEmail(); sysUserService.updateNullPhoneEmail();
result.success("修改成功!"); result.success("修改成功!");
} }
@@ -272,11 +290,14 @@ public class SysUserController {
public Result<List<String>> queryUserRole(@RequestParam(name = "userid", required = true) String userid) { public Result<List<String>> queryUserRole(@RequestParam(name = "userid", required = true) String userid) {
Result<List<String>> result = new Result<>(); Result<List<String>> result = new Result<>();
List<String> list = new ArrayList<String>(); List<String> list = new ArrayList<String>();
List<SysUserRole> userRole = sysUserRoleService.list(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, userid)); List<SysDepartRoleUser> departRoleUserList = departRoleUserService.list(new QueryWrapper<SysDepartRoleUser>().lambda().eq(SysDepartRoleUser::getUserId, userid));
List<String> dRoleIdList = departRoleUserList.stream().map(SysDepartRoleUser::getDroleId).collect(Collectors.toList());
List<SysDepartRole> userRole = departRoleService.list(new QueryWrapper<SysDepartRole>().lambda().in(SysDepartRole::getId, dRoleIdList));
// List<SysUserRole> userRole = sysUserRoleService.list(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, userid));
if (userRole == null || userRole.size() <= 0) { if (userRole == null || userRole.size() <= 0) {
result.error500("未找到用户相关角色信息"); result.error500("未找到用户相关角色信息");
} else { } else {
for (SysUserRole sysUserRole : userRole) { for (SysDepartRole sysUserRole : userRole) {
list.add(sysUserRole.getRoleId()); list.add(sysUserRole.getRoleId());
} }
result.setSuccess(true); result.setSuccess(true);
@@ -21,4 +21,6 @@ public interface ISysDepartRoleService extends IService<SysDepartRole> {
*/ */
List<SysDepartRole> queryDeptRoleByDeptAndUser(String orgCode, String userId); List<SysDepartRole> queryDeptRoleByDeptAndUser(String orgCode, String userId);
List<SysDepartRole> queryByDepartId(String departIds);
} }
@@ -73,7 +73,7 @@ public interface ISysUserService extends IService<SysUser> {
* @param user * @param user
* @param roles * @param roles
*/ */
public void editUserWithRole(SysUser user,String roles); public void editUserWithRole(SysUser user,List<String> droleIdList);
/** /**
* 获取用户的授权角色 * 获取用户的授权角色
@@ -1,12 +1,13 @@
package com.jero.modules.system.service.impl; package com.jero.modules.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.system.entity.SysDepartRole; import com.jero.modules.system.entity.SysDepartRole;
import com.jero.modules.system.mapper.SysDepartRoleMapper; import com.jero.modules.system.mapper.SysDepartRoleMapper;
import com.jero.modules.system.service.ISysDepartRoleService; import com.jero.modules.system.service.ISysDepartRoleService;
import com.jero.modules.system.util.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List; import java.util.List;
/** /**
@@ -22,4 +23,10 @@ public class SysDepartRoleServiceImpl extends ServiceImpl<SysDepartRoleMapper, S
public List<SysDepartRole> queryDeptRoleByDeptAndUser(String orgCode, String userId) { public List<SysDepartRole> queryDeptRoleByDeptAndUser(String orgCode, String userId) {
return this.baseMapper.queryDeptRoleByDeptAndUser(orgCode,userId); return this.baseMapper.queryDeptRoleByDeptAndUser(orgCode,userId);
} }
@Override
public List<SysDepartRole> queryByDepartId(String departIds){
List<String> deoartIdList = StringUtils.stringToList(departIds);
return this.list(new QueryWrapper<SysDepartRole>().lambda().in(SysDepartRole::getDepartId, deoartIdList));
}
} }
@@ -1,26 +1,27 @@
package com.jero.modules.system.service.impl; package com.jero.modules.system.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.constant.CacheConstant; import com.jero.common.constant.CacheConstant;
import com.jero.common.constant.CommonConstant; import com.jero.common.constant.CommonConstant;
import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.api.ISysBaseAPI;
import com.jero.modules.base.service.BaseCommonService;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
import com.jero.common.system.vo.SysUserCacheInfo; import com.jero.common.system.vo.SysUserCacheInfo;
import com.jero.common.util.PasswordUtil; import com.jero.common.util.PasswordUtil;
import com.jero.common.util.UUIDGenerator; import com.jero.common.util.UUIDGenerator;
import com.jero.common.util.oConvertUtils; import com.jero.common.util.oConvertUtils;
import com.jero.modules.base.service.BaseCommonService;
import com.jero.modules.system.entity.*; import com.jero.modules.system.entity.*;
import com.jero.modules.system.mapper.*; import com.jero.modules.system.mapper.*;
import com.jero.modules.system.model.SysUserSysDepartModel; import com.jero.modules.system.model.SysUserSysDepartModel;
import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.vo.SysUserDepVo; import com.jero.modules.system.vo.SysUserDepVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CacheEvict;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -134,17 +135,24 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
@Override @Override
@CacheEvict(value= {CacheConstant.SYS_USERS_CACHE}, allEntries=true) @CacheEvict(value= {CacheConstant.SYS_USERS_CACHE}, allEntries=true)
@Transactional @Transactional
public void editUserWithRole(SysUser user, String roles) { public void editUserWithRole(SysUser user,List<String> droleIdList) {
this.updateById(user); this.updateById(user);
//先删后加 //先删后加
sysUserRoleMapper.delete(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, user.getId())); departRoleUserMapper.delete(new QueryWrapper<SysDepartRoleUser>().lambda().eq(SysDepartRoleUser::getUserId, user.getId()));
if(oConvertUtils.isNotEmpty(roles)) { if(CollectionUtil.isNotEmpty(droleIdList)) {
String[] arr = roles.split(","); for (String droleId : droleIdList) {
for (String roleId : arr) { SysDepartRoleUser departRoleUser = new SysDepartRoleUser(user.getId(), droleId);
SysUserRole userRole = new SysUserRole(user.getId(), roleId); departRoleUserMapper.insert(departRoleUser);
sysUserRoleMapper.insert(userRole);
} }
} }
// sysUserRoleMapper.delete(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, user.getId()));
// if(oConvertUtils.isNotEmpty(roles)) {
// String[] arr = roles.split(",");
// for (String roleId : arr) {
// SysUserRole userRole = new SysUserRole(user.getId(), roleId);
// sysUserRoleMapper.insert(userRole);
// }
// }
} }