From c1bff84f284ee912a3db6b866be3916e1d762a90 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期三, 13 八月 2025 13:07:48 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskUserSubmitQueryHandler.cs | 104 +++++++++++---------------------------------------- 1 files changed, 23 insertions(+), 81 deletions(-) diff --git a/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskUserSubmitQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskUserSubmitQueryHandler.cs index 81323ed..b5060d0 100644 --- a/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskUserSubmitQueryHandler.cs +++ b/FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskUserSubmitQueryHandler.cs @@ -18,8 +18,8 @@ public class TaskUserSubmitQueryHandler( IRepository<TaskInfo> repTaskInfo, IRepository<TaskInfoUser> repTaskInfoUser) : - IRequestHandler<GetCheckReceiveTaskQuery, GetCheckReceiveTaskQueryResult>, - IRequestHandler<GetCheckReceiveTaskUserQuery, GetCheckReceiveTaskUserQueryResult> + IRequestHandler<GetCheckReceiveTasksQuery, GetCheckReceiveTasksQueryResult>, + IRequestHandler<GetCheckReceiveTaskQuery, GetCheckReceiveTaskQueryResult> { private readonly IRepository<TaskInfo> repTaskInfo = repTaskInfo; private readonly IRepository<TaskInfoUser> repTaskInfoUser = repTaskInfoUser; @@ -30,7 +30,7 @@ /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> - public async Task<GetCheckReceiveTaskQueryResult> Handle(GetCheckReceiveTaskQuery request, CancellationToken cancellationToken) + public async Task<GetCheckReceiveTasksQueryResult> Handle(GetCheckReceiveTasksQuery request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); var q = repTaskInfo.AsQueryable().AsNoTracking() @@ -51,15 +51,15 @@ { throw Oops.Oh(EnumErrorCodeType.s400, "璇烽�夋嫨楠屾敹鐘舵��"); } - if (request.DateBegin == null || request.DateEnd == null) + if (request.Date == null) { throw Oops.Oh(EnumErrorCodeType.s400, "璇烽�夋嫨鏃ユ湡"); } q = q.Where(it => it.TaskInfoUsers.Any(tu => - tu.Submits.Any(s => - request.DateBegin.Value.Date <= s.Date.Date - && s.Date.Date <= request.DateEnd.Value.Date + tu.EnterpriseEmployee.UserId == logier.Id + && tu.Submits.Any(s => + s.Date.Date == request.Date.Value.Date && (request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitSubmit ? s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit : request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitCheckReceive @@ -69,35 +69,31 @@ } else { - if (request.DateBegin.HasValue && request.DateEnd.HasValue) + if (request.CheckReceiveTimeBegin.HasValue && request.CheckReceiveTimeEnd.HasValue) { - q = q.Where(it => - it.TaskInfoUsers.Any(tu => - tu.Submits.Any(s => - request.DateBegin.Value.Date <= s.Date.Date - && s.Date.Date <= request.DateEnd.Value.Date))); + q = q.Where(it => request.CheckReceiveTimeBegin <= it.LastCheckReceiveTime && it.LastCheckReceiveTime <= request.CheckReceiveTimeEnd); } if (request.CheckReceiveStatus.HasValue) { q = q.Where(it => it.CheckReceiveStatus == request.CheckReceiveStatus); } } - var s = q.ProjectToType<GetCheckReceiveTaskQueryResultItem>(); - return await request.PageModel.GetPagedListAsync<GetCheckReceiveTaskQueryResult, GetCheckReceiveTaskQueryResultItem>(s, cancellationToken); + var s = q.ProjectToType<GetCheckReceiveTasksQueryResultItem>(); + return await request.PageModel.GetPagedListAsync<GetCheckReceiveTasksQueryResult, GetCheckReceiveTasksQueryResultItem>(s, cancellationToken); } /// <summary> - /// 鏌ヨ楠屾敹鍒嗛〉鍒楄〃 + /// 鏌ヨ楠屾敹浠诲姟璇︽儏 /// </summary> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> - public async Task<GetCheckReceiveTaskUserQueryResult> Handle(GetCheckReceiveTaskUserQuery request, CancellationToken cancellationToken) + public async Task<GetCheckReceiveTaskQueryResult> Handle(GetCheckReceiveTaskQuery request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); var q = repTaskInfoUser.AsQueryable().AsNoTracking() .OrderBy(it => it.CreatedTime) - .AsQueryable(); + .Where(it => it.TaskInfoId == request.TaskInfoId); if (logier.Type == EnumUserType.Personal) { @@ -107,78 +103,24 @@ { 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 (logier.ClientType == EnumClientType.Wxmp) - { - if (request.CheckReceiveStatus == null) - { - throw Oops.Oh(EnumErrorCodeType.s400, "璇烽�夋嫨楠屾敹鐘舵��"); - } - if (request.DateBegin == null || request.DateEnd == null) - { - throw Oops.Oh(EnumErrorCodeType.s400, "璇烽�夋嫨鏃ユ湡"); - } - q = q.Where(it => it.Submits.Any(s => - request.DateBegin.Value.Date <= s.Date.Date - && s.Date.Date <= request.DateEnd.Value.Date - && (request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitSubmit - ? s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit - : request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitCheckReceive - ? s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive - : (s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Success - || s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Fail)))); - } - else - { - if (request.DateBegin.HasValue && request.DateEnd.HasValue) - { - q = q.Where(it => it.Submits.Any(s => - request.DateBegin.Value.Date <= s.Date.Date - && s.Date.Date <= request.DateEnd.Value.Date)); - } - if (request.CheckReceiveStatus.HasValue) - { - q = q.Where(it => it.CheckReceiveStatus == request.CheckReceiveStatus); - } - } - var s = q.Select(it => new GetCheckReceiveTaskUserQueryResultItem + var s = q.Select(it => new GetCheckReceiveTaskQueryResultItem { Id = it.TaskInfoId, - TaskName = it.TaskInfo.Name, - BeginTime = it.TaskInfo.BeginTime, - EndTime = it.TaskInfo.EndTime, - AddressName = it.TaskInfo.AddressName, + TaskInfoCode = it.TaskInfo.Code, + TaskInfoName = it.TaskInfo.Name, + Avatar = it.EnterpriseEmployee.User.Avatar, Name = it.EnterpriseEmployee.User.Name, Identity = it.EnterpriseEmployee.User.Identity, Age = it.EnterpriseEmployee.User.Age, Gender = it.EnterpriseEmployee.User.Gender, ContactPhoneNumber = it.EnterpriseEmployee.User.ContactPhoneNumber, - CheckReceiveStatus = logier.ClientType == EnumClientType.Wxmp && request.DateBegin.HasValue && request.DateEnd.HasValue - ? it.Submits - .Where(s => - request.DateBegin.Value.Date <= s.Date.Date - && s.Date.Date <= request.DateEnd.Value.Date) - .Select(s => - s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit - ? EnumTaskCheckReceiveStatus.WaitSubmit - : s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive - ? EnumTaskCheckReceiveStatus.WaitCheckReceive - : EnumTaskCheckReceiveStatus.Completed) - .FirstOrDefault() - : it.CheckReceiveStatus, + IsReal = it.EnterpriseEmployee.User.IsReal, + RealMethod = it.EnterpriseEmployee.User.RealMethod, + CheckReceiveStatus = it.CheckReceiveStatus, LastSubmitTime = it.LastSubmitTime, }); - return await request.PageModel.GetPagedListAsync<GetCheckReceiveTaskUserQueryResult, GetCheckReceiveTaskUserQueryResultItem>(s, cancellationToken); + var result = await request.PageModel.GetPagedListAsync<GetCheckReceiveTaskQueryResult, GetCheckReceiveTaskQueryResultItem>(s, cancellationToken); + return result; } } } -- Gitblit v1.9.1