using Yi.Framework.Infrastructure.Ddd.Repositories; using Yi.Framework.Infrastructure.Helper; using Yi.Furion.Core.Rbac.Entities; namespace Yi.Furion.Application.Rbac.Domain { public class RoleManager : ITransient { private IRepository _repository; private IRepository _roleMenuRepository; public RoleManager(IRepository repository, IRepository roleMenuRepository) { _repository = repository; _roleMenuRepository = roleMenuRepository; } /// /// 给角色设置菜单 /// /// /// /// public async Task GiveRoleSetMenuAsync(List roleIds, List menuIds) { //这个是需要事务的,在service中进行工作单元 await _roleMenuRepository.DeleteAsync(u => roleIds.Contains(u.RoleId)); //遍历用户 foreach (var roleId in roleIds) { //添加新的关系 List roleMenuEntity = new(); foreach (var menu in menuIds) { roleMenuEntity.Add(new RoleMenuEntity() { Id = SnowflakeHelper.NextId, RoleId = roleId, MenuId = menu }); } //一次性批量添加 await _roleMenuRepository.InsertRangeAsync(roleMenuEntity); } } } }