sunpengfei
2025-08-14 1b07d3f0191424cbf06dad186f5eb622ac9144e0
feat:开发
1个文件已添加
2个文件已修改
74 ■■■■■ 已修改文件
FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUserHireStatusQuery.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUserHireStatusQuery.cs
New file
@@ -0,0 +1,34 @@
using MediatR;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FlexJobApi.Core
{
    /// <summary>
    /// 查询应聘报名人员录用状态
    /// </summary>
    [Resource([EnumResourceController.TaskUser])]
    public class GetTaskUserHireStatusQuery : IRequest<GetTaskUserHireStatusQueryResult>
    {
        /// <summary>
        /// 任务Id
        /// </summary>
        public Guid TaskInfoId { get; set; }
        /// <summary>
        /// 用户Id(C端用户可不填)
        /// </summary>
        public Guid? UserId { get; set; }
    }
    /// <summary>
    /// 查询应聘报名人员录用状态
    /// </summary>
    public class GetTaskUserHireStatusQueryResult
    {
        public EnumTaskUserHireStatus HireStatus { get; set; }
    }
}
FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs
@@ -17,7 +17,8 @@
    public class TaskUserQueryHandler(
        IRepository<TaskInfoUser> rep) :
        IRequestHandler<GetTaskUsersQuery, GetTaskUsersQueryResult>,
        IRequestHandler<GetArrangeTaskUsersQuery, GetArrangeTaskUsersQueryResult>
        IRequestHandler<GetArrangeTaskUsersQuery, GetArrangeTaskUsersQueryResult>,
        IRequestHandler<GetTaskUserHireStatusQuery, GetTaskUserHireStatusQueryResult>
    {
        private readonly IRepository<TaskInfoUser> rep = rep;
@@ -120,5 +121,34 @@
                });
            return await request.PageModel.GetPagedListAsync<GetArrangeTaskUsersQueryResult, GetArrangeTaskUsersQueryResultItem>(s, cancellationToken);
        }
        /// <summary>
        /// 查询应聘报名人员录用状态
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task<GetTaskUserHireStatusQueryResult> Handle(GetTaskUserHireStatusQuery request, CancellationToken cancellationToken)
        {
            var logier = JwtUtils.GetCurrentLogier();
            var q = rep.AsQueryable().AsNoTracking()
                .Where(it => it.TaskInfoId == request.TaskInfoId);
            if (logier.Type == EnumUserType.Personal)
            {
                q = q.Where(it => it.EnterpriseEmployee.UserId == request.UserId);
            }
            else if (request.UserId == null)
            {
                throw Oops.Oh(EnumErrorCodeType.s400, "请选择用户");
            }
            var model = await q
                .Select(it => new GetTaskUserHireStatusQueryResult
                {
                    HireStatus = it.EnterpriseEmployee.HireStatus
                })
                .FirstOrDefaultAsync(cancellationToken);
            if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "该报名信息");
            return model;
        }
    }
}
FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs
@@ -16,7 +16,8 @@
    /// 用户简历查询处理器
    /// </summary>
    public class UserResumeQueryHandler(
            IRepository<User> rep
            IRepository<User> rep,
            IRepository<TaskInfoUser> repTaskInfoUser
        ) :
        IRequestHandler<GetUserResumesQuery, GetUserResumesQueryResult>,
        IRequestHandler<GetUserResumeQuery, GetUserResumeQueryResult>,
@@ -28,6 +29,7 @@
        IRequestHandler<GetUserResumeDetailQuery, GetUserResumeDetailQueryResult>
    {
        private readonly IRepository<User> rep = rep;
        private readonly IRepository<TaskInfoUser> repTaskInfoUser = repTaskInfoUser;
        /// <summary>
        /// 查询简历分页列表数据
@@ -149,7 +151,7 @@
            model.TaskInfoUsers = model.TaskInfoUsers.Where(it => it.SignContractTime.HasValue).ToList();
            if (model.Id.HasValue)
            {
                model.TaskInfoUsers = rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking()
                model.TaskInfoUsers = repTaskInfoUser.AsQueryable().AsNoTracking()
                    .Where(it => it.EnterpriseEmployee.UserId == model.Id && it.EnterpriseEmployee.EnterpriseSignContractTime.HasValue)
                    .Select(it => new GetUserResumeQueryResultExperience
                    {
@@ -158,7 +160,7 @@
                        Name = it.TaskInfo.Name
                    })
                    .ToList();
                model.TaskCount = await rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking()
                model.TaskCount = await repTaskInfoUser.AsQueryable().AsNoTracking()
                    .Where(it => it.EnterpriseEmployee.UserId == model.Id && it.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass)
                    .CountAsync();
                if (logier.Type == EnumUserType.Enterprise)