sunpengfei
2025-08-22 3a57c342ff5b39467b9dd0d5ba3c624311a581f1
FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs
@@ -33,7 +33,7 @@
        private readonly IRepository<TaskInfoUser> repTaskInfoUser = repTaskInfoUser;
        /// <summary>
        /// 查询简历分页列表数据
        /// 查询开放简历分页列表数据
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
@@ -51,8 +51,10 @@
        /// <returns></returns>
        public async Task<GetUserResumesQueryResult> Handle(GetUserResumesQuery request, CancellationToken cancellationToken)
        {
            Console.WriteLine(111);
            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)));
@@ -103,6 +105,9 @@
                Gender = it.Gender,
                IsReal = it.IsReal,
                Age = it.Age,
                ContactPhoneNumber = it.ContactPhoneNumber,
                Identity = it.Identity,
                RealTime = it.RealTime,
                PersonalIdentityCode = it.PersonalIdentityCode,
                PersonalIdentityContent = it.PersonalIdentity.Content,
                EducationalBackgroundCode = it.EducationalBackgroundCode,
@@ -111,6 +116,13 @@
                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;
@@ -125,17 +137,17 @@
        public async Task<GetUserResumeQueryResult> Handle(GetUserResumeQuery request, CancellationToken cancellationToken)
        {
            var logier = JwtUtils.GetCurrentLogier();
            if (logier.Type == EnumUserType.Personal)
            if (logier != null && logier.Type == EnumUserType.Personal)
            {
                request.UserId = logier.Id;
            }
            EnterpriseEmployee? enterpriseEmployee = null;
            if (logier.Type == EnumUserType.Enterprise && request.UserId == null && request.EnterpriseEmployeeId.HasValue)
            if (logier != null && logier.Type == EnumUserType.Enterprise && request.UserId == null && request.EnterpriseEmployeeId.HasValue)
            {
                enterpriseEmployee = await rep.Change<EnterpriseEmployee>().AsQueryable().AsNoTracking()
                   .Where(it => it.EnterpriseId == logier.EnterpriseId && it.Id == request.EnterpriseEmployeeId)
                   .FirstOrDefaultAsync(cancellationToken);
                if (enterpriseEmployee == null) throw Oops.Oh(EnumErrorCodeType.s404, "该灵工");
                if (enterpriseEmployee == null) throw Oops.Oh(EnumErrorCodeType.s404, "灵工");
                request.UserId = enterpriseEmployee.UserId;
            }
            else if (request.UserId == null) throw Oops.Oh(EnumErrorCodeType.s400, "请选择用户");
@@ -158,16 +170,18 @@
                    Age = enterpriseEmployee.Age,
                };
            }
            if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "该信息");
            if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "信息");
            model.TaskInfoUsers = model.TaskInfoUsers.Where(it => it.SignContractTime.HasValue).ToList();
            if (model.Id.HasValue)
            {
                model.TaskInfoUsers = repTaskInfoUser.AsQueryable().AsNoTracking()
                    .Where(it => it.EnterpriseEmployee.UserId == model.Id && it.EnterpriseEmployee.EnterpriseSignContractTime.HasValue)
                    .Where(it =>
                        it.EnterpriseEmployee.UserId == model.Id
                        && it.HireStatus == EnumTaskUserHireStatus.Pass
                        && it.HireTime.HasValue)
                    .Select(it => new GetUserResumeQueryResultExperience
                    {
                        SignContractTime = it.EnterpriseEmployee.EnterpriseSignContractTime,
                        HireTime = it.HireTime,
                        EnterpriseName = it.TaskInfo.Enterprise.EnterpriseName,
                        Name = it.TaskInfo.Name
                    })
@@ -175,7 +189,7 @@
                model.TaskCount = await repTaskInfoUser.AsQueryable().AsNoTracking()
                    .Where(it => it.EnterpriseEmployee.UserId == model.Id && it.HireStatus == EnumTaskUserHireStatus.Pass)
                    .CountAsync();
                if (logier.Type == EnumUserType.Enterprise)
                if (logier != null && logier.Type == EnumUserType.Enterprise)
                {
                    model.IsCollected = await rep.Change<EnterpriseUserCollect>().AsQueryable().AsNoTracking()
                        .Where(it => it.EnterpriseId == logier.EnterpriseId && it.UserId == model.Id)