From 185eca1406926d46fa9f50d07a0c0ecc65ab6b96 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期一, 01 九月 2025 11:12:17 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Queries/AlipayUserAgreementPageSignNotifyQuery.cs        |   69 +++++++++++++++++++++++
 FlexJobApi.Web.Entry/Startup.cs                                                                              |    3 
 FlexJobApi.Core/Enums/Users/EnumEnterpriseWalletAccess.cs                                                    |   19 ++++++
 FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs              |    5 +
 FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs                 |    5 +
 FlexJobApi.Core/Utils/AlipayUtils/AlipayUtils.cs                                                             |    1 
 FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs                          |    4 
 FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWallet.cs                                          |   29 +++++++++
 FlexJobApi.Core/Enums/Common/EnumResourceController.cs                                                       |    5 +
 FlexJobApi.Core/FlexJobApi.Core.csproj                                                                       |    1 
 FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/AlipayUserAgreementPageSignNotifyQueryHandler.cs |   28 +++++++++
 FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.csproj                                   |    4 +
 12 files changed, 167 insertions(+), 6 deletions(-)

diff --git a/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWallet.cs b/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWallet.cs
new file mode 100644
index 0000000..b4fc0ba
--- /dev/null
+++ b/FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWallet.cs
@@ -0,0 +1,29 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 浼佷笟閽卞寘
+    /// </summary>
+    public class EnterpriseWallet : CommonEntity
+    {
+        /// <summary>
+        /// 浼佷笟Id
+        /// </summary>
+        public Guid EnterpriseId { get; set; }
+
+        /// <summary>
+        /// 浼佷笟
+        /// </summary>
+        public Enterprise Enterprise { get; set; }
+
+        /// <summary>
+        /// 閫氶亾
+        /// </summary>
+        public EnumEnterpriseWalletAccess Access { get; set; }
+    }
+}
diff --git a/FlexJobApi.Core/Enums/Common/EnumResourceController.cs b/FlexJobApi.Core/Enums/Common/EnumResourceController.cs
index dbe6dca..655b7a3 100644
--- a/FlexJobApi.Core/Enums/Common/EnumResourceController.cs
+++ b/FlexJobApi.Core/Enums/Common/EnumResourceController.cs
@@ -89,6 +89,11 @@
         [ResourceController(EnumResourceService.UserServer, "Enterprise")]
         UserServerEnterprise,
         /// <summary>
+        /// 浼佷笟閽卞寘
+        /// </summary>
+        [ResourceController(EnumResourceService.UserServer, "EnterpriseWallet")]
+        UserServerEnterpriseWallet,
+        /// <summary>
         /// 鐏靛伐淇℃伅
         /// </summary>
         [ResourceController(EnumResourceService.UserServer, "EnterpriseEmployee")]
diff --git a/FlexJobApi.Core/Enums/Users/EnumEnterpriseWalletAccess.cs b/FlexJobApi.Core/Enums/Users/EnumEnterpriseWalletAccess.cs
new file mode 100644
index 0000000..b79ed5e
--- /dev/null
+++ b/FlexJobApi.Core/Enums/Users/EnumEnterpriseWalletAccess.cs
@@ -0,0 +1,19 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 浼佷笟閽卞寘閫氶亾
+    /// </summary>
+    public enum EnumEnterpriseWalletAccess
+    {
+        /// <summary>
+        /// 鏀粯瀹�
+        /// </summary>
+        Alipay = 10
+    }
+}
diff --git a/FlexJobApi.Core/FlexJobApi.Core.csproj b/FlexJobApi.Core/FlexJobApi.Core.csproj
index 5656242..350fb8f 100644
--- a/FlexJobApi.Core/FlexJobApi.Core.csproj
+++ b/FlexJobApi.Core/FlexJobApi.Core.csproj
@@ -44,6 +44,7 @@
 	  <Folder Include="Models\CommonServer\Schedules\Commands\" />
 	  <Folder Include="Models\CommonServer\Schedules\Queries\" />
 	  <Folder Include="Models\FlexJobServer\TaskUsers\Repositories\" />
+	  <Folder Include="Models\UserServer\EnterpriseWallets\Commands\" />
 	</ItemGroup>
 
 </Project>
diff --git a/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs
index 60cb226..a140177 100644
--- a/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs
+++ b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetEnterpriseEmployeesQuery.cs
@@ -189,5 +189,10 @@
         /// </summary>
         public DateTime? EnterpriseSignContractTime { get; set; }
 
