From 1d2953530fc3019ffc2bbe71f4de2ab7820fe528 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期一, 11 八月 2025 17:26:31 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs | 61 ++++++++++++++++++++++++++++++ 1 files changed, 61 insertions(+), 0 deletions(-) diff --git a/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs b/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs index 20c861c..961938c 100644 --- a/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs +++ b/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs @@ -18,6 +18,7 @@ public class UserResumeQueryHandler( IRepository<User> rep ) : + IRequestHandler<GetUserResumesQuery, GetUserResumesQueryResult>, IRequestHandler<GetUserResumeQuery, GetUserResumeQueryResult>, IRequestHandler<GetUserResumePersonalQuery, GetUserResumePersonalQueryResult>, IRequestHandler<GetUserResumeJobSeekingQuery, GetUserResumeJobSeekingQueryResult>, @@ -29,6 +30,66 @@ private readonly IRepository<User> rep = rep; /// <summary> + /// 鏌ヨ鐏靛伐鍒嗛〉鍒楄〃鏁版嵁 + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<GetUserResumesQueryResult> Handle(GetUserResumesQuery request, CancellationToken cancellationToken) + { + var logier = JwtUtils.GetCurrentLogier(); + var q = rep.AsQueryable().AsNoTracking(); + if (request.UserExpectJobs.IsNotNull()) + { + q = q.Where(it => + it.UserExpectJobs.Any(j => + request.UserExpectJobs.Contains(j.ExpectJobCode) + || j.ExpectJob.ParentId.HasValue + && (request.UserExpectJobs.Contains(j.ExpectJob.Parent.Code)))); + } + if (request.Gender.HasValue) + { + q = q.Where(it => it.Gender == request.Gender); + } + if (request.PersonalIdentityCode.IsNotNull()) + { + q = q.Where(it => it.PersonalIdentityCode == request.PersonalIdentityCode); + } + if (request.AgeMin.HasValue) + { + q = q.Where(it => it.Age >= request.AgeMin); + } + if (request.AgeMax.HasValue) + { + q = q.Where(it => it.Age <= request.AgeMax); + } + if (request.UserCredentials.IsNotNull()) + { + q = q.Where(it => + it.UserCredentials.Any(c => + request.UserCredentials.Contains(c.TypeCode))); + } + var s = q.Select(it => new GetUserResumesQueryResultItem + { + Id = it.Id, + Avatar = it.Avatar, + Name = it.Name, + Gender = it.Gender, + IsReal = it.IsReal, + Age = it.Age, + PersonalIdentityCode = it.PersonalIdentityCode, + PersonalIdentityContent = it.PersonalIdentity.Content, + EducationalBackgroundCode = it.EducationalBackgroundCode, + EducationalBackgroundContent = it.EducationalBackground.Content, + TaskCount = it.TaskInfoUsers.Count(tu => tu.SignContractStatus == EnumTaskUserSignContractStatus.Pass), + WorkSeniority = it.WorkSeniority, + WorkExperience = it.WorkExperience + }); + var result = await request.PageModel.GetPagedListAsync<GetUserResumesQueryResult, GetUserResumesQueryResultItem>(s, cancellationToken); + return result; + } + + /// <summary> /// 鏌ヨ鐢ㄦ埛绠�鍘� /// </summary> /// <param name="request"></param> -- Gitblit v1.9.1