From 28db30e5a458ee012959269d50e16eadaa0c5d12 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期五, 05 九月 2025 15:10:09 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs | 94 ++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 92 insertions(+), 2 deletions(-) diff --git a/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs b/FlexJobApi.FlexJobServer.Application/Tasks/Queries/TaskInfoQueryHandler.cs index 78c77de..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 @@ -180,6 +185,8 @@ Id = t.Id, Name = t.Name, Code = t.Code, + EnterpriseName = t.Enterprise.EnterpriseName, + UserName = t.Enterprise.Users.Where(u => u.Id == t.CreatedUserId).Select(u => u.UserName).FirstOrDefault(), BillingMethod = t.BillingMethod, ServiceFee = t.ServiceFee, SettlementCycle = t.SettlementCycle, @@ -218,7 +225,7 @@ .Select(tu => tu.HireStatus as EnumTaskUserHireStatus?) .FirstOrDefault() : null, - + }; var result = await request.PageModel.GetPagedListAsync<GetTaskInfosQueryResult, GetTaskInfosQueryResultItem>(s, cancellationToken); result.ObjectData = count; @@ -377,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