using FlexJobApi.Core; using Furion.DatabaseAccessor; using Furion.FriendlyException; using Mapster; using MediatR; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.FlexJobServer.Application { /// /// 查询任务企业信息处理器 /// public class GetTaskEnterpriseQueryHandler( IRepository repEnterprise, IRepository repTaskInfo ) : IRequestHandler { private readonly IRepository repEnterprise = repEnterprise; private readonly IRepository repTaskInfo = repTaskInfo; /// /// 查询任务企业信息 /// /// /// /// public async Task Handle(GetTaskEnterpriseQuery request, CancellationToken cancellationToken) { var model = await repEnterprise.AsQueryable().AsNoTracking() .Where(it => it.Id == request.Id) .ProjectToType() .FirstOrDefaultAsync(cancellationToken); if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "企业"); model.TaskCount = await repTaskInfo.AsQueryable().AsNoTracking() .Where(it => it.EnterpriseId == request.Id && it.ReleaseStatus == EnumTaskReleaseStatus.InProcess) .CountAsync(); return model; } } }