😎修复非超管增加菜单后看不到问题
This commit is contained in:
parent
a6466a3901
commit
49e206aa74
@ -100,7 +100,7 @@ public class SysMenuService : IDynamicApiController, ITransient
|
|||||||
|
|
||||||
return _userManager.SuperAdmin ?
|
return _userManager.SuperAdmin ?
|
||||||
await _sysMenuRep.AsQueryable().OrderBy(u => new { u.OrderNo, u.Id })
|
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 })
|
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());
|
.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>();
|
var sysMenu = input.Adapt<SysMenu>();
|
||||||
CheckMenuParam(sysMenu);
|
CheckMenuParam(sysMenu);
|
||||||
|
|
||||||
await _sysMenuRep.InsertAsync(sysMenu);
|
var newMenuId = await _sysMenuRep.InsertReturnSnowflakeIdAsync(sysMenu);
|
||||||
|
// 将新增的菜单Id增加到当前账号角色菜单集合
|
||||||
|
await AddRoleMenuId(newMenuId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -251,4 +253,16 @@ public class SysMenuService : IDynamicApiController, ITransient
|
|||||||
var roleIdList = await _sysUserRoleService.GetUserRoleIdList(_userManager.UserId);
|
var roleIdList = await _sysUserRoleService.GetUserRoleIdList(_userManager.UserId);
|
||||||
return await _sysRoleMenuService.GetRoleMenuIdList(roleIdList);
|
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>
|
/// </summary>
|
||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
|
/// <param name="isDelete"></param>
|
||||||
/// <returns></returns>
|
/// <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
|
var menus = input.MenuIdList.Select(u => new SysRoleMenu
|
||||||
{
|
{
|
||||||
RoleId = input.Id,
|
RoleId = input.Id,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user