New file |
| | |
| | | using MediatR; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | |
| | | namespace FlexJobApi.Core |
| | | { |
| | | /// <summary> |
| | | /// B端查询应聘报名详情 |
| | | /// </summary> |
| | | public class GetTaskUserQuery : IRequest<GetTaskUserQueryResult> |
| | | { |
| | | /// <summary> |
| | | /// Id |
| | | /// </summary> |
| | | public Guid Id { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// B端查询应聘报名详情 |
| | | /// </summary> |
| | | public class GetTaskUserQueryResult |
| | | { |
| | | |
| | | } |
| | | } |
| | |
| | | /// 任务Id |
| | | /// </summary> |
| | | public Guid Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 关键字 |
| | | /// </summary> |
| | | public string Keywords { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 录用状态 |
| | | /// </summary> |
| | | public EnumTaskUserHireStatus? HireStatus { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | using System; |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel.DataAnnotations; |
| | | using System.Linq; |
| | |
| | | public string ContactPhoneNumber { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否实名 |
| | | /// </summary> |
| | | public bool UserIsReal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 实名方式 |
| | | /// </summary> |
| | | public EnumUserRealMethod? RealMethod { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 身份编号 |
| | | /// </summary> |
| | | public string PersonalIdentityCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 身份 |
| | | /// </summary> |
| | | public string PersonalIdentityContent { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 学历编号 |
| | | /// </summary> |
| | | public string EducationalBackgroundCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 学历 |
| | | /// </summary> |
| | | public string EducationalBackgroundContent { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 上岗次数 |
| | | /// </summary> |
| | | public int TaskCount { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 工作资历 |
| | | /// </summary> |
| | | public string WorkSeniority { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 工作经验 |
| | | /// </summary> |
| | | public string WorkExperience { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 录用状态 |
| | | /// </summary> |
| | | public EnumTaskUserHireStatus HireStatus { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 实名状态 |
| | | /// </summary> |
| | | public bool? UserIsReal { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 灵工签约状态 |
| | |
| | | var q = rep.AsQueryable().AsNoTracking() |
| | | .OrderBy(it => it.CreatedTime) |
| | | .Where(it => it.TaskInfo.EnterpriseId == logier.EnterpriseId && it.TaskInfoId == request.Id); |
| | | if (request.Keywords.IsNotNull()) |
| | | { |
| | | q = q.Where(it => |
| | | it.EnterpriseEmployee.User.Name.Contains(request.Keywords) |
| | | || it.EnterpriseEmployee.User.Identity.Contains(request.Keywords) |
| | | || it.EnterpriseEmployee.User.PhoneNumber.Contains(request.Keywords)); |
| | | } |
| | | if (request.HireStatus.HasValue) |
| | | { |
| | | q = q.Where(it => it.EnterpriseEmployee.HireStatus == request.HireStatus); |
| | | } |
| | | var s = q |
| | | .Select(it => new GetTaskUsersQueryResultItem |
| | | { |
| | |
| | | var q = TaskInfoRepository.GetQueryable(rep, true, logier).Where(it => |
| | | it.TaskInfoUsers.Any(tu => |
| | | tu.EnterpriseEmployee.UserId == logier.Id |
| | | && tu.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass |
| | | && tu.ArrangeStatus == EnumTaskUserArrangeStatus.Complete)); |
| | | if (request.Status.HasValue) |
| | | { |
| | |
| | | .GetDetail<User, GetPersonalLoginInfoQueryResult>(cancellationToken); |
| | | var taskUserQueryable = rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking() |
| | | .Where(it => it.EnterpriseEmployee.UserId == model.Id); |
| | | model.TaskCount = await taskUserQueryable.CountAsync(); |
| | | model.HirePassTaskCount = await taskUserQueryable.CountAsync(it => it.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass); |
| | | model.HireRefuseTaskCount = await taskUserQueryable.CountAsync(it => it.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Refuse); |
| | | model.TaskCount = await taskUserQueryable.CountAsync(tu => |
| | | tu.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Wait |
| | | || tu.EnterpriseEmployee.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait); |
| | | model.HirePassTaskCount = await taskUserQueryable.CountAsync(tu => |
| | | tu.ArrangeStatus == EnumTaskUserArrangeStatus.Complete); |
| | | model.HireRefuseTaskCount = await taskUserQueryable.CountAsync(tu => |
| | | tu.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Refuse |
| | | || tu.EnterpriseEmployee.UserSignContractStatus == EnumTaskUserSignContractStatus.Refuse |
| | | || tu.EnterpriseEmployee.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Refuse); |
| | | return model; |
| | | } |
| | | |
| | |
| | | { |
| | | q = q.Where(it => it.EnterpriseSignContractStatus == request.EnterpriseSignContractStatus); |
| | | } |
| | | var s = q.ProjectToType<GetEnterpriseEmployeesQueryResultItem>(); |
| | | var s = q.Select(it => new GetEnterpriseEmployeesQueryResultItem |
| | | { |
| | | Id = it.Id, |
| | | Name = it.Name, |
| | | Identity = it.Identity, |
| | | Gender = it.Gender, |
| | | Age = it.Age, |
| | | ContactPhoneNumber = it.ContactPhoneNumber, |
| | | UserIsReal = it.User.IsReal, |
| | | RealMethod = it.User.RealMethod, |
| | | PersonalIdentityCode = it.User.PersonalIdentityCode, |
| | | PersonalIdentityContent = it.User.PersonalIdentity.Content, |
| | | EducationalBackgroundCode = it.User.EducationalBackgroundCode, |
| | | EducationalBackgroundContent = it.User.EducationalBackground.Content, |
| | | TaskCount = it.User.EnterpriseEmployees.Where(ee => ee.HireStatus == EnumTaskUserHireStatus.Pass).Sum(ee => ee.TaskInfoUsers.Count()), |
| | | WorkSeniority = it.User.WorkSeniority, |
| | | WorkExperience = it.User.WorkExperience, |
| | | HireStatus = it.HireStatus, |
| | | UserSignContractStatus = it.UserSignContractStatus, |
| | | HireTime = it.HireTime, |
| | | UserRealTime = it.User.RealTime, |
| | | UserSignContractTime = it.UserSignContractTime, |
| | | EnterpriseSignContractStatus = it.EnterpriseSignContractStatus, |
| | | EnterpriseSignContractTime = it.EnterpriseSignContractTime |
| | | }); |
| | | return await request.PageModel.GetPagedListAsync<GetEnterpriseEmployeesQueryResult, GetEnterpriseEmployeesQueryResultItem>(s, cancellationToken); |
| | | } |
| | | } |
| | |
| | | PersonalIdentityContent = it.PersonalIdentity.Content, |
| | | EducationalBackgroundCode = it.EducationalBackgroundCode, |
| | | EducationalBackgroundContent = it.EducationalBackground.Content, |
| | | TaskCount = it.EnterpriseEmployees.Sum(ee => ee.TaskInfoUsers.Count(tu => tu.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass)), |
| | | TaskCount = it.User.EnterpriseEmployees.Where(ee => ee.HireStatus == EnumTaskUserHireStatus.Pass).Sum(ee => ee.TaskInfoUsers.Count()), |
| | | WorkSeniority = it.WorkSeniority, |
| | | WorkExperience = it.WorkExperience, |
| | | }); |