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