Files
Yi.Admin/Yi.Framework.Net6/Yi.Framework.Service/RoleService.cs

66 lines
2.5 KiB
C#
Raw Normal View History

2021-10-11 21:50:50 +08:00
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Interface;
using Yi.Framework.Model.Models;
namespace Yi.Framework.Service
{
public partial class RoleService : BaseService<role>, IRoleService
2021-10-11 21:50:50 +08:00
{
2021-10-29 23:23:32 +08:00
short Normal = (short)Common.Enum.DelFlagEnum.Normal;
2021-10-29 23:23:32 +08:00
public async Task<List<role>> GetRolesByUserId(int userId)
2021-10-12 21:44:50 +08:00
{
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();
2021-11-06 17:53:54 +08:00
roleList.ForEach(u => u.users = null);
2021-10-29 23:23:32 +08:00
return roleList;
2021-10-12 18:05:01 +08:00
}
2021-10-26 00:59:06 +08:00
public async Task<bool> SetMenusByRolesId(List<int> menuIds, List<int> roleIds)
2021-10-12 18:05:01 +08:00
{
var role_data = await _Db.Set<role>().Include(u => u.menus).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)
2021-10-17 23:17:07 +08:00
{
role.menus = menuList;
}
2021-10-17 23:17:07 +08:00
return await UpdateListAsync(role_data);
2021-10-11 21:50:50 +08:00
}
public async Task<List<menu>> GetMenusByRoleId(List<int> roleIds)
2021-10-29 23:23:32 +08:00
{
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>().Include(u => u.menus).Where(u => u.id == roleId).FirstOrDefaultAsync();
2021-10-29 23:23:32 +08:00
var menuList = role_data.menus.Where(u => u.is_delete == Normal).ToList();
menuList.ForEach(u => u.roles = null);
2021-10-29 23:23:32 +08:00
return menuList;
}
2021-10-26 00:59:06 +08:00
2021-10-29 23:23:32 +08:00
public async Task<List<menu>> GetMenusByRole(int roleId)
2021-10-19 17:33:55 +08:00
{
2021-10-29 23:23:32 +08:00
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();
2021-10-19 17:33:55 +08:00
return menuList;
}
2021-10-29 23:23:32 +08:00
2021-10-11 21:50:50 +08:00
}
}