From 33b3aab9c26972d816ee41fa87059efa34e77a11 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期四, 14 八月 2025 14:18:45 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.Core/FlexJobApi.Core.xml                                                      |   75 ++++++++++++++++++
 FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml                  |    8 ++
 FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs      |   45 +++++++++--
 FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfoSignContractsQuery.cs |   80 ++++++++++++++++++++
 FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfosQuery.cs             |   10 ++
 5 files changed, 209 insertions(+), 9 deletions(-)

diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml
index 9f0dd5c..ede24e8 100644
--- a/FlexJobApi.Core/FlexJobApi.Core.xml
+++ b/FlexJobApi.Core/FlexJobApi.Core.xml
@@ -8514,6 +8514,71 @@
             宸插彇娑�
             </summary>
         </member>
+        <member name="T:FlexJobApi.Core.GetPersonalUserInfoSignContractsQuery">
+            <summary>
+            鏌ヨC绔汉鍛樼绾﹁鎯呭垎椤靛垪琛ㄦ暟鎹�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQuery.Id">
+            <summary>
+            鐢ㄦ埛Id
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResult">
+            <summary>
+            鏌ヨC绔汉鍛樼绾﹁鎯呭垎椤靛垪琛ㄦ暟鎹�-缁撴灉
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem">
+            <summary>
+            鏌ヨC绔汉鍛樼绾﹁鎯呭垎椤靛垪琛ㄦ暟鎹�-缁撴灉-椤�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.Id">
+            <summary>
+            鐏靛伐Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.EnterpriseName">
+            <summary>
+            鎵�灞炲晢鎴�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.ApplyTime">
+            <summary>
+            鎶ュ悕鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.HireStatus">
+            <summary>
+            褰曠敤鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.HireTime">
+            <summary>
+            褰曠敤鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.UserSignContractStatus">
+            <summary>
+            鐏靛伐绛剧害鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.EnterpriseSignContractStatus">
+            <summary>
+            浼佷笟绛剧害鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.EnterpriseSignContractTime">
+            <summary>
+            浼佷笟绛剧害鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserInfoSignContractsQueryResultItem.ContractUrl">
+            <summary>
+            鐢靛瓙鍚堝悓
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.GetPersonalUserInfosQuery">
             <summary>
             鏌ヨC绔汉鍛樺垎椤靛垪琛ㄦ暟鎹�
@@ -8580,6 +8645,16 @@
             韬唤璇佸彿
             </summary>
         </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserInfosQueryResultItem.IdentityImg">
+            <summary>
+            韬唤璇佷汉鍍忛潰
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetPersonalUserInfosQueryResultItem.IdentityBackImg">
+            <summary>
+            韬唤璇佸浗寰介潰
+            </summary>
+        </member>
         <member name="P:FlexJobApi.Core.GetPersonalUserInfosQueryResultItem.Gender">
             <summary>
             鎬у埆
