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.UserServer.Application { /// /// 用户简历查询处理器 /// public class UserResumeQueryHandler( IRepository rep ) : IRequestHandler, IRequestHandler, IRequestHandler, IRequestHandler>, IRequestHandler, IRequestHandler, IRequestHandler { private readonly IRepository rep = rep; /// /// 查询用户简历 /// /// /// /// public async Task Handle(GetUserResumeQuery request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); if (logier.Type == EnumUserType.Personal) { request.UserId = logier.Id; } if (request.UserId == null) throw Oops.Oh(EnumErrorCodeType.s400, "请选择用户"); var model = await request.UserId.Value .GetDetail(cancellationToken); model.TaskCount = await rep.Change().AsQueryable().AsNoTracking() .Where(it => it.UserId == model.Id && it.HireStatus == EnumTaskUserHireStatus.Pass) .CountAsync(); return model; } /// /// 查询用户简历-个人信息 /// /// /// /// public async Task Handle(GetUserResumePersonalQuery request, CancellationToken cancellationToken) { var model = await rep.GetPersonalQueryable(false) .GetDetail(cancellationToken); var result = model.Adapt(); return result; } /// /// 查询用户简历-求职意向 /// /// /// /// public Task Handle(GetUserResumeJobSeekingQuery request, CancellationToken cancellationToken) { return rep.GetPersonalQueryable(false) .GetDetail(cancellationToken); } /// /// 查询用户简历-资格证书列表 /// /// /// /// public async Task> Handle(GetUserResumeCredentialsQuery request, CancellationToken cancellationToken) { return await rep.GetPersonalQueryable(false) .SelectMany(it => it.UserCredentials) .OrderBy(it => it.CreatedTime) .ProjectToType() .ToListAsync(cancellationToken); } /// /// 查询用户简历-资格证书 /// /// /// /// public Task Handle(GetUserResumeCredentialQuery request, CancellationToken cancellationToken) { return rep.GetPersonalQueryable(false) .SelectMany(it => it.UserCredentials) .Where(it => it.Id == request.Id) .GetDetail(cancellationToken); } /// /// 查询用户简历-工作经验 /// /// /// /// public Task Handle(GetUserResumeWorkExperienceQuery request, CancellationToken cancellationToken) { return rep.GetPersonalQueryable(false) .GetDetail(cancellationToken); } /// /// 查询用户简历-详细信息 /// /// /// /// public Task Handle(GetUserResumeDetailQuery request, CancellationToken cancellationToken) { return rep.GetPersonalQueryable(false) .GetDetail(cancellationToken); } } }