sunpengfei
2025-08-08 32288af3e5f12bc48d8360114c872fde5d9ff4a8
FlexJobApi.UserServer.Application/Roles/Commands/SetRoleUserInfosCommandHandler.cs
File was renamed from FlexJobApi.User.Application/Roles/Commands/SetRoleUserInfosCommandHandler.cs
@@ -8,16 +8,16 @@
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.User.Application
namespace FlexJobApi.UserServer.Application
{
    /// <summary>
    /// 设置角色用户
    /// </summary>
    public class SetRoleUserInfosCommandHandler(
            IRepository<UserInfoRole> rep
            IRepository<UserRole> rep
        ) : IRequestHandler<SetRoleUserInfosCommand, int>
    {
        private readonly IRepository<UserInfoRole> rep = rep;
        private readonly IRepository<UserRole> rep = rep;
        /// <inheritdoc/>
        public async Task<int> Handle(SetRoleUserInfosCommand request, CancellationToken cancellationToken)
@@ -25,16 +25,16 @@
            var entities = await rep.AsQueryable()
                .Where(it =>
                    it.RoleId == request.RoleId
                    && request.UserInfoIds.Contains(it.UserInfoId))
                    && request.UserInfoIds.Contains(it.UserId))
                .ToListAsync(cancellationToken);
            var removes = entities.Where(it => !request.UserInfoIds.Contains(it.UserInfoId)).ToList();
            var removes = entities.Where(it => !request.UserInfoIds.Contains(it.UserId)).ToList();
            if (removes.Any()) await rep.DeleteAsync(removes, cancellationToken);
            var adds = request.UserInfoIds
                .Where(it => !entities.Any(e => e.UserInfoId == it))
                .Select(it => new UserInfoRole
                .Where(it => !entities.Any(e => e.UserId == it))
                .Select(it => new UserRole
                {
                    RoleId = request.RoleId,
                    UserInfoId = it
                    UserId = it
                })
                .ToList();
            if (adds.Any()) await rep.InsertAsync(adds, cancellationToken);