重构接口

This commit is contained in:
lzw
2021-10-29 23:23:32 +08:00
parent 9d83b24a8d
commit 0bf80f0f51
16 changed files with 508 additions and 245 deletions

View File

@@ -11,58 +11,52 @@ namespace Yi.Framework.Service
{
public partial class RoleService:BaseService<role>, IRoleService
{
/// <summary>
/// 该方法返回的是并列角色并列的菜单,无递归
/// </summary>
/// <param name="_role"></param>
/// <returns></returns>
public async Task<List<menu>> GetMenusByRole(role _role)
short Normal = (short)Common.Enum.DelFlagEnum.Normal;
public async Task<List<role>> GetRolesByUserId(int userId)
{
var role_data =await _Db.Set<role>().Include(u => u.menus)
.Where(u => u.id == _role.id && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync();
var menuList =role_data.menus.Where(u => u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).ToList();
return menuList;
}
/// <summary>
/// 这个接口好像没用,算作废吧,怎么能通过角色获取用户呢?数据库表也得改,不能通过角色获取用户
/// </summary>
/// <param name="_role"></param>
/// <returns></returns>
public async Task<List<user>> GetUsersByRole(role _role)
{
var role_data = await _Db.Set<role>().Include(u => u.users)
.Where(u => u.id == _role.id && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync();
return role_data.users.ToList();
var user_data =await _Db.Set<user>().Include(u => u.roles).Where(u => u.id==userId).FirstOrDefaultAsync();
var roleList = user_data.roles.Where(u=>u.is_delete==Normal).ToList();
return roleList;
}
public async Task<bool> SetMenusByRolesId(List<int> menuIds,List<int> roleIds)
{
var role_data = await _Db.Set<role>().Include(u=>u.menus).Where(u =>roleIds.Contains(u.id) && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).ToListAsync();
if (role_data == null)
{
return false;
}
var menuList = await _Db.Set<menu>().Where(u => menuIds.Contains(u.id)&&u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).ToListAsync();
var role_data = await _Db.Set<role>().Include(u => u.menus).ThenInclude(u => u.children).Where(u =>roleIds.Contains(u.id) && u.is_delete == Normal).ToListAsync();
var menuList = await _Db.Set<menu>().Where(u => menuIds.Contains(u.id)&&u.is_delete ==Normal).ToListAsync();
foreach(var role in role_data)
{
role.menus =menuList;
}
return await UpdateListAsync(role_data);
}
/// <summary>
/// 好像也不需要通过菜单来获取角色啊,这个数据库也得改
/// </summary>
/// <param name="roleId"></param>
/// <returns></returns>
public async Task<List<menu>> GetMenusByRoleId(int roleId)
public async Task<List<menu>> GetMenusByRoleId(List< int> roleIds)
{
var role_data = await _Db.Set<role>().Include(u=>u.menus).Where(u =>u.id==roleId && u.is_delete == (short)Common.Enum.DelFlagEnum.Normal).FirstOrDefaultAsync();
var menuList = role_data.menus.ToList();
menuList.ForEach(u => u.roles = null);
var role_data = await _Db.Set<role>().Include(u => u.menus).Where(u => roleIds.Contains(u.id) && u.is_delete == Normal).ToListAsync();
List<menu> menuList = new();
role_data.ForEach(u =>
{
var m = u.menus.Where(u => u.is_delete == Normal).ToList();
menuList = menuList.Union(m).ToList();
});
return menuList;
}
public async Task<List<menu>> GetTopMenusByRoleId(int roleId)
{
var role_data = await _Db.Set<role>().Where(u => u.id == roleId).FirstOrDefaultAsync();
var menuList = role_data.menus.Where(u => u.is_delete == Normal).ToList();
menuList.ForEach(u => u.children = null);
return menuList;
}
public async Task<List<menu>> GetMenusByRole(int roleId)
{
var role_data = await _Db.Set<role>().Include(u => u.menus).Where(u => u.id == roleId).FirstOrDefaultAsync();
var menuList = role_data.menus.Where(u => u.is_delete == Normal).ToList();
return menuList;
}
}
}