sunpengfei
2025-08-12 860e1fe5396005cfcc3dd68e1b20cd3b35010e83
FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs
@@ -1,5 +1,7 @@
using FlexJobApi.Core;
using Furion.DatabaseAccessor;
using MediatR;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -8,12 +10,49 @@
namespace FlexJobApi.FlexJobServer.Application
{
    public class TaskUserQueryHandler
    /// <summary>
    /// 任务雇佣查询处理器
    /// </summary>
    public class TaskUserQueryHandler(
        IRepository<TaskInfoUser> rep)
        : IRequestHandler<GetTaskUsersQuery, GetTaskUsersQueryResult>
    {
        public Task<GetTaskUsersQueryResult> Handle(GetTaskUsersQuery request, CancellationToken cancellationToken)
        private readonly IRepository<TaskInfoUser> rep = rep;
        /// <summary>
        /// 查询应聘报名分页列表信息
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task<GetTaskUsersQueryResult> Handle(GetTaskUsersQuery request, CancellationToken cancellationToken)
        {
            throw new NotImplementedException();
            var logier = JwtUtils.GetCurrentLogier();
            var q = rep.AsQueryable().AsNoTracking()
                .OrderBy(it => it.CreatedTime)
                .Where(it => it.TaskInfo.EnterpriseId == logier.EnterpriseId && it.TaskInfoId == request.Id);
            var s = q
                .Select(it => new GetTaskUsersQueryResultItem
                {
                    Id = it.Id,
                    Avatar = it.EnterpriseEmployee.User.Avatar,
                    Name = it.EnterpriseEmployee.User.Name,
                    Identity = it.EnterpriseEmployee.User.Identity,
                    ContactPhoneNumber = it.EnterpriseEmployee.User.ContactPhoneNumber,
                    Gender = it.EnterpriseEmployee.User.Gender,
                    Age = it.EnterpriseEmployee.User.Age,
                    IsReal = it.EnterpriseEmployee.User.IsReal,
                    RealMethod = it.EnterpriseEmployee.User.RealMethod,
                    PersonalIdentityCode = it.EnterpriseEmployee.User.PersonalIdentityCode,
                    PersonalIdentityContent = it.EnterpriseEmployee.User.PersonalIdentity.Content,
                    EducationalBackgroundCode = it.EnterpriseEmployee.User.EducationalBackgroundCode,
                    EducationalBackgroundContent = it.EnterpriseEmployee.User.EducationalBackground.Content,
                    TaskCount = it.EnterpriseEmployee.User.TaskInfoUsers.Count(tu => tu.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass),
                    WorkSeniority = it.EnterpriseEmployee.User.WorkSeniority,
                    WorkExperience = it.EnterpriseEmployee.User.WorkExperience,
                    HireStatus = it.EnterpriseEmployee.HireStatus
                });
            return await request.PageModel.GetPagedListAsync<GetTaskUsersQueryResult, GetTaskUsersQueryResultItem>(s, cancellationToken);
        }
    }
}