+        /// <summary>
+        /// 鐢靛瓙鍚堝悓
+        /// </summary>
+        public string ContractUrl { get; set; }
+
     }
 }
diff --git a/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Queries/AlipayUserAgreementPageSignNotifyQuery.cs b/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Queries/AlipayUserAgreementPageSignNotifyQuery.cs
new file mode 100644
index 0000000..fdd7223
--- /dev/null
+++ b/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Queries/AlipayUserAgreementPageSignNotifyQuery.cs
@@ -0,0 +1,69 @@
+锘縰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.UserServerEnterpriseWallet])]
+    public class AlipayUserAgreementPageSignNotifyQuery : IRequest<bool>
+    {
+        /// <summary>
+        /// 鍗忚浜у搧鐮侊紝鍟嗘埛鍜屾敮浠樺疂绛剧害鏃剁‘瀹氾紝涓嶅悓涓氬姟鍦烘櫙瀵瑰簲涓嶅悓鐨勭绾︿骇鍝佺爜銆�
+        /// </summary>
+        public string personal_product_code { get; set; }
+        /// <summary>
+        /// 褰撳墠绛剧害鐨勫崗璁満鏅��
+        /// </summary>
+        public string sign_scene { get; set; }
+        /// <summary>
+        /// NORMAL	鍗忚褰撳墠鐘舵�� 1. TEMP锛氭殏瀛橈紝鍗忚鏈敓鏁堣繃锛� 2. NORMAL锛氭甯革紱 3. STOP锛氭殏鍋�
+        /// </summary>
+        public string status { get; set; }
+        /// <summary>
+        /// 鐢ㄦ埛绛剧害鐨勬敮浠樺疂璐﹀彿瀵瑰簲鐨勬敮浠樺疂鍞竴鐢ㄦ埛鍙枫�� 浠�2088寮�澶寸殑16浣嶇函鏁板瓧缁勬垚銆�
+        /// </summary>
+        public string alipay_user_id { get; set; }
+        /// <summary>
+        /// 鏀粯瀹濈郴缁熶腑鐢ㄤ互鍞竴鏍囪瘑鐢ㄦ埛绛剧害璁板綍鐨勭紪鍙枫��
+        /// </summary>
+        public string agreement_no { get; set; }
+        /// <summary>
+        /// 鏀粯瀹濅唬鎵e崗璁殑瀹為檯绛剧害鏃堕棿锛屾牸寮忎负yyyy-MM-dd HH:mm:ss銆�
+        /// </summary>
+        public string sign_time { get; set; }
+        /// <summary>
+        /// 鐢ㄦ埛鍦ㄥ晢鎴风綉绔欑殑鐧诲綍璐﹀彿锛屽鏋滃晢鎴锋帴鍙d腑鏈紶锛屽垯涓嶄細杩斿洖
+        /// </summary>
+        public string external_logon_id { get; set; }
+        /// <summary>
+        /// 鏀粯瀹濆垎閰嶇粰寮�鍙戣�呯殑搴旂敤Id
+        /// </summary>
+        public string app_id { get; set; }
+        /// <summary>
+        /// 鏀粯瀹濆垎閰嶇粰鍟嗘埛鐨勫簲鐢↖d
+        /// </summary>
+        public string auth_app_id { get; set; }
+        /// <summary>
+        /// 浠f墸鍗忚涓爣绀虹敤鎴风殑鍞竴绛剧害鍙凤紙纭繚鍦ㄥ晢鎴风郴缁熶腑鍞竴锛夈��
+        /// </summary>
+        public string external_agreement_no { get; set; }
+        /// <summary>
+        /// 鐢ㄦ埛浠f墸鍗忚鐨勫疄闄呯敓鏁堟椂闂达紝鏍煎紡涓簓yyy-MM-dd HH:mm:ss銆�
+        /// </summary>
+        public string valid_time { get; set; }
+        /// <summary>
+        /// 杩斿洖鑴辨晱鐨勬敮浠樺疂璐﹀彿銆�
+        /// </summary>
+        public string alipay_logon_id { get; set; }
+        /// <summary>
+        /// 鐢ㄦ埛绛剧害鎴愬姛閫氱煡绫诲瀷
+        /// </summary>
+        public string notify_type { get; set; }
+    }
+}
diff --git a/FlexJobApi.Core/Utils/AlipayUtils/AlipayUtils.cs b/FlexJobApi.Core/Utils/AlipayUtils/AlipayUtils.cs
index d1961de..2210f76 100644
--- a/FlexJobApi.Core/Utils/AlipayUtils/AlipayUtils.cs
+++ b/FlexJobApi.Core/Utils/AlipayUtils/AlipayUtils.cs
@@ -17,7 +17,6 @@
     /// </summary>
     public class AlipayUtils
     {
-        private readonly IOptions<AlipayOptions> options;
         private readonly IAopClient alipayClient;
 
         public AlipayUtils(IOptions<AlipayOptions> options)
diff --git a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
index 073babf..136ea3f 100644
--- a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
+++ b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
@@ -120,13 +120,14 @@
                 UserSignContractStatus = it.UserSignContractStatus,
                 HireTime = it.TaskInfoUsers
                     .OrderBy(tu => tu.HireTime)
-                    .Where(tu => tu.HireStatus == EnumTaskUserHireStatus.Pass && tu.HireTime.HasValue)
+                    .Where(tu => tu.HireTime.HasValue)
                     .Select(tu => tu.HireTime)
                     .FirstOrDefault(),
                 UserRealTime = it.User.RealTime,
                 UserSignContractTime = it.UserSignContractTime,
                 EnterpriseSignContractStatus = it.EnterpriseSignContractStatus,
-                EnterpriseSignContractTime = it.EnterpriseSignContractTime
+                EnterpriseSignContractTime = it.EnterpriseSignContractTime,
+                ContractUrl = it.ContractUrl,
             });
             return await request.PageModel.GetPagedListAsync<GetEnterpriseEmployeesQueryResult, GetEnterpriseEmployeesQueryResultItem>(s, cancellationToken);
         }
