| | |
| | | IRepository<User> rep, |
| | | IRepository<TaskInfoUser> repTaskInfoUser |
| | | ) : |
| | | IRequestHandler<GetOpenUserResumesQuery, GetUserResumesQueryResult>, |
| | | IRequestHandler<GetUserResumesQuery, GetUserResumesQueryResult>, |
| | | IRequestHandler<GetUserResumeQuery, GetUserResumeQueryResult>, |
| | | IRequestHandler<GetUserResumePersonalQuery, GetUserResumePersonalQueryResult>, |
| | |
| | | private readonly IRepository<TaskInfoUser> repTaskInfoUser = repTaskInfoUser; |
| | | |
| | | /// <summary> |
| | | /// 查询开放简历分页列表数据 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public Task<GetUserResumesQueryResult> Handle(GetOpenUserResumesQuery request, CancellationToken cancellationToken) |
| | | { |
| | | return Handle(request.Adapt<GetUserResumesQuery>(), cancellationToken); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询简历分页列表数据 |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | |
| | | public async Task<GetUserResumesQueryResult> Handle(GetUserResumesQuery request, CancellationToken cancellationToken) |
| | | { |
| | | var logier = JwtUtils.GetCurrentLogier(); |
| | | var q = rep.AsQueryable().AsNoTracking(); |
| | | var q = rep.AsQueryable().AsNoTracking() |
| | | .Where(it => it.Type == EnumUserType.Personal); |
| | | if (request.TaskInfoId.HasValue) |
| | | { |
| | | q = q.Where(it => it.EnterpriseEmployees.Any(ee => ee.TaskInfoUsers.Any(tu => tu.TaskInfoId == request.TaskInfoId))); |
| | |
| | | it.UserCredentials.Any(c => |
| | | request.UserCredentials.Contains(c.TypeCode))); |
| | | } |
| | | if (logier.Type == EnumUserType.Enterprise && request.IsCollected == true) |
| | | if (logier != null && logier.Type == EnumUserType.Enterprise && request.IsCollected == true) |
| | | { |
| | | q = q.Where(it => it.EnterpriseUserCollects.Any(c => c.EnterpriseId == logier.EnterpriseId && c.IsCollected)); |
| | | } |
| | | if (logier.Type == EnumUserType.Enterprise && request.IsContacted == true) |
| | | if (logier != null && logier.Type == EnumUserType.Enterprise && request.IsContacted == true) |
| | | { |
| | | q = q.Where(it => it.EnterpriseUserCollects.Any(c => c.EnterpriseId == logier.EnterpriseId && c.IsContacted)); |
| | | } |
| | |
| | | PersonalIdentityContent = it.PersonalIdentity.Content, |
| | | EducationalBackgroundCode = it.EducationalBackgroundCode, |
| | | EducationalBackgroundContent = it.EducationalBackground.Content, |
| | | TaskCount = it.EnterpriseEmployees.Where(ee => ee.HireStatus == EnumTaskUserHireStatus.Pass).Sum(ee => ee.TaskInfoUsers.Count()), |
| | | TaskCount = it.EnterpriseEmployees.SelectMany(ee => ee.TaskInfoUsers).Count(tu => tu.HireStatus == EnumTaskUserHireStatus.Pass), |
| | | WorkSeniority = it.WorkSeniority, |
| | | WorkExperience = it.WorkExperience, |
| | | CreatedTime = it.CreatedTime, |
| | | HireStatus = request.TaskInfoId.HasValue |
| | | ? it.EnterpriseEmployees |
| | | .SelectMany(ee => ee.TaskInfoUsers) |
| | | .Where(tu => tu.TaskInfoId == request.TaskInfoId) |
| | | .Select(tu => tu.HireStatus as EnumTaskUserHireStatus?) |
| | | .FirstOrDefault() |
| | | : null |
| | | }); |
| | | var result = await request.PageModel.GetPagedListAsync<GetUserResumesQueryResult, GetUserResumesQueryResultItem>(s, cancellationToken); |
| | | return result; |
| | |
| | | }) |
| | | .ToList(); |
| | | model.TaskCount = await repTaskInfoUser.AsQueryable().AsNoTracking() |
| | | .Where(it => it.EnterpriseEmployee.UserId == model.Id && it.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass) |
| | | .Where(it => it.EnterpriseEmployee.UserId == model.Id && it.HireStatus == EnumTaskUserHireStatus.Pass) |
| | | .CountAsync(); |
| | | if (logier.Type == EnumUserType.Enterprise) |
| | | { |