增加数据权限

This commit is contained in:
不做码农
2022-01-22 20:47:48 +08:00
parent f5f5000854
commit bf26823a85
10 changed files with 275 additions and 118 deletions

View File

@@ -16,5 +16,10 @@ namespace ZR.Service.System.IService
List<SysDept> GetChildrenDepts(List<SysDept> depts, long deptId);
List<SysDept> BuildDeptTree(List<SysDept> depts);
List<TreeSelectVo> BuildDeptTreeSelect(List<SysDept> depts);
List<SysRoleDept> SelectRoleDeptByRoleId(long roleId);
List<long> SelectRoleDepts(long roleId);
int DeleteRoleDeptByRoleId(long roleId);
int InsertRoleDepts(SysRole role);
}
}

View File

@@ -21,10 +21,11 @@ namespace ZR.Service.System
public class SysDeptService : BaseService<SysDept>, ISysDeptService
{
public SysDeptRepository DeptRepository;
public SysDeptService(SysDeptRepository deptRepository) : base(deptRepository)
public SysRoleDeptRepository RoleDeptRepository;
public SysDeptService(SysDeptRepository deptRepository, SysRoleDeptRepository roleDeptRepository) : base(deptRepository)
{
DeptRepository = deptRepository;
RoleDeptRepository = roleDeptRepository;
}
/// <summary>
@@ -225,5 +226,60 @@ namespace ZR.Service.System
{
return list.Where(p => p.ParentId == dept.DeptId).ToList();
}
#region
/// <summary>
/// 根据角色获取菜单id
/// </summary>
/// <param name="roleId"></param>
/// <returns></returns>
public List<SysRoleDept> SelectRoleDeptByRoleId(long roleId)
{
return RoleDeptRepository.SelectRoleDeptByRoleId(roleId);
}
/// <summary>
/// 获取角色部门id集合
/// </summary>
/// <param name="roleId"></param>
/// <returns></returns>
public List<long> SelectRoleDepts(long roleId)
{
var list = SelectRoleDeptByRoleId(roleId);
return list.Select(x => x.DeptId).Distinct().ToList();
}
/// <summary>
/// 删除角色部门数据
/// </summary>
/// <param name="roleId"></param>
/// <returns></returns>
public int DeleteRoleDeptByRoleId(long roleId)
{
return RoleDeptRepository.Delete(f => f.RoleId == roleId);
}
/// <summary>
/// 批量插入角色部门
/// </summary>
/// <param name="role"></param>
/// <returns></returns>
public int InsertRoleDepts(SysRole role)
{
int rows = 1;
List<SysRoleDept> list = new();
foreach (var item in role.DeptIds)
{
list.Add(new SysRoleDept() { DeptId = item, RoleId = role.RoleId });
}
if (list.Count > 0)
{
rows = RoleDeptRepository.Insert(list);
}
return rows;
}
#endregion
}
}

View File

@@ -21,19 +21,23 @@ namespace ZR.Service
{
private SysRoleRepository SysRoleRepository;
private ISysUserRoleService SysUserRoleService;
private ISysDeptService DeptService;
public SysRoleService(
SysRoleRepository sysRoleRepository,
ISysUserRoleService sysUserRoleService) : base(sysRoleRepository)
ISysUserRoleService sysUserRoleService,
ISysDeptService deptService) : base(sysRoleRepository)
{
SysRoleRepository = sysRoleRepository;
SysUserRoleService = sysUserRoleService;
DeptService = deptService;
}
/// <summary>
/// 根据条件分页查询角色数据
/// </summary>
/// <param name="role">角色信息</param>
/// <param name="pager">分页信息</param>
/// <returns>角色数据集合信息</returns>
public PagedInfo<SysRole> SelectRoleList(SysRole role, PagerInfo pager)
{
@@ -157,17 +161,9 @@ namespace ZR.Service
{
return UseTran2(() =>
{
int result = Update(sysRoleDto, it => new
{
it.DataScope
}, f => f.RoleId == sysRoleDto.RoleId);
//if (result > 0 && sysRoleDto.DataScope == "2")
//{
//删除角色菜单
DeleteRoleMenuByRoleId(sysRoleDto.RoleId);
InsertRoleMenu(sysRoleDto);
//}
});
}
#region Service
@@ -185,11 +181,13 @@ namespace ZR.Service
List<SysRoleMenu> sysRoleMenus = new List<SysRoleMenu>();
foreach (var item in sysRoleDto.MenuIds)
{
SysRoleMenu rm = new SysRoleMenu();
rm.Menu_id = item;
rm.Role_id = sysRoleDto.RoleId;
rm.Create_by = sysRoleDto.Create_by;
rm.Create_time = DateTime.Now;
SysRoleMenu rm = new SysRoleMenu
{
Menu_id = item,
Role_id = sysRoleDto.RoleId,
Create_by = sysRoleDto.Create_by,
Create_time = DateTime.Now
};
sysRoleMenus.Add(rm);
}
//添加角色菜单
@@ -301,7 +299,17 @@ namespace ZR.Service
/// <returns></returns>
public int UpdateRole(SysRole sysRole)
{
return SysRoleRepository.UpdateSysRole(sysRole);
var result = UseTran(() =>
{
//修改角色信息
SysRoleRepository.UpdateSysRole(sysRole);
//删除角色与部门管理
DeptService.DeleteRoleDeptByRoleId(sysRole.RoleId);
//插入角色部门数据
DeptService.InsertRoleDepts(sysRole);
});
return result.IsSuccess ? 1 : 0;
}
}
}