From ab92e760e8461f0a48b37786b0f5a78db744dca6 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期一, 18 八月 2025 16:37:06 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs | 34 +++++++++++++++++++++++++++++----- 1 files changed, 29 insertions(+), 5 deletions(-) diff --git a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs index 8544539..e342e1d 100644 --- a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs @@ -23,12 +23,14 @@ /// 鐏靛伐鍛戒护澶勭悊鍣� /// </summary> public class EnterpriseEmployeesCommandHandler( - IRepository<EnterpriseEmployee> rep + IRepository<EnterpriseEmployee> rep, + IRepository<User> repUser ) : IRequestHandler<ImportEnterpriseEmployeesCommand, ImportEnterpriseEmployeesCommandResult>, IRequestHandler<EditEnterpriseEmployeeCommand, Guid> { private readonly IRepository<EnterpriseEmployee> rep = rep; + private readonly IRepository<User> repUser = repUser; /// <summary> /// 瀵煎叆鐏靛伐淇℃伅 @@ -45,6 +47,11 @@ var enterpriseEmployees = await rep.AsQueryable() .Where(it => it.EnterpriseId == logier.EnterpriseId && identities.Contains(it.Identity)) .ToListAsync(); + var userIds = enterpriseEmployees.DistinctSelect(it => it.UserId.HasValue, it => it.UserId!.Value); + var users = await repUser.AsQueryable() + .Where(it => userIds.Contains(it.Id)) + .ToListAsync(); + var successList = new List<ImportEnterpriseEmployeesCommandModel>(); foreach (var model in models) { var errors = new List<string>(); @@ -68,7 +75,7 @@ { errors.Add("韬唤璇佸彿鏍煎紡涓嶆纭�"); } - else if (models.Any(it => it.Identity == model.Identity)) + else if (successList.Any(it => it.Identity == model.Identity)) { errors.Add("韬唤璇佸彿閲嶅"); } @@ -95,14 +102,30 @@ Age = model.Age, }; await rep.InsertAsync(enterpriseEmployee); + successList.Add(model); } else { + var canUpdate = true; if (enterpriseEmployee.UserId.HasValue) { - errors.Add("璇ョ伒宸ュ凡鎶ュ悕鏃犳硶淇敼淇℃伅"); + var user = users.FirstOrDefault(it => it.Id == enterpriseEmployee.UserId.Value)!; + if (user.IsReal == true) + { + canUpdate = false; + errors.Add("宸插疄鍚嶆棤娉曚慨鏀逛俊鎭�"); + } + else + { + user.Name = model.Name; + user.ContactPhoneNumber = model.ContactPhoneNumber; + user.Gender = model.Gender; + user.Birthday = model.Birthday; + user.Age = model.Age; + await repUser.UpdateAsync(user); + } } - else + if (canUpdate) { enterpriseEmployee.Name = model.Name; enterpriseEmployee.ContactPhoneNumber = model.ContactPhoneNumber; @@ -110,6 +133,7 @@ enterpriseEmployee.Birthday = model.Birthday; enterpriseEmployee.Age = model.Age; await rep.UpdateAsync(enterpriseEmployee); + successList.Add(model); } } } @@ -142,7 +166,7 @@ { if (request.Id.HasValue && entity.UserId.HasValue) { - throw Oops.Oh(EnumErrorCodeType.s510, "璇ョ伒宸ュ凡鎶ュ悕鏃犳硶淇敼淇℃伅"); + throw Oops.Oh(EnumErrorCodeType.s510, "宸叉姤鍚嶆棤娉曚慨鏀逛俊鎭�"); } request.Adapt(entity); }, -- Gitblit v1.9.1