From 54a585e07c82223787c2d1db185e3fc085727eaa Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期二, 12 八月 2025 19:33:13 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeeQuery.cs     |   96 ++++++++++++++++++++++++
 FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs |   34 ++++++++
 FlexJobApi.Core/FlexJobApi.Core.xml                                                             |   81 ++++++++++++++++++++
 FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml                         |    8 ++
 4 files changed, 218 insertions(+), 1 deletions(-)

diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml
index 0f8b768..545b6af 100644
--- a/FlexJobApi.Core/FlexJobApi.Core.xml
+++ b/FlexJobApi.Core/FlexJobApi.Core.xml
@@ -5125,6 +5125,87 @@
             鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛鑿滃崟
             </summary>
         </member>
+        <member name="T:FlexJobApi.Core.GetEnterpriseEmployeeQuery">
+            <summary>
+            鏌ヨ鐏靛伐璇︽儏
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeeQuery.Id">
+            <summary>
+            鐏靛伐Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeeQuery.TaskInfoId">
+            <summary>
+            浠诲姟Id
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.GetEnterpriseEmployeeQueryResult">
+            <summary>
+            鏌ヨ鐏靛伐鍒嗛〉鍒楄〃鏁版嵁-缁撴灉
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeeQueryResult.Id">
+            <summary>
+            鐏靛伐Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeeQueryResult.Name">
+            <summary>
+            濮撳悕
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeeQueryResult.Identity">
+            <summary>
+            韬唤璇佸彿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeeQueryResult.ContactPhoneNumber">
+            <summary>
+            鎵嬫満鍙�
+            </summary>
+            <remarks>鑱旂郴鐢佃瘽</remarks>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeeQueryResult.Gender">
+            <summary>
+            鎬у埆
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeeQueryResult.Age">
+            <summary>
+            骞撮緞
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeeQueryResult.IdentityImg">
+            <summary>
+            韬唤璇佷汉鍍忛潰
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeeQueryResult.IdentityBackImg">
+            <summary>
+            韬唤璇佸浗寰介潰
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeeQueryResult.ApplyTime">
+            <summary>
+            鎶ュ悕鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeeQueryResult.UserRealTime">
+            <summary>
+            瀹炲悕鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeeQueryResult.EnterpriseSignContractTime">
+            <summary>
+            浼佷笟绛剧害鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetEnterpriseEmployeeQueryResult.ContractUrl">
+            <summary>
+            鐢靛瓙鍚堝悓
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.GetEnterpriseEmployeesQuery">
             <summary>
             鏌ヨ鐏靛伐鍒嗛〉鍒楄〃鏁版嵁
diff --git a/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeeQuery.cs b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeeQuery.cs
new file mode 100644
index 0000000..7f6b007
--- /dev/null
+++ b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeeQuery.cs
@@ -0,0 +1,96 @@
+锘縰sing MediatR;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 鏌ヨ鐏靛伐璇︽儏
+    /// </summary>
+    [Resource([EnumResourceController.EnterpriseEmployee])]
+    public class GetEnterpriseEmployeeQuery : IRequest<GetEnterpriseEmployeeQueryResult>
+    {
+        /// <summary>
+        /// 鐏靛伐Id
+        /// </summary>
+        public Guid Id { get; set; }
+
+        /// <summary>
+        /// 浠诲姟Id
+        /// </summary>
+        public Guid? TaskInfoId { get; set; }
+    }
+
+    /// <summary>
+    /// 鏌ヨ鐏靛伐鍒嗛〉鍒楄〃鏁版嵁-缁撴灉
+    /// </summary>
+    public class GetEnterpriseEmployeeQueryResult
+    {
+        /// <summary>
+        /// 鐏靛伐Id
+        /// </summary>
+        public Guid Id { get; set; }
+
+        /// <summary>
+        /// 濮撳悕
+        /// </summary>
+        public string Name { get; set; }
+
+        /// <summary>
+        /// 韬唤璇佸彿
+        /// </summary>
+        public string Identity { get; set; }
+
+        /// <summary>
+        /// 鎵嬫満鍙�
+        /// </summary>
+        /// <remarks>鑱旂郴鐢佃瘽</remarks>
+        public string ContactPhoneNumber { get; set; }
+
+        /// <summary>
+        /// 鎬у埆
+        /// </summary>
+        public EnumUserGender? Gender { get; set; }
+
+        /// <summary>
+        /// 骞撮緞
+        /// </summary>
+        public int? Age { get; set; }
+
+        /// <summary>
+        /// 韬唤璇佷汉鍍忛潰
+        /// </summary>
+        public string IdentityImg { get; set; }
+
+        /// <summary>
+        /// 韬唤璇佸浗寰介潰
+        /// </summary>
+        public string IdentityBackImg { get; set; }
+
+        /// <summary>
+        /// 鎶ュ悕鏃堕棿
+        /// </summary>
+        public DateTimeOffset? ApplyTime { get; set; }
+
+        /// <summary>
+        /// 瀹炲悕鏃堕棿
+        /// </summary>
+        public DateTime? UserRealTime { get; set; }
+
+        /// <summary>
+        /// 浼佷笟绛剧害鏃堕棿
+        /// </summary>
+        public DateTime? EnterpriseSignContractTime { get; set; }
+
+        /// <summary>
+        /// 鐢靛瓙鍚堝悓
+        /// </summary>
+        public string ContractUrl { get; set; }
+
+    }
+}
diff --git a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
index 3a7ef18..38e1ddc 100644
--- a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
+++ b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
@@ -17,7 +17,8 @@
     public class EnterpriseEmployeeQueryHandler(
             IRepository<EnterpriseEmployee> rep
         ) :
