From 65c143397772e0c2458a243f4110863854478ddc Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期三, 20 八月 2025 15:58:19 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs | 16 ++++++++++++---- 1 files changed, 12 insertions(+), 4 deletions(-) diff --git a/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs b/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs index 02ea6c3..62f87f6 100644 --- a/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs @@ -65,9 +65,10 @@ await repEnterprise.InsertAsync(enterprise); else await repEnterprise.UpdateAsync(enterprise); + var user = await repUser.AsQueryable() .Include(it => it.UserRoles) - .Where(it => it.Type == EnumUserType.Enterprise && it.UserName == request.UserName) + .Where(it => it.Type == EnumUserType.Enterprise && it.DataSource == request.DataSource && it.DataSourceId == request.DataSourceId) .FirstOrDefaultAsync(cancellationToken); if (user == null) { @@ -78,10 +79,14 @@ { throw Oops.Oh(EnumErrorCodeType.s405, "璐﹀彿"); } + var checkUserNameExist = await repUser.AsQueryable().AsNoTracking() + .AnyAsync(it => it.Type == EnumUserType.Enterprise && it.UserName == request.UserName && it.Id != user.Id); + if (checkUserNameExist) 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) + .Where(it => it.UserType == user.Type && it.MinLevel == 100) .Select(it => new UserRole { RoleId = it.Id @@ -106,7 +111,7 @@ var user = await repUser.AsQueryable() .Include(it => it.UserRoles) .Include(it => it.UserManageIndustrialParks) - .Where(it => it.Type == EnumUserType.Operation && it.UserName == request.UserName) + .Where(it => it.Type == EnumUserType.Operation && it.DataSource == request.DataSource && it.DataSourceId == request.DataSourceId) .FirstOrDefaultAsync(cancellationToken); if (user == null) { @@ -114,6 +119,9 @@ user.Type = EnumUserType.Operation; user.Status = EnumUserStatus.Normal; } + var checkUserNameExist = await repUser.AsQueryable().AsNoTracking() + .AnyAsync(it => it.Type == EnumUserType.Operation && it.UserName == request.UserName && it.Id != user.Id); + if (checkUserNameExist) throw Oops.Oh(EnumErrorCodeType.s405, "璐﹀彿"); request.Adapt(user); user.UserManageIndustrialParks = request.IndustrialParkIds.Select(it => new UserManageIndustrialPark { @@ -121,7 +129,7 @@ }).ToList(); user.Level = 100; user.UserRoles = await repRole.AsQueryable().AsNoTracking() - .Where(it => it.UserType == user.Type && it.MinLevel <= user.Level) + .Where(it => it.UserType == user.Type && it.MinLevel == 100) .Select(it => new UserRole { RoleId = it.Id -- Gitblit v1.9.1