sunpengfei
2 天以前 ad63bd48b1619e7c3779eefdf1d6a32a222169da
FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs
@@ -291,6 +291,13 @@
                .ToListAsync();
            foreach (var entity in entities)
            {
                var codeUrl = new SaveCodeUrlCommand
                {
                    Scene = EnumCodeUrlScene.InviteElectronSign,
                    ParamValue1 = entity.Id.ToString(),
                    ExpiredTime = DateTime.Now.AddMonths(1)
                };
                var code = await mediator.Send(codeUrl);
                await smsUtils.Send(new SendSmsModel
                {
                    PhoneNumber = entity.ContactPhoneNumber,
@@ -299,7 +306,7 @@
                new
                {
                    name = entity.Enterprise.EnterpriseName,
                    code = entity.ContractTemplate.Code
                    code = code
                });
            }
            return entities.Count;
@@ -314,10 +321,31 @@
        public async Task<PersonalUserElectronSignCommandResult> Handle(PersonalUserElectronSignCommand request, CancellationToken cancellationToken)
        {
            var logier = JwtUtils.GetCurrentLogier();
            Guid userId;
            if (logier != null)
            {
                userId = logier.Id;
            }
            if (request.Id == null)
            {
                if (request.SmsCode.IsNotNull())
                {
                    var codeUrl = await mediator.Send(new GetCodeUrlQuery
                    {
                        Code = request.SmsCode,
                        Scene = EnumCodeUrlScene.InviteElectronSign
                    });
                    request.Id = codeUrl.ParamValue1.ToGuid()!;
                }
                else
                {
                    throw Oops.Oh(EnumErrorCodeType.s400, "请填写灵工Id或短信编号");
                }
            }
            var entity = await rep.AsQueryable()
                .Include(it => it.Enterprise)
                .Include(it => it.ContractTemplate).ThenInclude(it => it.Values)
                .Where(it => it.UserId == logier.Id && it.Id == request.Id)
                .Where(it => it.Id == request.Id)
                .FirstOrDefaultAsync();
            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s510, "未报名该企业");
            if (entity.UserSignContractStatus == null) throw Oops.Oh(EnumErrorCodeType.s510, "企业未发起签约");
@@ -331,7 +359,7 @@
            if (contract == null) throw Oops.Oh(EnumErrorCodeType.s404, "合同");
            var user = await repUser.AsQueryable().AsNoTracking()
                .Include(it => it.UserAuth)
                .Where(it => it.Id == logier.Id)
                .Where(it => it.Id == entity.UserId)
                .FirstOrDefaultAsync();
            if (user == null) throw Oops.Oh(EnumErrorCodeType.s404, "用户");
            if (entity.ContractTemplate.Access == EnumElectronSignAccess.BestSign && !user.IsReal) throw Oops.Oh(EnumErrorCodeType.s510, "请先实名");
@@ -340,7 +368,7 @@
                OutContractId = contract.Id.ToString(),
                TemplateId = entity.ContractTemplate.ElectronSignContractTemplateId!.Value,
                Title = entity.ContractTemplate.Name,
                OutUserId = logier.Id.ToString(),
                OutUserId = entity.UserId.ToString(),
                Values = entity.ContractTemplate.Values
                    .Where(it => it.UserType == EnumUserType.Personal)
                    .Select(it =>