From c582e460986388dec3c337f3fbc2b8cf616c6e4a Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期二, 12 八月 2025 19:07:26 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUsersQuery.cs | 10 +++ FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs | 11 +++ FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUserQuery.cs | 28 +++++++++ FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs | 26 ++++++++ FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs | 53 +++++++++++++++-- FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs | 1 FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs | 2 FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs | 12 +++- 8 files changed, 131 insertions(+), 12 deletions(-) diff --git a/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUserQuery.cs b/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUserQuery.cs new file mode 100644 index 0000000..cee3ebb --- /dev/null +++ b/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUserQuery.cs @@ -0,0 +1,28 @@ +锘縰sing 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 + { + + } +} diff --git a/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUsersQuery.cs b/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUsersQuery.cs index f7c2697..a8bbc78 100644 --- a/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUsersQuery.cs +++ b/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetTaskUsersQuery.cs @@ -18,6 +18,16 @@ /// 浠诲姟Id /// </summary> public Guid Id { get; set; } + + /// <summary> + /// 鍏抽敭瀛� + /// </summary> + public string Keywords { get; set; } + + /// <summary> + /// 褰曠敤鐘舵�� + /// </summary> + public EnumTaskUserHireStatus? HireStatus { get; set; } } /// <summary> diff --git a/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs index c880d26..ac99cb0 100644 --- a/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs +++ b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs @@ -1,4 +1,5 @@ -锘縰sing System; +锘縰sing Newtonsoft.Json; +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -104,14 +105,54 @@ 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> /// 鐏靛伐绛剧害鐘舵�� diff --git a/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs index a363e48..e970789 100644 --- a/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs +++ b/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs @@ -34,6 +34,17 @@ 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 { diff --git a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs index 6d1fa99..e9f5eff 100644 --- a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs +++ b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs @@ -267,7 +267,6 @@ 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) { diff --git a/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs b/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs index 47fa3c8..94880e8 100644 --- a/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/Auths/Commands/LoginCommandHandler.cs @@ -270,9 +270,15 @@ .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; } diff --git a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs index a0e2dc6..3a7ef18 100644 --- a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs +++ b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs @@ -70,7 +70,31 @@ { 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); } } diff --git a/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs b/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs index 463b2d6..f4eae59 100644 --- a/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs +++ b/FlexJobApi.UserServer.Application/UserResumes/Queries/UserResumeQueryHandler.cs @@ -85,7 +85,7 @@ 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, }); -- Gitblit v1.9.1