From e0f2b29f3349d43e7f4222e079c54ba9cc4b6ee1 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期一, 16 六月 2025 11:09:23 +0800 Subject: [PATCH] fix:支付回调及供应商回调并发问题修订 --- LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs | 59 ++++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 44 insertions(+), 15 deletions(-) diff --git a/LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs b/LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs index 82e8728..c6304e0 100644 --- a/LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs +++ b/LifePayment/LifePayment.HttpApi/LifePay/ACOOLYNotifyController.cs @@ -7,9 +7,11 @@ using System; using System.IO; using System.Text; +using System.Threading; using System.Threading.Tasks; using Volo.Abp; using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.DistributedLocking; using Volo.Abp.Uow; namespace LifePayment.HttpApi @@ -20,14 +22,17 @@ public class ACOOLYNotifyController : AbpController { private readonly ILifePayService _lifePayService; + private readonly IAbpDistributedLock distributedLock; private readonly ILogger<ACOOLYNotifyController> _logger; public ACOOLYNotifyController( ILogger<ACOOLYNotifyController> logger, - ILifePayService lifePayService) + ILifePayService lifePayService, + IAbpDistributedLock distributedLock) { _logger = logger; _lifePayService = lifePayService; + this.distributedLock = distributedLock; } /// <summary> @@ -35,11 +40,12 @@ /// </summary> /// <returns></returns> [HttpPost] - [UnitOfWork] [AllowAnonymous] + [UnitOfWork(false)] public async Task ACOOLYNotify() { _logger.LogError("ACOOLY鍥炶皟閫氱煡寮�濮嬭繘鍏�"); + Thread.Sleep(200); var body = string.Empty; using (var reader = new StreamReader(Request.Body, Encoding.UTF8)) { @@ -56,6 +62,8 @@ ACOOLYStatusEnum acoolyStatus = ACOOLYStatusEnum.鍏呭�煎け璐�; var acoolyOrderNo = string.Empty; decimal payAmount = 0; + decimal parValue = 0; + decimal actualParValue = 0; string refundApplyRemark = string.Empty; _logger.LogError("ACOOLY鍥炶皟閫氬鐞嗙被鍨嬶細" + baseInfo.Service); _logger.LogError("ACOOLY鍥炶皟鍐呭锛�" + body); @@ -66,6 +74,8 @@ orderNo = confirmElectricOrderResponse.ElectricChargeOrder.OutOrderNo; acoolyOrderNo = confirmElectricOrderResponse.ElectricChargeOrder.BusiOrderNo; payAmount = confirmElectricOrderResponse.ElectricChargeOrder.PayAmount; + actualParValue = confirmElectricOrderResponse.ElectricChargeOrder.ActualParValue; + parValue = confirmElectricOrderResponse.ElectricChargeOrder.ParValue; _logger.LogError("ACOOLY鍥炶皟閫氬鐞嗙粨鏋滅姸鎬侊細" + confirmElectricOrderResponse.ElectricChargeOrder.Status); if (!confirmElectricOrderResponse.Success @@ -78,7 +88,7 @@ if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.鍏呭�兼垚鍔�) { status = LifePayOrderStatusEnum.宸插畬鎴�; - acoolyStatus = ACOOLYStatusEnum.鍏呭�兼垚鍔�; + acoolyStatus = ACOOLYStatusEnum.宸插畬鎴�; } else if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.鍏呭�间腑) @@ -96,13 +106,13 @@ else if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.閫�娆句腑) { - status = LifePayOrderStatusEnum.宸插畬鎴�; - acoolyStatus = ACOOLYStatusEnum.宸查��娆�; + status = LifePayOrderStatusEnum.閫�娆句腑; + acoolyStatus = ACOOLYStatusEnum.閫�娆句腑; } else if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.閫�娆惧畬鎴�) { - status = LifePayOrderStatusEnum.宸插畬鎴�; + status = LifePayOrderStatusEnum.寰呴��娆�; acoolyStatus = ACOOLYStatusEnum.宸查��娆�; } else @@ -110,6 +120,13 @@ { status = LifePayOrderStatusEnum.寰呴��娆�; acoolyStatus = ACOOLYStatusEnum.鍏呭�煎け璐�; + } + else + if (confirmElectricOrderResponse.ElectricChargeOrder.Status == ACOOLYConstant.Status.閮ㄥ垎鍏呭�兼垚鍔�) + { + status = LifePayOrderStatusEnum.寰呴��娆�; + acoolyStatus = ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�; + refundApplyRemark = confirmElectricOrderResponse.ElectricChargeOrder.ResponseMessage; } break; case ACOOLYConstant.Sevice.ConfirmPhoneOrder: @@ -129,7 +146,7 @@ if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.鍏呭�兼垚鍔�) { status = LifePayOrderStatusEnum.宸插畬鎴�; - acoolyStatus = ACOOLYStatusEnum.鍏呭�兼垚鍔�; + acoolyStatus = ACOOLYStatusEnum.宸插畬鎴�; } else @@ -147,13 +164,13 @@ else if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.閫�娆句腑) { - status = LifePayOrderStatusEnum.宸插畬鎴�; - acoolyStatus = ACOOLYStatusEnum.宸查��娆�; + status = LifePayOrderStatusEnum.閫�娆句腑; + acoolyStatus = ACOOLYStatusEnum.閫�娆句腑; } else if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.閫�娆惧畬鎴�) { - status = LifePayOrderStatusEnum.宸插畬鎴�; + status = LifePayOrderStatusEnum.寰呴��娆�; acoolyStatus = ACOOLYStatusEnum.宸查��娆�; } else @@ -161,6 +178,12 @@ { status = LifePayOrderStatusEnum.寰呴��娆�; acoolyStatus = ACOOLYStatusEnum.鍏呭�煎け璐�; + } + else + if (confirmPhoneOrderResponse.PhoneChargeOrder.Status == ACOOLYConstant.Status.閮ㄥ垎鍏呭�兼垚鍔�) + { + status = LifePayOrderStatusEnum.寰呴��娆�; + acoolyStatus = ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�; } break; case ACOOLYConstant.Sevice.ConfirmGasOrder: @@ -180,7 +203,7 @@ if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.鍏呭�兼垚鍔�) { status = LifePayOrderStatusEnum.宸插畬鎴�; - acoolyStatus = ACOOLYStatusEnum.鍏呭�兼垚鍔�; + acoolyStatus = ACOOLYStatusEnum.宸插畬鎴�; } else @@ -198,13 +221,13 @@ else if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.閫�娆句腑) { - status = LifePayOrderStatusEnum.宸插畬鎴�; - acoolyStatus = ACOOLYStatusEnum.宸查��娆�; + status = LifePayOrderStatusEnum.閫�娆句腑; + acoolyStatus = ACOOLYStatusEnum.閫�娆句腑; } else if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.閫�娆惧畬鎴�) { - status = LifePayOrderStatusEnum.宸插畬鎴�; + status = LifePayOrderStatusEnum.寰呴��娆�; acoolyStatus = ACOOLYStatusEnum.宸查��娆�; } else @@ -213,12 +236,18 @@ status = LifePayOrderStatusEnum.寰呴��娆�; acoolyStatus = ACOOLYStatusEnum.鍏呭�煎け璐�; } + else + if (confirmGasOrderResponse.GasChargeOrder.Status == ACOOLYConstant.Status.閮ㄥ垎鍏呭�兼垚鍔�) + { + status = LifePayOrderStatusEnum.寰呴��娆�; + acoolyStatus = ACOOLYStatusEnum.閮ㄥ垎鍏呭�兼垚鍔�; + } break; default: throw new UserFriendlyException("ACOOLY鍥炶皟閫氬鐞嗙被鍨嬩笉瀛樺湪"); } - await _lifePayService.ACOOLYOrderNotifyHandler(orderNo, acoolyOrderNo, status, acoolyStatus, payAmount, refundApplyRemark); + await _lifePayService.ACOOLYOrderNotifyHandler(orderNo, acoolyOrderNo, status, acoolyStatus, payAmount, refundApplyRemark, parValue, actualParValue); } } } \ No newline at end of file -- Gitblit v1.9.1