sunpengfei
2025-08-22 3a57c342ff5b39467b9dd0d5ba3c624311a581f1
FlexJobApi.UserServer.Application/Enterprises/Commands/EnterpriseCommandHandler.cs
@@ -17,6 +17,7 @@
    /// 企业命令处理器
    /// </summary>
    public class EnterpriseCommandHandler(
            IMediator mediator,
            IRepository<Enterprise> rep,
            IRepository<User> repUser
        ) :
@@ -25,6 +26,7 @@
        IRequestHandler<SetEnterpriseSmsSettingCommand, Guid>
    {
        private readonly IMediator mediator = mediator;
        private readonly IRepository<Enterprise> rep = rep;
        private readonly IRepository<User> repUser = repUser;
@@ -72,7 +74,7 @@
            }
            else
            {
                if (user.EnterpriseId != entity.Id) throw Oops.Oh(EnumErrorCodeType.s405, "该账号");
                if (user.EnterpriseId != entity.Id) throw Oops.Oh(EnumErrorCodeType.s405, "账号");
                user.Name = request.Contacts;
                user.PhoneNumber = request.ContactPhoneNumber;
                if (request.Password.IsNotNull())
@@ -93,9 +95,30 @@
        /// <returns></returns>
        public async Task<Guid> Handle(SetEnterpriseElectronSignSettingCommand request, CancellationToken cancellationToken)
        {
            var entity = await rep.AsQueryable().FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken);
            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "该企业");
            request.Adapt(entity);
            var entity = await rep.AsQueryable()
                .Include(it => it.ElectronSignSettings)
                .FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken);
            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "企业");
            await mediator.Send(new CheckElectronSignAccessEnabledsCommand
            {
                Accesses = request.ElectronSignAccesses
            }, cancellationToken);
            entity.ElectronSignSettings = request.ElectronSignAccesses
                .Select(it =>
                {
                    var setting = entity.ElectronSignSettings.FirstOrDefault(s => s.ElectronSignAccess == it);
                    if (setting == null)
                    {
                        setting = new EnterpriseElectronSignSetting
                        {
                            ElectronSignAccess = it
                        };
                    }
                    return setting;
                })
                .ToList();
            await rep.UpdateAsync(entity);
            return entity.Id;
        }
@@ -109,7 +132,7 @@
        public async Task<Guid> Handle(SetEnterpriseSmsSettingCommand request, CancellationToken cancellationToken)
        {
            var entity = await rep.AsQueryable().FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken);
            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "该企业");
            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "企业");
            request.Adapt(entity);
            await rep.UpdateAsync(entity);
            return entity.Id;