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

---
 FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Commands/AlipayTransferCommand.cs             |   18 ++++++
 FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetPersonalUserElectronSignQuery.cs |    5 +
 FlexJobApi.Core/FlexJobApi.Core.xml                                                               |   76 +++---------------------
 FlexJobApi.Core/Utils/AlipayUtils/AlipayUtils.cs                                                  |   15 ++++
 FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml                           |    2 
 FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs    |   42 +++++++++++++
 6 files changed, 89 insertions(+), 69 deletions(-)

diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml
index 1fc93be..3859be9 100644
--- a/FlexJobApi.Core/FlexJobApi.Core.xml
+++ b/FlexJobApi.Core/FlexJobApi.Core.xml
@@ -9692,74 +9692,14 @@
             浠h繘浠跺崟Id
             </summary>
         </member>
+        <member name="T:FlexJobApi.Core.AlipayTransferCommand">
+            <summary>
+            杞处
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyCommand">
             <summary>
             鏀粯瀹濈敤鎴锋巿鏉冨崗璁绾﹂�氱煡
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyCommand.personal_product_code">
-            <summary>
-            鍗忚浜у搧鐮侊紝鍟嗘埛鍜屾敮浠樺疂绛剧害鏃剁‘瀹氾紝涓嶅悓涓氬姟鍦烘櫙瀵瑰簲涓嶅悓鐨勭绾︿骇鍝佺爜銆�
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyCommand.sign_scene">
-            <summary>
-            褰撳墠绛剧害鐨勫崗璁満鏅��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyCommand.status">
-            <summary>
-            NORMAL	鍗忚褰撳墠鐘舵�� 1. TEMP锛氭殏瀛橈紝鍗忚鏈敓鏁堣繃锛� 2. NORMAL锛氭甯革紱 3. STOP锛氭殏鍋�
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyCommand.alipay_user_id">
-            <summary>
-            鐢ㄦ埛绛剧害鐨勬敮浠樺疂璐﹀彿瀵瑰簲鐨勬敮浠樺疂鍞竴鐢ㄦ埛鍙枫�� 浠�2088寮�澶寸殑16浣嶇函鏁板瓧缁勬垚銆�
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyCommand.agreement_no">
-            <summary>
-            鏀粯瀹濈郴缁熶腑鐢ㄤ互鍞竴鏍囪瘑鐢ㄦ埛绛剧害璁板綍鐨勭紪鍙枫��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyCommand.sign_time">
-            <summary>
-            鏀粯瀹濅唬鎵e崗璁殑瀹為檯绛剧害鏃堕棿锛屾牸寮忎负yyyy-MM-dd HH:mm:ss銆�
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyCommand.external_logon_id">
-            <summary>
-            鐢ㄦ埛鍦ㄥ晢鎴风綉绔欑殑鐧诲綍璐﹀彿锛屽鏋滃晢鎴锋帴鍙d腑鏈紶锛屽垯涓嶄細杩斿洖
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyCommand.app_id">
-            <summary>
-            鏀粯瀹濆垎閰嶇粰寮�鍙戣�呯殑搴旂敤Id
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyCommand.auth_app_id">
-            <summary>
-            鏀粯瀹濆垎閰嶇粰鍟嗘埛鐨勫簲鐢↖d
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyCommand.external_agreement_no">
-            <summary>
-            浠f墸鍗忚涓爣绀虹敤鎴风殑鍞竴绛剧害鍙凤紙纭繚鍦ㄥ晢鎴风郴缁熶腑鍞竴锛夈��
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyCommand.valid_time">
-            <summary>
-            鐢ㄦ埛浠f墸鍗忚鐨勫疄闄呯敓鏁堟椂闂达紝鏍煎紡涓簓yyy-MM-dd HH:mm:ss銆�
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyCommand.alipay_logon_id">
-            <summary>
-            杩斿洖鑴辨晱鐨勬敮浠樺疂璐﹀彿銆�
-            </summary>
-        </member>
-        <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyCommand.notify_type">
-            <summary>
-            鐢ㄦ埛绛剧害鎴愬姛閫氱煡绫诲瀷
             </summary>
         </member>
         <member name="T:FlexJobApi.Core.CloseEnterpriseWalletCommand">
@@ -12597,6 +12537,12 @@
             </summary>
             <param name="model"></param>
         </member>
+        <member name="M:FlexJobApi.Core.AlipayUtils.FundTransUniTransfer(Aop.Api.Domain.AlipayFundTransUniTransferModel)">
+            <summary>
+            鍗曠瑪杞处鎺ュ彛
+            </summary>
+            <param name="model"></param>
+        </member>
         <member name="M:FlexJobApi.Core.AlipayUtils.FundExpandindirectImageUpload(Aop.Api.Request.AlipayFundExpandindirectImageUploadRequest)">
             <summary>
             璧勯噾浜岀骇鍟嗘埛KYB浠h繘浠舵枃浠朵笂浼犳帴鍙�
