From 176f8e56965624e9c33028a6af04f6ea5cc88e6c Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期一, 18 八月 2025 14:43:37 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs | 22 +++++++++++++++++++++- 1 files changed, 21 insertions(+), 1 deletions(-) diff --git a/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs b/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs index 7f4d91c..02ea6c3 100644 --- a/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs @@ -20,13 +20,15 @@ /// </summary> public class SyncUserCommandHandler( IRepository<User> repUser, - IRepository<Enterprise> repEnterprise + IRepository<Enterprise> repEnterprise, + IRepository<Role> repRole ) : IRequestHandler<SyncEnterpriseUserCommand, Guid>, IRequestHandler<SyncOperationUserCommand, Guid> { private readonly IRepository<User> repUser = repUser; private readonly IRepository<Enterprise> repEnterprise = repEnterprise; + private readonly IRepository<Role> repRole = repRole; /// <summary> /// 鍚屾浼佷笟鐢ㄦ埛 @@ -64,6 +66,7 @@ else await repEnterprise.UpdateAsync(enterprise); var user = await repUser.AsQueryable() + .Include(it => it.UserRoles) .Where(it => it.Type == EnumUserType.Enterprise && it.UserName == request.UserName) .FirstOrDefaultAsync(cancellationToken); if (user == null) @@ -76,6 +79,14 @@ throw Oops.Oh(EnumErrorCodeType.s405, "璐﹀彿"); } user.EnterpriseId = enterprise.Id; + user.Level = 100; + user.UserRoles = await repRole.AsQueryable().AsNoTracking() + .Where(it => it.UserType == user.Type && it.MinLevel <= user.Level) + .Select(it => new UserRole + { + RoleId = it.Id + }) + .ToListAsync(); request.Adapt(user); if (user.Id == Guid.Empty) await repUser.InsertAsync(user); @@ -93,6 +104,7 @@ public async Task<Guid> Handle(SyncOperationUserCommand request, CancellationToken cancellationToken) { var user = await repUser.AsQueryable() + .Include(it => it.UserRoles) .Include(it => it.UserManageIndustrialParks) .Where(it => it.Type == EnumUserType.Operation && it.UserName == request.UserName) .FirstOrDefaultAsync(cancellationToken); @@ -107,6 +119,14 @@ { IndustrialParkId = it }).ToList(); + user.Level = 100; + user.UserRoles = await repRole.AsQueryable().AsNoTracking() + .Where(it => it.UserType == user.Type && it.MinLevel <= user.Level) + .Select(it => new UserRole + { + RoleId = it.Id + }) + .ToListAsync(); if (user.Id == Guid.Empty) await repUser.InsertAsync(user); else -- Gitblit v1.9.1