From 6ffe6c2acabe09fe9bdf4e072d60e55b5631475a Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期二, 09 九月 2025 09:39:38 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs | 90 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 89 insertions(+), 1 deletions(-) diff --git a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs index 6bf42ce..e237a65 100644 --- a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs +++ b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs @@ -24,7 +24,10 @@ IRequestHandler<GetTaskInfosQuery, GetTaskInfosQueryResult>, IRequestHandler<GetPersonalApplyTaskInfosQuery, GetPersonalApplyTaskInfosQueryResult>, IRequestHandler<GetPersonalHireTaskInfosQuery, GetPersonalHireTaskInfosQueryResult>, - IRequestHandler<GetPersonalCancelTaskInfosQuery, GetPersonalCancelTaskInfosQueryResult> + IRequestHandler<GetPersonalCancelTaskInfosQuery, GetPersonalCancelTaskInfosQueryResult>, + IRequestHandler<GetSettlementTasksQuery, GetSettlementTasksQueryResult>, + IRequestHandler<GetSettlementTaskQuery, GetSettlementTaskQueryResult>, + IRequestHandler<GetTaskSelectQuery, List<SelectOption<Guid, GetTaskSelectQueryOption>>> { private readonly IRepository<TaskInfo> rep = rep; @@ -57,11 +60,13 @@ { it.Id, it.HireStatus, + it.EnterpriseEmployeeId, it.EnterpriseEmployee.UserSignContractStatus }) .FirstOrDefaultAsync(); if (taskUser != null) { + model.EnterpriseEmployeeId = taskUser.EnterpriseEmployeeId; model.HireStatus = taskUser.HireStatus; model.ApplyButton = taskUser.HireStatus == EnumTaskUserHireStatus.Wait ? GetTaskInfoQueryResultApplyButton.WaitHire @@ -379,5 +384,88 @@ return await request.PageModel.GetPagedListAsync<GetPersonalCancelTaskInfosQueryResult, GetPersonalCancelTaskInfosQueryResultItem>(s, cancellationToken); } + /// <summary> + /// 鏌ヨ缁撶畻浠诲姟鍒嗛〉鍒楄〃鏁版嵁 + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<GetSettlementTasksQueryResult> Handle(GetSettlementTasksQuery request, CancellationToken cancellationToken) + { + var logier = JwtUtils.GetCurrentLogier(); + var q = TaskInfoRepository.GetQueryable(rep, true, logier) + .Where(it => it.SettlementOrderStatus.HasValue); + if (request.Keywords.IsNotNull()) + { + q = q.Where(it => + it.Name.Contains(request.Keywords) + || it.Code.Contains(request.Keywords)); + } + if (request.SettlementOrderStatus.HasValue) + { + q = q.Where(it => it.SettlementOrderStatus == request.SettlementOrderStatus); + } + if (request.SettlementStatus.HasValue) + { + q = q.Where(it => it.SettlementStatus == request.SettlementStatus); + } + var s = q + .Select(it => new GetSettlementTasksQueryResultItem + { + Id = it.Id, + Name = it.Name, + Code = it.Code, + SettlementOrderStatus = it.SettlementOrderStatus, + SettlementOrderName = it.SettlementOrderName, + SettlementOrderTime = it.SettlementOrderTime, + ActualSettlementAmount = it.ActualSettlementAmount, + SettlementAmount = it.SettlementAmount, + SettlementStatus = it.SettlementStatus, + SettlementTime = it.SettlementTime, + SettlementRemark = it.SettlementRemark, + SettlementUserCount = it.SettlementUserCount + }); + return await request.PageModel.GetPagedListAsync<GetSettlementTasksQueryResult, GetSettlementTasksQueryResultItem>(s, cancellationToken); + } + + /// <summary> + /// 鏌ヨ缁撶畻鍗曡鎯� + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public Task<GetSettlementTaskQueryResult> Handle(GetSettlementTaskQuery request, CancellationToken cancellationToken) + { + var logier = JwtUtils.GetCurrentLogier(); + var model = TaskInfoRepository.GetQueryable(rep, true, logier) + .Where(it => it.Id == request.Id) + .GetDetail<TaskInfo, GetSettlementTaskQueryResult>(); + return model; + } + + /// <summary> + /// 鏌ヨ浠诲姟閫夋嫨鍣ㄦ暟鎹� + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<List<SelectOption<Guid, GetTaskSelectQueryOption>>> Handle(GetTaskSelectQuery request, CancellationToken cancellationToken) + { + return await request.GetSelect<TaskInfo, Guid, GetTaskSelectQueryOption>( + it => it.Id, + it => it.Name, + q => + { + q = TaskInfoRepository.GetQueryable(rep, true); + if (request.Keywords.IsNotNull()) + { + q = q.Where(it => + it.Code.Contains(request.Keywords) + || it.Name.Contains(request.Keywords)); + } + return q; + }, + cancellationToken); + } } } -- Gitblit v1.9.1