diff --git a/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfoSignContractsQuery.cs b/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfoSignContractsQuery.cs
new file mode 100644
index 0000000..946a652
--- /dev/null
+++ b/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfoSignContractsQuery.cs
@@ -0,0 +1,80 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 鏌ヨC绔汉鍛樼绾﹁鎯呭垎椤靛垪琛ㄦ暟鎹�
+    /// </summary>
+    [Resource([EnumResourceController.User])]
+    public class GetPersonalUserInfoSignContractsQuery : PagedListQuery<GetPersonalUserInfoSignContractsQueryResult, GetPersonalUserInfoSignContractsQueryResultItem>
+    {
+        /// <summary>
+        /// 鐢ㄦ埛Id
+        /// </summary>
+        public Guid Id { get; set; }
+    }
+
+    /// <summary>
+    /// 鏌ヨC绔汉鍛樼绾﹁鎯呭垎椤靛垪琛ㄦ暟鎹�-缁撴灉
+    /// </summary>
+    public class GetPersonalUserInfoSignContractsQueryResult : PagedListQueryResult<GetPersonalUserInfoSignContractsQueryResultItem>
+    {
+
+    }
+
+    /// <summary>
+    /// 鏌ヨC绔汉鍛樼绾﹁鎯呭垎椤靛垪琛ㄦ暟鎹�-缁撴灉-椤�
+    /// </summary>
+    public class GetPersonalUserInfoSignContractsQueryResultItem
+    {
+        /// <summary>
+        /// 鐏靛伐Id
+        /// </summary>
+        public Guid Id { get; set; }
+
+        /// <summary>
+        /// 鎵�灞炲晢鎴�
+        /// </summary>
+        public string EnterpriseName { get; set; }
+
+        /// <summary>
+        /// 鎶ュ悕鏃堕棿
+        /// </summary>
+        public DateTimeOffset? ApplyTime { get; set; }
+
+        /// <summary>
+        /// 褰曠敤鐘舵��
+        /// </summary>
+        public EnumTaskUserHireStatus HireStatus { get; set; }
+
+        /// <summary>
+        /// 褰曠敤鏃堕棿
+        /// </summary>
+        public DateTime? HireTime { get; set; }
+
+        /// <summary>
+        /// 鐏靛伐绛剧害鐘舵��
+        /// </summary>
+        public EnumTaskUserSignContractStatus? UserSignContractStatus { get; set; }
+
+        /// <summary>
+        /// 浼佷笟绛剧害鐘舵��
+        /// </summary>
+        public EnumTaskUserSignContractStatus? EnterpriseSignContractStatus { get; set; }
+
+        /// <summary>
+        /// 浼佷笟绛剧害鏃堕棿
+        /// </summary>
+        public DateTime? EnterpriseSignContractTime { get; set; }
+
+        /// <summary>
+        /// 鐢靛瓙鍚堝悓
+        /// </summary>
+        public string ContractUrl { get; set; }
+
+    }
+}
diff --git a/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfosQuery.cs b/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfosQuery.cs
index 98e3326..4ccffc8 100644
--- a/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfosQuery.cs
+++ b/FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalUserInfosQuery.cs
@@ -78,6 +78,16 @@
         public string Identity { get; set; }
 
         /// <summary>
+        /// 韬唤璇佷汉鍍忛潰
+        /// </summary>
+        public string IdentityImg { get; set; }
+
+        /// <summary>
+        /// 韬唤璇佸浗寰介潰
+        /// </summary>
+        public string IdentityBackImg { get; set; }
+
+        /// <summary>
         /// 鎬у埆
         /// </summary>
         public EnumUserGender? Gender { get; set; }
diff --git a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
index 95296c0..eba2821 100644
--- a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
+++ b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
@@ -728,6 +728,14 @@
             <param name="cancellationToken"></param>
             <returns></returns>
         </member>
+        <member name="M:FlexJobApi.UserServer.Application.GetPersonalUserInfosQueryHandler.Handle(FlexJobApi.Core.GetPersonalUserInfoSignContractsQuery,System.Threading.CancellationToken)">
+            <summary>
+            鏌ヨC绔汉鍛樼绾﹁鎯呭垎椤靛垪琛ㄦ暟鎹�
+            </summary>
+            <param name="request"></param>
+            <param name="cancellationToken"></param>
+            <returns></returns>
+        </member>
         <member name="T:FlexJobApi.UserServer.Application.GetUserInfoRolesQueryHandler">
             <summary>
             鏌ヨ鐢ㄦ埛瑙掕壊鍒楄〃
diff --git a/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs b/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs
index 5ee6ff5..8f71df9 100644
--- a/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs
+++ b/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs
@@ -16,7 +16,8 @@
     public class GetPersonalUserInfosQueryHandler(
             IRepository<User> rep
         ) :
