sunpengfei
4 天以前 b288e7effa0edc09baad6089433a38b2b29b29db
FlexJobApi.UserServer.Application/Enterprises/Queries/EnterprisesQueryHandler.cs
@@ -18,7 +18,8 @@
    public class EnterprisesQueryHandler(
            IRepository<Enterprise> rep,
            IRepository<EnterpriseAuth> repEnterpriseAuth,
            IRepository<DictionaryData> repDictionaryData
            IRepository<DictionaryData> repDictionaryData,
            IRepository<TaskInfo> repTaskInfo
        ) :
        IRequestHandler<GetEnterprisesQuery, PagedListQueryResult<GetEnterprisesQueryResultItem>>,
        IRequestHandler<GetEnterpriseQuery, GetEnterpriseQueryResult>,
@@ -40,13 +41,13 @@
            if (request.Keywords.IsNotNull())
            {
                q = q.Where(it =>
                    it.EnterpriseAuth.EnterpriseName.Contains(request.Keywords)
                    || it.EnterpriseAuth.LegalPerson.Contains(request.Keywords)
                    it.EnterpriseName.Contains(request.Keywords)
                    || it.LegalPerson.Contains(request.Keywords)
                    || it.Contacts.Contains(request.Keywords));
            }
            if (request.IsConfigured.HasValue)
            {
                q = q.Where(it => (it.IsCheckedBankCard && it.RealAccess.HasValue && it.SmsAccess.HasValue) == request.IsConfigured);
                q = q.Where(it => (it.IsCheckedBankCard && it.ElectronSignSettings.Any() && it.SmsAccess.HasValue) == request.IsConfigured);
            }
            var s = (from e in q
                     join p in repDictionaryData.AsQueryable().AsNoTracking() on e.ProvinceCode equals p.Code into pg
@@ -67,7 +68,7 @@
                         CityContent = cgi.Content,
                         IndustryTypeContent = igi.Content,
                         IsReal = e.IsReal,
                         IsConfigured = e.IsCheckedBankCard && e.RealAccess.HasValue && e.SmsAccess.HasValue
                         IsConfigured = e.IsCheckedBankCard && e.ElectronSignSettings.Any() && e.SmsAccess.HasValue
                     });
            return request.PageModel.GetPagedListAsync(s, cancellationToken: cancellationToken);
        }
@@ -84,11 +85,14 @@
                .Where(it => it.Id == request.Id)
                .ProjectToType<GetEnterpriseQueryResult>()
                .FirstOrDefaultAsync(cancellationToken);
            if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "该企业");
            if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "企业");
            model.UserName = await rep.Change<User>().AsQueryable().AsNoTracking()
                 .Where(it => it.EnterpriseId == model.Id)
                 .Select(it => it.UserName)
                 .FirstOrDefaultAsync(cancellationToken);
            model.TaskCount = await repTaskInfo.AsQueryable().AsNoTracking()
                .Where(it => it.EnterpriseId == request.Id && it.ReleaseStatus == EnumTaskReleaseStatus.InProcess)
                .CountAsync();
            return model;
        }
@@ -102,9 +106,13 @@
        {
            var model = await rep.AsQueryable().AsNoTracking()
                .Where(it => it.Id == request.Id)
                .ProjectToType<GetEnterpriseElectronSignSettingQueryResult>()
                .Select(it => new GetEnterpriseElectronSignSettingQueryResult
                {
                    Id = it.Id,
                    ElectronSignAccesses = it.ElectronSignSettings.Select(s => s.ElectronSignAccess).ToList()
                })
                .FirstOrDefaultAsync(cancellationToken);
            if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "该企业");
            if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "企业");
            return model;
        }
@@ -120,7 +128,7 @@
                .Where(it => it.Id == request.Id)
                .ProjectToType<GetEnterpriseSmsSettingQueryResult>()
                .FirstOrDefaultAsync(cancellationToken);
            if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "该企业");
            if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "企业");
            return model;
        }
    }