From af412772ab7a4c14ba58385bacb273577abdf15e Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 05 九月 2025 14:23:59 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/ApiFlexJob

---
 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