From 22f443f24ea48e8bf3940d0432f00edbb0a86c2f Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期四, 11 九月 2025 10:55:49 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs | 54 ++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 42 insertions(+), 12 deletions(-) diff --git a/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs b/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs index 8f71df9..24fe715 100644 --- a/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs +++ b/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs @@ -1,5 +1,6 @@ 锘縰sing FlexJobApi.Core; using Furion.DatabaseAccessor; +using Mapster; using MediatR; using Microsoft.EntityFrameworkCore; using System; @@ -14,12 +15,15 @@ /// C绔汉鍛樻煡璇㈠鐞嗗櫒 /// </summary> public class GetPersonalUserInfosQueryHandler( - IRepository<User> rep + IRepository<User> rep, + IRepository<UserBankCard> repUserBankCard ) : IRequestHandler<GetPersonalUserInfosQuery, GetPersonalUserInfosQueryResult>, - IRequestHandler<GetPersonalUserInfoSignContractsQuery, GetPersonalUserInfoSignContractsQueryResult> + IRequestHandler<GetPersonalUserInfoSignContractsQuery, GetPersonalUserInfoSignContractsQueryResult>, + IRequestHandler<GetPersonalUserBankCardQuery, GetPersonalUserBankCardQueryResult> { private readonly IRepository<User> rep = rep; + private readonly IRepository<UserBankCard> repUserBankCard = repUserBankCard; /// <summary> /// 鏌ヨC绔汉鍛樺垎椤靛垪琛ㄦ暟鎹� @@ -30,7 +34,8 @@ public async Task<GetPersonalUserInfosQueryResult> Handle(GetPersonalUserInfosQuery request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); - var q = rep.AsQueryable().AsNoTracking(); + var q = rep.AsQueryable().AsNoTracking() + .Where(it => it.Type == EnumUserType.Personal); if (request.Keywords.IsNotNull()) { q = q.Where(it => @@ -42,11 +47,11 @@ if (request.HireTimeBegin.HasValue && request.HireTimeEnd.HasValue) { q = q.Where(it => - it.EnterpriseEmployees.Any(e => - e.HireStatus == EnumTaskUserHireStatus.Pass - && e.HireTime.HasValue - && request.HireTimeBegin <= e.HireTime - && e.HireTime <= request.HireTimeEnd)); + it.EnterpriseEmployees.SelectMany(ee => ee.TaskInfoUsers).Any(tu => + tu.HireStatus == EnumTaskUserHireStatus.Pass + && tu.HireTime.HasValue + && request.HireTimeBegin <= tu.HireTime + && tu.HireTime <= request.HireTimeEnd)); } if (request.SignContractBegin.HasValue && request.SignContractEnd.HasValue) { @@ -79,8 +84,9 @@ IsReal = it.IsReal, RealTime = it.RealTime, HireTime = it.EnterpriseEmployees + .SelectMany(ee => ee.TaskInfoUsers) .OrderByDescending(e => e.HireTime) - .Where(e => e.HireStatus == EnumTaskUserHireStatus.Pass && e.HireTime.HasValue) + .Where(e => e.HireTime.HasValue) .Select(e => e.HireTime) .FirstOrDefault(), SignContractTime = it.EnterpriseEmployees @@ -111,14 +117,38 @@ .OrderBy(tu => tu.CreatedTime) .Select(tu => tu.CreatedTime as DateTimeOffset?) .FirstOrDefault(), - HireStatus = it.HireStatus, - HireTime = it.HireTime, + HireStatus = it.TaskInfoUsers.Any(tu => tu.HireStatus == EnumTaskUserHireStatus.Pass) + ? EnumTaskUserHireStatus.Pass + : it.TaskInfoUsers.Any(tu => tu.HireStatus == EnumTaskUserHireStatus.Refuse) + ? EnumTaskUserHireStatus.Refuse + : EnumTaskUserHireStatus.Wait, + HireTime = it.TaskInfoUsers + .OrderBy(tu => tu.HireTime) + .Where(tu => tu.HireTime.HasValue) + .Select(tu => tu.HireTime) + .FirstOrDefault(), UserSignContractStatus = it.UserSignContractStatus, EnterpriseSignContractStatus = it.EnterpriseSignContractStatus, EnterpriseSignContractTime = it.EnterpriseSignContractTime, - ContractUrl = it.ContractUrl, + ContractUrl = it.ContractUrl }); return request.PageModel.GetPagedListAsync<GetPersonalUserInfoSignContractsQueryResult, GetPersonalUserInfoSignContractsQueryResultItem>(q, cancellationToken); } + + /// <summary> + /// 鏌ヨ涓汉鐢ㄦ埛閾惰鍗′俊鎭� + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public Task<GetPersonalUserBankCardQueryResult> Handle(GetPersonalUserBankCardQuery request, CancellationToken cancellationToken) + { + var logier = JwtUtils.GetCurrentLogier(); + var model = repUserBankCard.AsQueryable().AsNoTracking() + .Where(it => it.UserId == logier.Id) + .ProjectToType<GetPersonalUserBankCardQueryResult>() + .FirstOrDefaultAsync(); + return model; + } } } -- Gitblit v1.9.1