| | |
| | | /// 灵工命令处理器 |
| | | /// </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> |
| | | /// 导入灵工信息 |
| | |
| | | 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>(); |
| | |
| | | { |
| | | errors.Add("身份证号格式不正确"); |
| | | } |
| | | else if (models.Any(it => it.Identity == model.Identity)) |
| | | else if (successList.Any(it => it.Identity == model.Identity)) |
| | | { |
| | | errors.Add("身份证号重复"); |
| | | } |
| | |
| | | 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; |
| | |
| | | enterpriseEmployee.Birthday = model.Birthday; |
| | | enterpriseEmployee.Age = model.Age; |
| | | await rep.UpdateAsync(enterpriseEmployee); |
| | | successList.Add(model); |
| | | } |
| | | } |
| | | } |
| | |
| | | { |
| | | if (request.Id.HasValue && entity.UserId.HasValue) |
| | | { |
| | | throw Oops.Oh(EnumErrorCodeType.s510, "该灵工已报名无法修改信息"); |
| | | throw Oops.Oh(EnumErrorCodeType.s510, "已报名无法修改信息"); |
| | | } |
| | | request.Adapt(entity); |
| | | }, |