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)