sunpengfei
2025-08-18 ab92e760e8461f0a48b37786b0f5a78db744dca6
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>
        /// 导入灵工信息
@@ -44,6 +46,10 @@
            var identities = models.DistinctSelect(it => it.Identity);
            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)
@@ -100,11 +106,26 @@
                    }
                    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;
@@ -145,7 +166,7 @@
                {
                    if (request.Id.HasValue && entity.UserId.HasValue)
                    {
                        throw Oops.Oh(EnumErrorCodeType.s510, "该灵工已报名无法修改信息");
                        throw Oops.Oh(EnumErrorCodeType.s510, "已报名无法修改信息");
                    }
                    request.Adapt(entity);
                },