diff --git a/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetPersonalUserElectronSignQuery.cs b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetPersonalUserElectronSignQuery.cs
index 267465b..bb0003b 100644
--- a/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetPersonalUserElectronSignQuery.cs
+++ b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetPersonalUserElectronSignQuery.cs
@@ -33,6 +33,11 @@
     public class GetPersonalUserElectronSignQueryResult
     {
         /// <summary>
+        /// 鐏靛伐Id
+        /// </summary>
+        public Guid Id { get; set; }
+
+        /// <summary>
         /// 鍚堝悓缂栧彿
         /// </summary>
         public string ContractCode { get; set; }
diff --git a/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Commands/AlipayTransferCommand.cs b/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Commands/AlipayTransferCommand.cs
new file mode 100644
index 0000000..ba55f54
--- /dev/null
+++ b/FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Commands/AlipayTransferCommand.cs
@@ -0,0 +1,18 @@
+锘縰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 AlipayTransferCommand : IRequest<Guid>
+    {
+
+    }
+}
diff --git a/FlexJobApi.Core/Utils/AlipayUtils/AlipayUtils.cs b/FlexJobApi.Core/Utils/AlipayUtils/AlipayUtils.cs
index f363e67..d88fc76 100644
--- a/FlexJobApi.Core/Utils/AlipayUtils/AlipayUtils.cs
+++ b/FlexJobApi.Core/Utils/AlipayUtils/AlipayUtils.cs
@@ -102,6 +102,20 @@
         }
 
         /// <summary>
+        /// 鍗曠瑪杞处鎺ュ彛
+        /// </summary>
+        /// <param name="model"></param>
+        public AlipayFundTransUniTransferResponse FundTransUniTransfer(AlipayFundTransUniTransferModel model)
+        {
+            logger.LogInformation($"姝e湪鎵ц鍗曠瑪杞处鎺ュ彛锛歿model.ToJson()}");
+            AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
+            request.SetBizModel(model);
+            AlipayFundTransUniTransferResponse response = alipayClient.CertificateExecute(request);
+            logger.LogInformation($"缁撴灉锛歿response.ToJson()}");
+            return response;
+        }
+
+        /// <summary>
         /// 璧勯噾浜岀骇鍟嗘埛KYB浠h繘浠舵枃浠朵笂浼犳帴鍙�
         /// </summary>
         /// <returns></returns>
@@ -148,7 +162,6 @@
             logger.LogInformation($"缁撴灉锛歿response.ToJson()}");
             return response;
         }
-
 
         /// <summary>
         /// 璧勯噾浜岀骇鍟嗘埛KYB浠h繘浠跺崟鍙栨秷鎺ュ彛
diff --git a/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs
index ab40e91..e34811a 100644
--- a/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs
+++ b/FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/EnterpriseWalletCommandHandler.cs
@@ -23,7 +23,8 @@
             AlipayUtils alipayUtils
         ) :
         IRequestHandler<OpenEnterpriseWalletCommand, OpenEnterpriseWalletCommandResult>,
-        IRequestHandler<CloseEnterpriseWalletCommand, Guid>
+        IRequestHandler<CloseEnterpriseWalletCommand, Guid>,
+        IRequestHandler<AlipayTransferCommand, Guid>
     {
         private readonly IRepository<EnterpriseWallet> rep = rep;
         private readonly IRepository<Enterprise> repEnterprise = repEnterprise;
@@ -79,7 +80,7 @@
             var response = alipayUtils.UserAgreementPageSign(model, $"/api/user/enterpriseWallet/alipayUserAgreementPageSignNotify");
             if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.SubMsg ?? response.Msg);
             var result = new OpenEnterpriseWalletCommandResult();
-            result.SignUrl =  response.Body;
+            result.SignUrl = response.Body;
             return result;
         }
 
@@ -108,6 +109,43 @@
             return entity.Id;
         }
 
+        public async Task<Guid> Handle(AlipayTransferCommand request, CancellationToken cancellationToken)
+        {
+            var logier = JwtUtils.GetCurrentLogier();
+            var entity = await rep.AsQueryable()
+                .Where(it => it.EnterpriseId == logier.EnterpriseId && it.Access == EnumEnterpriseWalletAccess.Alipay)
+                .FirstOrDefaultAsync();
+            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "浼佷笟閽卞寘");
+            var response = alipayUtils.FundTransUniTransfer(new AlipayFundTransUniTransferModel
+            {
+                OutBizNo = $"Test{DateTime.Now:yyyyMMddHHmmss}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}",
+                TransAmount = "0.01",
+                ProductCode = "TRANS_ACCOUNT_NO_PWD",
+                PayeeInfo = new Participant
+                {
+                    IdentityType = "BANKCARD_ACCOUNT",
+                    Identity = "6214180000016351382",
+                    Name = "瀛欓箯椋�",
+                    BankcardExtInfo = new BankcardExtInfo
+                    {
+                        AccountType = "2",
+                        InstName = "瀹佹尝閾惰"
+                    }
+                },
+                PayerInfo = new Participant
+                {
+                    IdentityType = "ALIPAY_OPEN_ID",
+                    Identity = entity.PrincipalOpenId,
+                    Name = "瀛欓箯椋�"
+                },
+                BizScene = "CAE_TRANSFER",
+                OrderTitle = "娴嬭瘯浠f墸",
+                Remark = "娴嬭瘯浠f墸澶囨敞"
+            });
+            if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.SubMsg ?? response.Msg);
+            return entity.Id;
+        }
+
         private async Task SetCode(EnterpriseWallet entity)
         {
             entity.Code = $"{DateTime.Now:yyyyMMddHHmmss}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}";
diff --git a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
index 264e7e1..605d312 100644
--- a/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
+++ b/FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
@@ -638,7 +638,7 @@
             鏀粯瀹濋�氱煡鍥炰紶
             </summary>
         </member>
-        <member name="M:FlexJobApi.UserServer.Application.GetAlipayNotifyCommandHandler.#ctor(Microsoft.AspNetCore.Http.IHttpContextAccessor)">
+        <member name="M:FlexJobApi.UserServer.Application.GetAlipayNotifyCommandHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseWallet})">
             <summary>
             鏀粯瀹濋�氱煡鍥炰紶
             </summary>

--
Gitblit v1.9.1