From 6658683df86d0b94c37f1d17754d17f9aab4dba0 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期二, 12 八月 2025 17:47:33 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs | 15 + /dev/null | 79 --------- FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml | 8 + FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs | 58 ++++++ FlexJobApi.Core/FlexJobApi.Core.xml | 176 +++++++++++++-------- FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetCheckReceiveTaskUserInfosQuery.cs | 116 ++++++++++++++ 6 files changed, 303 insertions(+), 149 deletions(-) diff --git a/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs b/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs index b34cb9b..109c889 100644 --- a/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs +++ b/FlexJobApi.Core/Entities/FlexJobServer/Tasks/TaskInfoUser.cs @@ -14,6 +14,11 @@ /// </summary> public class TaskInfoUser : CommonEntity, IEntityTypeBuilder<TaskInfoUser> { + public TaskInfoUser() + { + Submits = []; + } + /// <summary> /// 浠诲姟Id /// </summary> @@ -54,6 +59,16 @@ /// </summary> public DateTime? CheckReceiveTime { get; set; } + /// <summary> + /// 鏈�杩戞彁浜ゆ椂闂� + /// </summary> + public DateTime? LastSubmitTime { get; set; } + + /// <summary> + /// 鎻愪氦 + /// </summary> + public List<TaskInfoUserSubmit> Submits { get; set; } + public void Configure(EntityTypeBuilder<TaskInfoUser> entityBuilder, DbContext dbContext, Type dbContextLocator) { entityBuilder diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml index af75343..efc69c3 100644 --- a/FlexJobApi.Core/FlexJobApi.Core.xml +++ b/FlexJobApi.Core/FlexJobApi.Core.xml @@ -949,6 +949,16 @@ 楠屾敹鏃堕棿 </summary> </member> + <member name="P:FlexJobApi.Core.TaskInfoUser.LastSubmitTime"> + <summary> + 鏈�杩戞彁浜ゆ椂闂� + </summary> + </member> + <member name="P:FlexJobApi.Core.TaskInfoUser.Submits"> + <summary> + 鎻愪氦 + </summary> + </member> <member name="T:FlexJobApi.Core.TaskInfoUserSubmit"> <summary> 浠诲姟浜哄憳鎻愪氦淇℃伅 @@ -3823,71 +3833,6 @@ 鍙戝竷鐘舵�� </summary> </member> - <member name="T:FlexJobApi.Core.GetCheckReceiveTaskInfosQuery"> - <summary> - 鏌ヨ楠屾敹浠诲姟鍒嗛〉鍒楄〃 - </summary> - </member> - <member name="P:FlexJobApi.Core.GetCheckReceiveTaskInfosQuery.Keywords"> - <summary> - 鍏抽敭瀛� - </summary> - </member> - <member name="P:FlexJobApi.Core.GetCheckReceiveTaskInfosQuery.SubmitTimeBegin"> - <summary> - 楠屾敹鏃ユ湡-鏈�鏃╂椂闂� - </summary> - </member> - <member name="P:FlexJobApi.Core.GetCheckReceiveTaskInfosQuery.SubmitTimeEnd"> - <summary> - 楠屾敹鏃ユ湡-鏈�鏅氭椂闂� - </summary> - </member> - <member name="P:FlexJobApi.Core.GetCheckReceiveTaskInfosQuery.CheckReceiveStatus"> - <summary> - 楠屾敹鐘舵�� - </summary> - </member> - <member name="T:FlexJobApi.Core.GetCheckReceiveTaskInfosQueryResult"> - <summary> - 鏌ヨ楠屾敹浠诲姟鍒嗛〉鍒楄〃-缁撴灉 - </summary> - </member> - <member name="T:FlexJobApi.Core.GetCheckReceiveTaskInfosQueryResultItem"> - <summary> - 鏌ヨ楠屾敹浠诲姟鍒嗛〉鍒楄〃-缁撴灉-椤� - </summary> - </member> - <member name="P:FlexJobApi.Core.GetCheckReceiveTaskInfosQueryResultItem.Id"> - <summary> - 浠诲姟Id - </summary> - </member> - <member name="P:FlexJobApi.Core.GetCheckReceiveTaskInfosQueryResultItem.Name"> - <summary> - 浠诲姟鍚嶇О - </summary> - </member> - <member name="P:FlexJobApi.Core.GetCheckReceiveTaskInfosQueryResultItem.BeginTime"> - <summary> - 浠诲姟寮�濮嬫椂闂� - </summary> - </member> - <member name="P:FlexJobApi.Core.GetCheckReceiveTaskInfosQueryResultItem.EndTime"> - <summary> - 浠诲姟缁撴潫鏃堕棿 - </summary> - </member> - <member name="P:FlexJobApi.Core.GetCheckReceiveTaskInfosQueryResultItem.AddressName"> - <summary> - 浠诲姟鍦扮偣鍚嶇О - </summary> - </member> - <member name="P:FlexJobApi.Core.GetCheckReceiveTaskInfosQueryResultItem.CheckReceiveStatus"> - <summary> - 楠屾敹鐘舵�� - </summary> - </member> <member name="T:FlexJobApi.Core.GetPersonalApplyTaskInfosQuery"> <summary> 鎴戠殑鎶ュ悕鍒嗛〉鍒楄〃 @@ -4763,6 +4708,107 @@ 瀹夋帓鐘舵�� </summary> </member> + <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQuery"> + <summary> + 鏌ヨ楠屾敹鍒嗛〉鍒楄〃 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQuery.TaskInfoId"> + <summary> + 浠诲姟Id + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQuery.Keywords"> + <summary> + 鍏抽敭瀛� + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQuery.SubmitTimeBegin"> + <summary> + 楠屾敹鏃ユ湡-鏈�鏃╂椂闂� + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQuery.SubmitTimeEnd"> + <summary> + 楠屾敹鏃ユ湡-鏈�鏅氭椂闂� + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQuery.CheckReceiveStatus"> + <summary> + 楠屾敹鐘舵�� + </summary> + </member> + <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResult"> + <summary> + 鏌ヨ楠屾敹浠诲姟鍒嗛〉鍒楄〃-缁撴灉 + </summary> + </member> + <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem"> + <summary> + 鏌ヨ楠屾敹浠诲姟鍒嗛〉鍒楄〃-缁撴灉-椤� + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.Id"> + <summary> + 浠诲姟Id + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.TaskName"> + <summary> + 浠诲姟鍚嶇О + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.BeginTime"> + <summary> + 浠诲姟寮�濮嬫椂闂� + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.EndTime"> + <summary> + 浠诲姟缁撴潫鏃堕棿 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.AddressName"> + <summary> + 浠诲姟鍦扮偣鍚嶇О + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.Name"> + <summary> + 濮撳悕 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.Identity"> + <summary> + 韬唤璇佸彿 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.Birthday"> + <summary> + 鐢熸棩 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.Age"> + <summary> + 骞撮緞 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.ContactPhoneNumber"> + <summary> + 鎵嬫満鍙� + </summary> + <remarks>鑱旂郴鐢佃瘽</remarks> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.LastSubmitTime"> + <summary> + 鎻愪氦鏃堕棿 + </summary> + </member> + <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQueryResultItem.CheckReceiveStatus"> + <summary> + 楠屾敹鐘舵�� + </summary> + </member> <member name="T:FlexJobApi.Core.GetTaskUsersQuery"> <summary> B绔煡璇㈠簲鑱樻姤鍚嶅垎椤靛垪琛ㄤ俊鎭� diff --git a/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetCheckReceiveTaskUserInfosQuery.cs b/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetCheckReceiveTaskUserInfosQuery.cs new file mode 100644 index 0000000..56978b4 --- /dev/null +++ b/FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetCheckReceiveTaskUserInfosQuery.cs @@ -0,0 +1,116 @@ +锘縰sing System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FlexJobApi.Core +{ + /// <summary> + /// 鏌ヨ楠屾敹鍒嗛〉鍒楄〃 + /// </summary> + [Resource([EnumResourceController.TaskUser])] + public class GetCheckReceiveTaskUserInfosQuery : PagedListQuery<GetCheckReceiveTaskUserInfosQueryResult, GetCheckReceiveTaskUserInfosQueryResultItem> + { + /// <summary> + /// 浠诲姟Id + /// </summary> + public Guid? TaskInfoId { get; set; } + + /// <summary> + /// 鍏抽敭瀛� + /// </summary> + public string Keywords { get; set; } + + /// <summary> + /// 楠屾敹鏃ユ湡-鏈�鏃╂椂闂� + /// </summary> + public DateTime? SubmitTimeBegin { get; set; } + + /// <summary> + /// 楠屾敹鏃ユ湡-鏈�鏅氭椂闂� + /// </summary> + public DateTime? SubmitTimeEnd { get; set; } + + /// <summary> + /// 楠屾敹鐘舵�� + /// </summary> + public EnumTaskCheckReceiveStatus? CheckReceiveStatus { get; set; } + } + + /// <summary> + /// 鏌ヨ楠屾敹浠诲姟鍒嗛〉鍒楄〃-缁撴灉 + /// </summary> + public class GetCheckReceiveTaskUserInfosQueryResult : PagedListQueryResult<GetCheckReceiveTaskUserInfosQueryResultItem> + { + + } + + /// <summary> + /// 鏌ヨ楠屾敹浠诲姟鍒嗛〉鍒楄〃-缁撴灉-椤� + /// </summary> + public class GetCheckReceiveTaskUserInfosQueryResultItem + { + /// <summary> + /// 浠诲姟Id + /// </summary> + public Guid Id { get; set; } + + /// <summary> + /// 浠诲姟鍚嶇О + /// </summary> + public string TaskName { get; set; } + + /// <summary> + /// 浠诲姟寮�濮嬫椂闂� + /// </summary> + public DateTime BeginTime { get; set; } + + /// <summary> + /// 浠诲姟缁撴潫鏃堕棿 + /// </summary> + public DateTime EndTime { get; set; } + + /// <summary> + /// 浠诲姟鍦扮偣鍚嶇О + /// </summary> + public string AddressName { get; set; } + + /// <summary> + /// 濮撳悕 + /// </summary> + public string Name { get; set; } + + /// <summary> + /// 韬唤璇佸彿 + /// </summary> + public string Identity { get; set; } + + /// <summary> + /// 鐢熸棩 + /// </summary> + public DateTime? Birthday { get; set; } + + /// <summary> + /// 骞撮緞 + /// </summary> + public int? Age { get; set; } + + /// <summary> + /// 鎵嬫満鍙� + /// </summary> + /// <remarks>鑱旂郴鐢佃瘽</remarks> + public string ContactPhoneNumber { get; set; } + + /// <summary> + /// 鎻愪氦鏃堕棿 + /// </summary> + public DateTime? LastSubmitTime { get; set; } + + /// <summary> + /// 楠屾敹鐘舵�� + /// </summary> + public EnumTaskCheckReceiveStatus CheckReceiveStatus { get; set; } + } +} diff --git a/FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetCheckReceiveTaskInfosQuery.cs b/FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetCheckReceiveTaskInfosQuery.cs deleted file mode 100644 index 5ba7f83..0000000 --- a/FlexJobApi.Core/Models/FlexJobServer/Tasks/Queries/GetCheckReceiveTaskInfosQuery.cs +++ /dev/null @@ -1,79 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace FlexJobApi.Core -{ - /// <summary> - /// 鏌ヨ楠屾敹浠诲姟鍒嗛〉鍒楄〃 - /// </summary> - [Resource([EnumResourceController.Task])] - public class GetCheckReceiveTaskInfosQuery : PagedListQuery<GetCheckReceiveTaskInfosQueryResult, GetCheckReceiveTaskInfosQueryResultItem> - { - /// <summary> - /// 鍏抽敭瀛� - /// </summary> - public string Keywords { get; set; } - - /// <summary> - /// 楠屾敹鏃ユ湡-鏈�鏃╂椂闂� - /// </summary> - public DateTime? SubmitTimeBegin { get; set; } - - /// <summary> - /// 楠屾敹鏃ユ湡-鏈�鏅氭椂闂� - /// </summary> - public DateTime? SubmitTimeEnd { get; set; } - - /// <summary> - /// 楠屾敹鐘舵�� - /// </summary> - public EnumTaskCheckReceiveStatus? CheckReceiveStatus { get; set; } - } - - /// <summary> - /// 鏌ヨ楠屾敹浠诲姟鍒嗛〉鍒楄〃-缁撴灉 - /// </summary> - public class GetCheckReceiveTaskInfosQueryResult : PagedListQueryResult<GetCheckReceiveTaskInfosQueryResultItem> - { - - } - - /// <summary> - /// 鏌ヨ楠屾敹浠诲姟鍒嗛〉鍒楄〃-缁撴灉-椤� - /// </summary> - public class GetCheckReceiveTaskInfosQueryResultItem - { - /// <summary> - /// 浠诲姟Id - /// </summary> - public Guid Id { get; set; } - - /// <summary> - /// 浠诲姟鍚嶇О - /// </summary> - public string Name { get; set; } - - /// <summary> - /// 浠诲姟寮�濮嬫椂闂� - /// </summary> - public DateTime BeginTime { get; set; } - - /// <summary> - /// 浠诲姟缁撴潫鏃堕棿 - /// </summary> - public DateTime EndTime { get; set; } - - /// <summary> - /// 浠诲姟鍦扮偣鍚嶇О - /// </summary> - public string AddressName { get; set; } - - /// <summary> - /// 楠屾敹鐘舵�� - /// </summary> - public EnumTaskCheckReceiveStatus CheckReceiveStatus { get; set; } - } -} diff --git a/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml b/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml index c01c9af..9580770 100644 --- a/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml +++ b/FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml @@ -175,5 +175,13 @@ <param name="cancellationToken"></param> <returns></returns> </member> + <member name="M:FlexJobApi.FlexJobServer.Application.TaskUserQueryHandler.Handle(FlexJobApi.Core.GetCheckReceiveTaskUserInfosQuery,System.Threading.CancellationToken)"> + <summary> + 鏌ヨ楠屾敹鍒嗛〉鍒楄〃 + </summary> + <param name="request"></param> + <param name="cancellationToken"></param> + <returns></returns> + </member> </members> </doc> diff --git a/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs index 1f0172b..ad8c7e6 100644 --- a/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs +++ b/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs @@ -14,9 +14,10 @@ /// 浠诲姟浜哄憳鏌ヨ澶勭悊鍣� /// </summary> public class TaskUserQueryHandler( - IRepository<TaskInfoUser> rep) : + IRepository<TaskInfoUser> rep) : IRequestHandler<GetTaskUsersQuery, GetTaskUsersQueryResult>, - IRequestHandler<GetArrangeTaskUsersQuery, GetArrangeTaskUsersQueryResult> + IRequestHandler<GetArrangeTaskUsersQuery, GetArrangeTaskUsersQueryResult>, + IRequestHandler<GetCheckReceiveTaskUserInfosQuery, GetCheckReceiveTaskUserInfosQueryResult> { private readonly IRepository<TaskInfoUser> rep = rep; @@ -67,15 +68,15 @@ var logier = JwtUtils.GetCurrentLogier(); var q = rep.AsQueryable().AsNoTracking() .OrderBy(it => it.CreatedTime) - .Where(it => - it.TaskInfo.EnterpriseId == logier.EnterpriseId + .Where(it => + it.TaskInfo.EnterpriseId == logier.EnterpriseId && it.TaskInfoId == request.Id && it.EnterpriseEmployee.HireStatus == EnumTaskUserHireStatus.Pass && it.EnterpriseEmployee.UserSignContractStatus == EnumTaskUserSignContractStatus.Pass && it.EnterpriseEmployee.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Pass); if (request.ArrangeStatus.HasValue) { - q = q.Where(it=>it.ArrangeStatus == request.ArrangeStatus); + q = q.Where(it => it.ArrangeStatus == request.ArrangeStatus); } if (request.Keywords.IsNotNull()) { @@ -107,5 +108,52 @@ }); return await request.PageModel.GetPagedListAsync<GetArrangeTaskUsersQueryResult, GetArrangeTaskUsersQueryResultItem>(s, cancellationToken); } + + /// <summary> + /// 鏌ヨ楠屾敹鍒嗛〉鍒楄〃 + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<GetCheckReceiveTaskUserInfosQueryResult> Handle(GetCheckReceiveTaskUserInfosQuery request, CancellationToken cancellationToken) + { + var logier = JwtUtils.GetCurrentLogier(); + var q = rep.AsQueryable().AsNoTracking() + .OrderBy(it => it.CreatedTime) + .AsQueryable(); + + if (logier.Type == EnumUserType.Personal) + { + q = q.Where(it => it.EnterpriseEmployee.UserId == logier.Id); + } + else if (logier.Type == EnumUserType.Enterprise) + { + q = q.Where(it => it.TaskInfo.EnterpriseId == logier.EnterpriseId); + } + if (request.TaskInfoId.HasValue) + { + q = q.Where(it => it.TaskInfoId == request.TaskInfoId); + } + if (request.Keywords.IsNotNull()) + { + q = q.Where(it => + it.EnterpriseEmployee.User.Name.Contains(request.Keywords) + || it.EnterpriseEmployee.User.ContactPhoneNumber.Contains(request.Keywords) + || it.EnterpriseEmployee.User.Identity.Contains(request.Keywords)); + } + if (request.SubmitTimeBegin.HasValue && request.SubmitTimeEnd.HasValue) + { + q = q.Where(it => it.Submits.Any(s => request.SubmitTimeBegin <= s.CreatedTime && s.CreatedTime <= request.SubmitTimeEnd)); + } + if (request.CheckReceiveStatus.HasValue) + { + q = q.Where(it => it.CheckReceiveStatus == request.CheckReceiveStatus); + } + var s = q.Select(it => new GetCheckReceiveTaskUserInfosQueryResultItem + { + + }); + return await request.PageModel.GetPagedListAsync<GetCheckReceiveTaskUserInfosQueryResult, GetCheckReceiveTaskUserInfosQueryResultItem>(s, cancellationToken); + } } } -- Gitblit v1.9.1