using Entity.DbModel.System; using Entity.Dto.Req; using HybirdFrameworkCore.Autofac.Attribute; using Repository.System; namespace Service.Mgr { [Scope("SingleInstance")] public class SysRoleMenuMgr { private readonly SysRoleMenuRepository _sysRoleMenuRep; public SysRoleMenuMgr(SysRoleMenuRepository sysRoleMenuRep) { _sysRoleMenuRep = sysRoleMenuRep; } /// <summary> /// 根据角色Id集合获取菜单Id集合 /// </summary> /// <param name="roleIdList"></param> /// <returns></returns> public async Task<List<long>> GetRoleMenuIdList(List<long> roleIdList) { return await _sysRoleMenuRep.QueryByClauseAsync(u => roleIdList.Contains(u.RoleId), u => u.MenuId); } /// <summary> /// 授权角色菜单 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task GrantRoleMenu(RoleMenuReq input) { await _sysRoleMenuRep.DeleteAsync(u => u.RoleId == input.Id); var menus = input.MenuIdList.Select(u => new SysRoleMenu { RoleId = input.Id, MenuId = u }).ToList(); await _sysRoleMenuRep.InsertAsync(menus); } /// <summary> /// 根据菜单Id集合删除角色菜单 /// </summary> /// <param name="menuIdList"></param> /// <returns></returns> public async Task DeleteRoleMenuByMenuIdList(List<long> menuIdList) { await _sysRoleMenuRep.DeleteAsync(u => menuIdList.Contains(u.MenuId)); } /// <summary> /// 根据角色Id删除角色菜单 /// </summary> /// <param name="roleId"></param> /// <returns></returns> public async Task DeleteRoleMenuByRoleId(long roleId) { await _sysRoleMenuRep.DeleteAsync(u => u.RoleId == roleId); } } }