| | |
| | | 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; |
| | |
| | | /// 用户简历查询处理器 |
| | | /// </summary> |
| | | public class UserResumeQueryHandler( |
| | | IRepository<UserResume> rep |
| | | IRepository<User> rep |
| | | ) : |
| | | IRequestHandler<GetUserResumeQuery, GetUserResumeQueryResult> |
| | | IRequestHandler<GetUserResumeQuery, GetUserResumeQueryResult>, |
| | | IRequestHandler<GetUserResumePersonalQuery, GetUserResumePersonalQueryResult>, |
| | | IRequestHandler<GetUserResumeJobSeekingQuery, GetUserResumeJobSeekingQueryResult>, |
| | | IRequestHandler<GetUserResumeCredentialsQuery, List<GetUserResumeCredentialsQueryResultItem>>, |
| | | IRequestHandler<GetUserResumeCredentialQuery, GetUserResumeCredentialQueryResult>, |
| | | IRequestHandler<GetUserResumeWorkExperienceQuery, GetUserResumeWorkExperienceQueryResult>, |
| | | IRequestHandler<GetUserResumeDetailQuery, GetUserResumeDetailQueryResult> |
| | | { |
| | | private readonly IRepository<UserResume> rep = rep; |
| | | private readonly IRepository<User> rep = rep; |
| | | |
| | | public Task<GetUserResumeQueryResult> Handle(GetUserResumeQuery request, CancellationToken cancellationToken) |
| | | /// <summary> |
| | | /// 查询用户简历 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<GetUserResumeQueryResult> Handle(GetUserResumeQuery request, CancellationToken cancellationToken) |
| | | { |
| | | throw new NotImplementedException(); |
| | | 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<User, GetUserResumeQueryResult>(cancellationToken); |
| | | model.TaskCount = await rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking() |
| | | .Where(it => it.UserId == model.Id && it.HireStatus == EnumTaskUserHireStatus.Pass) |
| | | .CountAsync(); |
| | | return model; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询用户简历-个人信息 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public Task<GetUserResumePersonalQueryResult> Handle(GetUserResumePersonalQuery request, CancellationToken cancellationToken) |
| | | { |
| | | return rep.GetPersonalQueryable(false) |
| | | .GetDetail<User, GetUserResumePersonalQueryResult>(cancellationToken); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询用户简历-求职意向 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public Task<GetUserResumeJobSeekingQueryResult> Handle(GetUserResumeJobSeekingQuery request, CancellationToken cancellationToken) |
| | | { |
| | | return rep.GetPersonalQueryable(false) |
| | | .GetDetail<User, GetUserResumeJobSeekingQueryResult>(cancellationToken); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询用户简历-资格证书列表 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<GetUserResumeCredentialsQueryResultItem>> Handle(GetUserResumeCredentialsQuery request, CancellationToken cancellationToken) |
| | | { |
| | | return await rep.GetPersonalQueryable(false) |
| | | .SelectMany(it => it.UserCredentials) |
| | | .OrderBy(it => it.CreatedTime) |
| | | .ProjectToType<GetUserResumeCredentialsQueryResultItem>() |
| | | .ToListAsync(cancellationToken); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询用户简历-资格证书 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public Task<GetUserResumeCredentialQueryResult> Handle(GetUserResumeCredentialQuery request, CancellationToken cancellationToken) |
| | | { |
| | | return rep.GetPersonalQueryable(false) |
| | | .SelectMany(it => it.UserCredentials) |
| | | .Where(it => it.Id == request.Id) |
| | | .GetDetail<UserCredential, GetUserResumeCredentialQueryResult>(cancellationToken); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询用户简历-工作经验 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public Task<GetUserResumeWorkExperienceQueryResult> Handle(GetUserResumeWorkExperienceQuery request, CancellationToken cancellationToken) |
| | | { |
| | | return rep.GetPersonalQueryable(false) |
| | | .GetDetail<User, GetUserResumeWorkExperienceQueryResult>(cancellationToken); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询用户简历-详细信息 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public Task<GetUserResumeDetailQueryResult> Handle(GetUserResumeDetailQuery request, CancellationToken cancellationToken) |
| | | { |
| | | return rep.GetPersonalQueryable(false) |
| | | .GetDetail<User, GetUserResumeDetailQueryResult>(cancellationToken); |
| | | } |
| | | |
| | | } |
| | | } |