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.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 53 insertions(+), 5 deletions(-) diff --git a/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs index ad8c7e6..e970789 100644 --- a/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs +++ b/FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs @@ -1,5 +1,6 @@ 锘縰sing FlexJobApi.Core; using Furion.DatabaseAccessor; +using Furion.FriendlyException; using MediatR; using Microsoft.EntityFrameworkCore; using System; @@ -33,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 { @@ -141,17 +153,53 @@ || it.EnterpriseEmployee.User.ContactPhoneNumber.Contains(request.Keywords) || it.EnterpriseEmployee.User.Identity.Contains(request.Keywords)); } - if (request.SubmitTimeBegin.HasValue && request.SubmitTimeEnd.HasValue) + if (logier.ClientType == EnumClientType.Wxmp) { - q = q.Where(it => it.Submits.Any(s => request.SubmitTimeBegin <= s.CreatedTime && s.CreatedTime <= request.SubmitTimeEnd)); + 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.Submit + : request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitCheckReceive + ? s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Wait + : (s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Success + || s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Fail)))); } - if (request.CheckReceiveStatus.HasValue) + else { - q = q.Where(it => it.CheckReceiveStatus == request.CheckReceiveStatus); + 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 GetCheckReceiveTaskUserInfosQueryResultItem { - + Id = it.TaskInfoId, + TaskName = it.TaskInfo.Name, + BeginTime = it.TaskInfo.BeginTime, + EndTime = it.TaskInfo.EndTime, + AddressName = it.TaskInfo.AddressName, + 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 = it.CheckReceiveStatus, + LastSubmitTime = it.LastSubmitTime, }); return await request.PageModel.GetPagedListAsync<GetCheckReceiveTaskUserInfosQueryResult, GetCheckReceiveTaskUserInfosQueryResultItem>(s, cancellationToken); } -- Gitblit v1.9.1