From f7441ac8e0ef8778c4271d4ffec890a7e39bd3ab Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 22 八月 2025 14:39:27 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseEmployeeContract.cs                           |   55 +++++++++++++
 FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetEnabledElectronSignSettingsQuery.cs          |    1 
 FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeeElectronSignQuery.cs |   25 ++++++
 FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs               |   20 ++++-
 FlexJobApi.Core/FlexJobApi.Core.xml                                                                     |   65 +++++++++++++++-
 FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs                     |    5 +
 FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseEmployee.cs                                   |   11 +-
 7 files changed, 167 insertions(+), 15 deletions(-)

diff --git a/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseEmployee.cs b/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseEmployee.cs
index a9ddbd9..5eac28a 100644
--- a/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseEmployee.cs
+++ b/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseEmployee.cs
@@ -15,6 +15,7 @@
         public EnterpriseEmployee()
         {
             TaskInfoUsers = [];
+            Contracts = [];
         }
 
         /// <summary>
@@ -101,13 +102,13 @@
         public DateTime? EnterpriseSignContractTime { get; set; }
 
         /// <summary>
-        /// 鐢靛瓙鍚堝悓
-        /// </summary>
-        public string ContractUrl { get; set; }
-
-        /// <summary>
         /// 浠诲姟浜哄憳淇℃伅
         /// </summary>
         public List<TaskInfoUser> TaskInfoUsers { get; set; }
+
+        /// <summary>
+        /// 鍚堝悓
+        /// </summary>
+        public List<EnterpriseEmployeeContract> Contracts { get; set; }
     }
 }
diff --git a/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseEmployeeContract.cs b/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseEmployeeContract.cs
new file mode 100644
index 0000000..9b26e71
--- /dev/null
+++ b/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseEmployeeContract.cs
@@ -0,0 +1,55 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 鐏靛伐鍚堝悓
+    /// </summary>
+    public class EnterpriseEmployeeContract : CommonEntity
+    {
+        /// <summary>
+        /// 鐏靛伐Id
+        /// </summary>
+        public Guid EnterpriseEmployeeId { get; set; }
+
+        /// <summary>
+        /// 鐏靛伐
+        /// </summary>
+        public EnterpriseEmployee EnterpriseEmployee { get; set; }
+
+        /// <summary>
+        /// 鐏靛伐绛剧害鐘舵��
+        /// </summary>
+        public EnumTaskUserSignContractStatus? UserSignContractStatus { get; set; }
+
+        /// <summary>
+        /// 鐏靛伐绛剧害鏃堕棿
+        /// </summary>
+        public DateTime? UserSignContractTime { get; set; }
+
+        /// <summary>
+        /// 浼佷笟绛剧害鐘舵��
+        /// </summary>
+        public EnumTaskUserSignContractStatus? EnterpriseSignContractStatus { get; set; }
+
+        /// <summary>
+        /// 浼佷笟绛剧害鏃堕棿
+        /// </summary>
+        public DateTime? EnterpriseSignContractTime { get; set; }
+
+        /// <summary>
+        /// 鍚堝悓缂栧彿
+        /// </summary>
+        public string Code { get; set; }
+
+        /// <summary>
+        /// 鐢靛瓙鍚堝悓
+        /// </summary>
+        public string Url { get; set; }
+
+    }
+}
diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml
index 3650e42..143cfd7 100644
--- a/FlexJobApi.Core/FlexJobApi.Core.xml
+++ b/FlexJobApi.Core/FlexJobApi.Core.xml
@@ -1740,14 +1740,59 @@
             浼佷笟绛剧害鏃堕棿
             </summary>
         </member>
-        <member name="P:FlexJobApi.Core.EnterpriseEmployee.ContractUrl">
-            <summary>
-            鐢靛瓙鍚堝悓
-            </summary>
-        </member>
         <member name="P:FlexJobApi.Core.EnterpriseEmployee.TaskInfoUsers">
             <summary>
             浠诲姟浜哄憳淇℃伅
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployee.Contracts">
+            <summary>
+            鍚堝悓
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.EnterpriseEmployeeContract">
+            <summary>
+            鐏靛伐鍚堝悓
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.EnterpriseEmployeeId">
+            <summary>
+            鐏靛伐Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.EnterpriseEmployee">
+            <summary>
+            鐏靛伐
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.UserSignContractStatus">
+            <summary>
+            鐏靛伐绛剧害鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.UserSignContractTime">
+            <summary>
+            鐏靛伐绛剧害鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.EnterpriseSignContractStatus">
+            <summary>
+            浼佷笟绛剧害鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.EnterpriseSignContractTime">
+            <summary>
+            浼佷笟绛剧害鏃堕棿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.Code">
+            <summary>
+            鍚堝悓缂栧彿
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.EnterpriseEmployeeContract.Url">
+            <summary>
+            鐢靛瓙鍚堝悓
             </summary>
         </member>
         <member name="T:FlexJobApi.Core.EnterpriseUserCollect">
@@ -8129,6 +8174,16 @@
             閿欒淇℃伅
             </summary>
         </member>