diff --git a/FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/AlipayUserAgreementPageSignNotifyQueryHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/AlipayUserAgreementPageSignNotifyQueryHandler.cs
new file mode 100644
index 0000000..deb6ce8
--- /dev/null
+++ b/FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/AlipayUserAgreementPageSignNotifyQueryHandler.cs
@@ -0,0 +1,28 @@
+锘縰sing FlexJobApi.Core;
+using MediatR;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.UserServer.Application
+{
+    /// <summary>
+    /// 鏀粯瀹濈敤鎴锋巿鏉冨崗璁绾﹂�氱煡
+    /// </summary>
+    public class AlipayUserAgreementPageSignNotifyQueryHandler :
+        IRequestHandler<AlipayUserAgreementPageSignNotifyQuery, bool>
+    {
+        /// <summary>
+        /// 鏀粯瀹濈敤鎴锋巿鏉冨崗璁绾﹂�氱煡
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public Task<bool> Handle(AlipayUserAgreementPageSignNotifyQuery request, CancellationToken cancellationToken)
+        {
+            return Task.FromResult(true);
+        }
+    }
+}
diff --git a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.csproj b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.csproj
index 4f446cf..ed30545 100644
--- a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.csproj
+++ b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.csproj
@@ -15,4 +15,8 @@
 		<ProjectReference Include="..\FlexJobApi.Core\FlexJobApi.Core.csproj" />
 	</ItemGroup>
 
+	<ItemGroup>
+	  <Folder Include="EnterpriseWallets\Commands\" />
+	</ItemGroup>
+
 </Project>
diff --git a/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs b/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs
index 3cd6be9..394dde3 100644
--- a/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs
+++ b/FlexJobApi.UserServer.Application/Users/Queries/GetPersonalUserInfosQueryHandler.cs
@@ -82,7 +82,7 @@
                 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
@@ -120,7 +120,7 @@
                         : EnumTaskUserHireStatus.Wait,
                     HireTime = it.TaskInfoUsers
                         .OrderBy(tu => tu.HireTime)
-                        .Where(tu => tu.HireStatus == EnumTaskUserHireStatus.Pass && tu.HireTime.HasValue)
+                        .Where(tu => tu.HireTime.HasValue)
                         .Select(tu => tu.HireTime)
                         .FirstOrDefault(),
                     UserSignContractStatus = it.UserSignContractStatus,
diff --git a/FlexJobApi.Web.Entry/Startup.cs b/FlexJobApi.Web.Entry/Startup.cs
index d6421ec..3c4cdfe 100644
--- a/FlexJobApi.Web.Entry/Startup.cs
+++ b/FlexJobApi.Web.Entry/Startup.cs
@@ -37,7 +37,8 @@
 
             services.AddComponent<DistributedCacheServiceComponent>();
 
-            services.AddHttpRemote();
+            services.AddHttpRemote(); 
+            services.AddSingleton<AlipayUtils>();
             services.AddSingleton<AliyunSmsUtils>(); 
             services.AddSingleton<WxmpUtils>();
             services.AddScoped<SmsUtils>();

--
Gitblit v1.9.1