-        IRequestHandler<GetPersonalUserInfosQuery, GetPersonalUserInfosQueryResult>
+        IRequestHandler<GetPersonalUserInfosQuery, GetPersonalUserInfosQueryResult>,
+        IRequestHandler<GetPersonalUserInfoSignContractsQuery, GetPersonalUserInfoSignContractsQueryResult>
     {
         private readonly IRepository<User> rep = rep;
 
@@ -51,11 +52,7 @@
             {
                 q = q.Where(it =>
                     it.EnterpriseEmployees.Any(e =>
-                        e.UserSignContractStatus == EnumTaskUserSignContractStatus.Pass
-                        && e.UserSignContractTime.HasValue
-                        && request.SignContractBegin <= e.UserSignContractTime
-                        && e.UserSignContractTime <= request.SignContractEnd
-                        || e.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Pass
+                        e.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Pass
                         && e.EnterpriseSignContractTime.HasValue
                         && request.SignContractBegin <= e.EnterpriseSignContractTime
                         && e.EnterpriseSignContractTime <= request.SignContractEnd));
@@ -70,6 +67,8 @@
                 Name = it.Name,
                 ContactPhoneNumber = it.ContactPhoneNumber,
                 Identity = it.Identity,
+                IdentityImg = it.UserAuth.IdentityImg,
+                IdentityBackImg = it.UserAuth.IdentityBackImg,
                 Gender = it.Gender,
                 Age = it.Age,
                 ProvinceCode = it.ProvinceCode,
@@ -85,13 +84,41 @@
                     .Select(e => e.HireTime)
                     .FirstOrDefault(),
                 SignContractTime = it.EnterpriseEmployees
-                    .OrderByDescending(e => e.EnterpriseSignContractTime > e.UserSignContractTime ? e.EnterpriseSignContractTime : e.UserSignContractTime)
-                    .Where(e => e.HireStatus == EnumTaskUserHireStatus.Pass && e.HireTime.HasValue)
-                    .Select(e => e.HireTime)
+                    .OrderByDescending(e => e.EnterpriseSignContractTime)
+                    .Where(e => e.EnterpriseSignContractStatus == EnumTaskUserSignContractStatus.Pass && e.EnterpriseSignContractTime.HasValue)
+                    .Select(e => e.EnterpriseSignContractTime)
                     .FirstOrDefault(),
             });
             var result = await request.PageModel.GetPagedListAsync<GetPersonalUserInfosQueryResult, GetPersonalUserInfosQueryResultItem>(s, cancellationToken);
             return result;
         }
+
+        /// <summary>
+        /// 鏌ヨC绔汉鍛樼绾﹁鎯呭垎椤靛垪琛ㄦ暟鎹�
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public Task<GetPersonalUserInfoSignContractsQueryResult> Handle(GetPersonalUserInfoSignContractsQuery request, CancellationToken cancellationToken)
+        {
+            var q = rep.Change<EnterpriseEmployee>().AsQueryable().AsNoTracking()
+                .Where(it => it.UserId == request.Id)
+                .Select(it => new GetPersonalUserInfoSignContractsQueryResultItem
+                {
+                    Id = it.Id,
+                    EnterpriseName = it.Enterprise.EnterpriseName,
+                    ApplyTime = it.TaskInfoUsers
+                        .OrderBy(tu => tu.CreatedTime)
+                        .Select(tu => tu.CreatedTime as DateTimeOffset?)
+                        .FirstOrDefault(),
+                    HireStatus = it.HireStatus,
+                    HireTime = it.HireTime,
+                    UserSignContractStatus = it.UserSignContractStatus,
+                    EnterpriseSignContractStatus = it.EnterpriseSignContractStatus,
+                    EnterpriseSignContractTime = it.EnterpriseSignContractTime,
+                    ContractUrl = it.ContractUrl,
+                });
+            return request.PageModel.GetPagedListAsync<GetPersonalUserInfoSignContractsQueryResult, GetPersonalUserInfoSignContractsQueryResultItem>(q, cancellationToken);
+        }
     }
 }

--
Gitblit v1.9.1