sunpengfei
2 天以前 ced7ed5d9b3e0cd0c1bdbc9d76d1906301d189c2
feat:开发
3个文件已修改
97 ■■■■■ 已修改文件
FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Commands/SendInviteElectronSignSmsCommand.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Web.Entry/appsettings.json 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Commands/SendInviteElectronSignSmsCommand.cs
@@ -22,5 +22,10 @@
        /// Id
        /// </summary>
        public List<Guid> Ids { get; set; }
        /// <summary>
        /// 合同模板Id
        /// </summary>
        public Guid ContractTemplateId { get; set; }
    }
}
FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs
@@ -260,13 +260,6 @@
                    UserSignContractStatus = entity.UserSignContractStatus,
                };
                await repEnterpriseEmployeeContract.InsertAsync(contract);
                //await mediator.Send(new SaveEnterpriseCostCommand
                //{
                //    EnterpriseId = logier.EnterpriseId!.Value,
                //    ContractTemplateId = request.ContractTemplateId,
                //    EnterpriseEmployeeContractId = contract.Id,
                //    Type = EnumEnterpriseCostType.ElectronSign
                //});
                await rep.UpdateAsync(entity);
            }
            return entities.Count;
@@ -281,34 +274,67 @@
        public async Task<int> Handle(SendInviteElectronSignSmsCommand request, CancellationToken cancellationToken)
        {
            var logier = JwtUtils.GetCurrentLogier();
            await mediator.Send(new CheckContractTemplateCommand
            {
                Id = request.ContractTemplateId
            }, cancellationToken);
            var entities = await rep.AsQueryable()
                .Include(it => it.Enterprise)
                .Include(it => it.ContractTemplate)
                .Where(it =>
                    it.EnterpriseId == logier.EnterpriseId
                    && request.Ids.Contains(it.Id)
                    && it.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait)
                    && request.Ids.Contains(it.Id))
                .ToListAsync();
            foreach (var entity in entities)
            foreach (var id in request.Ids)
            {
                var codeUrl = new SaveCodeUrlCommand
                var entity = entities.FirstOrDefault(it => it.Id == id);
                if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "灵工");
                if (entity.UserSignContractStatus == null
                    || entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Refuse
                    || entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Stop)
                {
                    Scene = EnumCodeUrlScene.InviteElectronSign,
                    ParamValue1 = entity.Id.ToString(),
                    ExpiredTime = DateTime.Now.AddMonths(1)
                };
                var code = await mediator.Send(codeUrl);
                await smsUtils.Send(new SendSmsModel
                    entity.ContractTemplateId = request.ContractTemplateId;
                    entity.UserSignContractStatus = EnumTaskUserSignContractStatus.Wait;
                    entity.UserSignContractTime = null;
                    entity.EnterpriseSignContractStatus = null;
                    entity.EnterpriseSignContractTime = null;
                    entity.ContractCode = $"{DateTime.Now:yyyyMMddHHmmss}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}";
                    entity.ContractUrl = null;
                    var contract = new EnterpriseEmployeeContract
                    {
                        EnterpriseEmployeeId = entity.Id,
                        ContractTemplateId = entity.ContractTemplateId,
                        ContractCode = entity.ContractCode,
                        UserSignContractStatus = entity.UserSignContractStatus,
                    };
                    await repEnterpriseEmployeeContract.InsertAsync(contract);
                    await rep.UpdateAsync(entity);
                }
                if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait)
                {
                    PhoneNumber = entity.ContactPhoneNumber,
                    TemplateCode = EnumSmsTemplateCode.InviteElectronSign,
                },
                new
                {
                    name = entity.Enterprise.EnterpriseName,
                    code = code
                });
                    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,
                        TemplateCode = EnumSmsTemplateCode.InviteElectronSign,
                    },
                    new
                    {
                        name = entity.Enterprise.EnterpriseName,
                        code = code
                    });
                }
            }
            return entities.Count;
        }
FlexJobApi.Web.Entry/appsettings.json
@@ -2,15 +2,15 @@
  "$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
  "Environment": "Local",
  "ConnectionStrings": {
    "FlexJobApi": "Server=120.26.58.240; Database=Dev_FlexJobApi; User=bole;Password=Bole1472589;Encrypt=false;",
    "FlexJobApiLog": "Server=120.26.58.240; Database=Dev_FlexJobApiLog; User=bole;Password=Bole1472589;Encrypt=false;",
    "HumanResources": "Server=120.26.58.240; Database=Dev_12333; User=bole;Password=Bole1472589;Encrypt=false;",
    "SyncTarget": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_FlexJobApi; User=bole;Password=Blcs20@%27;Encrypt=false;"
    //"FlexJobApi": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_FlexJobApi; User=bole;Password=Blcs20@%27;Encrypt=false;",
    //"FlexJobApiLog": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_FlexJobApiLog; User=bole;Password=Blcs20@%27;Encrypt=false;",
    //"HumanResources": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_12333; User=bole;Password=Blcs20@%27;Encrypt=false;",
    //"FlexJobApi": "Server=120.26.58.240; Database=Dev_FlexJobApi; User=bole;Password=Bole1472589;Encrypt=false;",
    //"FlexJobApiLog": "Server=120.26.58.240; Database=Dev_FlexJobApiLog; User=bole;Password=Bole1472589;Encrypt=false;",
    //"HumanResources": "Server=120.26.58.240; Database=Dev_12333; User=bole;Password=Bole1472589;Encrypt=false;",
    //"SyncTarget": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_FlexJobApi; User=bole;Password=Blcs20@%27;Encrypt=false;"
    "FlexJobApi": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_FlexJobApi; User=bole;Password=Blcs20@%27;Encrypt=false;",
    "FlexJobApiLog": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_FlexJobApiLog; User=bole;Password=Blcs20@%27;Encrypt=false;",
    "HumanResources": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_12333; User=bole;Password=Blcs20@%27;Encrypt=false;",
    "SyncTarget": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_FlexJobApi; User=bole;Password=Blcs20@%27;Encrypt=false;"
  },
  "Consul": {
    "Address": "http://localhost:8500/",