-        IRequestHandler<GetEnterpriseEmployeesQuery, GetEnterpriseEmployeesQueryResult>
+        IRequestHandler<GetEnterpriseEmployeesQuery, GetEnterpriseEmployeesQueryResult>,
+        IRequestHandler<GetEnterpriseEmployeeQuery, GetEnterpriseEmployeeQueryResult>
     {
         private readonly IRepository<EnterpriseEmployee> rep = rep;
 
@@ -97,5 +98,36 @@
             });
             return await request.PageModel.GetPagedListAsync<GetEnterpriseEmployeesQueryResult, GetEnterpriseEmployeesQueryResultItem>(s, cancellationToken);
         }
+
+        /// <summary>
+        /// 鏌ヨ鐏靛伐璇︽儏
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<GetEnterpriseEmployeeQueryResult> Handle(GetEnterpriseEmployeeQuery request, CancellationToken cancellationToken)
+        {
+            var logier = JwtUtils.GetCurrentLogier();
+            var model = await rep.AsQueryable().AsNoTracking()
+                .Where(it => it.Id == request.Id)
+                .GetDetail<EnterpriseEmployee, GetEnterpriseEmployeeQueryResult>(cancellationToken);
+            if (request.TaskInfoId.HasValue)
+            {
+                model.ApplyTime = await rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking()
+                    .Where(it => it.TaskInfoId == request.TaskInfoId && it.EnterpriseEmployeeId == request.Id)
+                    .Select(it => it.CreatedTime as DateTimeOffset?)
+                    .FirstOrDefaultAsync(cancellationToken);
+            }
+            else if (logier.Type == EnumUserType.Enterprise)
+            {
+                model.ApplyTime = await rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking()
+                    .OrderBy(it => it.CreatedTime)
+                    .Where(it => it.TaskInfo.EnterpriseId == logier.EnterpriseId && it.EnterpriseEmployeeId == request.Id)
+                    .Select(it => it.CreatedTime as DateTimeOffset?)
+                    .FirstOrDefaultAsync(cancellationToken);
+            }
+            
+            return model;
+        }
     }
 }
diff --git a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
index 1c4fd2a..4bb4519 100644
--- a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
+++ b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
@@ -166,6 +166,14 @@
             <param name="cancellationToken"></param>
             <returns></returns>
         </member>
+        <member name="M:FlexJobApi.UserServer.Application.EnterpriseEmployeeQueryHandler.Handle(FlexJobApi.Core.GetEnterpriseEmployeeQuery,System.Threading.CancellationToken)">
+            <summary>
+            鏌ヨ鐏靛伐璇︽儏
+            </summary>
+            <param name="request"></param>
+            <param name="cancellationToken"></param>
+            <returns></returns>
+        </member>
         <member name="T:FlexJobApi.UserServer.Application.EnterpriseCommandHandler">
             <summary>
             浼佷笟鍛戒护澶勭悊鍣�

--
Gitblit v1.9.1