2025-09-01 | sunpengfei | ![]() |
2025-09-01 | sunpengfei | ![]() |
2025-09-01 | sunpengfei | ![]() |
2025-09-01 | sunpengfei | ![]() |
2025-09-01 | sunpengfei | ![]() |
FlexJobApi.CommonServer.Application/LogRecords/Queries/GetTraceIdLogQueryHandler.cs
@@ -50,10 +50,11 @@ .Where(it => it.TraceId == request.TraceId) .ProjectToType<GetDbAuditLogsQueryResultItem>() .ToListAsync(); var userIds = result.ResourceLogs.DistinctSelect(it => it.CreatedUserId.HasValue, it => it.CreatedUserId) .Union(result.ExceptionLogs.DistinctSelect(it => it.CreatedUserId.HasValue, it => it.CreatedUserId)) .Union(result.DbAuditLogs.DistinctSelect(it => it.CreatedUserId.HasValue, it => it.CreatedUserId)); if (userIds.IsNullOrEmpty()) var userIds = result.ResourceLogs.DistinctSelect(it => it.CreatedUserId.HasValue, it => it.CreatedUserId!.Value) .Union(result.ExceptionLogs.DistinctSelect(it => it.CreatedUserId.HasValue, it => it.CreatedUserId!.Value)) .Union(result.DbAuditLogs.DistinctSelect(it => it.CreatedUserId.HasValue, it => it.CreatedUserId!.Value)) .ToList(); if (userIds.IsNotNull()) { var users = await repUser.AsQueryable().AsNoTracking() .Where(it => userIds.Contains(it.Id)) FlexJobApi.Core/Entities/UserServer/Enterprises/AlipayFundExpandindirectOrder.cs
New file @@ -0,0 +1,102 @@ using Aop.Api.Domain; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Serialization; namespace FlexJobApi.Core { /// <summary> /// èµéäºçº§åæ·KYB代è¿ä»¶å /// </summary> public class AlipayFundExpandindirectOrder : CommonEntity { /// <summary> /// 产åç /// </summary> public string ProductCode { get; set; } /// <summary> /// åºæ¯ç /// </summary> public string BizScene { get; set; } /// <summary> /// å¤é¨åå· /// </summary> public string OutBizNo { get; set; } /// <summary> /// äºçº§åæ·ä¿¡æ¯-æ è¯ /// </summary> public string Identity { get; set; } /// <summary> /// äºçº§åæ·ä¿¡æ¯-æ è¯ç±»å /// </summary> public string IdentityType { get; set; } /// <summary> /// äºçº§åæ·ä¿¡æ¯-å§å /// </summary> public string Name { get; set; } /// <summary> /// ä¸å¡ç±»å /// </summary> public string BizType { get; set; } /// <summary> /// åè¿ä»¶åid /// </summary> public string OriginalOrderId { get; set; } /// <summary> /// èµéè®°è´¦æ¬çä¸å¡åºæ¯ /// </summary> public string SceneCode { get; set; } /// <summary> /// è½¬è´¦åºæ¯è¯´æ /// </summary> public string SceneDirections { get; set; } /// <summary> /// è½¬è´¦åºæ¯æªå¾ /// </summary> public string SceneImageOssUrl { get; set; } /// <summary> /// è½¬è´¦åºæ¯æªå¾ /// </summary> public string SceneImage { get; set; } /// <summary> /// åæ·è¡ä¸èµè´¨å¾ç /// </summary> public string SceneQualificationImageOssUrl { get; set; } /// <summary> /// åæ·è¡ä¸èµè´¨åè®®ææ¬ /// </summary> public string SceneQualificationText { get; set; } /// <summary> /// åæ·è¡ä¸èµè´¨å¾çæåè®®ææ¬ /// </summary> public string SceneQualificationImage { get; set; } /// <summary> /// åæ·ç«ç¹ä¿¡æ¯ /// </summary> public string Sites { get; set; } /// <summary> /// è¿ä»¶åid /// </summary> public string OrderId { get; set; } /// <summary> /// è¿ä»¶åç¶æ /// 审æ¹ä¸: PROCESSING /// å·²çæ: VALID /// 审æ¹ä¸éè¿: INVALID /// å·²åºå¼: DISUSE /// å·²æ¤é: REVOKED /// </summary> public string Status { get; set; } /// <summary> /// è¿ä»¶åä»»å¡å®ç»æ¶é´ /// </summary> public string TaskFinishTime { get; set; } /// <summary> /// è¿ä»¶åå®¡æ ¸ä¸éè¿åå /// </summary> public string RiskReviewRemark { get; set; } } } FlexJobApi.Core/Entities/UserServer/Enterprises/EnterpriseWallet.cs
New file @@ -0,0 +1,29 @@ using 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; } } } 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")] FlexJobApi.Core/Enums/Users/EnumEnterpriseWalletAccess.cs
New file @@ -0,0 +1,19 @@ using 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 } } FlexJobApi.Core/FlexJobApi.Core.csproj
@@ -17,6 +17,8 @@ </ItemGroup> <ItemGroup> <PackageReference Include="AlipayEasySDK" Version="2.1.3" /> <PackageReference Include="AlipaySDKNet.Standard" Version="4.9.751" /> <PackageReference Include="aliyun-net-sdk-core" Version="1.5.6" /> <PackageReference Include="Aliyun.OSS.SDK.NetCore" Version="2.14.1" /> <PackageReference Include="Baidu.AI" Version="4.15.16" /> FlexJobApi.Core/FlexJobApi.Core.xml
@@ -1334,6 +1334,116 @@ çµåç¾éé </summary> </member> <member name="T:FlexJobApi.Core.AlipayFundExpandindirectOrder"> <summary> èµéäºçº§åæ·KYB代è¿ä»¶å </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.ProductCode"> <summary> 产åç </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.BizScene"> <summary> åºæ¯ç </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.OutBizNo"> <summary> å¤é¨åå· </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.Identity"> <summary> äºçº§åæ·ä¿¡æ¯-æ è¯ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.IdentityType"> <summary> äºçº§åæ·ä¿¡æ¯-æ è¯ç±»å </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.Name"> <summary> äºçº§åæ·ä¿¡æ¯-å§å </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.BizType"> <summary> ä¸å¡ç±»å </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.OriginalOrderId"> <summary> åè¿ä»¶åid </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.SceneCode"> <summary> èµéè®°è´¦æ¬çä¸å¡åºæ¯ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.SceneDirections"> <summary> è½¬è´¦åºæ¯è¯´æ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.SceneImageOssUrl"> <summary> è½¬è´¦åºæ¯æªå¾ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.SceneImage"> <summary> è½¬è´¦åºæ¯æªå¾ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.SceneQualificationImageOssUrl"> <summary> åæ·è¡ä¸èµè´¨å¾ç </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.SceneQualificationText"> <summary> åæ·è¡ä¸èµè´¨åè®®ææ¬ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.SceneQualificationImage"> <summary> åæ·è¡ä¸èµè´¨å¾çæåè®®ææ¬ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.Sites"> <summary> åæ·ç«ç¹ä¿¡æ¯ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.OrderId"> <summary> è¿ä»¶åid </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.Status"> <summary> è¿ä»¶åç¶æ 审æ¹ä¸: PROCESSING å·²çæ: VALID 审æ¹ä¸éè¿: INVALID å·²åºå¼: DISUSE å·²æ¤é: REVOKED </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.TaskFinishTime"> <summary> è¿ä»¶åä»»å¡å®ç»æ¶é´ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectOrder.RiskReviewRemark"> <summary> è¿ä»¶åå®¡æ ¸ä¸éè¿åå </summary> </member> <member name="T:FlexJobApi.Core.Department"> <summary> é¨é¨ @@ -1933,6 +2043,26 @@ <member name="P:FlexJobApi.Core.EnterpriseUserCollect.ContactedTime"> <summary> èç³»æ¶é´ </summary> </member> <member name="T:FlexJobApi.Core.EnterpriseWallet"> <summary> ä¼ä¸é±å </summary> </member> <member name="P:FlexJobApi.Core.EnterpriseWallet.EnterpriseId"> <summary> ä¼ä¸Id </summary> </member> <member name="P:FlexJobApi.Core.EnterpriseWallet.Enterprise"> <summary> ä¼ä¸ </summary> </member> <member name="P:FlexJobApi.Core.EnterpriseWallet.Access"> <summary> éé </summary> </member> <member name="T:FlexJobApi.Core.Menu"> @@ -2977,6 +3107,11 @@ ä¼ä¸ä¿¡æ¯ </summary> </member> <member name="F:FlexJobApi.Core.EnumResourceController.UserServerEnterpriseWallet"> <summary> ä¼ä¸é±å </summary> </member> <member name="F:FlexJobApi.Core.EnumResourceController.UserServerEnterpriseEmployee"> <summary> çµå·¥ä¿¡æ¯ @@ -3505,6 +3640,16 @@ <member name="F:FlexJobApi.Core.EnumEnterpriseRealMethod.Identity4"> <summary> ä¼ä¸åè¦ç´ </summary> </member> <member name="T:FlexJobApi.Core.EnumEnterpriseWalletAccess"> <summary> ä¼ä¸é±å éé </summary> </member> <member name="F:FlexJobApi.Core.EnumEnterpriseWalletAccess.Alipay"> <summary> æ¯ä»å® </summary> </member> <member name="T:FlexJobApi.Core.EnumMenuType"> @@ -6681,6 +6826,11 @@ å½ç¨ç¶æ </summary> </member> <member name="P:FlexJobApi.Core.GetTaskInfoQueryResult.EnterpriseEmployeeId"> <summary> çµå·¥Id </summary> </member> <member name="P:FlexJobApi.Core.GetTaskInfoQueryResult.ApplyButton"> <summary> æçæ¥ååè¡¨ç¶æ @@ -8504,7 +8654,7 @@ é请çµå·¥ç¾çº¦ </summary> </member> <member name="P:FlexJobApi.Core.InviteElectronSignCommand.Id"> <member name="P:FlexJobApi.Core.InviteElectronSignCommand.Ids"> <summary> çµå·¥Id </summary> @@ -8544,7 +8694,7 @@ çµå·¥è§£çº¦ </summary> </member> <member name="P:FlexJobApi.Core.StopElectronSignCommand.Id"> <member name="P:FlexJobApi.Core.StopElectronSignCommand.Ids"> <summary> çµå·¥Id </summary> @@ -8816,6 +8966,11 @@ ä¼ä¸ç¾çº¦æ¶é´ </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseEmployeesQueryResultItem.ContractUrl"> <summary> çµååå </summary> </member> <member name="T:FlexJobApi.Core.GetPersonalUserElectronSignQuery"> <summary> æ¥è¯¢ä¸ªäººç¨æ·ç¾çº¦è¯¦æ @@ -8841,6 +8996,11 @@ ååç¼å· </summary> </member> <member name="P:FlexJobApi.Core.GetPersonalUserElectronSignQueryResult.ContractTemplateAccess"> <summary> å忍¡æ¿éé </summary> </member> <member name="P:FlexJobApi.Core.GetPersonalUserElectronSignQueryResult.UserSignContractStatus"> <summary> çµå·¥ç¾çº¦ç¶æ @@ -8860,6 +9020,12 @@ <summary> ç¾çº¦æ¹ä¿¡æ¯-åå·¥-è¯ä»¶å·ç </summary> </member> <member name="P:FlexJobApi.Core.GetPersonalUserElectronSignQueryResult.ContactPhoneNumber"> <summary> ç¾çº¦æ¹ä¿¡æ¯-åå·¥-ææºå· </summary> <remarks>èç³»çµè¯</remarks> </member> <member name="P:FlexJobApi.Core.GetPersonalUserElectronSignQueryResult.UserSignContractTime"> <summary> @@ -9254,6 +9420,236 @@ <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.IsConfigured"> <summary> æ¯å¦å·²é ç½® </summary> </member> <member name="T:FlexJobApi.Core.AlipayFundExpandindirectCreateCommand"> <summary> æ¯ä»å®èµéäºçº§åæ·KYB代è¿ä»¶ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommand.ProductCode"> <summary> 产åç </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommand.BizScene"> <summary> åºæ¯ç </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommand.OutBizNo"> <summary> å¤é¨åå· </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommand.Identity"> <summary> äºçº§åæ·ä¿¡æ¯-æ è¯ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommand.IdentityType"> <summary> äºçº§åæ·ä¿¡æ¯-æ è¯ç±»å </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommand.Name"> <summary> äºçº§åæ·ä¿¡æ¯-å§å </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommand.BizType"> <summary> ä¸å¡ç±»å </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommand.OriginalOrderId"> <summary> åè¿ä»¶åid </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommand.SceneCode"> <summary> èµéè®°è´¦æ¬çä¸å¡åºæ¯ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommand.SceneDirections"> <summary> è½¬è´¦åºæ¯è¯´æ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommand.SceneImageOssUrl"> <summary> è½¬è´¦åºæ¯æªå¾ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommand.SceneQualificationImageOssUrl"> <summary> åæ·è¡ä¸èµè´¨å¾ç </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommand.SceneQualificationText"> <summary> åæ·è¡ä¸èµè´¨åè®®ææ¬ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommand.SitesInfo"> <summary> åæ·ç«ç¹ä¿¡æ¯ </summary> </member> <member name="T:FlexJobApi.Core.AlipayFundExpandindirectCreateCommandResult"> <summary> æ¯ä»å®èµéäºçº§åæ·KYB代è¿ä»¶ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommandResult.CreateTime"> <summary> è¿ä»¶åå建æ¶é´ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommandResult.OrderId"> <summary> è¿ä»¶åid </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommandResult.OutBizNo"> <summary> å¤é¨åå· </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommandResult.Status"> <summary> è¿ä»¶åç¶æ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateCommandResult.TaskFinishTime"> <summary> è¿ä»¶åä»»å¡å®ç»æ¶é´ </summary> </member> <member name="T:FlexJobApi.Core.AlipayFundExpandindirectCreateNotifyCommand"> <summary> èµéäºçº§åæ·KYB代è¿ä»¶ç¶æéç¥æ¥å£ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateNotifyCommand.notify_id"> <summary> éç¥ID </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateNotifyCommand.utc_timestamp"> <summary> æ¶æ¯åéæ¶çæå¡ç«¯æ¶é´ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateNotifyCommand.msg_method"> <summary> æ¶æ¯æ¥å£åç§° </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateNotifyCommand.app_id"> <summary> æ¶æ¯æ¥åæ¹çåºç¨id </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateNotifyCommand.version"> <summary> çæ¬å·(1.1çæ¬ä¸ºæ åæ¶æ¯) </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateNotifyCommand.biz_content"> <summary> æ¶æ¯æ¥æ </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateNotifyCommand.sign"> <summary> ç¾å </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateNotifyCommand.sign_type"> <summary> ç¾åç±»å </summary> </member> <member name="P:FlexJobApi.Core.AlipayFundExpandindirectCreateNotifyCommand.charset"> <summary> ç¼ç éï¼è¯¥å符é为éªç¾åè§£å¯æéè¦çå符é </summary> </member> <member name="T:FlexJobApi.Core.AlipayFundExpandindirectImageUploadCommand"> <summary> èµéäºçº§åæ·KYB代è¿ä»¶æä»¶ä¸ä¼ æ¥å£ </summary> </member> <member name="T:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyQuery"> <summary> æ¯ä»å®ç¨æ·ææåè®®ç¾çº¦éç¥ </summary> </member> <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyQuery.personal_product_code"> <summary> å议产åç ï¼åæ·åæ¯ä»å®ç¾çº¦æ¶ç¡®å®ï¼ä¸åä¸å¡åºæ¯å¯¹åºä¸åçç¾çº¦äº§åç ã </summary> </member> <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyQuery.sign_scene"> <summary> å½åç¾çº¦çåè®®åºæ¯ã </summary> </member> <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyQuery.status"> <summary> NORMAL åè®®å½åç¶æ 1. TEMPï¼æåï¼åè®®æªçæè¿ï¼ 2. NORMALï¼æ£å¸¸ï¼ 3. STOPï¼æå </summary> </member> <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyQuery.alipay_user_id"> <summary> ç¨æ·ç¾çº¦çæ¯ä»å®è´¦å·å¯¹åºçæ¯ä»å®å¯ä¸ç¨æ·å·ã 以2088å¼å¤´ç16ä½çº¯æ°åç»æã </summary> </member> <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyQuery.agreement_no"> <summary> æ¯ä»å®ç³»ç»ä¸ç¨ä»¥å¯ä¸æ è¯ç¨æ·ç¾çº¦è®°å½çç¼å·ã </summary> </member> <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyQuery.sign_time"> <summary> æ¯ä»å®ä»£æ£åè®®çå®é ç¾çº¦æ¶é´ï¼æ ¼å¼ä¸ºyyyy-MM-dd HH:mm:ssã </summary> </member> <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyQuery.external_logon_id"> <summary> ç¨æ·å¨åæ·ç½ç«çç»å½è´¦å·ï¼å¦æåæ·æ¥å£ä¸æªä¼ ï¼åä¸ä¼è¿å </summary> </member> <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyQuery.app_id"> <summary> æ¯ä»å®åé ç»å¼åè çåºç¨Id </summary> </member> <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyQuery.auth_app_id"> <summary> æ¯ä»å®åé ç»åæ·çåºç¨Id </summary> </member> <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyQuery.external_agreement_no"> <summary> 代æ£åè®®ä¸æ ç¤ºç¨æ·çå¯ä¸ç¾çº¦å·ï¼ç¡®ä¿å¨åæ·ç³»ç»ä¸å¯ä¸ï¼ã </summary> </member> <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyQuery.valid_time"> <summary> ç¨æ·ä»£æ£åè®®çå®é çææ¶é´ï¼æ ¼å¼ä¸ºyyyy-MM-dd HH:mm:ssã </summary> </member> <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyQuery.alipay_logon_id"> <summary> è¿åè±æçæ¯ä»å®è´¦å·ã </summary> </member> <member name="P:FlexJobApi.Core.AlipayUserAgreementPageSignNotifyQuery.notify_type"> <summary> ç¨æ·ç¾çº¦æåéç¥ç±»å </summary> </member> <member name="T:FlexJobApi.Core.DeleteMenuCommand"> @@ -11586,6 +11982,12 @@ å§å </summary> </member> <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.ContactPhoneNumber"> <summary> ææºå· </summary> <remarks>èç³»çµè¯</remarks> </member> <member name="P:FlexJobApi.Core.GetPersonalLoginInfoQueryResult.IsReal"> <summary> æ¯å¦å®å @@ -11861,6 +12263,39 @@ <param name="logier"></param> <returns></returns> </member> <member name="T:FlexJobApi.Core.AlipayUtils"> <summary> é¿éæ¯ä»å·¥å · </summary> </member> <member name="M:FlexJobApi.Core.AlipayUtils.FundExpandindirectImageUpload(Aop.Api.Request.AlipayFundExpandindirectImageUploadRequest)"> <summary> èµéäºçº§åæ·KYB代è¿ä»¶ </summary> <returns></returns> </member> <member name="M:FlexJobApi.Core.AlipayUtils.FundExpandindirectCreate(Aop.Api.Domain.AlipayFundExpandindirectCreateModel,System.String)"> <summary> èµéäºçº§åæ·KYB代è¿ä»¶ </summary> <param name="model"></param> <param name="notifyUrl"></param> <returns></returns> </member> <member name="M:FlexJobApi.Core.AlipayUtils.FundExpandindirectOrderQuery(Aop.Api.Domain.AlipayFundExpandindirectOrderQueryModel)"> <summary> èµéäºçº§åæ·KYB代è¿ä»¶åæ¥è¯¢æ¥å£ </summary> <param name="model"></param> <returns></returns> </member> <member name="M:FlexJobApi.Core.AlipayUtils.FundExpandindirectOrderCancel(Aop.Api.Domain.AlipayFundExpandindirectOrderCancelModel)"> <summary> èµéäºçº§åæ·KYB代è¿ä»¶ååæ¶æ¥å£ </summary> <param name="model"></param> <returns></returns> </member> <member name="T:FlexJobApi.Core.AliyunOptions"> <summary> é¿éäºé ç½® FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Commands/InviteElectronSignCommand.cs
@@ -11,12 +11,17 @@ /// é请çµå·¥ç¾çº¦ /// </summary> [Resource([EnumResourceController.UserServerEnterpriseEmployee])] public class InviteElectronSignCommand : IRequest<Guid> public class InviteElectronSignCommand : IRequest<int> { public InviteElectronSignCommand() { Ids = []; } /// <summary> /// çµå·¥Id /// </summary> public Guid Id { get; set; } public List<Guid> Ids { get; set; } /// <summary> /// å忍¡æ¿Id FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Commands/StopElectronSignCommand.cs
@@ -11,11 +11,16 @@ /// çµå·¥è§£çº¦ /// </summary> [Resource([EnumResourceController.UserServerEnterpriseEmployee])] public class StopElectronSignCommand : IRequest<Guid> public class StopElectronSignCommand : IRequest<int> { public StopElectronSignCommand() { Ids = []; } /// <summary> /// çµå·¥Id /// </summary> public Guid Id { get; set; } public List<Guid> Ids { get; set; } } } 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; } } } FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Queries/GetPersonalUserElectronSignQuery.cs
@@ -38,6 +38,11 @@ public string ContractCode { get; set; } /// <summary> /// å忍¡æ¿éé /// </summary> public EnumElectronSignAccess? ContractTemplateAccess { get; set; } /// <summary> /// çµå·¥ç¾çº¦ç¶æ /// </summary> public EnumTaskUserSignContractStatus? UserSignContractStatus { get; set; } @@ -60,6 +65,12 @@ public string Identity { get; set; } /// <summary> /// ç¾çº¦æ¹ä¿¡æ¯-åå·¥-ææºå· /// </summary> /// <remarks>èç³»çµè¯</remarks> public string ContactPhoneNumber { get; set; } /// <summary> /// ç¾çº¦æ¹ä¿¡æ¯-åå·¥-ç¾çº¦æ¶é´ /// </summary> public DateTime? UserSignContractTime { get; set; } FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Commands/AlipayFundExpandindirectCreateCommand.cs
New file @@ -0,0 +1,114 @@ using MediatR; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Serialization; namespace FlexJobApi.Core { /// <summary> /// æ¯ä»å®èµéäºçº§åæ·KYB代è¿ä»¶ /// </summary> [Resource([EnumResourceController.UserServerEnterpriseWallet])] public class AlipayFundExpandindirectCreateCommand : SaveDataCommand { /// <summary> /// 产åç /// </summary> public string ProductCode { get; set; } /// <summary> /// åºæ¯ç /// </summary> public string BizScene { get; set; } /// <summary> /// å¤é¨åå· /// </summary> public string OutBizNo { get; set; } /// <summary> /// äºçº§åæ·ä¿¡æ¯-æ è¯ /// </summary> public string Identity { get; set; } /// <summary> /// äºçº§åæ·ä¿¡æ¯-æ è¯ç±»å /// </summary> public string IdentityType { get; set; } /// <summary> /// äºçº§åæ·ä¿¡æ¯-å§å /// </summary> public string Name { get; set; } /// <summary> /// ä¸å¡ç±»å /// </summary> public string BizType { get; set; } /// <summary> /// åè¿ä»¶åid /// </summary> public string OriginalOrderId { get; set; } /// <summary> /// èµéè®°è´¦æ¬çä¸å¡åºæ¯ /// </summary> public string SceneCode { get; set; } /// <summary> /// è½¬è´¦åºæ¯è¯´æ /// </summary> public string SceneDirections { get; set; } /// <summary> /// è½¬è´¦åºæ¯æªå¾ /// </summary> public string SceneImageOssUrl { get; set; } /// <summary> /// åæ·è¡ä¸èµè´¨å¾ç /// </summary> public string SceneQualificationImageOssUrl { get; set; } /// <summary> /// åæ·è¡ä¸èµè´¨åè®®ææ¬ /// </summary> public string SceneQualificationText { get; set; } /// <summary> /// åæ·ç«ç¹ä¿¡æ¯ /// </summary> public AlipayFundExpandindirectCreateCommandSites SitesInfo { get; set; } } public class AlipayFundExpandindirectCreateCommandSites { public string WEBSITE { get; set; } public string APP { get; set; } public string GONGZH { get; set; } public string QITA { get; set; } public string XCHENGXU_ZHI { get; set; } } /// <summary> /// æ¯ä»å®èµéäºçº§åæ·KYB代è¿ä»¶ /// </summary> public class AlipayFundExpandindirectCreateCommandResult { /// <summary> /// è¿ä»¶åå建æ¶é´ /// </summary> public string CreateTime { get; set; } /// <summary> /// è¿ä»¶åid /// </summary> public string OrderId { get; set; } /// <summary> /// å¤é¨åå· /// </summary> public string OutBizNo { get; set; } /// <summary> /// è¿ä»¶åç¶æ /// </summary> public string Status { get; set; } /// <summary> /// è¿ä»¶åä»»å¡å®ç»æ¶é´ /// </summary> public string TaskFinishTime { get; set; } } } FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Commands/AlipayFundExpandindirectCreateNotifyCommand.cs
New file @@ -0,0 +1,53 @@ using MediatR; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { /// <summary> /// èµéäºçº§åæ·KYB代è¿ä»¶ç¶æéç¥æ¥å£ /// </summary> [Resource([EnumResourceController.UserServerEnterpriseWallet])] public class AlipayFundExpandindirectCreateNotifyCommand : IRequest<bool> { /// <summary> /// éç¥ID /// </summary> public string notify_id { get; set; } /// <summary> /// æ¶æ¯åéæ¶çæå¡ç«¯æ¶é´ /// </summary> public string utc_timestamp { get; set; } /// <summary> /// æ¶æ¯æ¥å£åç§° /// </summary> public string msg_method { get; set; } /// <summary> /// æ¶æ¯æ¥åæ¹çåºç¨id /// </summary> public string app_id { get; set; } /// <summary> /// çæ¬å·(1.1çæ¬ä¸ºæ åæ¶æ¯) /// </summary> public string version { get; set; } /// <summary> /// æ¶æ¯æ¥æ /// </summary> public string biz_content { get; set; } /// <summary> /// ç¾å /// </summary> public string sign { get; set; } /// <summary> /// ç¾åç±»å /// </summary> public string sign_type { get; set; } /// <summary> /// ç¼ç éï¼è¯¥å符é为éªç¾åè§£å¯æéè¦çå符é /// </summary> public string charset { get; set; } } } FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Commands/AlipayFundExpandindirectImageUploadCommand.cs
New file @@ -0,0 +1,15 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { /// <summary> /// èµéäºçº§åæ·KYB代è¿ä»¶æä»¶ä¸ä¼ æ¥å£ /// </summary> public class AlipayFundExpandindirectImageUploadCommand { } } FlexJobApi.Core/Models/UserServer/EnterpriseWallets/Queries/AlipayUserAgreementPageSignNotifyQuery.cs
New file @@ -0,0 +1,69 @@ using 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> /// æ¯ä»å®ä»£æ£åè®®çå®é ç¾çº¦æ¶é´ï¼æ ¼å¼ä¸ºyyyy-MM-dd HH:mm:ssã /// </summary> public string sign_time { get; set; } /// <summary> /// ç¨æ·å¨åæ·ç½ç«çç»å½è´¦å·ï¼å¦æåæ·æ¥å£ä¸æªä¼ ï¼åä¸ä¼è¿å /// </summary> public string external_logon_id { get; set; } /// <summary> /// æ¯ä»å®åé ç»å¼åè çåºç¨Id /// </summary> public string app_id { get; set; } /// <summary> /// æ¯ä»å®åé ç»åæ·çåºç¨Id /// </summary> public string auth_app_id { get; set; } /// <summary> /// 代æ£åè®®ä¸æ ç¤ºç¨æ·çå¯ä¸ç¾çº¦å·ï¼ç¡®ä¿å¨åæ·ç³»ç»ä¸å¯ä¸ï¼ã /// </summary> public string external_agreement_no { get; set; } /// <summary> /// ç¨æ·ä»£æ£åè®®çå®é çææ¶é´ï¼æ ¼å¼ä¸ºyyyy-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; } } } FlexJobApi.Core/Models/UserServer/Users/Queries/GetPersonalLoginInfoQuery.cs
@@ -1,6 +1,7 @@ using MediatR; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -37,6 +38,12 @@ public string Name { get; set; } /// <summary> /// ææºå· /// </summary> /// <remarks>èç³»çµè¯</remarks> public string ContactPhoneNumber { get; set; } /// <summary> /// æ¯å¦å®å /// </summary> public bool IsReal { get; set; } FlexJobApi.Core/Utils/AlipayUtils/AlipayOptions.cs
New file @@ -0,0 +1,25 @@ using Furion.ConfigurableOptions; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { public class AlipayOptions : IConfigurableOptions { public string ServerUrl { get; set; } public string AppId { get; set; } public string PrivateKey { get; set; } public string Format { get; set; } public string Charset { get; set; } public string SignType { get; set; } public string AppCertPath { get; set; } public string AlipayPublicCertPath { get; set; } public string RootCertContent { get; set; } public string AlipayPublicKey { get; set; } public string NotifyUrl { get; set; } public string EncryptKey { get; set; } } } FlexJobApi.Core/Utils/AlipayUtils/AlipayUtils.cs
New file @@ -0,0 +1,132 @@ using Aliyun.OSS; using Aop.Api; using Aop.Api.Domain; using Aop.Api.Request; using Aop.Api.Response; using Aop.Api.Util; using Furion.FriendlyException; using Microsoft.Extensions.Options; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { /// <summary> /// é¿éæ¯ä»å·¥å · /// </summary> public class AlipayUtils { private readonly IAopClient alipayClient; public AlipayUtils(IOptions<AlipayOptions> options) { alipayClient = new DefaultAopClient(new AlipayConfig { ServerUrl = options.Value.ServerUrl, AppId = options.Value.AppId, PrivateKey = options.Value.PrivateKey, Format = options.Value.Format, Charset = options.Value.Charset, SignType = options.Value.SignType, AppCertPath = options.Value.AppCertPath, AlipayPublicCertPath = options.Value.AlipayPublicCertPath, RootCertContent = options.Value.RootCertContent, AlipayPublicKey = options.Value.AlipayPublicKey, EncryptKey = options.Value.EncryptKey, }); } public void UserAgreementPageSign(AlipayUserAgreementPageSignModel model) { // åå§åSDK // æé 请æ±åæ°ä»¥è°ç¨æ¥å£ AlipayUserAgreementPageSignRequest request = new AlipayUserAgreementPageSignRequest(); model.PersonalProductCode = "FUND_SAFT_SIGN_WITHHOLDING_P"; model.SignScene = "INDUSTRY|SATF_ACC"; model.ThirdPartyType = "PARTNER"; model.AccessParams = new AccessParams { Channel = "" }; // 设置ç¾çº¦æææ¶é´éå¶ model.EffectTime = 300; request.SetBizModel(model); //request.SetNotifyUrl(); AlipayUserAgreementPageSignResponse response = alipayClient.pageExecute(request, null, "GET"); string pageRedirectionData = response.Body; Console.WriteLine(pageRedirectionData); if (!response.IsError) { Console.WriteLine("è°ç¨æå"); } else { Console.WriteLine("è°ç¨å¤±è´¥"); } } /// <summary> /// èµéäºçº§åæ·KYB代è¿ä»¶ /// </summary> /// <returns></returns> public AlipayFundExpandindirectImageUploadResponse FundExpandindirectImageUpload(AlipayFundExpandindirectImageUploadRequest request) { AlipayFundExpandindirectImageUploadResponse response = alipayClient.Execute(request); if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.Msg); return response; } /// <summary> /// èµéäºçº§åæ·KYB代è¿ä»¶ /// </summary> /// <param name="model"></param> /// <param name="notifyUrl"></param> /// <returns></returns> public AlipayFundExpandindirectCreateResponse FundExpandindirectCreate(AlipayFundExpandindirectCreateModel model, string notifyUrl = null) { AlipayFundExpandindirectCreateRequest request = new AlipayFundExpandindirectCreateRequest(); request.SetBizModel(model); if (notifyUrl.IsNotNull()) { request.SetNotifyUrl(notifyUrl); } AlipayFundExpandindirectCreateResponse response = alipayClient.Execute(request); if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.Msg); return response; } /// <summary> /// èµéäºçº§åæ·KYB代è¿ä»¶åæ¥è¯¢æ¥å£ /// </summary> /// <param name="model"></param> /// <returns></returns> public AlipayFundExpandindirectOrderQueryResponse FundExpandindirectOrderQuery(AlipayFundExpandindirectOrderQueryModel model) { AlipayFundExpandindirectOrderQueryRequest request = new AlipayFundExpandindirectOrderQueryRequest(); request.SetBizModel(model); AlipayFundExpandindirectOrderQueryResponse response = alipayClient.Execute(request); if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.Msg); return response; } /// <summary> /// èµéäºçº§åæ·KYB代è¿ä»¶ååæ¶æ¥å£ /// </summary> /// <param name="model"></param> /// <returns></returns> public AlipayFundExpandindirectOrderCancelResponse FundExpandindirectOrderCancel(AlipayFundExpandindirectOrderCancelModel model) { AlipayFundExpandindirectOrderCancelRequest request = new AlipayFundExpandindirectOrderCancelRequest(); request.SetBizModel(model); AlipayFundExpandindirectOrderCancelResponse response = alipayClient.Execute(request); if (response.IsError) throw Oops.Oh(EnumErrorCodeType.s510, response.Msg); return response; } } } FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs
@@ -42,10 +42,10 @@ ) : IRequestHandler<ImportEnterpriseEmployeesCommand, ImportEnterpriseEmployeesCommandResult>, IRequestHandler<EditEnterpriseEmployeeCommand, Guid>, IRequestHandler<InviteElectronSignCommand, Guid>, IRequestHandler<InviteElectronSignCommand, int>, IRequestHandler<PersonalUserElectronSignCommand, PersonalUserElectronSignCommandResult>, IRequestHandler<EnterpriseUserElectronSignCommand, EnterpriseUserElectronSignCommandResult>, IRequestHandler<StopElectronSignCommand, Guid> IRequestHandler<StopElectronSignCommand, int> { private readonly IMediator mediator = mediator; private readonly IRepository<EnterpriseEmployee> rep = rep; @@ -220,42 +220,49 @@ /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task<Guid> Handle(InviteElectronSignCommand request, CancellationToken cancellationToken) public async Task<int> Handle(InviteElectronSignCommand request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); var entity = await rep.AsQueryable() .Where(it => it.EnterpriseId == logier.EnterpriseId && it.Id == request.Id) .FirstOrDefaultAsync(); if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "çµå·¥"); if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait) throw Oops.Oh(EnumErrorCodeType.s400, "å·²é请"); if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s400, "å·²ç¾çº¦"); await mediator.Send(new CheckContractTemplateCommand { Id = request.ContractTemplateId }, cancellationToken); entity.ContractTemplateId = request.ContractTemplateId; entity.UserSignContractStatus = EnumTaskUserSignContractStatus.Wait; entity.UserSignContractTime = null; entity.EnterpriseSignContractStatus = null; entity.EnterpriseSignContractTime = null; entity.ContractCode = $"{DateTime.Now:yyyyMMddHHmmss}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}"; var contract = new EnterpriseEmployeeContract var entities = await rep.AsQueryable() .Where(it => it.EnterpriseId == logier.EnterpriseId && request.Ids.Contains(it.Id)) .ToListAsync(); foreach (var id in request.Ids) { EnterpriseEmployeeId = entity.Id, ContractTemplateId = entity.ContractTemplateId, ContractCode = entity.ContractCode, UserSignContractStatus = entity.UserSignContractStatus, }; await repEnterpriseEmployeeContract.InsertAsync(contract); //await mediator.Send(new SaveEnterpriseCostCommand //{ // EnterpriseId = logier.EnterpriseId!.Value, // ContractTemplateId = request.ContractTemplateId, // EnterpriseEmployeeContractId = contract.Id, // Type = EnumEnterpriseCostType.ElectronSign //}); await rep.UpdateAsync(entity); return entity.Id; var entity = entities.FirstOrDefault(it => it.Id == id); if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "çµå·¥"); if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait) throw Oops.Oh(EnumErrorCodeType.s400, $"å·²é请{entity.Name}"); if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s400, $"å·²ç¾çº¦{entity.Name}"); entity.ContractTemplateId = request.ContractTemplateId; entity.UserSignContractStatus = EnumTaskUserSignContractStatus.Wait; entity.UserSignContractTime = null; entity.EnterpriseSignContractStatus = null; entity.EnterpriseSignContractTime = null; entity.ContractCode = $"{DateTime.Now:yyyyMMddHHmmss}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}"; entity.ContractUrl = null; var contract = new EnterpriseEmployeeContract { EnterpriseEmployeeId = entity.Id, ContractTemplateId = entity.ContractTemplateId, ContractCode = entity.ContractCode, UserSignContractStatus = entity.UserSignContractStatus, }; await repEnterpriseEmployeeContract.InsertAsync(contract); //await mediator.Send(new SaveEnterpriseCostCommand //{ // EnterpriseId = logier.EnterpriseId!.Value, // ContractTemplateId = request.ContractTemplateId, // EnterpriseEmployeeContractId = contract.Id, // Type = EnumEnterpriseCostType.ElectronSign //}); await rep.UpdateAsync(entity); } return entities.Count; } /// <summary> @@ -385,29 +392,35 @@ /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task<Guid> Handle(StopElectronSignCommand request, CancellationToken cancellationToken) public async Task<int> Handle(StopElectronSignCommand request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); var entity = await rep.AsQueryable() .Where(it => it.EnterpriseId == logier.EnterpriseId && it.Id == request.Id) .FirstOrDefaultAsync(); if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "çµå·¥"); if (entity.UserSignContractStatus != EnumTaskUserSignContractStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s400, "æªç¾çº¦"); entity.UserSignContractStatus = EnumTaskUserSignContractStatus.Stop; entity.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Stop; await rep.UpdateAsync(entity); var entities = await rep.AsQueryable() .Include(it => it.Contracts) .Where(it => it.EnterpriseId == logier.EnterpriseId && request.Ids.Contains(it.Id)) .ToListAsync(); foreach (var id in request.Ids) { var entity = entities.FirstOrDefault(it => it.Id == id); if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "çµå·¥"); if (entity.UserSignContractStatus != EnumTaskUserSignContractStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s400, $"æªç¾çº¦{entity.Name}"); entity.UserSignContractStatus = EnumTaskUserSignContractStatus.Stop; entity.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Stop; await rep.UpdateAsync(entity); var contract = await repEnterpriseEmployeeContract.AsQueryable() .OrderByDescending(it => it.CreatedTime) .Where(it => it.EnterpriseEmployeeId == entity.Id) .FirstOrDefaultAsync(); if (contract == null) throw Oops.Oh(EnumErrorCodeType.s404, "åå"); contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Stop; contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Stop; await repEnterpriseEmployeeContract.UpdateAsync(contract); var contract = entity.Contracts .OrderByDescending(it => it.CreatedTime) .FirstOrDefault(); if (contract == null) throw Oops.Oh(EnumErrorCodeType.s404, $"ä¸{entity.Name}çåå"); contract.UserSignContractStatus = EnumTaskUserSignContractStatus.Stop; contract.EnterpriseSignContractStatus = EnumTaskUserSignContractStatus.Stop; await repEnterpriseEmployeeContract.UpdateAsync(contract); } var taskUsers = await repTaskInfoUser.AsQueryable() .Where(it => it.EnterpriseEmployeeId == entity.Id && it.HireStatus == EnumTaskUserHireStatus.Pass) .Where(it => it.HireStatus == EnumTaskUserHireStatus.Pass && request.Ids.Contains(it.EnterpriseEmployeeId)) .ToListAsync(); if (taskUsers.IsNotNull()) { @@ -418,7 +431,7 @@ await repTaskInfoUser.UpdateAsync(taskUsers); } return entity.Id; return entities.Count; } } } FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
@@ -65,7 +65,7 @@ { q = q.Where(it => (it.UserId.HasValue && it.User.IsReal) == request.IsReal.Value); } if (request.UserSignContractStatus.HasValue && logier.ClientType == EnumClientType.Wxmp) if (request.UserSignContractStatus.HasValue) { if (logier.ClientType == EnumClientType.Wxmp) { @@ -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); } FlexJobApi.UserServer.Application/EnterpriseWallets/Commands/AlipayFundExpandindirectCreateCommandHandler.cs
New file @@ -0,0 +1,97 @@ using Aop.Api.Domain; using FlexJobApi.Core; using Furion.DatabaseAccessor; using Furion.FriendlyException; using Furion.HttpRemote; using Mapster; using MediatR; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.UserServer.Application { /// <summary> /// æ¯ä»å®èµéäºçº§åæ·KYB代è¿ä»¶ /// </summary> public class AlipayFundExpandindirectCreateCommandHandler( AlipayUtils alipayUtils, IHttpRemoteService httpRemoteService, IRepository<AlipayFundExpandindirectOrder> rep ) : IRequestHandler<AlipayFundExpandindirectCreateCommand, Guid> { private readonly AlipayUtils alipayUtils = alipayUtils; private readonly IHttpRemoteService httpRemoteService = httpRemoteService; private readonly IRepository<AlipayFundExpandindirectOrder> rep = rep; /// <summary> /// æ¯ä»å®èµéäºçº§åæ·KYB代è¿ä»¶ /// </summary> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task<Guid> Handle(AlipayFundExpandindirectCreateCommand request, CancellationToken cancellationToken) { AlipayFundExpandindirectOrder? entity; if (request.Id.HasValue) { entity = await rep.AsQueryable() .Where(it => it.Id == request.Id) .FirstOrDefaultAsync(cancellationToken); if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "代è¿ä»¶å"); } else { entity = new AlipayFundExpandindirectOrder(); } if (request.SceneImageOssUrl.IsNotNull() && entity.SceneImageOssUrl != request.SceneImageOssUrl) { var url = AliyunOSSUtils.GetUrl(request.SceneImageOssUrl); var bytes = await httpRemoteService.GetAsByteArrayAsync(url); var imageType = url.Substring(url.LastIndexOf(".") + 1); var fileName = url.Substring(url.LastIndexOf("/") + 1); entity.SceneImage = alipayUtils.FundExpandindirectImageUpload(new Aop.Api.Request.AlipayFundExpandindirectImageUploadRequest { ProductCode = request.ProductCode, BizScene = request.BizScene, ImageType = imageType, ImageContent = new Aop.Api.Util.FileItem(fileName, bytes) }).ImageId; } if (request.SceneQualificationText.IsNotNull()) { entity.SceneQualificationImage = request.SceneQualificationText; } else if (request.SceneQualificationImageOssUrl.IsNotNull() && entity.SceneQualificationImageOssUrl != request.SceneQualificationImageOssUrl) { var url = AliyunOSSUtils.GetUrl(request.SceneQualificationImageOssUrl); var bytes = await httpRemoteService.GetAsByteArrayAsync(url); var imageType = url.Substring(url.LastIndexOf(".") + 1); var fileName = url.Substring(url.LastIndexOf("/") + 1); entity.SceneQualificationImage = alipayUtils.FundExpandindirectImageUpload(new Aop.Api.Request.AlipayFundExpandindirectImageUploadRequest { ProductCode = request.ProductCode, BizScene = request.BizScene, ImageType = imageType, ImageContent = new Aop.Api.Util.FileItem(fileName, bytes) }).ImageId; } entity.Sites = request.SitesInfo.ToJson(); request.Adapt(entity); if (request.Id.HasValue) { await rep.UpdateAsync(entity); } else { await rep.InsertAsync(entity); } var result = alipayUtils.FundExpandindirectCreate(entity.Adapt<AlipayFundExpandindirectCreateModel>()); return entity.Id; } } } FlexJobApi.UserServer.Application/EnterpriseWallets/Queries/AlipayUserAgreementPageSignNotifyQueryHandler.cs
New file @@ -0,0 +1,28 @@ using 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); } } } FlexJobApi.UserServer.Application/FlexJobApi.UserServer.Application.xml
@@ -564,6 +564,37 @@ <param name="cancellationToken"></param> <returns></returns> </member> <member name="T:FlexJobApi.UserServer.Application.AlipayFundExpandindirectCreateCommandHandler"> <summary> æ¯ä»å®èµéäºçº§åæ·KYB代è¿ä»¶ </summary> </member> <member name="M:FlexJobApi.UserServer.Application.AlipayFundExpandindirectCreateCommandHandler.#ctor(FlexJobApi.Core.AlipayUtils,Furion.HttpRemote.IHttpRemoteService,Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.AlipayFundExpandindirectOrder})"> <summary> æ¯ä»å®èµéäºçº§åæ·KYB代è¿ä»¶ </summary> </member> <member name="M:FlexJobApi.UserServer.Application.AlipayFundExpandindirectCreateCommandHandler.Handle(FlexJobApi.Core.AlipayFundExpandindirectCreateCommand,System.Threading.CancellationToken)"> <summary> æ¯ä»å®èµéäºçº§åæ·KYB代è¿ä»¶ </summary> <param name="request"></param> <param name="cancellationToken"></param> <returns></returns> </member> <member name="T:FlexJobApi.UserServer.Application.AlipayUserAgreementPageSignNotifyQueryHandler"> <summary> æ¯ä»å®ç¨æ·ææåè®®ç¾çº¦éç¥ </summary> </member> <member name="M:FlexJobApi.UserServer.Application.AlipayUserAgreementPageSignNotifyQueryHandler.Handle(FlexJobApi.Core.AlipayUserAgreementPageSignNotifyQuery,System.Threading.CancellationToken)"> <summary> æ¯ä»å®ç¨æ·ææåè®®ç¾çº¦éç¥ </summary> <param name="request"></param> <param name="cancellationToken"></param> <returns></returns> </member> <member name="F:FlexJobApi.UserServer.Application.EnumUserErrorCodeType.u1000"> <summary> è´¦å·æå¯ç ä¸åå¨ 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, FlexJobApi.Web.Entry/AlipayCert/CSRÎļþ.csr
New file @@ -0,0 +1,17 @@ -----BEGIN CERTIFICATE REQUEST----- MIICsTCCAZkCAQAwbDEJMAcGA1UEBhMAMQkwBwYDVQQIEwAxCTAHBgNVBAcTADEz MDEGA1UECgwq5a6B5rOi5Yib6IOc5L+h5oGv5oqA5pyv5pyN5Yqh5pyJ6ZmQ5YWs 5Y+4MQkwBwYDVQQLEwAxCTAHBgNVBAMTADCCASIwDQYJKoZIhvcNAQEBBQADggEP ADCCAQoCggEBAKA6zoXnrah5BNUWGjYaID/4h1VxLRmVuAPySZ8KSbPuni136V3/ 3nLssKZQ6YHPwV0lBJw2pLVMHHi1zvL3SH/IdMvMqlsGHYMwtMRC2KU66Ct3ZTYk oYFZFBHjF4vp9zIY6fTla6onoIAyN2BswwS2OFAFrFwnF5w/q/8SKU/JHlTLW/y6 1Ji+Vy7wVXJ+TJCUwKHhbdfBEFzixTdfpXaWn/ZPosjNn24FwnOiJzUoBxkh2cIc 5vbfnBqjXdY7v50DfZR8Cgg0DzJ+nKK9pbD9Z7BH6R6dr3XzRHXHFUkWQf5HbRc1 xFKUxc58/Psytg9EWvgdBtZ0sbrPcbA9x5sCAwEAAaAAMA0GCSqGSIb3DQEBBAUA A4IBAQCcHGqNyh6q7iyImLTi1/VOhwyfphmwETsN/+KNjpkLZN+pUf9hcUsxRObV JdcYKdO/WTGGsghBINieKdXGtBlx0wyyM0MADURstr4SWBsktrwunwyyhzufuipx d4Wo7kC9hmtOxmJbgn/lXr6tZyTUzukWgEuU5Pxfi9DGPm58Z1fZjHdfuoboeD9n mgHPfd+YbuVNSa9wOilBskw35xSLXnUU8tL3PLthHElg43bnbpUOeBvSZ+5uJ9KU 7zz/1HGOBMl7EY+wMwgpr/5WAKPoAucJU1NEOMKqSHwWfjUEtkeoq87Cij8B0zLt +WRnGLDsL5vyunOz00uJccxhZlON -----END CERTIFICATE REQUEST----- FlexJobApi.Web.Entry/AlipayCert/alipayCertPublicKey_RSA2.crt
New file @@ -0,0 +1,43 @@ -----BEGIN CERTIFICATE----- MIIDuDCCAqCgAwIBAgIQICQJCUhlwAIx+IQXPEEzhzANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0 aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs YXNzIDIgUjEwHhcNMjQwOTA5MDYxMDM3WhcNMjkwOTA4MDYxMDM3WjCBmDELMAkGA1UEBhMCQ04x MzAxBgNVBAoMKuWugeazouWIm+iDnOS/oeaBr+aKgOacr+acjeWKoeaciemZkOWFrOWPuDEPMA0G A1UECwwGQWxpcGF5MUMwQQYDVQQDDDrmlK/ku5jlrp0o5Lit5Zu9Kee9kee7nOaKgOacr+aciemZ kOWFrOWPuC0yMDg4MDUwNTQyMDQyMzAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA h3ymDiC0//upxAEwekcap2S/soSgtxZsT+W+a/nOg1yF/IpJshpiAcj246BqihSD6q3CEjAYj80c MnZJG/lfir/BRz1pGyCAKVWcyISj4DR+ADfehHa6XJh7BNMUhscKvB0SeFFL4HGUA/PgpnO/mEO5 PKai3o8UzwQu/atEja5TCDUqSogrTkLrYq+Dlmjc8UQENuWUx0PlnwnLrYpx4hIC3PjzpDSy8FCO maHVG1JHyv+Nxng2//szWD9l2LGx4F1qe5jsYAgfE3aP2U5ryggZAgejBTKu6kBTMslsCFJIesG4 8OC3OGk0ZafVujUaGSrFbYQHZtUQkdiU1oVVGwIDAQABoxIwEDAOBgNVHQ8BAf8EBAMCA/gwDQYJ KoZIhvcNAQELBQADggEBAG/AwOEBETOShrkCIW/ViAYf/UopgL6txP7laTbAbI/xLJyy657S/ESs MBLTqzuRt2e5kVdZZAq/8Bs4jscEYoiTpDB0vmWXtvjYumKyINeRuIBqn2PIESrm34WrJATkvLpj 2QRioL+rU1eXq2rYBpryFa+QNkEPb7xU7uadYvnNsBrZB8OF8QVOssbhfCbRnIv8zaaQYd9iTXPa 7TQXwkudtamLry1x9F7J+icmoPfxa9i/yMiBm4YOD30LLBvS3YRXZCcVRxjgtv7/HQ4l4vNS0BTb 4Qj9k9X1IyjF2IJgfW5EoA/pvPs/ZXQzOgGzz0ncBMU4YqR3wlT/U3094UY= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIE4jCCAsqgAwIBAgIIYsSr5bKAMl8wDQYJKoZIhvcNAQELBQAwejELMAkGA1UEBhMCQ04xFjAU BgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MTEw LwYDVQQDDChBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFIxMB4XDTE4MDMy MjE0MzQxNVoXDTM3MTEyNjE0MzQxNVowgYIxCzAJBgNVBAYTAkNOMRYwFAYDVQQKDA1BbnQgRmlu YW5jaWFsMSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTE5MDcGA1UEAwwwQW50IEZp bmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBDbGFzcyAyIFIxMIIBIjANBgkqhkiG9w0B AQEFAAOCAQ8AMIIBCgKCAQEAsLMfYaoRoPRbmDcAfXPCmKf43pWRN5yTXa/KJWO0l+mrgQvs89bA NEvbDUxlkGwycwtwi5DgBuBgVhLliXu+R9CYgr2dXs8D8Hx/gsggDcyGPLmVrDOnL+dyeauheARZ fA3du60fwEwwbGcVIpIxPa/4n3IS/ElxQa6DNgqxh8J9Xwh7qMGl0JK9+bALuxf7B541Gr4p0WEN G8fhgjBV4w4ut9eQLOoa1eddOUSZcy46Z7allwowwgt7b5VFfx/P1iKJ3LzBMgkCK7GZ2kiLrL7R iqV+h482J7hkJD+ardoc6LnrHO/hIZymDxok+VH9fVeUdQa29IZKrIDVj65THQIDAQABo2MwYTAf BgNVHSMEGDAWgBRfdLQEwE8HWurlsdsio4dBspzhATAdBgNVHQ4EFgQUSqHkYINtUSAtDPnS8Xoy oP9p7qEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIB AIQ8TzFy4bVIVb8+WhHKCkKNPcJe2EZuIcqvRoi727lZTJOfYy/JzLtckyZYfEI8J0lasZ29wkTt a1IjSo+a6XdhudU4ONVBrL70U8Kzntplw/6TBNbLFpp7taRALjUgbCOk4EoBMbeCL0GiYYsTS0mw 7xdySzmGQku4GTyqutIGPQwKxSj9iSFw1FCZqr4VP4tyXzMUgc52SzagA6i7AyLedd3tbS6lnR5B L+W9Kx9hwT8L7WANAxQzv/jGldeuSLN8bsTxlOYlsdjmIGu/C9OWblPYGpjQQIRyvs4Cc/mNhrh+ 14EQgwuemIIFDLOgcD+iISoN8CqegelNcJndFw1PDN6LkVoiHz9p7jzsge8RKay/QW6C03KNDpWZ EUCgCUdfHfo8xKeR+LL1cfn24HKJmZt8L/aeRZwZ1jwePXFRVtiXELvgJuM/tJDIFj2KD337iV64 fWcKQ/ydDVGqfDZAdcU4hQdsrPWENwPTQPfVPq2NNLMyIH9+WKx9Ed6/WzeZmIy5ZWpX1TtTolo6 OJXQFeItMAjHxW/ZSZTok5IS3FuRhExturaInnzjYpx50a6kS34c5+c8hYq7sAtZ/CNLZmBnBCFD aMQqT8xFZJ5uolUaSeXxg7JFY1QsYp5RKvj4SjFwCGKJ2+hPPe9UyyltxOidNtxjaknOCeBHytOr -----END CERTIFICATE----- FlexJobApi.Web.Entry/AlipayCert/alipayRootCert.crt
New file @@ -0,0 +1,88 @@ -----BEGIN CERTIFICATE----- MIIBszCCAVegAwIBAgIIaeL+wBcKxnswDAYIKoEcz1UBg3UFADAuMQswCQYDVQQG EwJDTjEOMAwGA1UECgwFTlJDQUMxDzANBgNVBAMMBlJPT1RDQTAeFw0xMjA3MTQw MzExNTlaFw00MjA3MDcwMzExNTlaMC4xCzAJBgNVBAYTAkNOMQ4wDAYDVQQKDAVO UkNBQzEPMA0GA1UEAwwGUk9PVENBMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE MPCca6pmgcchsTf2UnBeL9rtp4nw+itk1Kzrmbnqo05lUwkwlWK+4OIrtFdAqnRT V7Q9v1htkv42TsIutzd126NdMFswHwYDVR0jBBgwFoAUTDKxl9kzG8SmBcHG5Yti W/CXdlgwDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFEwysZfZ MxvEpgXBxuWLYlvwl3ZYMAwGCCqBHM9VAYN1BQADSAAwRQIgG1bSLeOXp3oB8H7b 53W+CKOPl2PknmWEq/lMhtn25HkCIQDaHDgWxWFtnCrBjH16/W3Ezn7/U/Vjo5xI pDoiVhsLwg== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIF0zCCA7ugAwIBAgIIH8+hjWpIDREwDQYJKoZIhvcNAQELBQAwejELMAkGA1UE BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmlj YXRpb24gQXV0aG9yaXR5MTEwLwYDVQQDDChBbnQgRmluYW5jaWFsIENlcnRpZmlj YXRpb24gQXV0aG9yaXR5IFIxMB4XDTE4MDMyMTEzNDg0MFoXDTM4MDIyODEzNDg0 MFowejELMAkGA1UEBhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNV BAsMF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MTEwLwYDVQQDDChBbnQgRmluYW5j aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFIxMIICIjANBgkqhkiG9w0BAQEF AAOCAg8AMIICCgKCAgEAtytTRcBNuur5h8xuxnlKJetT65cHGemGi8oD+beHFPTk rUTlFt9Xn7fAVGo6QSsPb9uGLpUFGEdGmbsQ2q9cV4P89qkH04VzIPwT7AywJdt2 xAvMs+MgHFJzOYfL1QkdOOVO7NwKxH8IvlQgFabWomWk2Ei9WfUyxFjVO1LVh0Bp dRBeWLMkdudx0tl3+21t1apnReFNQ5nfX29xeSxIhesaMHDZFViO/DXDNW2BcTs6 vSWKyJ4YIIIzStumD8K1xMsoaZBMDxg4itjWFaKRgNuPiIn4kjDY3kC66Sl/6yTl YUz8AybbEsICZzssdZh7jcNb1VRfk79lgAprm/Ktl+mgrU1gaMGP1OE25JCbqli1 Pbw/BpPynyP9+XulE+2mxFwTYhKAwpDIDKuYsFUXuo8t261pCovI1CXFzAQM2w7H DtA2nOXSW6q0jGDJ5+WauH+K8ZSvA6x4sFo4u0KNCx0ROTBpLif6GTngqo3sj+98 SZiMNLFMQoQkjkdN5Q5g9N6CFZPVZ6QpO0JcIc7S1le/g9z5iBKnifrKxy0TQjtG PsDwc8ubPnRm/F82RReCoyNyx63indpgFfhN7+KxUIQ9cOwwTvemmor0A+ZQamRe 9LMuiEfEaWUDK+6O0Gl8lO571uI5onYdN1VIgOmwFbe+D8TcuzVjIZ/zvHrAGUcC AwEAAaNdMFswCwYDVR0PBAQDAgEGMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFF90 tATATwda6uWx2yKjh0GynOEBMB8GA1UdIwQYMBaAFF90tATATwda6uWx2yKjh0Gy nOEBMA0GCSqGSIb3DQEBCwUAA4ICAQCVYaOtqOLIpsrEikE5lb+UARNSFJg6tpkf tJ2U8QF/DejemEHx5IClQu6ajxjtu0Aie4/3UnIXop8nH/Q57l+Wyt9T7N2WPiNq JSlYKYbJpPF8LXbuKYG3BTFTdOVFIeRe2NUyYh/xs6bXGr4WKTXb3qBmzR02FSy3 IODQw5Q6zpXj8prYqFHYsOvGCEc1CwJaSaYwRhTkFedJUxiyhyB5GQwoFfExCVHW 05ZFCAVYFldCJvUzfzrWubN6wX0DD2dwultgmldOn/W/n8at52mpPNvIdbZb2F41 T0YZeoWnCJrYXjq/32oc1cmifIHqySnyMnavi75DxPCdZsCOpSAT4j4lAQRGsfgI kkLPGQieMfNNkMCKh7qjwdXAVtdqhf0RVtFILH3OyEodlk1HYXqX5iE5wlaKzDop PKwf2Q3BErq1xChYGGVS+dEvyXc/2nIBlt7uLWKp4XFjqekKbaGaLJdjYP5b2s7N 1dM0MXQ/f8XoXKBkJNzEiM3hfsU6DOREgMc1DIsFKxfuMwX3EkVQM1If8ghb6x5Y jXayv+NLbidOSzk4vl5QwngO/JYFMkoc6i9LNwEaEtR9PhnrdubxmrtM+RjfBm02 77q3dSWFESFQ4QxYWew4pHE0DpWbWy/iMIKQ6UZ5RLvB8GEcgt8ON7BBJeMc+Dyi kT9qhqn+lw== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIICiDCCAgygAwIBAgIIQX76UsB/30owDAYIKoZIzj0EAwMFADB6MQswCQYDVQQG EwJDTjEWMBQGA1UECgwNQW50IEZpbmFuY2lhbDEgMB4GA1UECwwXQ2VydGlmaWNh dGlvbiBBdXRob3JpdHkxMTAvBgNVBAMMKEFudCBGaW5hbmNpYWwgQ2VydGlmaWNh dGlvbiBBdXRob3JpdHkgRTEwHhcNMTkwNDI4MTYyMDQ0WhcNNDkwNDIwMTYyMDQ0 WjB6MQswCQYDVQQGEwJDTjEWMBQGA1UECgwNQW50IEZpbmFuY2lhbDEgMB4GA1UE CwwXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxMTAvBgNVBAMMKEFudCBGaW5hbmNp YWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRTEwdjAQBgcqhkjOPQIBBgUrgQQA IgNiAASCCRa94QI0vR5Up9Yr9HEupz6hSoyjySYqo7v837KnmjveUIUNiuC9pWAU WP3jwLX3HkzeiNdeg22a0IZPoSUCpasufiLAnfXh6NInLiWBrjLJXDSGaY7vaokt rpZvAdmjXTBbMAsGA1UdDwQEAwIBBjAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRZ 4ZTgDpksHL2qcpkFkxD2zVd16TAfBgNVHSMEGDAWgBRZ4ZTgDpksHL2qcpkFkxD2 zVd16TAMBggqhkjOPQQDAwUAA2gAMGUCMQD4IoqT2hTUn0jt7oXLdMJ8q4vLp6sg wHfPiOr9gxreb+e6Oidwd2LDnC4OUqCWiF8CMAzwKs4SnDJYcMLf2vpkbuVE4dTH Rglz+HGcTLWsFs4KxLsq7MuU+vJTBUeDJeDjdA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDxTCCAq2gAwIBAgIUEMdk6dVgOEIS2cCP0Q43P90Ps5YwDQYJKoZIhvcNAQEF BQAwajELMAkGA1UEBhMCQ04xEzARBgNVBAoMCmlUcnVzQ2hpbmExHDAaBgNVBAsM E0NoaW5hIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMMH2lUcnVzQ2hpbmEgQ2xhc3Mg MiBSb290IENBIC0gRzMwHhcNMTMwNDE4MDkzNjU2WhcNMzMwNDE4MDkzNjU2WjBq MQswCQYDVQQGEwJDTjETMBEGA1UECgwKaVRydXNDaGluYTEcMBoGA1UECwwTQ2hp bmEgVHJ1c3QgTmV0d29yazEoMCYGA1UEAwwfaVRydXNDaGluYSBDbGFzcyAyIFJv b3QgQ0EgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOPPShpV nJbMqqCw6Bz1kehnoPst9pkr0V9idOwU2oyS47/HjJXk9Rd5a9xfwkPO88trUpz5 4GmmwspDXjVFu9L0eFaRuH3KMha1Ak01citbF7cQLJlS7XI+tpkTGHEY5pt3EsQg wykfZl/A1jrnSkspMS997r2Gim54cwz+mTMgDRhZsKK/lbOeBPpWtcFizjXYCqhw WktvQfZBYi6o4sHCshnOswi4yV1p+LuFcQ2ciYdWvULh1eZhLxHbGXyznYHi0dGN z+I9H8aXxqAQfHVhbdHNzi77hCxFjOy+hHrGsyzjrd2swVQ2iUWP8BfEQqGLqM1g KgWKYfcTGdbPB1MCAwEAAaNjMGEwHQYDVR0OBBYEFG/oAMxTVe7y0+408CTAK8hA uTyRMB8GA1UdIwQYMBaAFG/oAMxTVe7y0+408CTAK8hAuTyRMA8GA1UdEwEB/wQF MAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBLnUTfW7hp emMbuUGCk7RBswzOT83bDM6824EkUnf+X0iKS95SUNGeeSWK2o/3ALJo5hi7GZr3 U8eLaWAcYizfO99UXMRBPw5PRR+gXGEronGUugLpxsjuynoLQu8GQAeysSXKbN1I UugDo9u8igJORYA+5ms0s5sCUySqbQ2R5z/GoceyI9LdxIVa1RjVX8pYOj8JFwtn DJN3ftSFvNMYwRuILKuqUYSHc2GPYiHVflDh5nDymCMOQFcFG3WsEuB+EYQPFgIU 1DHmdZcz7Llx8UOZXX2JupWCYzK1XhJb+r4hK5ncf/w8qGtYlmyJpxk3hr1TfUJX Yf4Zr0fJsGuv -----END CERTIFICATE----- FlexJobApi.Web.Entry/AlipayCert/appCertPublicKey_2021004171602214.crt
New file @@ -0,0 +1,23 @@ -----BEGIN CERTIFICATE----- MIIEpjCCA46gAwIBAgIQICQJGZ4C8uub1cYcy9fcxjANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0 aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs YXNzIDEgUjEwHhcNMjQwOTE5MDE1NTU0WhcNMjkwOTE4MDE1NTU0WjBuMQswCQYDVQQGEwJDTjEz MDEGA1UECgwq5a6B5rOi5Yib6IOc5L+h5oGv5oqA5pyv5pyN5Yqh5pyJ6ZmQ5YWs5Y+4MQ8wDQYD VQQLDAZBbGlwYXkxGTAXBgNVBAMMEDIwODgwNTA1NDIwNDIzMDEwggEiMA0GCSqGSIb3DQEBAQUA A4IBDwAwggEKAoIBAQCgOs6F562oeQTVFho2GiA/+IdVcS0ZlbgD8kmfCkmz7p4td+ld/95y7LCm UOmBz8FdJQScNqS1TBx4tc7y90h/yHTLzKpbBh2DMLTEQtilOugrd2U2JKGBWRQR4xeL6fcyGOn0 5WuqJ6CAMjdgbMMEtjhQBaxcJxecP6v/EilPyR5Uy1v8utSYvlcu8FVyfkyQlMCh4W3XwRBc4sU3 X6V2lp/2T6LIzZ9uBcJzoic1KAcZIdnCHOb235wao13WO7+dA32UfAoINA8yfpyivaWw/WewR+ke na9180R1xxVJFkH+R20XNcRSlMXOfPz7MrYPRFr4HQbWdLG6z3GwPcebAgMBAAGjggEpMIIBJTAf BgNVHSMEGDAWgBRxB+IEYRbk5fJl6zEPyeD0PJrVkTAdBgNVHQ4EFgQULdtiYUNb4gMQ6z6BVDjw ZeUYthwwQAYDVR0gBDkwNzA1BgdggRwBbgEBMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9jYS5hbGlw YXkuY29tL2Nwcy5wZGYwDgYDVR0PAQH/BAQDAgbAMC8GA1UdHwQoMCYwJKAioCCGHmh0dHA6Ly9j YS5hbGlwYXkuY29tL2NybDkzLmNybDBgBggrBgEFBQcBAQRUMFIwKAYIKwYBBQUHMAKGHGh0dHA6 Ly9jYS5hbGlwYXkuY29tL2NhNi5jZXIwJgYIKwYBBQUHMAGGGmh0dHA6Ly9jYS5hbGlwYXkuY29t OjgzNDAvMA0GCSqGSIb3DQEBCwUAA4IBAQBzK7WLZwwHwEPZXm6VHNaO6PfLEqJDEf6zz15VPBr/ /yUGGHXReyfK5pHTh9EaFvNJTCWH/DHaUr0sf05w2bfxY3ZWCGFf6+qS+FqOq6V3AfXDphWlNSK9 jS5/tJc89Hr33HW4btsLwpcEqTweN16l3n5oIaJ9Zfi7zRQtPyUaVrtKAyMt8WeZ1gq1qjAAMmjG RHy9/LpihPemAhuKuPHpFPvksO7RAaKGlY42pg+LxdXLNECJR57rKiWKrrITDM16xJAOTBFK8caH MdkDrdiA6z/LsrGwiNBYb7N7t40gPdCJoVIlP0qkrzpqGg+KxwYDLmYX5LlpPdP9Tfz5y/t9 -----END CERTIFICATE----- FlexJobApi.Web.Entry/Startup.cs
@@ -25,6 +25,7 @@ services.AddHealthChecks(); services.AddConfigurableOptions<WxmpOptions>(); services.AddConfigurableOptions<AlipayOptions>(); services.AddConfigurableOptions<AliyunOptions>(); services.AddConfigurableOptions<BaiduOptions>(); @@ -36,7 +37,8 @@ services.AddComponent<DistributedCacheServiceComponent>(); services.AddHttpRemote(); services.AddHttpRemote(); services.AddSingleton<AlipayUtils>(); services.AddSingleton<AliyunSmsUtils>(); services.AddSingleton<WxmpUtils>(); services.AddScoped<SmsUtils>(); FlexJobApi.Web.Entry/appsettings.json
@@ -47,6 +47,20 @@ } ] }, "AliPay": { "ServerUrl": "https://openapi.alipay.com/gateway.do", "AppId": "2021004171602214", "PrivateKey": "MIIEogIBAAKCAQEAoDrOheetqHkE1RYaNhogP/iHVXEtGZW4A/JJnwpJs+6eLXfpXf/ecuywplDpgc/BXSUEnDaktUwceLXO8vdIf8h0y8yqWwYdgzC0xELYpTroK3dlNiShgVkUEeMXi+n3Mhjp9OVrqieggDI3YGzDBLY4UAWsXCcXnD+r/xIpT8keVMtb/LrUmL5XLvBVcn5MkJTAoeFt18EQXOLFN1+ldpaf9k+iyM2fbgXCc6InNSgHGSHZwhzm9t+cGqNd1ju/nQN9lHwKCDQPMn6cor2lsP1nsEfpHp2vdfNEdccVSRZB/kdtFzXEUpTFznz8+zK2D0Ra+B0G1nSxus9xsD3HmwIDAQABAoIBACQYm2X3J1wIx1npvMXrZNCEgJhzAqH85JOfBY7alnf+jYvYs64FcmuZfsI5ACHKV9lP+ZXniXt+Rfu7mX+Kzb5bvlQbK1WOLx/a3R5JoNy4RI1mPFrSLcAh/S96ZVeTwah7jFkrRfHzM2kt5uPGHLj3BACjBo1METmV7n1r7fqXCus/Eihdo5ah8WOUPPMg8MqLadSnKVgnkzDLEa+8bagN/WgNfg9m4nW3IocEtFmKox3xV938eXpzn6KrgCduyK1Xn3d1PViRDT1QFOqhTCg17j8qDD4xZphH32Vbgq+heURmSMfecmC1u0CEpvFq3WBVxir/VOxk88gqkAzwusECgYEA+x/OjjNYaeOTFxCLtcI6EnerwgisF39rSNVAdSziWO3u8tUhzhHxB1cE5im4f9Qsd+r3Mw7Vu26YHgQn9O/A1QGoU3e0W/0Ckz5iIIJdAqBB279lNN+puYo4lIUfZha00i/R3Sj6eXrKGTwqCPRyHvJUC7biAAUgnqDAPLdPpgkCgYEAo1c3P4saxVqPnGheplud+jpEilp92dwHn9nIsaX0A/ohcYQIes+bKEZHHafn7ksDhidcjrbPMK72PP2HOJOL6D8a2w9zdyZ6jlycV5jiFHB6ywmkJ0517HWAJ6Fl3OsltDrxWHnuiyb/G/2fU1uLsO2U/b7zT9s2zXJzN53ZiYMCgYAmVku9T79eovxwl/kMLXOaICTbgWFsUOp6+vtVKB4B/4jsD3eSsxB9014PGS1ubmC/ieJlLA2bCJ42buH+tZ9VpWQiIfMp2+1Jt0tZtS0n2nlTZ9u2f7K0fZJ3sf8CIdNHBz/dqITciM9TnOi55z+I0+vawfeskxvQu6+9VSrWqQKBgD55voUMhMnVsLZnaUSCKHOsU8kDgb2Rnkzy9QOV8TaQNrh/gurOe481CkB6l4iaopdueMWRgMAjO8XqRw1Jyiqj8Ha3ezeovRm0rIwIyvh8aUs9vc7XAN3Xt5Pw9NBCFOLR5LwtryMEYHFpWcZ9bnnW9bT0k4YI1/ZO/2jXdHxXAoGAQLGrsed0HLWRjGU2rAUvA9Kny6wo+ScUas5IhoAhGMYDDQ8lFbndgnIOMjdXllT9IvmVERMTSMmP2m7+aqKNz3x0kTkg0tIQTLPsaWCjI5G4CDASUPo/jPvcd4h3euclhpuhcU9FMme3R5UhMAZy1bt+1VWPRxRB0gzWi4d7AFQ=", "Format": "json", "Charset": "UTF-8", "SignType": "RSA2", "AppCertPath": "AlipayCert/appCertPublicKey_2021004171602214.crt", "AlipayPublicCertPath": "AlipayCert/alipayCertPublicKey_RSA2.crt", "RootCertContent": "AlipayCert/alipayRootCert.crt", "NotifyUrl": "https://testfj.81812333.com", "EncryptKey": "jjy8A7hB/1Bkhg+8FtXyyg==", "AlipayPublicKey": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoDrOheetqHkE1RYaNhogP/iHVXEtGZW4A/JJnwpJs+6eLXfpXf/ecuywplDpgc/BXSUEnDaktUwceLXO8vdIf8h0y8yqWwYdgzC0xELYpTroK3dlNiShgVkUEeMXi+n3Mhjp9OVrqieggDI3YGzDBLY4UAWsXCcXnD+r/xIpT8keVMtb/LrUmL5XLvBVcn5MkJTAoeFt18EQXOLFN1+ldpaf9k+iyM2fbgXCc6InNSgHGSHZwhzm9t+cGqNd1ju/nQN9lHwKCDQPMn6cor2lsP1nsEfpHp2vdfNEdccVSRZB/kdtFzXEUpTFznz8+zK2D0Ra+B0G1nSxus9xsD3HmwIDAQAB" }, "Aliyun": { "OSS": { "AccessKeyId": "LTAI4GAdJ88mUMMFBHHiyDmS", @@ -62,8 +76,8 @@ }, "SMS": { "Enable": true, "AccessKeyId": "LTAI5tMS7qz1duiyncCqxB8H", "AccessSecret": "TEHSXK6f6Njg0v0MSFkrjURofdjuKQ", "AccessKeyId": "LTAI5tLzz2jnXrUAAiC2kduH", "AccessSecret": "do1XqrgHJ5gOuFHhO5eku0FyYzZvbQ", "Version": "2017-05-25", "SignName": "818æ°å人åèµäº§å¹³å°", "RegionId": "cn-hangzhou",