using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Yi.Framework.Ddd.Repositories; using Yi.RBAC.Domain.Identity.Entities; namespace Yi.RBAC.Domain.Identity { [AppService] public class UserManager { private readonly IRepository _repository; private readonly IRepository _repositoryUserRole; private readonly IRepository _repositoryUserPost; public UserManager(IRepository repository, IRepository repositoryUserRole, IRepository repositoryUserPost) => (_repository, _repositoryUserRole, _repositoryUserPost) = (repository, repositoryUserRole, repositoryUserPost); /// /// 给用户设置角色 /// /// /// /// public async Task GiveUserSetRoleAsync(List userIds, List? roleIds) { //删除用户之前所有的用户角色关系(物理删除,没有恢复的必要) await _repositoryUserRole.DeleteAsync(u => userIds.Contains(u.UserId)); if (roleIds is not null) { //遍历用户 foreach (var userId in userIds) { //添加新的关系 List userRoleEntities = new(); foreach (var roleId in roleIds) { userRoleEntities.Add(new UserRoleEntity() { Id = SnowflakeHelper.NextId, UserId = userId, RoleId = roleId }); } //一次性批量添加 await _repositoryUserRole.InsertRangeAsync(userRoleEntities); } } } /// /// 给用户设置岗位 /// /// /// /// public async Task GiveUserSetPostAsync(List userIds, List? postIds) { //删除用户之前所有的用户角色关系(物理删除,没有恢复的必要) await _repositoryUserPost.DeleteAsync(u => userIds.Contains(u.UserId)); if (postIds is not null) { //遍历用户 foreach (var userId in userIds) { //添加新的关系 List userPostEntities = new(); foreach (var post in postIds) { userPostEntities.Add(new UserPostEntity() { Id = SnowflakeHelper.NextId, UserId = userId, PostId = post }); } //一次性批量添加 await _repositoryUserPost.InsertRangeAsync(userPostEntities); } } } } }