FlexJobApi.Core/Enums/Common/EnumResourceController.cs
@@ -26,6 +26,11 @@ /// </summary> [ResourceController(Service = EnumResourceService.FlexJobServer)] TaskUser, /// <summary> /// 任务验收 /// </summary> [ResourceController(Service = EnumResourceService.FlexJobServer)] TaskCheckReceive, /// <summary> /// 用户认证 FlexJobApi.Core/Enums/Tasks/EnumTaskUserSubmitCheckReceiveStatus.cs
@@ -14,11 +14,11 @@ /// <summary> /// 待提交 /// </summary> Submit = 10, WaitSubmit = 10, /// <summary> /// 待验收 /// </summary> Wait = 20, WaitCheckReceive = 20, /// <summary> /// 验收通过 /// </summary> FlexJobApi.Core/FlexJobApi.Core.xml
@@ -2362,6 +2362,11 @@ 任务人员 </summary> </member> <member name="F:FlexJobApi.Core.EnumResourceController.TaskCheckReceive"> <summary> 任务验收 </summary> </member> <member name="F:FlexJobApi.Core.EnumResourceController.Auth"> <summary> 用户认证 @@ -2762,12 +2767,12 @@ 任务验收状态 </summary> </member> <member name="F:FlexJobApi.Core.EnumTaskUserSubmitCheckReceiveStatus.Submit"> <member name="F:FlexJobApi.Core.EnumTaskUserSubmitCheckReceiveStatus.WaitSubmit"> <summary> 待提交 </summary> </member> <member name="F:FlexJobApi.Core.EnumTaskUserSubmitCheckReceiveStatus.Wait"> <member name="F:FlexJobApi.Core.EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive"> <summary> 待验收 </summary> @@ -3716,6 +3721,182 @@ <member name="P:FlexJobApi.Core.SaveScheduleJobDetailCommand.Cron"> <summary> Cron表达式 </summary> </member> <member name="T:FlexJobApi.Core.GetCheckReceiveTaskQuery"> <summary> 查询验收任务分页列表 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQuery.DateBegin"> <summary> 验收日期-最早时间 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQuery.DateEnd"> <summary> 验收日期-最晚时间 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQuery.CheckReceiveStatus"> <summary> 验收状态 </summary> </member> <member name="T:FlexJobApi.Core.GetCheckReceiveTaskQueryResult"> <summary> 查询验收任务分页列表-结果 </summary> </member> <member name="T:FlexJobApi.Core.GetCheckReceiveTaskQueryResultItem"> <summary> 查询验收任务分页列表-结果-项 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQueryResultItem.Id"> <summary> 任务Id </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQueryResultItem.Name"> <summary> 任务名称 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQueryResultItem.BeginTime"> <summary> 任务开始时间 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQueryResultItem.EndTime"> <summary> 任务结束时间 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskQueryResultItem.AddressName"> <summary> 任务地点名称 </summary> </member> <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserQuery"> <summary> 查询验收分页列表 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQuery.TaskInfoId"> <summary> 任务Id </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQuery.Keywords"> <summary> 关键字 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQuery.DateBegin"> <summary> 验收日期-最早时间 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQuery.DateEnd"> <summary> 验收日期-最晚时间 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQuery.CheckReceiveStatus"> <summary> 验收状态 </summary> </member> <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResult"> <summary> 查询验收任务分页列表-结果 </summary> </member> <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem"> <summary> 查询验收任务分页列表-结果-项 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.Id"> <summary> 任务Id </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.TaskName"> <summary> 任务名称 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.BeginTime"> <summary> 任务开始时间 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.EndTime"> <summary> 任务结束时间 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.AddressName"> <summary> 任务地点名称 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.Name"> <summary> 姓名 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.Identity"> <summary> 身份证号 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.Gender"> <summary> 性别 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.Age"> <summary> 年龄 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.ContactPhoneNumber"> <summary> 手机号 </summary> <remarks>联系电话</remarks> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.LastSubmitTime"> <summary> 提交时间 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserQueryResultItem.CheckReceiveStatus"> <summary> 验收状态 </summary> </member> <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserSubmitsQuery"> <summary> 查询验收详情 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserSubmitsQuery.Id"> <summary> 任务Id </summary> </member> <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserSubmitsQueryResult"> <summary> 查询验收详情-结果 </summary> </member> <member name="T:FlexJobApi.Core.GetCheckReceiveTaskUserSubmitsQueryResultItem"> <summary> 查询验收详情-结果 </summary> </member> <member name="T:FlexJobApi.Core.DeleteTaskInfoCommand"> @@ -4716,107 +4897,6 @@ <member name="P:FlexJobApi.Core.GetArrangeTaskUsersQueryResultItem.ArrangeStatus"> <summary> 安排状态 </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.DateBegin"> <summary> 验收日期-最早时间 </summary> </member> <member name="P:FlexJobApi.Core.GetCheckReceiveTaskUserInfosQuery.DateEnd"> <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.Gender"> <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"> @@ -8514,6 +8594,18 @@ </summary> <returns></returns> </member> <member name="T:FlexJobApi.Core.PasswordUtils"> <summary> 密码工具 </summary> </member> <member name="M:FlexJobApi.Core.PasswordUtils.EncryptPassword(System.String)"> <summary> 加密 </summary> <param name="password"></param> <returns></returns> </member> <member name="P:FlexJobApi.Core.TokenDataModel.AccessToken"> <summary> 用户访问令牌 FlexJobApi.Core/Models/FlexJobServer/TaskCheckReceive/Queries/GetCheckReceiveTaskQuery.cs
New file @@ -0,0 +1,70 @@ using 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.TaskCheckReceive])] public class GetCheckReceiveTaskQuery : PagedListQuery<GetCheckReceiveTaskQueryResult, GetCheckReceiveTaskQueryResultItem> { /// <summary> /// 验收日期-最早时间 /// </summary> public DateTime? DateBegin { get; set; } /// <summary> /// 验收日期-最晚时间 /// </summary> public DateTime? DateEnd { get; set; } /// <summary> /// 验收状态 /// </summary> public EnumTaskCheckReceiveStatus? CheckReceiveStatus { get; set; } } /// <summary> /// 查询验收任务分页列表-结果 /// </summary> public class GetCheckReceiveTaskQueryResult : PagedListQueryResult<GetCheckReceiveTaskQueryResultItem> { } /// <summary> /// 查询验收任务分页列表-结果-项 /// </summary> public class GetCheckReceiveTaskQueryResultItem { /// <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; } } } FlexJobApi.Core/Models/FlexJobServer/TaskCheckReceive/Queries/GetCheckReceiveTaskUserQuery.cs
File was renamed from FlexJobApi.Core/Models/FlexJobServer/TaskUsers/Queries/GetCheckReceiveTaskUserInfosQuery.cs @@ -10,8 +10,8 @@ /// <summary> /// 查询验收分页列表 /// </summary> [Resource([EnumResourceController.TaskUser])] public class GetCheckReceiveTaskUserInfosQuery : PagedListQuery<GetCheckReceiveTaskUserInfosQueryResult, GetCheckReceiveTaskUserInfosQueryResultItem> [Resource([EnumResourceController.TaskCheckReceive])] public class GetCheckReceiveTaskUserQuery : PagedListQuery<GetCheckReceiveTaskUserQueryResult, GetCheckReceiveTaskUserQueryResultItem> { /// <summary> /// 任务Id @@ -42,7 +42,7 @@ /// <summary> /// 查询验收任务分页列表-结果 /// </summary> public class GetCheckReceiveTaskUserInfosQueryResult : PagedListQueryResult<GetCheckReceiveTaskUserInfosQueryResultItem> public class GetCheckReceiveTaskUserQueryResult : PagedListQueryResult<GetCheckReceiveTaskUserQueryResultItem> { } @@ -50,7 +50,7 @@ /// <summary> /// 查询验收任务分页列表-结果-项 /// </summary> public class GetCheckReceiveTaskUserInfosQueryResultItem public class GetCheckReceiveTaskUserQueryResultItem { /// <summary> /// 任务Id FlexJobApi.Core/Models/FlexJobServer/TaskCheckReceive/Queries/GetCheckReceiveTaskUserSubmitsQuery.cs
New file @@ -0,0 +1,37 @@ using MediatR; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { /// <summary> /// 查询验收详情 /// </summary> [Resource([EnumResourceController.TaskCheckReceive])] public class GetCheckReceiveTaskUserSubmitsQuery : PagedListQuery<GetCheckReceiveTaskUserSubmitsQueryResult, GetCheckReceiveTaskUserSubmitsQueryResultItem> { /// <summary> /// 任务Id /// </summary> public Guid Id { get; set; } } /// <summary> /// 查询验收详情-结果 /// </summary> public class GetCheckReceiveTaskUserSubmitsQueryResult : PagedListQueryResult<GetCheckReceiveTaskUserSubmitsQueryResultItem> { } /// <summary> /// 查询验收详情-结果 /// </summary> public class GetCheckReceiveTaskUserSubmitsQueryResultItem { } } FlexJobApi.Core/Utils/PasswordUtils/PasswordUtils.cs
New file @@ -0,0 +1,26 @@ using Azure.Core; using Furion.DataEncryption; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { /// <summary> /// 密码工具 /// </summary> public static class PasswordUtils { /// <summary> /// 加密 /// </summary> /// <param name="password"></param> /// <returns></returns> public static string EncryptPassword(this string password) { return PBKDF2Encryption.Encrypt(MD5Encryption.Encrypt(password)); } } } FlexJobApi.FlexJobServer.Application/FlexJobApi.FlexJobServer.Application.xml
@@ -4,6 +4,32 @@ <name>FlexJobApi.FlexJobServer.Application</name> </assembly> <members> <member name="T:FlexJobApi.FlexJobServer.Application.TaskUserSubmitQueryHandler"> <summary> 任务人员查询处理器 </summary> </member> <member name="M:FlexJobApi.FlexJobServer.Application.TaskUserSubmitQueryHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.TaskInfo},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.TaskInfoUser})"> <summary> 任务人员查询处理器 </summary> </member> <member name="M:FlexJobApi.FlexJobServer.Application.TaskUserSubmitQueryHandler.Handle(FlexJobApi.Core.GetCheckReceiveTaskQuery,System.Threading.CancellationToken)"> <summary> 查询验收任务分页列表 </summary> <param name="request"></param> <param name="cancellationToken"></param> <returns></returns> </member> <member name="M:FlexJobApi.FlexJobServer.Application.TaskUserSubmitQueryHandler.Handle(FlexJobApi.Core.GetCheckReceiveTaskUserQuery,System.Threading.CancellationToken)"> <summary> 查询验收分页列表 </summary> <param name="request"></param> <param name="cancellationToken"></param> <returns></returns> </member> <member name="T:FlexJobApi.FlexJobServer.Application.TaskInfoCommandHandler"> <summary> 任务命令处理器 @@ -170,14 +196,6 @@ <member name="M:FlexJobApi.FlexJobServer.Application.TaskUserQueryHandler.Handle(FlexJobApi.Core.GetArrangeTaskUsersQuery,System.Threading.CancellationToken)"> <summary> B端查询人员安排分页列表信息 </summary> <param name="request"></param> <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> FlexJobApi.FlexJobServer.Application/TaskCheckReceives/Queries/TaskUserSubmitQueryHandler.cs
New file @@ -0,0 +1,184 @@ using FlexJobApi.Core; using Furion.DatabaseAccessor; using Furion.FriendlyException; using Mapster; using MediatR; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.FlexJobServer.Application { /// <summary> /// 任务人员查询处理器 /// </summary> public class TaskUserSubmitQueryHandler( IRepository<TaskInfo> repTaskInfo, IRepository<TaskInfoUser> repTaskInfoUser) : IRequestHandler<GetCheckReceiveTaskQuery, GetCheckReceiveTaskQueryResult>, IRequestHandler<GetCheckReceiveTaskUserQuery, GetCheckReceiveTaskUserQueryResult> { private readonly IRepository<TaskInfo> repTaskInfo = repTaskInfo; private readonly IRepository<TaskInfoUser> repTaskInfoUser = repTaskInfoUser; /// <summary> /// 查询验收任务分页列表 /// </summary> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task<GetCheckReceiveTaskQueryResult> Handle(GetCheckReceiveTaskQuery request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); var q = repTaskInfo.AsQueryable().AsNoTracking() .OrderBy(it => it.CreatedTime) .AsQueryable(); if (logier.Type == EnumUserType.Personal) { q = q.Where(it => it.TaskInfoUsers.Any(tu => tu.EnterpriseEmployee.UserId == logier.Id)); } else if (logier.Type == EnumUserType.Enterprise) { q = q.Where(it => it.EnterpriseId == logier.EnterpriseId); } 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.TaskInfoUsers.Any(tu => tu.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.TaskInfoUsers.Any(tu => tu.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.ProjectToType<GetCheckReceiveTaskQueryResultItem>(); return await request.PageModel.GetPagedListAsync<GetCheckReceiveTaskQueryResult, GetCheckReceiveTaskQueryResultItem>(s, cancellationToken); } /// <summary> /// 查询验收分页列表 /// </summary> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task<GetCheckReceiveTaskUserQueryResult> Handle(GetCheckReceiveTaskUserQuery request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); var q = repTaskInfoUser.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 (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 { 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 = 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, LastSubmitTime = it.LastSubmitTime, }); return await request.PageModel.GetPagedListAsync<GetCheckReceiveTaskUserQueryResult, GetCheckReceiveTaskUserQueryResultItem>(s, cancellationToken); } } } FlexJobApi.FlexJobServer.Application/TaskUsers/Queries/TaskUserQueryHandler.cs
@@ -17,8 +17,7 @@ public class TaskUserQueryHandler( IRepository<TaskInfoUser> rep) : IRequestHandler<GetTaskUsersQuery, GetTaskUsersQueryResult>, IRequestHandler<GetArrangeTaskUsersQuery, GetArrangeTaskUsersQueryResult>, IRequestHandler<GetCheckReceiveTaskUserInfosQuery, GetCheckReceiveTaskUserInfosQueryResult> IRequestHandler<GetArrangeTaskUsersQuery, GetArrangeTaskUsersQueryResult> { private readonly IRepository<TaskInfoUser> rep = rep; @@ -119,89 +118,6 @@ ArrangeStatus = it.ArrangeStatus }); 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 (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.Submit : request.CheckReceiveStatus == EnumTaskCheckReceiveStatus.WaitCheckReceive ? s.CheckReceiveStatus == EnumTaskUserSubmitCheckReceiveStatus.Wait : (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 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); } } } FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs
@@ -73,7 +73,7 @@ if (model.HireButton == GetTaskInfoQueryResultHireButton.InProcess && model.BeginTime <= now) { var submit = await rep.Change<TaskInfoUserSubmit>().AsQueryable().AsNoTracking() .AnyAsync(it => it.TaskInfoUserId == taskUser.Id && it.CheckReceiveStatus >= EnumTaskUserSubmitCheckReceiveStatus.Wait); .AnyAsync(it => it.TaskInfoUserId == taskUser.Id && it.CheckReceiveStatus >= EnumTaskUserSubmitCheckReceiveStatus.WaitCheckReceive); if (!submit) { model.HireButton = GetTaskInfoQueryResultHireButton.ApplyCheckReceive; FlexJobApi.UserServer.Application/Enterprises/Commands/EnterpriseCommandHandler.cs
@@ -64,7 +64,7 @@ Name = request.Contacts, PhoneNumber = request.ContactPhoneNumber, UserName = request.UserName, Password = PBKDF2Encryption.Encrypt(request.Password), Password = request.Password.EncryptPassword(), Level = 100, Status = EnumUserStatus.Normal, }; @@ -77,7 +77,7 @@ user.PhoneNumber = request.ContactPhoneNumber; if (request.Password.IsNotNull()) { user.Password = PBKDF2Encryption.Encrypt(request.Password); user.Password = request.Password.EncryptPassword(); } await repUser.UpdateAsync(user); }