😎修复非超管增加菜单后看不到问题
This commit is contained in:
parent
a6466a3901
commit
49e206aa74
@ -100,7 +100,7 @@ public class SysMenuService : IDynamicApiController, ITransient
|
||||
|
||||
return _userManager.SuperAdmin ?
|
||||
await _sysMenuRep.AsQueryable().OrderBy(u => new { u.OrderNo, u.Id })
|
||||
.Distinct().Distinct().ToTreeAsync(u => u.Children, u => u.Pid, 0) :
|
||||
.Distinct().ToTreeAsync(u => u.Children, u => u.Pid, 0) :
|
||||
await _sysMenuRep.AsQueryable().OrderBy(u => new { u.OrderNo, u.Id })
|
||||
.Distinct().ToTreeAsync(u => u.Children, u => u.Pid, 0, menuIdList.Select(d => (object)d).ToArray());
|
||||
}
|
||||
@ -136,7 +136,9 @@ public class SysMenuService : IDynamicApiController, ITransient
|
||||
var sysMenu = input.Adapt<SysMenu>();
|
||||
CheckMenuParam(sysMenu);
|
||||
|
||||
await _sysMenuRep.InsertAsync(sysMenu);
|
||||
var newMenuId = await _sysMenuRep.InsertReturnSnowflakeIdAsync(sysMenu);
|
||||
// 将新增的菜单Id增加到当前账号角色菜单集合
|
||||
await AddRoleMenuId(newMenuId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -251,4 +253,16 @@ public class SysMenuService : IDynamicApiController, ITransient
|
||||
var roleIdList = await _sysUserRoleService.GetUserRoleIdList(_userManager.UserId);
|
||||
return await _sysRoleMenuService.GetRoleMenuIdList(roleIdList);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 当前账号增加菜单后更新对应角色菜单集合
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private async Task AddRoleMenuId(long menuId)
|
||||
{
|
||||
if (_userManager.SuperAdmin) return;
|
||||
|
||||
var roleIdList = await _sysUserRoleService.GetUserRoleIdList(_userManager.UserId);
|
||||
await _sysRoleMenuService.GrantRoleMenu(new RoleMenuInput() { Id = roleIdList[0], MenuIdList = [menuId] }, false);
|
||||
}
|
||||
}
|
||||
@ -34,10 +34,13 @@ public class SysRoleMenuService : ITransient
|
||||
/// 授权角色菜单
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <param name="isDelete"></param>
|
||||
/// <returns></returns>
|
||||
public async Task GrantRoleMenu(RoleMenuInput input)
|
||||
public async Task GrantRoleMenu(RoleMenuInput input, bool isDelete = true)
|
||||
{
|
||||
await _sysRoleMenuRep.DeleteAsync(u => u.RoleId == input.Id);
|
||||
if (isDelete)
|
||||
await _sysRoleMenuRep.DeleteAsync(u => u.RoleId == input.Id);
|
||||
|
||||
var menus = input.MenuIdList.Select(u => new SysRoleMenu
|
||||
{
|
||||
RoleId = input.Id,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user