+        <member name="T:FlexJobApi.Core.GetEnterpriseEmployeeElectronSignQuery">
+            <summary>
+            鏌ヨ涓汉鐢ㄦ埛绛剧害璇︽儏
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.GetEnterpriseEmployeeElectronSignQueryResult">
+            <summary>
+            鏌ヨ涓汉鐢ㄦ埛绛剧害璇︽儏-缁撴灉
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.GetEnterpriseEmployeeQuery">
             <summary>
             鏌ヨ鐏靛伐璇︽儏
diff --git a/FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetEnabledElectronSignSettingsQuery.cs b/FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetEnabledElectronSignSettingsQuery.cs
index 6a715f3..293a850 100644
--- a/FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetEnabledElectronSignSettingsQuery.cs
+++ b/FlexJobApi.Core/Models/UserServer/ElectronSigns/Queries/GetEnabledElectronSignSettingsQuery.cs
@@ -13,6 +13,7 @@
     [Resource([EnumResourceController.UserServerElectronSign])]
     public class GetEnabledElectronSignSettingsQuery : IRequest<List<GetEnabledElectronSignSettingsQueryResultItem>>
     {
+
     }
 
     /// <summary>
diff --git a/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeeElectronSignQuery.cs b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeeElectronSignQuery.cs
new file mode 100644
index 0000000..239f19c
--- /dev/null
+++ b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeeElectronSignQuery.cs
@@ -0,0 +1,25 @@
+锘縰sing MediatR;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 鏌ヨ涓汉鐢ㄦ埛绛剧害璇︽儏
+    /// </summary>
+    [Resource([EnumResourceController.UserServerEnterpriseEmployee])]
+    public class GetEnterpriseEmployeeElectronSignQuery : IRequest<GetEnterpriseEmployeeElectronSignQueryResult>
+    {
+    }
+
+    /// <summary>
+    /// 鏌ヨ涓汉鐢ㄦ埛绛剧害璇︽儏-缁撴灉
+    /// </summary>
+    public class GetEnterpriseEmployeeElectronSignQueryResult
+    {
+
+    }
+}
diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs
index 2c8ab69..949cc7d 100644
--- a/FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs
+++ b/FlexJobApi.UserServer.Application/ElectronSign/Queries/ElectronSignSettingQueryHandler.cs
@@ -15,11 +15,13 @@
     /// 鐢靛瓙绛鹃厤缃煡璇㈠鐞嗗櫒
     /// </summary>
     public class ElectronSignSettingQueryHandler(
-            IRepository<ElectronSignSetting> rep
+            IRepository<ElectronSignSetting> rep,
+            IRepository<EnterpriseElectronSignSetting> repEnterpriseElectronSignSetting
         ) :
         IRequestHandler<GetEnabledElectronSignSettingsQuery, List<GetEnabledElectronSignSettingsQueryResultItem>>
     {
         private readonly IRepository<ElectronSignSetting> rep = rep;
+        private readonly IRepository<EnterpriseElectronSignSetting> repEnterpriseElectronSignSetting = repEnterpriseElectronSignSetting;
 
         /// <summary>
         /// 鏌ヨ宸插惎鐢ㄧ殑鐢靛瓙绛鹃厤缃�
@@ -27,10 +29,20 @@
         /// <param name="request"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
-        public Task<List<GetEnabledElectronSignSettingsQueryResultItem>> Handle(GetEnabledElectronSignSettingsQuery request, CancellationToken cancellationToken)
+        public async Task<List<GetEnabledElectronSignSettingsQueryResultItem>> Handle(GetEnabledElectronSignSettingsQuery request, CancellationToken cancellationToken)
         {
-            return rep.AsQueryable().AsNoTracking()
-                .Where(it => !it.IsDisabled)
+            var logier = JwtUtils.GetCurrentLogier();
+            var q = rep.AsQueryable().AsNoTracking()
+                .Where(it => !it.IsDisabled);
+            if (logier.Type == EnumUserType.Enterprise)
+            {
+                var accesses = await repEnterpriseElectronSignSetting.AsQueryable()
+                    .Where(it => it.EnterpriseId == logier.EnterpriseId)
+                    .Select(it => it.ElectronSignAccess)
+                    .ToListAsync();
+                q = q.Where(it => accesses.Contains(it.Access));
+            }
+            return q
                 .ProjectToType<GetEnabledElectronSignSettingsQueryResultItem>()
                 .ToListAsync();
         }
diff --git a/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs b/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs
index 64770ea..b76c492 100644
--- a/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs
+++ b/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs
@@ -126,7 +126,10 @@
                     UserSignContractStatus = it.UserSignContractStatus,
                     EnterpriseSignContractStatus = it.EnterpriseSignContractStatus,
                     EnterpriseSignContractTime = it.EnterpriseSignContractTime,
-                    ContractUrl = it.ContractUrl,
+                    ContractUrl = it.Contracts
+                        .Where(c => c.EnterpriseSignContractStatus == it.EnterpriseSignContractStatus)
+                        .Select(c => c.Url)
+                        .FirstOrDefault(),
                 });
             return request.PageModel.GetPagedListAsync<GetPersonalUserInfoSignContractsQueryResult, GetPersonalUserInfoSignContractsQueryResultItem>(q, cancellationToken);
         }

--
Gitblit v1.9.1